fix(系统管理): 修改项目和系统插件bug&统一字符长度
This commit is contained in:
parent
567a626998
commit
047e4d0936
|
@ -14,7 +14,6 @@
|
||||||
v-model:model-value="condition.name"
|
v-model:model-value="condition.name"
|
||||||
:placeholder="t('apiTestDebug.preconditionScriptNamePlaceholder')"
|
:placeholder="t('apiTestDebug.preconditionScriptNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
size="small"
|
size="small"
|
||||||
@press-enter="isShowEditScriptNameInput = false"
|
@press-enter="isShowEditScriptNameInput = false"
|
||||||
@blur="isShowEditScriptNameInput = false"
|
@blur="isShowEditScriptNameInput = false"
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { defineModel } from 'vue';
|
||||||
|
|
||||||
import { statusCodeOptions } from '@/components/pure/ms-advance-filter/index';
|
import { statusCodeOptions } from '@/components/pure/ms-advance-filter/index';
|
||||||
import paramsTable, { type ParamTableColumn } from '@/views/api-test/components/paramTable.vue';
|
import paramsTable, { type ParamTableColumn } from '@/views/api-test/components/paramTable.vue';
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
v-model="element[model.filed]"
|
v-model="element[model.filed]"
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
:placeholder="t(model.placeholder || '')"
|
:placeholder="t(model.placeholder || '')"
|
||||||
:max-length="model.maxLength || 250"
|
:max-length="model.maxLength || 255"
|
||||||
allow-clear
|
allow-clear
|
||||||
/>
|
/>
|
||||||
<a-input-number
|
<a-input-number
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
v-model="element[child.filed]"
|
v-model="element[child.filed]"
|
||||||
:class="child.className"
|
:class="child.className"
|
||||||
:placeholder="t(child.placeholder || '')"
|
:placeholder="t(child.placeholder || '')"
|
||||||
:max-length="child.maxLength || 250"
|
:max-length="child.maxLength || 255"
|
||||||
allow-clear
|
allow-clear
|
||||||
/>
|
/>
|
||||||
<a-select
|
<a-select
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<a-modal v-model:visible="showBatchModal" title-align="start" class="ms-modal-upload ms-modal-medium">
|
<a-modal
|
||||||
|
v-model:visible="showBatchModal"
|
||||||
|
:mask-closable="false"
|
||||||
|
:mask="true"
|
||||||
|
title-align="start"
|
||||||
|
class="ms-modal-upload ms-modal-medium"
|
||||||
|
>
|
||||||
<template #title>
|
<template #title>
|
||||||
{{ batchTitle }}
|
{{ batchTitle }}
|
||||||
<div class="text-[var(--color-text-4)]">
|
<div class="text-[var(--color-text-4)]">
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<div class="folder">
|
<div class="folder">
|
||||||
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="moduleKeyword"
|
v-model:model-value="moduleKeyword"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.commonScript.folderSearchPlaceholder')"
|
:placeholder="t('project.commonScript.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
|
|
@ -17,12 +17,7 @@
|
||||||
:label="t('project.commonScript.publicScriptName')"
|
:label="t('project.commonScript.publicScriptName')"
|
||||||
:rules="[{ required: true, message: t('project.commonScript.publicScriptNameNotEmpty') }]"
|
:rules="[{ required: true, message: t('project.commonScript.publicScriptNameNotEmpty') }]"
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input v-model="form.name" :max-length="255" :placeholder="t('project.commonScript.pleaseEnterScriptName')" />
|
||||||
v-model="form.name"
|
|
||||||
:max-length="255"
|
|
||||||
show-word-limit
|
|
||||||
:placeholder="t('project.commonScript.pleaseEnterScriptName')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="status" :label="t('project.commonScript.scriptEnabled')">
|
<a-form-item field="status" :label="t('project.commonScript.scriptEnabled')">
|
||||||
<a-select v-model="form.status" class="max-w-[396px]" :placeholder="t('project.commonScript.scriptEnabled')">
|
<a-select v-model="form.status" class="max-w-[396px]" :placeholder="t('project.commonScript.scriptEnabled')">
|
||||||
|
@ -36,10 +31,11 @@
|
||||||
:placeholder="t('system.organization.descriptionPlaceholder')"
|
:placeholder="t('system.organization.descriptionPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
:auto-size="{ minRows: 1 }"
|
:auto-size="{ minRows: 1 }"
|
||||||
|
:max-length="1000"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="tags" :label="t('project.commonScript.tags')">
|
<a-form-item field="tags" :label="t('project.commonScript.tags')">
|
||||||
<a-input-tag v-model="form.tags" :placeholder="t('project.commonScript.enterContentAddTags')" allow-clear />
|
<MsTagsInput v-model:modelValue="form.tags"></MsTagsInput>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="inputParameters" :label="t('project.commonScript.inputParams')">
|
<a-form-item field="inputParameters" :label="t('project.commonScript.inputParams')">
|
||||||
<paramTable
|
<paramTable
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
v-model:model-value="moduleKeyword"
|
v-model:model-value="moduleKeyword"
|
||||||
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
:max-length="255"
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-spin class="min-h-[400px] w-full" :loading="loading">
|
<a-spin class="min-h-[400px] w-full" :loading="loading">
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[8px]"
|
class="mb-[8px]"
|
||||||
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-spin class="h-full w-full" :loading="loading">
|
<a-spin class="h-full w-full" :loading="loading">
|
||||||
<MsList
|
<MsList
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
v-else-if="group.type === 'input'"
|
v-else-if="group.type === 'input'"
|
||||||
v-model:model-value="innerForm[`${paramKey}${index + 1}`]"
|
v-model:model-value="innerForm[`${paramKey}${index + 1}`]"
|
||||||
:placeholder="t(group.placeholder || '')"
|
:placeholder="t(group.placeholder || '')"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-else-if="group.type === 'radio'"
|
v-else-if="group.type === 'radio'"
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
v-model:model-value="innerForm[`${paramKey}${index + 1}`]"
|
v-model:model-value="innerForm[`${paramKey}${index + 1}`]"
|
||||||
:placeholder="t(group.placeholder || '')"
|
:placeholder="t(group.placeholder || '')"
|
||||||
class="ms-params-input-inputAppendSelect"
|
class="ms-params-input-inputAppendSelect"
|
||||||
|
:max-length="255"
|
||||||
>
|
>
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
<a-select
|
<a-select
|
||||||
|
|
|
@ -128,7 +128,6 @@
|
||||||
v-model:model-value="timeForm.desc"
|
v-model:model-value="timeForm.desc"
|
||||||
:max-length="64"
|
:max-length="64"
|
||||||
:placeholder="t('ms.personal.accessKeyDescPlaceholder')"
|
:placeholder="t('ms.personal.accessKeyDescPlaceholder')"
|
||||||
show-word-limit
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
v-model:modelValue="baseInfoForm.name"
|
v-model:modelValue="baseInfoForm.name"
|
||||||
:placeholder="t('ms.personal.namePlaceholder')"
|
:placeholder="t('ms.personal.namePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
v-model:model-value="apiConfig.userUrl"
|
v-model:model-value="apiConfig.userUrl"
|
||||||
:placeholder="t('ms.personal.apiLocalExecutionPlaceholder')"
|
:placeholder="t('ms.personal.apiLocalExecutionPlaceholder')"
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
@press-enter="testApi"
|
@press-enter="testApi"
|
||||||
></a-input>
|
></a-input>
|
||||||
<div class="config-card-footer">
|
<div class="config-card-footer">
|
||||||
|
@ -65,6 +66,7 @@
|
||||||
v-model:model-value="uiConfig.userUrl"
|
v-model:model-value="uiConfig.userUrl"
|
||||||
:placeholder="t('ms.personal.uiLocalExecutionPlaceholder')"
|
:placeholder="t('ms.personal.uiLocalExecutionPlaceholder')"
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
@press-enter="testUi"
|
@press-enter="testUi"
|
||||||
></a-input>
|
></a-input>
|
||||||
<div class="config-card-footer">
|
<div class="config-card-footer">
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
class="w-[243px]"
|
class="w-[243px]"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('system.userGroup.pleaseInputUserGroupName')"
|
:placeholder="t('system.userGroup.pleaseInputUserGroupName')"
|
||||||
allow-clear
|
allow-clear
|
||||||
@press-enter="handleBeforeOk"
|
@press-enter="handleBeforeOk"
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
class="w-full"
|
class="w-full"
|
||||||
allow-clear
|
allow-clear
|
||||||
:disabled="!item.dataIndex"
|
:disabled="!item.dataIndex"
|
||||||
:max-length="60"
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<MsTagsInput
|
<MsTagsInput
|
||||||
v-else-if="item.type === FilterType.TAGS_INPUT"
|
v-else-if="item.type === FilterType.TAGS_INPUT"
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
class="w-full"
|
class="w-full"
|
||||||
allow-clear
|
allow-clear
|
||||||
:disabled="!item.dataIndex"
|
:disabled="!item.dataIndex"
|
||||||
:max-length="60"
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<MsSelect
|
<MsSelect
|
||||||
v-else-if="item.type === FilterType.SELECT"
|
v-else-if="item.type === FilterType.SELECT"
|
||||||
|
@ -150,8 +150,7 @@
|
||||||
minRows: 1,
|
minRows: 1,
|
||||||
maxRows: 1,
|
maxRows: 1,
|
||||||
}"
|
}"
|
||||||
show-word-limit
|
:max-length="1000"
|
||||||
:max-length="512"
|
|
||||||
/>
|
/>
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-else-if="item.type === FilterType.RADIO"
|
v-else-if="item.type === FilterType.RADIO"
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
ref="inputRef"
|
ref="inputRef"
|
||||||
v-model.trim="addTagInput"
|
v-model.trim="addTagInput"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:max-length="255"
|
||||||
:error="!!tagInputError"
|
:error="!!tagInputError"
|
||||||
@keyup.enter="handleAddTag(item)"
|
@keyup.enter="handleAddTag(item)"
|
||||||
@blur="handleAddTag(item)"
|
@blur="handleAddTag(item)"
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
:value="props.modelValue"
|
:value="props.modelValue"
|
||||||
:placeholder="t('project.menu.pleaseInputJiraKey')"
|
:placeholder="t('project.menu.pleaseInputJiraKey')"
|
||||||
v-bind="attrs"
|
v-bind="attrs"
|
||||||
|
:max-length="255"
|
||||||
@change="(v: string) => emit('update:modelValue', v)"
|
@change="(v: string) => emit('update:modelValue', v)"
|
||||||
@blur="handleBlur"
|
@blur="handleBlur"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<a-input
|
<a-input
|
||||||
v-model="inputValue"
|
v-model="inputValue"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:type="isShowPassword ? 'password' : 'text'"
|
:type="isShowPassword ? 'password' : 'text'"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-if="props.fieldConfig?.isTextArea"
|
v-if="props.fieldConfig?.isTextArea"
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength"
|
:max-length="props.fieldConfig?.maxLength || 1000"
|
||||||
:auto-size="{ maxRows: 4 }"
|
:auto-size="{ maxRows: 4 }"
|
||||||
:placeholder="props.fieldConfig?.placeholder"
|
:placeholder="props.fieldConfig?.placeholder"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-else
|
v-else
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="50"
|
:max-length="255"
|
||||||
:placeholder="props.fieldConfig?.placeholder"
|
:placeholder="props.fieldConfig?.placeholder"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
@press-enter="handleConfirm"
|
@press-enter="handleConfirm"
|
||||||
|
|
|
@ -132,6 +132,7 @@
|
||||||
"
|
"
|
||||||
ref="currentInputRef"
|
ref="currentInputRef"
|
||||||
v-model="record[item.dataIndex as string]"
|
v-model="record[item.dataIndex as string]"
|
||||||
|
:max-length="255"
|
||||||
@blur="handleEditInputBlur(record, item.dataIndex as string, true)"
|
@blur="handleEditInputBlur(record, item.dataIndex as string, true)"
|
||||||
@keydown.enter="handleEditInputBlur(record, item.dataIndex as string, false)"
|
@keydown.enter="handleEditInputBlur(record, item.dataIndex as string, false)"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,25 +1,31 @@
|
||||||
<template>
|
<template>
|
||||||
<a-input-tag
|
<div class="w-full">
|
||||||
v-model:model-value="innerModelValue"
|
<a-input-tag
|
||||||
v-model:input-value="innerInputValue"
|
v-model:model-value="innerModelValue"
|
||||||
:placeholder="t(props.placeholder || 'ms.tagsInput.tagsInputPlaceholder')"
|
v-model:input-value="innerInputValue"
|
||||||
:allow-clear="props.allowClear"
|
:error="isError"
|
||||||
:retain-input-value="props.retainInputValue"
|
:placeholder="t(props.placeholder || 'ms.tagsInput.tagsInputPlaceholder')"
|
||||||
:unique-value="props.uniqueValue"
|
:allow-clear="props.allowClear"
|
||||||
:max-tag-count="props.maxTagCount"
|
:retain-input-value="props.retainInputValue"
|
||||||
@press-enter="tagInputEnter"
|
:unique-value="props.uniqueValue"
|
||||||
@blur="tagInputBlur"
|
:max-tag-count="props.maxTagCount"
|
||||||
>
|
@press-enter="tagInputEnter"
|
||||||
<template v-if="props.customPrefix" #prefix>
|
@blur="tagInputBlur"
|
||||||
<slot name="prefix"></slot>
|
>
|
||||||
</template>
|
<template v-if="props.customPrefix" #prefix>
|
||||||
<template v-if="props.customTag" #tag="{ data }">
|
<slot name="prefix"></slot>
|
||||||
<slot name="tag" :data="data"></slot>
|
</template>
|
||||||
</template>
|
<template v-if="props.customTag" #tag="{ data }">
|
||||||
<template v-if="props.customSuffix" #suffix>
|
<slot name="tag" :data="data"></slot>
|
||||||
<slot name="suffix"></slot>
|
</template>
|
||||||
</template>
|
<template v-if="props.customSuffix" #suffix>
|
||||||
</a-input-tag>
|
<slot name="suffix"></slot>
|
||||||
|
</template>
|
||||||
|
</a-input-tag>
|
||||||
|
<span v-if="isError" class="ml-[1px] text-[12px] text-[rgb(var(--danger-6))]">{{
|
||||||
|
t('common.tagInputMaxLength', { number: props.maxLength })
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
@ -41,11 +47,13 @@
|
||||||
customTag?: boolean;
|
customTag?: boolean;
|
||||||
customSuffix?: boolean;
|
customSuffix?: boolean;
|
||||||
maxTagCount?: number;
|
maxTagCount?: number;
|
||||||
|
maxLength?: number;
|
||||||
}>(),
|
}>(),
|
||||||
{
|
{
|
||||||
retainInputValue: true,
|
retainInputValue: true,
|
||||||
uniqueValue: true,
|
uniqueValue: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
|
maxLength: 64,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const emit = defineEmits(['update:modelValue', 'update:inputValue', 'change']);
|
const emit = defineEmits(['update:modelValue', 'update:inputValue', 'change']);
|
||||||
|
@ -56,6 +64,11 @@
|
||||||
const innerInputValue = ref(props.inputValue);
|
const innerInputValue = ref(props.inputValue);
|
||||||
const tagsLength = ref(0); // 记录每次回车或失去焦点前的tags长度,以判断是否有新的tag被添加,新标签添加时需要判断是否重复的标签
|
const tagsLength = ref(0); // 记录每次回车或失去焦点前的tags长度,以判断是否有新的tag被添加,新标签添加时需要判断是否重复的标签
|
||||||
|
|
||||||
|
const isError = computed(
|
||||||
|
() =>
|
||||||
|
(innerInputValue.value || '').length > props.maxLength ||
|
||||||
|
innerModelValue.value.some((item) => item.length > props.maxLength)
|
||||||
|
);
|
||||||
watch(
|
watch(
|
||||||
() => props.modelValue,
|
() => props.modelValue,
|
||||||
(val) => {
|
(val) => {
|
||||||
|
@ -105,7 +118,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function tagInputBlur() {
|
function tagInputBlur() {
|
||||||
if (innerInputValue.value && innerInputValue.value.trim() !== '' && validateUniqueValue()) {
|
if (
|
||||||
|
innerInputValue.value &&
|
||||||
|
innerInputValue.value.trim() !== '' &&
|
||||||
|
validateUniqueValue() &&
|
||||||
|
(innerInputValue.value || '').trim().length <= props.maxLength
|
||||||
|
) {
|
||||||
innerModelValue.value.push(innerInputValue.value.trim());
|
innerModelValue.value.push(innerInputValue.value.trim());
|
||||||
innerInputValue.value = '';
|
innerInputValue.value = '';
|
||||||
tagsLength.value += 1;
|
tagsLength.value += 1;
|
||||||
|
@ -113,9 +131,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function tagInputEnter() {
|
function tagInputEnter() {
|
||||||
if (validateUniqueValue()) {
|
if (validateUniqueValue() && (innerInputValue.value || '').trim().length <= props.maxLength) {
|
||||||
innerInputValue.value = '';
|
innerInputValue.value = '';
|
||||||
tagsLength.value += 1;
|
tagsLength.value += 1;
|
||||||
|
} else {
|
||||||
|
innerModelValue.value = innerModelValue.value.filter((item: any) => item.length <= props.maxLength);
|
||||||
|
innerInputValue.value = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -63,6 +63,7 @@ export default {
|
||||||
'common.setting': 'Setting',
|
'common.setting': 'Setting',
|
||||||
'common.resetDefault': 'Reset default',
|
'common.resetDefault': 'Reset default',
|
||||||
'common.tagPlaceholder': 'Add tag and press Enter to end',
|
'common.tagPlaceholder': 'Add tag and press Enter to end',
|
||||||
|
'common.tagInputMaxLength': 'The tag must not exceed {number} characters',
|
||||||
'common.batchModify': 'Batch Edit',
|
'common.batchModify': 'Batch Edit',
|
||||||
'common.batchAdd': 'Batch Add',
|
'common.batchAdd': 'Batch Add',
|
||||||
'common.pleaseSelect': 'please choose',
|
'common.pleaseSelect': 'please choose',
|
||||||
|
|
|
@ -65,6 +65,7 @@ export default {
|
||||||
'common.setting': '设置',
|
'common.setting': '设置',
|
||||||
'common.resetDefault': '恢复默认',
|
'common.resetDefault': '恢复默认',
|
||||||
'common.tagPlaceholder': '添加标签回车结束',
|
'common.tagPlaceholder': '添加标签回车结束',
|
||||||
|
'common.tagInputMaxLength': '标签不得超过 {number} 个字符',
|
||||||
'common.batchModify': '批量修改',
|
'common.batchModify': '批量修改',
|
||||||
'common.batchAdd': '批量添加',
|
'common.batchAdd': '批量添加',
|
||||||
'common.pleaseInput': '请输入',
|
'common.pleaseInput': '请输入',
|
||||||
|
|
|
@ -14,13 +14,24 @@ const ProjectManagement: AppRouteRecordRaw = {
|
||||||
order: 7,
|
order: 7,
|
||||||
hideChildrenInMenu: true,
|
hideChildrenInMenu: true,
|
||||||
roles: [
|
roles: [
|
||||||
'PROJECT_USER:READ',
|
'SYSTEM_PARAMETER_SETTING_BASE:READ',
|
||||||
'PROJECT_TEMPLATE:READ',
|
'PROJECT_TEMPLATE:READ',
|
||||||
'PROJECT_FILE_MANAGEMENT:READ',
|
'PROJECT_FILE_MANAGEMENT:READ',
|
||||||
'PROJECT_MESSAGE:READ',
|
'PROJECT_MESSAGE:READ',
|
||||||
'PROJECT_CUSTOM_FUNCTION:READ',
|
'PROJECT_CUSTOM_FUNCTION:READ',
|
||||||
'PROJECT_LOG:READ',
|
'PROJECT_LOG:READ',
|
||||||
'PROJECT_ENVIRONMENT:READ',
|
'PROJECT_ENVIRONMENT:READ',
|
||||||
|
// 菜单管理
|
||||||
|
'PROJECT_APPLICATION_WORKSTATION:READ',
|
||||||
|
'PROJECT_APPLICATION_TEST_PLAN:READ',
|
||||||
|
'PROJECT_APPLICATION_BUG:READ',
|
||||||
|
'PROJECT_APPLICATION_CASE:READ',
|
||||||
|
'PROJECT_APPLICATION_API:READ',
|
||||||
|
'PROJECT_APPLICATION_UI:READ',
|
||||||
|
'PROJECT_APPLICATION_PERFORMANCE_TEST:READ',
|
||||||
|
// 菜单管理
|
||||||
|
'PROJECT_USER:READ',
|
||||||
|
'PROJECT_GROUP:READ',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
@ -32,7 +43,20 @@ const ProjectManagement: AppRouteRecordRaw = {
|
||||||
redirect: '/project-management/permission/basicInfo',
|
redirect: '/project-management/permission/basicInfo',
|
||||||
meta: {
|
meta: {
|
||||||
locale: 'menu.projectManagement.projectPermission',
|
locale: 'menu.projectManagement.projectPermission',
|
||||||
roles: ['PROJECT_USER:READ'],
|
roles: [
|
||||||
|
'SYSTEM_PARAMETER_SETTING_BASE:READ',
|
||||||
|
// 菜单管理
|
||||||
|
'PROJECT_APPLICATION_WORKSTATION:READ',
|
||||||
|
'PROJECT_APPLICATION_TEST_PLAN:READ',
|
||||||
|
'PROJECT_APPLICATION_BUG:READ',
|
||||||
|
'PROJECT_APPLICATION_CASE:READ',
|
||||||
|
'PROJECT_APPLICATION_API:READ',
|
||||||
|
'PROJECT_APPLICATION_UI:READ',
|
||||||
|
'PROJECT_APPLICATION_PERFORMANCE_TEST:READ',
|
||||||
|
// 菜单管理
|
||||||
|
'PROJECT_USER:READ',
|
||||||
|
'PROJECT_GROUP:READ',
|
||||||
|
],
|
||||||
isTopMenu: true,
|
isTopMenu: true,
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
@ -43,7 +67,7 @@ const ProjectManagement: AppRouteRecordRaw = {
|
||||||
component: () => import('@/views/project-management/projectAndPermission/basicInfos/index.vue'),
|
component: () => import('@/views/project-management/projectAndPermission/basicInfos/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
locale: 'project.permission.basicInfo',
|
locale: 'project.permission.basicInfo',
|
||||||
roles: ['SYSTEM_PARAMETER_SETTING_BASE:READ'],
|
roles: ['*'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// 菜单管理
|
// 菜单管理
|
||||||
|
@ -81,7 +105,7 @@ const ProjectManagement: AppRouteRecordRaw = {
|
||||||
component: () => import('@/views/project-management/projectAndPermission/member/index.vue'),
|
component: () => import('@/views/project-management/projectAndPermission/member/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
locale: 'project.permission.member',
|
locale: 'project.permission.member',
|
||||||
roles: ['*'],
|
roles: ['PROJECT_USER:READ'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// 用户组
|
// 用户组
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
v-model:model-value="condition.name"
|
v-model:model-value="condition.name"
|
||||||
:placeholder="t('apiTestDebug.preconditionScriptNamePlaceholder')"
|
:placeholder="t('apiTestDebug.preconditionScriptNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
size="small"
|
size="small"
|
||||||
@press-enter="isShowEditScriptNameInput = false"
|
@press-enter="isShowEditScriptNameInput = false"
|
||||||
@blur="isShowEditScriptNameInput = false"
|
@blur="isShowEditScriptNameInput = false"
|
||||||
|
@ -136,7 +135,6 @@
|
||||||
v-model:model-value="condition.desc"
|
v-model:model-value="condition.desc"
|
||||||
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-[16px] flex w-full items-center bg-[var(--color-text-n9)] p-[12px]">
|
<div class="mb-[16px] flex w-full items-center bg-[var(--color-text-n9)] p-[12px]">
|
||||||
|
@ -184,6 +182,7 @@
|
||||||
<div class="mb-[8px] text-[var(--color-text-1)]">{{ t('apiTestDebug.storageByCol') }}</div>
|
<div class="mb-[8px] text-[var(--color-text-1)]">{{ t('apiTestDebug.storageByCol') }}</div>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="condition.sqlSource.storageByCol"
|
v-model:model-value="condition.sqlSource.storageByCol"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.storageByColPlaceholder', { a: '{id_1}', b: '{username_1}' })"
|
:placeholder="t('apiTestDebug.storageByColPlaceholder', { a: '{id_1}', b: '{username_1}' })"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -191,6 +190,7 @@
|
||||||
<div class="mb-[8px] text-[var(--color-text-1)]">{{ t('apiTestDebug.storageByResult') }}</div>
|
<div class="mb-[8px] text-[var(--color-text-1)]">{{ t('apiTestDebug.storageByResult') }}</div>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="condition.sqlSource.storageByResult"
|
v-model:model-value="condition.sqlSource.storageByResult"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.storageByResultPlaceholder', { a: '${result}' })"
|
:placeholder="t('apiTestDebug.storageByResultPlaceholder', { a: '${result}' })"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -243,6 +243,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="record.expression"
|
v-model:model-value="record.expression"
|
||||||
class="ms-params-input"
|
class="ms-params-input"
|
||||||
|
:max-length="255"
|
||||||
@input="handleExpressionChange"
|
@input="handleExpressionChange"
|
||||||
@change="handleExpressionChange"
|
@change="handleExpressionChange"
|
||||||
>
|
>
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="expressionForm.expression"
|
v-model:model-value="expressionForm.expression"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.regularExpressionPlaceholder', { ex: '/<title>(.*?)</title>/' })"
|
:placeholder="t('apiTestDebug.regularExpressionPlaceholder', { ex: '/<title>(.*?)</title>/' })"
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
/>
|
/>
|
||||||
|
@ -53,6 +54,7 @@
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="expressionForm.expression"
|
v-model:model-value="expressionForm.expression"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.JSONPathPlaceholder')"
|
:placeholder="t('apiTestDebug.JSONPathPlaceholder')"
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
/>
|
/>
|
||||||
|
@ -71,6 +73,7 @@
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="expressionForm.expression"
|
v-model:model-value="expressionForm.expression"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.XPathPlaceholder')"
|
:placeholder="t('apiTestDebug.XPathPlaceholder')"
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
ref="inputRef"
|
ref="inputRef"
|
||||||
v-model:model-value="innerValue"
|
v-model:model-value="innerValue"
|
||||||
|
:max-length="255"
|
||||||
class="param-input"
|
class="param-input"
|
||||||
@input="(val) => emit('input', val)"
|
@input="(val) => emit('input', val)"
|
||||||
@change="(val) => emit('change', val)"
|
@change="(val) => emit('change', val)"
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
v-model:model-value="record[columnConfig.dataIndex as string]"
|
v-model:model-value="record[columnConfig.dataIndex as string]"
|
||||||
:placeholder="t('apiTestDebug.paramNamePlaceholder')"
|
:placeholder="t('apiTestDebug.paramNamePlaceholder')"
|
||||||
class="param-input"
|
class="param-input"
|
||||||
|
:max-length="255"
|
||||||
@input="(val) => addTableLine(val, 'name')"
|
@input="(val) => addTableLine(val, 'name')"
|
||||||
/>
|
/>
|
||||||
</a-popover>
|
</a-popover>
|
||||||
|
@ -107,6 +108,7 @@
|
||||||
v-model:model-value="record.value"
|
v-model:model-value="record.value"
|
||||||
class="param-input"
|
class="param-input"
|
||||||
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
||||||
|
:max-length="255"
|
||||||
@input="(val) => addTableLine(val, 'value')"
|
@input="(val) => addTableLine(val, 'value')"
|
||||||
/>
|
/>
|
||||||
</a-popover>
|
</a-popover>
|
||||||
|
@ -274,8 +276,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:model-value="quickInputDescValue"
|
v-model:model-value="quickInputDescValue"
|
||||||
:placeholder="t('apiTestDebug.descPlaceholder')"
|
:placeholder="t('apiTestDebug.descPlaceholder')"
|
||||||
:max-length="255"
|
:max-length="1000"
|
||||||
show-word-limit
|
|
||||||
></a-textarea>
|
></a-textarea>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
v-model:model-value="authForm.account"
|
v-model:model-value="authForm.account"
|
||||||
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
||||||
class="w-[450px]"
|
class="w-[450px]"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('apiTestDebug.password')">
|
<a-form-item :label="t('apiTestDebug.password')">
|
||||||
|
|
|
@ -24,12 +24,7 @@
|
||||||
/>
|
/>
|
||||||
<div v-else-if="format === RequestBodyFormat.BINARY">
|
<div v-else-if="format === RequestBodyFormat.BINARY">
|
||||||
<div class="mb-[16px] flex justify-between gap-[8px] bg-[var(--color-text-n9)] p-[12px]">
|
<div class="mb-[16px] flex justify-between gap-[8px] bg-[var(--color-text-n9)] p-[12px]">
|
||||||
<a-input
|
<a-input v-model:model-value="innerParams.binaryDesc" :placeholder="t('common.desc')" :max-length="255" />
|
||||||
v-model:model-value="innerParams.binaryDesc"
|
|
||||||
:placeholder="t('common.desc')"
|
|
||||||
:max-length="255"
|
|
||||||
show-word-limit
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<a-switch v-model:model-value="innerParams.binarySend" class="mr-[8px]" size="small" type="line"></a-switch>
|
<a-switch v-model:model-value="innerParams.binarySend" class="mr-[8px]" size="small" type="line"></a-switch>
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
</a-select>
|
</a-select>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeDebug.url"
|
v-model:model-value="activeDebug.url"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.urlPlaceholder')"
|
:placeholder="t('apiTestDebug.urlPlaceholder')"
|
||||||
@change="handleActiveDebugChange"
|
@change="handleActiveDebugChange"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
<a-form-item :label="t('apiTestDebug.certificateAlias')">
|
<a-form-item :label="t('apiTestDebug.certificateAlias')">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="settingForm.certificateAlias"
|
v-model:model-value="settingForm.certificateAlias"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
:placeholder="t('apiTestDebug.commonPlaceholder')"
|
||||||
class="w-[450px]"
|
class="w-[450px]"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-if="props.fieldConfig?.isTextArea"
|
v-if="props.fieldConfig?.isTextArea"
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength"
|
:max-length="props.fieldConfig?.maxLength || 1000"
|
||||||
:auto-size="{ maxRows: 4 }"
|
:auto-size="{ maxRows: 4 }"
|
||||||
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-else
|
v-else
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength || 50"
|
:max-length="props.fieldConfig?.maxLength || 255"
|
||||||
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
@press-enter="beforeConfirm(undefined)"
|
@press-enter="beforeConfirm(undefined)"
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true }]"
|
||||||
>
|
>
|
||||||
<template v-if="valueMode === 'tag'">
|
<template v-if="valueMode === 'tag'">
|
||||||
<a-input-tag v-model:model-value="form.value" :disabled="!form.attribute" />
|
<MsTagsInput v-model:modelValue="form.value" :disabled="!form.attribute"></MsTagsInput>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="valueMode === 'user_selector'">
|
<template v-else-if="valueMode === 'user_selector'">
|
||||||
<MsUserSelector
|
<MsUserSelector
|
||||||
|
@ -124,6 +124,7 @@
|
||||||
import { type FormInstance, Message, type ValidatedError } from '@arco-design/web-vue';
|
import { type FormInstance, Message, type ValidatedError } from '@arco-design/web-vue';
|
||||||
|
|
||||||
import { BatchActionQueryParams } from '@/components/pure/ms-table/type';
|
import { BatchActionQueryParams } from '@/components/pure/ms-table/type';
|
||||||
|
import MsTagsInput from '@/components/pure/ms-tags-input/index.vue';
|
||||||
import { MsUserSelector } from '@/components/business/ms-user-selector';
|
import { MsUserSelector } from '@/components/business/ms-user-selector';
|
||||||
import { UserRequestTypeEnum } from '@/components/business/ms-user-selector/utils';
|
import { UserRequestTypeEnum } from '@/components/business/ms-user-selector/utils';
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
<!-- 自定义字段结束 -->
|
<!-- 自定义字段结束 -->
|
||||||
<div class="baseItem">
|
<div class="baseItem">
|
||||||
<span class="label"> {{ t('bugManagement.detail.tag') }}</span>
|
<span class="label"> {{ t('bugManagement.detail.tag') }}</span>
|
||||||
<a-input-tag v-model:model-value="detailInfo.tag" />
|
<MsTagsInput v-model:modelValue="detailInfo.tag"></MsTagsInput>
|
||||||
</div>
|
</div>
|
||||||
<div class="baseItem">
|
<div class="baseItem">
|
||||||
<span class="label"> {{ t('bugManagement.detail.creator') }}</span>
|
<span class="label"> {{ t('bugManagement.detail.creator') }}</span>
|
||||||
|
@ -165,6 +165,7 @@
|
||||||
import MsIcon from '@/components/pure/ms-icon-font/index.vue';
|
import MsIcon from '@/components/pure/ms-icon-font/index.vue';
|
||||||
import MsSplitBox from '@/components/pure/ms-split-box/index.vue';
|
import MsSplitBox from '@/components/pure/ms-split-box/index.vue';
|
||||||
import type { MsPaginationI } from '@/components/pure/ms-table/type';
|
import type { MsPaginationI } from '@/components/pure/ms-table/type';
|
||||||
|
import MsTagsInput from '@/components/pure/ms-tags-input/index.vue';
|
||||||
import { CommentInput } from '@/components/business/ms-comment';
|
import { CommentInput } from '@/components/business/ms-comment';
|
||||||
import { CommentParams } from '@/components/business/ms-comment/types';
|
import { CommentParams } from '@/components/business/ms-comment/types';
|
||||||
import MsDetailDrawer from '@/components/business/ms-detail-drawer/index.vue';
|
import MsDetailDrawer from '@/components/business/ms-detail-drawer/index.vue';
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
:rules="[{ required: true, message: t('bugManagement.edit.nameIsRequired') }]"
|
:rules="[{ required: true, message: t('bugManagement.edit.nameIsRequired') }]"
|
||||||
:placeholder="t('bugManagement.edit.pleaseInputBugName')"
|
:placeholder="t('bugManagement.edit.pleaseInputBugName')"
|
||||||
>
|
>
|
||||||
<a-input v-model="form.title" :max-length="255" show-word-limit />
|
<a-input v-model="form.title" :max-length="255" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="description" :label="t('bugManagement.edit.content')">
|
<a-form-item field="description" :label="t('bugManagement.edit.content')">
|
||||||
<MsRichText v-model:raw="form.description" />
|
<MsRichText v-model:raw="form.description" />
|
||||||
|
@ -100,7 +100,7 @@
|
||||||
:form-rule="formRules"
|
:form-rule="formRules"
|
||||||
/>
|
/>
|
||||||
<a-form-item field="tag" :label="t('bugManagement.tag')">
|
<a-form-item field="tag" :label="t('bugManagement.tag')">
|
||||||
<a-input-tag
|
<MsTagsInput
|
||||||
v-model:model-value="form.tag"
|
v-model:model-value="form.tag"
|
||||||
:placeholder="t('bugManagement.edit.tagPlaceholder')"
|
:placeholder="t('bugManagement.edit.tagPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
@ -143,6 +143,7 @@
|
||||||
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
||||||
import { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
import { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
||||||
import MsRichText from '@/components/pure/ms-rich-text/MsRichText.vue';
|
import MsRichText from '@/components/pure/ms-rich-text/MsRichText.vue';
|
||||||
|
import MsTagsInput from '@/components/pure/ms-tags-input/index.vue';
|
||||||
import FileList from '@/components/pure/ms-upload/fileList.vue';
|
import FileList from '@/components/pure/ms-upload/fileList.vue';
|
||||||
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
||||||
import { MsFileItem } from '@/components/pure/ms-upload/types';
|
import { MsFileItem } from '@/components/pure/ms-upload/types';
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-if="record.showExpected"
|
v-if="record.showExpected"
|
||||||
v-model="record.expected"
|
v-model="record.expected"
|
||||||
|
:max-length="1000"
|
||||||
size="mini"
|
size="mini"
|
||||||
:auto-size="true"
|
:auto-size="true"
|
||||||
class="w-max-[267px]"
|
class="w-max-[267px]"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<div>
|
<div>
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model="searchParams.keyword"
|
v-model="searchParams.keyword"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('project.member.searchMember')"
|
:placeholder="t('project.member.searchMember')"
|
||||||
allow-clear
|
allow-clear
|
||||||
@search="searchHandler"
|
@search="searchHandler"
|
||||||
|
|
|
@ -35,11 +35,7 @@
|
||||||
asterisk-position="end"
|
asterisk-position="end"
|
||||||
:rules="[{ required: true, message: t('caseManagement.featureCase.PleaseInputTags') }]"
|
:rules="[{ required: true, message: t('caseManagement.featureCase.PleaseInputTags') }]"
|
||||||
>
|
>
|
||||||
<a-input-tag
|
<MsTagsInput v-model:modelValue="form.tags" allow-clear></MsTagsInput>
|
||||||
v-model="form.tags"
|
|
||||||
:placeholder="t('caseManagement.featureCase.pleaseEnterInputTags')"
|
|
||||||
allow-clear
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<MsFormCreate ref="formCreateRef" v-model:api="fApi" v-model:form-item="formItem" :form-rule="formRules" />
|
<MsFormCreate ref="formCreateRef" v-model:api="fApi" v-model:form-item="formItem" :form-rule="formRules" />
|
||||||
|
@ -56,6 +52,7 @@
|
||||||
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
||||||
import type { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
import type { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
||||||
import type { BatchActionQueryParams } from '@/components/pure/ms-table/type';
|
import type { BatchActionQueryParams } from '@/components/pure/ms-table/type';
|
||||||
|
import MsTagsInput from '@/components/pure/ms-tags-input/index.vue';
|
||||||
|
|
||||||
import { batchEditAttrs, getCaseDefaultFields } from '@/api/modules/case-management/featureCase';
|
import { batchEditAttrs, getCaseDefaultFields } from '@/api/modules/case-management/featureCase';
|
||||||
import { useI18n } from '@/hooks/useI18n';
|
import { useI18n } from '@/hooks/useI18n';
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
:placeholder="t('system.orgTemplate.caseNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.caseNamePlaceholder')"
|
||||||
show-word-limit
|
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -208,7 +207,7 @@
|
||||||
:form-rule="formRules"
|
:form-rule="formRules"
|
||||||
/>
|
/>
|
||||||
<a-form-item field="tags" :label="t('system.orgTemplate.tags')">
|
<a-form-item field="tags" :label="t('system.orgTemplate.tags')">
|
||||||
<a-input-tag v-model="form.tags" :placeholder="t('formCreate.PleaseEnter')" allow-clear />
|
<MsTagsInput v-model:model-value="form.tags" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -250,6 +249,7 @@
|
||||||
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
import MsFormCreate from '@/components/pure/ms-form-create/ms-form-create.vue';
|
||||||
import type { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
import type { FormItem, FormRuleItem } from '@/components/pure/ms-form-create/types';
|
||||||
import MsRichText from '@/components/pure/ms-rich-text/MsRichText.vue';
|
import MsRichText from '@/components/pure/ms-rich-text/MsRichText.vue';
|
||||||
|
import MsTagsInput from '@/components/pure/ms-tags-input/index.vue';
|
||||||
import MsFileList from '@/components/pure/ms-upload/fileList.vue';
|
import MsFileList from '@/components/pure/ms-upload/fileList.vue';
|
||||||
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
||||||
import type { MsFileItem } from '@/components/pure/ms-upload/types';
|
import type { MsFileItem } from '@/components/pure/ms-upload/types';
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
:rules="[{ required: true, message: t('bugManagement.edit.nameIsRequired') }]"
|
:rules="[{ required: true, message: t('bugManagement.edit.nameIsRequired') }]"
|
||||||
:placeholder="t('bugManagement.edit.pleaseInputBugName')"
|
:placeholder="t('bugManagement.edit.pleaseInputBugName')"
|
||||||
>
|
>
|
||||||
<a-input v-model="form.title" :max-length="255" show-word-limit />
|
<a-input v-model="form.title" :max-length="255" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('bugManagement.edit.content')">
|
<a-form-item :label="t('bugManagement.edit.content')">
|
||||||
<MsRichText v-model:raw="form.description" />
|
<MsRichText v-model:raw="form.description" />
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model="modelForm.demandName"
|
v-model="modelForm.demandName"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
:placeholder="t('caseManagement.featureCase.pleaseEnterTitle')"
|
:placeholder="t('caseManagement.featureCase.pleaseEnterTitle')"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
>
|
>
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model="platformKeyword"
|
v-model="platformKeyword"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('project.member.searchMember')"
|
:placeholder="t('project.member.searchMember')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mx-[8px] w-[240px]"
|
class="mx-[8px] w-[240px]"
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
:placeholder="t('caseManagement.featureCase.searchTip')"
|
:placeholder="t('caseManagement.featureCase.searchTip')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<div class="folder">
|
<div class="folder">
|
||||||
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<div class="folder">
|
<div class="folder">
|
||||||
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="confirmReviewName"
|
v-model:model-value="confirmReviewName"
|
||||||
:placeholder="t('caseManagement.caseReview.deleteReviewPlaceholder')"
|
:placeholder="t('caseManagement.caseReview.deleteReviewPlaceholder')"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex items-center justify-end">
|
<div class="flex items-center justify-end">
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
:placeholder="t('caseManagement.caseReview.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
/>
|
/>
|
||||||
<div v-if="!props.isModal" class="folder">
|
<div v-if="!props.isModal" class="folder">
|
||||||
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
<div :class="getFolderClass('all')" @click="setActiveFolder('all')">
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-if="props.fieldConfig?.isTextArea"
|
v-if="props.fieldConfig?.isTextArea"
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength"
|
:max-length="props.fieldConfig?.maxLength || 1000"
|
||||||
:auto-size="{ maxRows: 4 }"
|
:auto-size="{ maxRows: 4 }"
|
||||||
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-else
|
v-else
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength || 50"
|
:max-length="props.fieldConfig?.maxLength || 255"
|
||||||
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
@press-enter="beforeConfirm(undefined)"
|
@press-enter="beforeConfirm(undefined)"
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
v-model:modelValue="reviewForm.name"
|
v-model:modelValue="reviewForm.name"
|
||||||
:placeholder="t('caseManagement.caseReview.reviewNamePlaceholder')"
|
:placeholder="t('caseManagement.caseReview.reviewNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="desc" :label="t('caseManagement.caseReview.desc')">
|
<a-form-item field="desc" :label="t('caseManagement.caseReview.desc')">
|
||||||
|
@ -23,7 +22,6 @@
|
||||||
v-model:modelValue="reviewForm.desc"
|
v-model:modelValue="reviewForm.desc"
|
||||||
:placeholder="t('caseManagement.caseReview.descPlaceholder')"
|
:placeholder="t('caseManagement.caseReview.descPlaceholder')"
|
||||||
:max-length="1000"
|
:max-length="1000"
|
||||||
show-word-limit
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="folderId" :label="t('caseManagement.caseReview.belongModule')">
|
<a-form-item field="folderId" :label="t('caseManagement.caseReview.belongModule')">
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
:validate-trigger="['change', 'blur']"
|
:validate-trigger="['change', 'blur']"
|
||||||
hide-label
|
hide-label
|
||||||
>
|
>
|
||||||
<a-input v-model="userInfo.username" :placeholder="t('login.form.userName.placeholder')" />
|
<a-input v-model="userInfo.username" :max-length="255" :placeholder="t('login.form.userName.placeholder')" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
class="login-form-item"
|
class="login-form-item"
|
||||||
|
|
|
@ -1,3 +1,377 @@
|
||||||
<template> Performance Test is waiting for development </template>
|
<template>
|
||||||
|
<div> <MsFormCreate :rule="rule" :option="options" /> </div
|
||||||
|
></template>
|
||||||
|
|
||||||
<script setup></script>
|
<script setup>
|
||||||
|
import MsFormCreate from '@/components/pure/ms-form-create/formCreate.vue';
|
||||||
|
|
||||||
|
const rule = ref([
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'name',
|
||||||
|
title: '名称',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'comments',
|
||||||
|
title: '描述',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'el-divider',
|
||||||
|
props: {
|
||||||
|
contentPosition: 'left',
|
||||||
|
},
|
||||||
|
wrap: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
native: false,
|
||||||
|
children: ['目标Server配置'],
|
||||||
|
_fc_drag_tag: 'el-divider',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'FcRow',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 12,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'serverIp',
|
||||||
|
title: 'IP',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'connTimeout',
|
||||||
|
title: '连接超时时间',
|
||||||
|
info: '',
|
||||||
|
props: {
|
||||||
|
type: 'number',
|
||||||
|
},
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 12,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'port',
|
||||||
|
title: 'Port',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'resTimeout',
|
||||||
|
title: '响应超时时间',
|
||||||
|
info: '',
|
||||||
|
props: {
|
||||||
|
type: 'number',
|
||||||
|
},
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'row',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'FcRow',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 5,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'soLinger',
|
||||||
|
title: 'SO LINGER',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 5,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'eolByte',
|
||||||
|
title: 'EOL',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 5,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'checkbox',
|
||||||
|
field: 'closeConnection',
|
||||||
|
title: '关闭连接',
|
||||||
|
info: '',
|
||||||
|
effect: {
|
||||||
|
fetch: '',
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
value: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'checkbox',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 5,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'checkbox',
|
||||||
|
field: 'reUseConnection',
|
||||||
|
title: 'Re-use',
|
||||||
|
info: '',
|
||||||
|
effect: {
|
||||||
|
fetch: '',
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
value: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'checkbox',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 4,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'checkbox',
|
||||||
|
field: 'noDelay',
|
||||||
|
title: '无延迟',
|
||||||
|
info: '',
|
||||||
|
effect: {
|
||||||
|
fetch: '',
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
value: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'checkbox',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'row',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'request',
|
||||||
|
title: '发送内容',
|
||||||
|
info: '',
|
||||||
|
props: {
|
||||||
|
type: 'textarea',
|
||||||
|
},
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'el-divider',
|
||||||
|
props: {
|
||||||
|
contentPosition: 'left',
|
||||||
|
},
|
||||||
|
wrap: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
native: false,
|
||||||
|
children: ['客户端或登录配置'],
|
||||||
|
_fc_drag_tag: 'el-divider',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'FcRow',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
field: 'classname',
|
||||||
|
title: '客户端类名',
|
||||||
|
info: '',
|
||||||
|
effect: {
|
||||||
|
fetch: '',
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
value: 'TCPClientImpl',
|
||||||
|
label: 'TCPClientImpl',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'BinaryTCPClientImpl',
|
||||||
|
label: 'BinaryTCPClientImpl',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'LengthPrefixedBinaryTCPClientImpl',
|
||||||
|
label: 'LengthPrefixedBinaryTCPClientImpl',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'select',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
$required: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'username',
|
||||||
|
title: '用户名',
|
||||||
|
info: '',
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'col',
|
||||||
|
props: {
|
||||||
|
span: 8,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
field: 'password',
|
||||||
|
title: '密码',
|
||||||
|
info: '',
|
||||||
|
props: {
|
||||||
|
type: 'password',
|
||||||
|
},
|
||||||
|
_fc_drag_tag: 'input',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'col',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
_fc_drag_tag: 'row',
|
||||||
|
hidden: false,
|
||||||
|
display: true,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
form: {
|
||||||
|
labelPosition: 'right',
|
||||||
|
size: 'small',
|
||||||
|
labelWidth: '00px',
|
||||||
|
hideRequiredAsterisk: false,
|
||||||
|
showMessage: true,
|
||||||
|
inlineMessage: false,
|
||||||
|
},
|
||||||
|
submitBtn: true,
|
||||||
|
resetBtn: false,
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
show-word-limit
|
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
class="w-[732px]"
|
class="w-[732px]"
|
||||||
:placeholder="t('project.environmental.group.envGroupPlaceholder')"
|
:placeholder="t('project.environmental.group.envGroupPlaceholder')"
|
||||||
|
@ -24,7 +23,13 @@
|
||||||
field="description"
|
field="description"
|
||||||
:label="t('project.environmental.group.desc')"
|
:label="t('project.environmental.group.desc')"
|
||||||
>
|
>
|
||||||
<a-textarea v-model="form.description" auto-size class="w-[732px]" :placeholder="t('common.pleaseInput')" />
|
<a-textarea
|
||||||
|
v-model="form.description"
|
||||||
|
:max-length="1000"
|
||||||
|
auto-size
|
||||||
|
class="w-[732px]"
|
||||||
|
:placeholder="t('common.pleaseInput')"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
<paramsTable
|
<paramsTable
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
show-word-limit
|
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
class="w-[732px]"
|
class="w-[732px]"
|
||||||
:placeholder="t('project.environmental.envNamePlaceholder')"
|
:placeholder="t('project.environmental.envNamePlaceholder')"
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
class="w-[243px]"
|
class="w-[243px]"
|
||||||
:placeholder="t('system.userGroup.pleaseInputUserGroupName')"
|
:placeholder="t('system.userGroup.pleaseInputUserGroupName')"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
:max-length="255"
|
||||||
@press-enter="handleBeforeOk"
|
@press-enter="handleBeforeOk"
|
||||||
@keyup.esc="handleCancel"
|
@keyup.esc="handleCancel"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { defineModel } from 'vue';
|
||||||
import { type FileItem, Message } from '@arco-design/web-vue';
|
import { type FileItem, Message } from '@arco-design/web-vue';
|
||||||
|
|
||||||
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
import MsUpload from '@/components/pure/ms-upload/index.vue';
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" async setup>
|
<script lang="ts" async setup>
|
||||||
|
import { defineModel } from 'vue';
|
||||||
import { TableData } from '@arco-design/web-vue';
|
import { TableData } from '@arco-design/web-vue';
|
||||||
|
|
||||||
import MsButton from '@/components/pure/ms-button/index.vue';
|
import MsButton from '@/components/pure/ms-button/index.vue';
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.hostname"
|
v-model="form.hostname"
|
||||||
class="w-[100%]"
|
class="w-[100%]"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.environmental.http.hostNamePlaceholder')"
|
:placeholder="t('project.environmental.http.hostNamePlaceholder')"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
|
@ -72,6 +73,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.hostname"
|
v-model="form.hostname"
|
||||||
class="w-[100%]"
|
class="w-[100%]"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.environmental.http.pathPlaceholder')"
|
:placeholder="t('project.environmental.http.pathPlaceholder')"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
|
|
|
@ -46,13 +46,7 @@
|
||||||
asterisk-position="end"
|
asterisk-position="end"
|
||||||
:rules="[{ required: true, message: t('project.environmental.database.usernameIsRequire') }]"
|
:rules="[{ required: true, message: t('project.environmental.database.usernameIsRequire') }]"
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input v-model="form.username" :max-length="255" allow-clear :placeholder="t('common.pleaseInput')" />
|
||||||
v-model="form.username"
|
|
||||||
:max-length="255"
|
|
||||||
show-word-limit
|
|
||||||
allow-clear
|
|
||||||
:placeholder="t('common.pleaseInput')"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="password" :label="t('project.environmental.database.password')">
|
<a-form-item field="password" :label="t('project.environmental.database.password')">
|
||||||
<a-input-password
|
<a-input-password
|
||||||
|
@ -102,7 +96,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, ref } from 'vue';
|
import { computed, defineModel, ref } from 'vue';
|
||||||
import { Message } from '@arco-design/web-vue';
|
import { Message } from '@arco-design/web-vue';
|
||||||
|
|
||||||
import { driverOptionFun, validateDatabaseEnv } from '@/api/modules/project-management/envManagement';
|
import { driverOptionFun, validateDatabaseEnv } from '@/api/modules/project-management/envManagement';
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[16px]"
|
class="mb-[16px]"
|
||||||
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-spin class="min-h-[400px] w-full" :loading="loading">
|
<a-spin class="min-h-[400px] w-full" :loading="loading">
|
||||||
<MsTree
|
<MsTree
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-if="props.fieldConfig?.isTextArea"
|
v-if="props.fieldConfig?.isTextArea"
|
||||||
v-model:model-value="form.field"
|
v-model:model-value="form.field"
|
||||||
:max-length="props.fieldConfig?.maxLength"
|
:max-length="props.fieldConfig?.maxLength || 1000"
|
||||||
:auto-size="{ maxRows: 4 }"
|
:auto-size="{ maxRows: 4 }"
|
||||||
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
:placeholder="props.fieldConfig?.placeholder || t('project.fileManagement.namePlaceholder')"
|
||||||
class="w-[245px]"
|
class="w-[245px]"
|
||||||
|
|
|
@ -232,7 +232,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="storageForm.branch"
|
v-model:model-value="storageForm.branch"
|
||||||
:placeholder="t('project.fileManagement.gitBranchPlaceholder')"
|
:placeholder="t('project.fileManagement.gitBranchPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
|
@ -245,7 +245,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="storageForm.path"
|
v-model:model-value="storageForm.path"
|
||||||
:placeholder="t('project.fileManagement.gitFilePathPlaceholder')"
|
:placeholder="t('project.fileManagement.gitFilePathPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('project.fileManagement.gitFilePathSub')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('project.fileManagement.gitFilePathSub')" :show-fill-icon="false" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
:placeholder="t('project.fileManagement.folderSearchPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
class="mb-[8px]"
|
class="mb-[8px]"
|
||||||
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-spin class="h-full w-full" :loading="loading">
|
<a-spin class="h-full w-full" :loading="loading">
|
||||||
<MsList
|
<MsList
|
||||||
|
@ -68,7 +69,6 @@
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
:placeholder="t('project.fileManagement.storageNamePlaceholder')"
|
:placeholder="t('project.fileManagement.storageNamePlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
show-word-limit
|
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('project.fileManagement.storagePlatform')" field="platform" asterisk-position="end">
|
<a-form-item :label="t('project.fileManagement.storagePlatform')" field="platform" asterisk-position="end">
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeStorageForm.userName"
|
v-model:model-value="activeStorageForm.userName"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('project.fileManagement.storageUsernamePlaceholder')"
|
:placeholder="t('project.fileManagement.storageUsernamePlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
|
|
@ -133,9 +133,8 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="robotForm.name"
|
v-model:model-value="robotForm.name"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('project.messageManagement.namePlaceholder')"
|
:placeholder="t('project.messageManagement.namePlaceholder')"
|
||||||
show-word-limit
|
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -206,6 +205,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="robotForm.appKey"
|
v-model:model-value="robotForm.appKey"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.messageManagement.appKeyPlaceholder')"
|
:placeholder="t('project.messageManagement.appKeyPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -219,6 +219,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="robotForm.appSecret"
|
v-model:model-value="robotForm.appSecret"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.messageManagement.appSecretPlaceholder')"
|
:placeholder="t('project.messageManagement.appSecretPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -239,6 +240,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="robotForm.webhook"
|
v-model:model-value="robotForm.webhook"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t(
|
t(
|
||||||
robotForm.platform === 'CUSTOM'
|
robotForm.platform === 'CUSTOM'
|
||||||
|
|
|
@ -75,8 +75,7 @@
|
||||||
v-model:model-value="subject"
|
v-model:model-value="subject"
|
||||||
:placeholder="t('project.messageManagement.titlePlaceholder')"
|
:placeholder="t('project.messageManagement.titlePlaceholder')"
|
||||||
:auto-size="{ minRows: 3, maxRows: 3 }"
|
:auto-size="{ minRows: 3, maxRows: 3 }"
|
||||||
:max-length="64"
|
:max-length="1000"
|
||||||
show-word-limit
|
|
||||||
:disabled="saveLoading"
|
:disabled="saveLoading"
|
||||||
@focus="focusTarget = 'subject'"
|
@focus="focusTarget = 'subject'"
|
||||||
/>
|
/>
|
||||||
|
@ -86,9 +85,8 @@
|
||||||
ref="templateInputRef"
|
ref="templateInputRef"
|
||||||
v-model:model-value="template"
|
v-model:model-value="template"
|
||||||
class="h-[calc(100%-156px)]"
|
class="h-[calc(100%-156px)]"
|
||||||
:max-length="500"
|
:max-length="1000"
|
||||||
auto-size
|
auto-size
|
||||||
show-word-limit
|
|
||||||
:disabled="saveLoading"
|
:disabled="saveLoading"
|
||||||
@focus="focusTarget = 'template'"
|
@focus="focusTarget = 'template'"
|
||||||
@blur="focusTarget = null"
|
@blur="focusTarget = null"
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
asterisk-position="end"
|
asterisk-position="end"
|
||||||
:rules="[{ required: true, message: t('project.basicInfo.projectNameTip') }]"
|
:rules="[{ required: true, message: t('project.basicInfo.projectNameTip') }]"
|
||||||
>
|
>
|
||||||
<a-input v-model="form.name" allow-clear :max-length="250" />
|
<a-input v-model="form.name" allow-clear :max-length="255" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="description" :label="t('project.basicInfo.Description')" asterisk-position="end">
|
<a-form-item field="description" :label="t('project.basicInfo.Description')" asterisk-position="end">
|
||||||
<a-textarea v-model="form.description" allow-clear auto-size />
|
<a-textarea v-model="form.description" :max-length="1000" allow-clear auto-size />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div>
|
<div>
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model="searchParams.keyword"
|
v-model="searchParams.keyword"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('project.member.searchMember')"
|
:placeholder="t('project.member.searchMember')"
|
||||||
allow-clear
|
allow-clear
|
||||||
@search="searchHandler"
|
@search="searchHandler"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
export default {
|
export default {
|
||||||
'project.member.addMember': '添加成员',
|
'project.member.addMember': '添加成员',
|
||||||
'project.member.updateMember': '更新成员',
|
'project.member.updateMember': '更新成员',
|
||||||
'project.member.searchMember': '通过名称或邮箱搜索搜索',
|
'project.member.searchMember': '通过名称或邮箱搜索',
|
||||||
'project.member.remove': '移除',
|
'project.member.remove': '移除',
|
||||||
'project.member.edit': '编辑',
|
'project.member.edit': '编辑',
|
||||||
'project.member.add': '添加',
|
'project.member.add': '添加',
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="quickCreateForm.name"
|
v-model:model-value="quickCreateForm.name"
|
||||||
|
:max-length="255"
|
||||||
:placeholder="t('project.projectVersion.versionNamePlaceholder')"
|
:placeholder="t('project.projectVersion.versionNamePlaceholder')"
|
||||||
class="w-[262px]"
|
class="w-[262px]"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -30,14 +30,13 @@
|
||||||
v-model:model-value="templateForm.name"
|
v-model:model-value="templateForm.name"
|
||||||
:placeholder="t('system.orgTemplate.templateNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.templateNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
class="max-w-[732px]"
|
class="max-w-[732px]"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model="templateForm.remark"
|
v-model="templateForm.remark"
|
||||||
:max-length="255"
|
:max-length="1000"
|
||||||
:placeholder="t('system.orgTemplate.resDescription')"
|
:placeholder="t('system.orgTemplate.resDescription')"
|
||||||
:auto-size="{
|
:auto-size="{
|
||||||
maxRows: 1,
|
maxRows: 1,
|
||||||
|
@ -90,7 +89,6 @@
|
||||||
v-model="defectForm.name"
|
v-model="defectForm.name"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
:placeholder="t('system.orgTemplate.defectNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.defectNamePlaceholder')"
|
||||||
show-word-limit
|
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.orgTemplate.defectNameTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.orgTemplate.defectNameTip')" :show-fill-icon="false" />
|
||||||
|
|
|
@ -388,7 +388,9 @@
|
||||||
const getLinkList = async () => {
|
const getLinkList = async () => {
|
||||||
if (lastOrganizationId) {
|
if (lastOrganizationId) {
|
||||||
userGroupOptions.value = await getGlobalUserGroup(lastOrganizationId.value);
|
userGroupOptions.value = await getGlobalUserGroup(lastOrganizationId.value);
|
||||||
projectOptions.value = await getProjectList(lastOrganizationId.value);
|
if (hasAnyPermission(['ORGANIZATION_PROJECT:READ'])) {
|
||||||
|
projectOptions.value = await getProjectList(lastOrganizationId.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
<a-form-item field="description" :label="t('system.organization.description')">
|
<a-form-item field="description" :label="t('system.organization.description')">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model="form.description"
|
v-model="form.description"
|
||||||
|
:max-length="1000"
|
||||||
:placeholder="t('system.organization.descriptionPlaceholder')"
|
:placeholder="t('system.organization.descriptionPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
:auto-size="{ minRows: 1 }"
|
:auto-size="{ minRows: 1 }"
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model="keyword"
|
v-model="keyword"
|
||||||
:placeholder="t('organization.service.searchService')"
|
:placeholder="t('organization.service.searchService')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
allow-clear
|
allow-clear
|
||||||
@search="searchHandler"
|
@search="searchHandler"
|
||||||
@press-enter="searchHandler"
|
@press-enter="searchHandler"
|
||||||
|
|
|
@ -23,15 +23,14 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
show-word-limit
|
:max-length="255"
|
||||||
:max-length="8"
|
|
||||||
:placeholder="t('system.orgTemplate.stateNameDescription')"
|
:placeholder="t('system.orgTemplate.stateNameDescription')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:model-value="form.remark"
|
v-model:model-value="form.remark"
|
||||||
:max-length="250"
|
:max-length="1000"
|
||||||
:placeholder="t('system.config.auth.descPlaceholder')"
|
:placeholder="t('system.config.auth.descPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-textarea>
|
></a-textarea>
|
||||||
|
|
|
@ -24,13 +24,12 @@
|
||||||
v-model:model-value="fieldForm.name"
|
v-model:model-value="fieldForm.name"
|
||||||
:placeholder="t('system.orgTemplate.fieldNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.fieldNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model="fieldForm.remark"
|
v-model="fieldForm.remark"
|
||||||
:max-length="255"
|
:max-length="1000"
|
||||||
:placeholder="t('system.orgTemplate.resDescription')"
|
:placeholder="t('system.orgTemplate.resDescription')"
|
||||||
:auto-size="{
|
:auto-size="{
|
||||||
maxRows: 1,
|
maxRows: 1,
|
||||||
|
|
|
@ -30,14 +30,13 @@
|
||||||
v-model:model-value="templateForm.name"
|
v-model:model-value="templateForm.name"
|
||||||
:placeholder="t('system.orgTemplate.templateNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.templateNamePlaceholder')"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
show-word-limit
|
|
||||||
class="max-w-[732px]"
|
class="max-w-[732px]"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
<a-form-item field="remark" :label="t('system.orgTemplate.description')" asterisk-position="end">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model="templateForm.remark"
|
v-model="templateForm.remark"
|
||||||
:max-length="255"
|
:max-length="1000"
|
||||||
:placeholder="t('system.orgTemplate.resDescription')"
|
:placeholder="t('system.orgTemplate.resDescription')"
|
||||||
:auto-size="{
|
:auto-size="{
|
||||||
maxRows: 1,
|
maxRows: 1,
|
||||||
|
@ -90,7 +89,6 @@
|
||||||
v-model="defectForm.name"
|
v-model="defectForm.name"
|
||||||
:max-length="255"
|
:max-length="255"
|
||||||
:placeholder="t('system.orgTemplate.defectNamePlaceholder')"
|
:placeholder="t('system.orgTemplate.defectNamePlaceholder')"
|
||||||
show-word-limit
|
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.orgTemplate.defectNameTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.orgTemplate.defectNameTip')" :show-fill-icon="false" />
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<template #apiFieldId="{ record }">
|
<template #apiFieldId="{ record }">
|
||||||
<a-input
|
<a-input
|
||||||
v-model="record.apiFieldId"
|
v-model="record.apiFieldId"
|
||||||
|
:max-length="255"
|
||||||
class="min-w-[200px] max-w-[300px]"
|
class="min-w-[200px] max-w-[300px]"
|
||||||
:placeholder="t('system.orgTemplate.apiInputPlaceholder')"
|
:placeholder="t('system.orgTemplate.apiInputPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
|
|
@ -100,6 +100,7 @@
|
||||||
minRows: 3,
|
minRows: 3,
|
||||||
}"
|
}"
|
||||||
:rules="[{ required: true }]"
|
:rules="[{ required: true }]"
|
||||||
|
:max-length="1000"
|
||||||
></a-textarea>
|
></a-textarea>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.name"
|
v-model:model-value="activeAuthForm.name"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.namePlaceholder')"
|
:placeholder="t('system.config.auth.namePlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
<a-form-item :label="t('system.config.auth.desc')" field="description" asterisk-position="end">
|
<a-form-item :label="t('system.config.auth.desc')" field="description" asterisk-position="end">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:model-value="activeAuthForm.description"
|
v-model:model-value="activeAuthForm.description"
|
||||||
:max-length="250"
|
:max-length="1000"
|
||||||
:placeholder="t('system.config.auth.descPlaceholder')"
|
:placeholder="t('system.config.auth.descPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-textarea>
|
></a-textarea>
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.casUrl"
|
v-model:model-value="activeAuthForm.configuration.casUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>' })"
|
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>' })"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/login' })"
|
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/login' })"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<meteresphere-endpoint>/sso/callback/cas/suthld',
|
url: 'http://<meteresphere-endpoint>/sso/callback/cas/suthld',
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.validateUrl"
|
v-model:model-value="activeAuthForm.configuration.validateUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/serviceValidate' })"
|
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/serviceValidate' })"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.authUrl"
|
v-model:model-value="activeAuthForm.configuration.authUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/auth',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/auth',
|
||||||
|
@ -181,7 +181,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.tokenUrl"
|
v-model:model-value="activeAuthForm.configuration.tokenUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/token',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/token',
|
||||||
|
@ -199,7 +199,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.userInfoUrl"
|
v-model:model-value="activeAuthForm.configuration.userInfoUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/userinfo',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/userinfo',
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<metersphere-endpoint>/sso/callback or http://<metersphere-endpoint>/sso/callback/authld',
|
url: 'http://<metersphere-endpoint>/sso/callback or http://<metersphere-endpoint>/sso/callback/authld',
|
||||||
|
@ -235,7 +235,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.clientId"
|
v-model:model-value="activeAuthForm.configuration.clientId"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.clientIdPlaceholder')"
|
:placeholder="t('system.config.auth.clientIdPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -249,7 +249,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.secret"
|
v-model:model-value="activeAuthForm.configuration.secret"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.clientSecretPlaceholder')"
|
:placeholder="t('system.config.auth.clientSecretPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -263,7 +263,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.logoutUrl"
|
v-model:model-value="activeAuthForm.configuration.logoutUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>/auth/realms/<metersphere>/protocol/openid-connect/logout',
|
url: 'http://<keyclock>/auth/realms/<metersphere>/protocol/openid-connect/logout',
|
||||||
|
@ -275,7 +275,7 @@
|
||||||
<a-form-item :label="t('system.config.auth.loginUrl')" field="configuration.loginUrl" asterisk-position="end">
|
<a-form-item :label="t('system.config.auth.loginUrl')" field="configuration.loginUrl" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/login' })"
|
:placeholder="t('system.config.auth.commonUrlPlaceholder', { url: 'http://<casurl>/login' })"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -292,7 +292,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.authUrl"
|
v-model:model-value="activeAuthForm.configuration.authUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/auth',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/auth',
|
||||||
|
@ -310,7 +310,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.tokenUrl"
|
v-model:model-value="activeAuthForm.configuration.tokenUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/token',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/token',
|
||||||
|
@ -328,7 +328,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.userInfoUrl"
|
v-model:model-value="activeAuthForm.configuration.userInfoUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/userinfo',
|
url: 'http://<keyclock>auth/realms/<metersphere>/protocol/openid-connect/userinfo',
|
||||||
|
@ -346,7 +346,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
v-model:model-value="activeAuthForm.configuration.redirectUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<meteresphere-endpoint>/sso/callback/cas/suthld',
|
url: 'http://<meteresphere-endpoint>/sso/callback/cas/suthld',
|
||||||
|
@ -364,7 +364,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.clientId"
|
v-model:model-value="activeAuthForm.configuration.clientId"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.clientIdPlaceholder')"
|
:placeholder="t('system.config.auth.clientIdPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -378,7 +378,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.secret"
|
v-model:model-value="activeAuthForm.configuration.secret"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.clientSecretPlaceholder')"
|
:placeholder="t('system.config.auth.clientSecretPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -392,7 +392,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.mapping"
|
v-model:model-value="activeAuthForm.configuration.mapping"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
placeholder="{'userid':'login','username':'name','email':'email'}"
|
placeholder="{'userid':'login','username':'name','email':'email'}"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -404,7 +404,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.logoutUrl"
|
v-model:model-value="activeAuthForm.configuration.logoutUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
t('system.config.auth.commonUrlPlaceholder', {
|
t('system.config.auth.commonUrlPlaceholder', {
|
||||||
url: 'http://<keyclock>/auth/realms/<metersphere>/protocol/openid-connect/logout',
|
url: 'http://<keyclock>/auth/realms/<metersphere>/protocol/openid-connect/logout',
|
||||||
|
@ -416,7 +416,7 @@
|
||||||
<a-form-item :label="t('system.config.auth.linkRange')" field="configuration.scope" asterisk-position="end">
|
<a-form-item :label="t('system.config.auth.linkRange')" field="configuration.scope" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.scope"
|
v-model:model-value="activeAuthForm.configuration.scope"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.linkRangePlaceholder')"
|
:placeholder="t('system.config.auth.linkRangePlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -424,7 +424,7 @@
|
||||||
<a-form-item :label="t('system.config.auth.loginUrl')" field="configuration.loginUrl" asterisk-position="end">
|
<a-form-item :label="t('system.config.auth.loginUrl')" field="configuration.loginUrl" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
v-model:model-value="activeAuthForm.configuration.loginUrl"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.commonUrlPlaceholder')"
|
:placeholder="t('system.config.auth.commonUrlPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -441,7 +441,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.url"
|
v-model:model-value="activeAuthForm.configuration.url"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.LDAPUrlPlaceholder')"
|
:placeholder="t('system.config.auth.LDAPUrlPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -456,7 +456,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.dn"
|
v-model:model-value="activeAuthForm.configuration.dn"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.DNPlaceholder')"
|
:placeholder="t('system.config.auth.DNPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -470,7 +470,7 @@
|
||||||
>
|
>
|
||||||
<a-input-password
|
<a-input-password
|
||||||
v-model:model-value="activeAuthForm.configuration.password"
|
v-model:model-value="activeAuthForm.configuration.password"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.LDAPPasswordPlaceholder')"
|
:placeholder="t('system.config.auth.LDAPPasswordPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
|
@ -485,7 +485,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.ou"
|
v-model:model-value="activeAuthForm.configuration.ou"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.OUPlaceholder')"
|
:placeholder="t('system.config.auth.OUPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -500,7 +500,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.filter"
|
v-model:model-value="activeAuthForm.configuration.filter"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.userFilterPlaceholder')"
|
:placeholder="t('system.config.auth.userFilterPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -515,7 +515,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="activeAuthForm.configuration.mapping"
|
v-model:model-value="activeAuthForm.configuration.mapping"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.auth.LDAPPropertyMapPlaceholder')"
|
:placeholder="t('system.config.auth.LDAPPropertyMapPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -550,7 +550,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="LDAPForm.username"
|
v-model:model-value="LDAPForm.username"
|
||||||
:placeholder="t('system.config.auth.testLoginNamePlaceholder')"
|
:placeholder="t('system.config.auth.testLoginNamePlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="baseInfoForm.url"
|
v-model:model-value="baseInfoForm.url"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.baseInfo.pageUrlPlaceholder')"
|
:placeholder="t('system.config.baseInfo.pageUrlPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
<a-form-item v-xpack :label="t('system.config.prometheus')" field="prometheusHost" asterisk-position="end">
|
<a-form-item v-xpack :label="t('system.config.prometheus')" field="prometheusHost" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="baseInfoForm.prometheusHost"
|
v-model:model-value="baseInfoForm.prometheusHost"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.baseInfo.prometheusPlaceholder')"
|
:placeholder="t('system.config.baseInfo.prometheusPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="emailConfigForm.host"
|
v-model:model-value="emailConfigForm.host"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.hostPlaceholder')"
|
:placeholder="t('system.config.email.hostPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="emailConfigForm.port"
|
v-model:model-value="emailConfigForm.port"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.portPlaceholder')"
|
:placeholder="t('system.config.email.portPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -152,7 +152,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="emailConfigForm.account"
|
v-model:model-value="emailConfigForm.account"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.accountPlaceholder')"
|
:placeholder="t('system.config.email.accountPlaceholder')"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
@ -161,7 +161,7 @@
|
||||||
<a-form-item :label="t('system.config.email.password')" field="password" asterisk-position="end">
|
<a-form-item :label="t('system.config.email.password')" field="password" asterisk-position="end">
|
||||||
<a-input-password
|
<a-input-password
|
||||||
v-model:model-value="emailConfigForm.password"
|
v-model:model-value="emailConfigForm.password"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.passwordPlaceholder')"
|
:placeholder="t('system.config.email.passwordPlaceholder')"
|
||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
<a-form-item :label="t('system.config.email.from')" field="from" asterisk-position="end">
|
<a-form-item :label="t('system.config.email.from')" field="from" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="emailConfigForm.from"
|
v-model:model-value="emailConfigForm.from"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.fromPlaceholder')"
|
:placeholder="t('system.config.email.fromPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
@ -184,7 +184,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="emailConfigForm.recipient"
|
v-model:model-value="emailConfigForm.recipient"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.config.email.recipientPlaceholder')"
|
:placeholder="t('system.config.email.recipientPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
></a-input>
|
></a-input>
|
||||||
|
|
|
@ -193,7 +193,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="pageConfig.slogan"
|
v-model:model-value="pageConfig.slogan"
|
||||||
:placeholder="t('system.config.page.sloganPlaceholder')"
|
:placeholder="t('system.config.page.sloganPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.config.page.sloganTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.config.page.sloganTip')" :show-fill-icon="false" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -201,7 +201,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="pageConfig.title"
|
v-model:model-value="pageConfig.title"
|
||||||
:placeholder="t('system.config.page.titlePlaceholder')"
|
:placeholder="t('system.config.page.titlePlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.config.page.titleTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.config.page.titleTip')" :show-fill-icon="false" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="pageConfig.platformName"
|
v-model:model-value="pageConfig.platformName"
|
||||||
:placeholder="t('system.config.page.platformNamePlaceholder')"
|
:placeholder="t('system.config.page.platformNamePlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.config.page.platformNameTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.config.page.platformNameTip')" :show-fill-icon="false" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -315,7 +315,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="pageConfig.helpDoc"
|
v-model:model-value="pageConfig.helpDoc"
|
||||||
:placeholder="t('system.config.page.helpDocPlaceholder')"
|
:placeholder="t('system.config.page.helpDocPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub :text="t('system.config.page.helpDocTip')" :show-fill-icon="false" />
|
<MsFormItemSub :text="t('system.config.page.helpDocTip')" :show-fill-icon="false" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
:placeholder="t('system.log.operateNamePlaceholder')"
|
:placeholder="t('system.log.operateNamePlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
|
:max-length="255"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
{{ t('system.log.operateName') }}
|
{{ t('system.log.operateName') }}
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
allow-clear
|
:max-length="255"
|
||||||
:placeholder="t('system.organization.organizationNamePlaceholder')"
|
:placeholder="t('system.organization.organizationNamePlaceholder')"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
:placeholder="t('system.organization.descriptionPlaceholder')"
|
:placeholder="t('system.organization.descriptionPlaceholder')"
|
||||||
:auto-size="{ minRows: 1 }"
|
:auto-size="{ minRows: 1 }"
|
||||||
style="resize: vertical"
|
style="resize: vertical"
|
||||||
|
:max-length="1000"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
:label="t('system.project.name')"
|
:label="t('system.project.name')"
|
||||||
:rules="[{ required: true, message: t('system.project.projectNameRequired') }]"
|
:rules="[{ required: true, message: t('system.project.projectNameRequired') }]"
|
||||||
>
|
>
|
||||||
<a-input v-model="form.name" :placeholder="t('system.project.projectNamePlaceholder')" />
|
<a-input v-model="form.name" :max-length="255" :placeholder="t('system.project.projectNamePlaceholder')" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
required
|
required
|
||||||
|
@ -65,6 +65,7 @@
|
||||||
<a-form-item field="description" :label="t('system.organization.description')">
|
<a-form-item field="description" :label="t('system.organization.description')">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model="form.description"
|
v-model="form.description"
|
||||||
|
:max-length="1000"
|
||||||
:placeholder="t('system.organization.descriptionPlaceholder')"
|
:placeholder="t('system.organization.descriptionPlaceholder')"
|
||||||
allow-clear
|
allow-clear
|
||||||
:auto-size="{ minRows: 1 }"
|
:auto-size="{ minRows: 1 }"
|
||||||
|
|
|
@ -9,13 +9,14 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="5" :offset="9">
|
<a-col :span="5" :offset="9">
|
||||||
<a-select v-model="searchKeys.scene" @change="searchHandler">
|
<a-select v-model="searchKeys.scene" @change="searchHandler">
|
||||||
|
<a-option value="">{{ t('system.plugin.all') }}</a-option>
|
||||||
<a-option v-for="item of sceneList" :key="item.value" :value="item.value">{{ t(item.label) }}</a-option>
|
<a-option v-for="item of sceneList" :key="item.value" :value="item.value">{{ t(item.label) }}</a-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="5">
|
<a-col :span="5">
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model="searchKeys.name"
|
v-model="searchKeys.name"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.plugin.searchPlugin')"
|
:placeholder="t('system.plugin.searchPlugin')"
|
||||||
allow-clear
|
allow-clear
|
||||||
@search="searchHandler"
|
@search="searchHandler"
|
||||||
|
@ -70,11 +71,19 @@
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
<a-table-column :title="t('system.plugin.tableColumnsOrg')" :width="300">
|
<a-table-column :title="t('system.plugin.tableColumnsOrg')" :width="300">
|
||||||
<template #cell="{ record }">
|
<template #cell="{ record }">
|
||||||
<MsTagGroup :tag-list="record.organizations || []" type="primary" theme="outline" />
|
<MsTagGroup
|
||||||
|
v-if="(record.organizations || []).length"
|
||||||
|
:tag-list="record.organizations || []"
|
||||||
|
type="primary"
|
||||||
|
theme="outline"
|
||||||
|
/>
|
||||||
|
<MsTag v-else type="primary" theme="outline">
|
||||||
|
{{ t('system.plugin.allOrganize') }}
|
||||||
|
</MsTag>
|
||||||
</template>
|
</template>
|
||||||
</a-table-column>
|
</a-table-column>
|
||||||
<a-table-column
|
<a-table-column
|
||||||
:title="t('system.plugin.tableColumnsDescription')"
|
:title="t('system.plugin.tableColumnsJar')"
|
||||||
:ellipsis="true"
|
:ellipsis="true"
|
||||||
:tooltip="true"
|
:tooltip="true"
|
||||||
data-index="fileName"
|
data-index="fileName"
|
||||||
|
@ -145,6 +154,14 @@
|
||||||
<icon-down class="text-[rgb(var(--primary-6))]" :style="{ 'font-size': '12px' }" />
|
<icon-down class="text-[rgb(var(--primary-6))]" :style="{ 'font-size': '12px' }" />
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template #empty>
|
||||||
|
<div class="flex w-full items-center justify-center p-[8px] text-[var(--color-text-4)]">
|
||||||
|
{{ t('system.plugin.tableNoData') }}
|
||||||
|
<MsButton v-permission="['SYSTEM_PLUGIN:READ+ADD']" class="ml-[8px]" @click="uploadPlugin">{{
|
||||||
|
t('system.plugin.uploadPlugin')
|
||||||
|
}}</MsButton>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="ms-footerNum"
|
<div class="ms-footerNum"
|
||||||
|
@ -180,6 +197,7 @@
|
||||||
import MsButton from '@/components/pure/ms-button/index.vue';
|
import MsButton from '@/components/pure/ms-button/index.vue';
|
||||||
import MsTableMoreAction from '@/components/pure/ms-table-more-action/index.vue';
|
import MsTableMoreAction from '@/components/pure/ms-table-more-action/index.vue';
|
||||||
import type { ActionsItem } from '@/components/pure/ms-table-more-action/types';
|
import type { ActionsItem } from '@/components/pure/ms-table-more-action/types';
|
||||||
|
import MsTag from '@/components/pure/ms-tag/ms-tag.vue';
|
||||||
import MsTagGroup from '@/components/pure/ms-tag/ms-tag-group.vue';
|
import MsTagGroup from '@/components/pure/ms-tag/ms-tag-group.vue';
|
||||||
import scriptDetailDrawer from './scriptDetailDrawer.vue';
|
import scriptDetailDrawer from './scriptDetailDrawer.vue';
|
||||||
import TableExpand from './tableExpand.vue';
|
import TableExpand from './tableExpand.vue';
|
||||||
|
@ -225,10 +243,6 @@
|
||||||
const detailYaml = ref('');
|
const detailYaml = ref('');
|
||||||
const { openModal } = useModal();
|
const { openModal } = useModal();
|
||||||
const sceneList = ref([
|
const sceneList = ref([
|
||||||
{
|
|
||||||
label: 'system.plugin.all',
|
|
||||||
value: '',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: 'system.plugin.interfaceTest',
|
label: 'system.plugin.interfaceTest',
|
||||||
value: 'API_PROTOCOL',
|
value: 'API_PROTOCOL',
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
:placeholder="t('system.plugin.defaultJarNameTip')"
|
:placeholder="t('system.plugin.defaultJarNameTip')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
allow-clear
|
allow-clear
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -40,7 +40,12 @@
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="description" :label="t('system.plugin.description')" asterisk-position="end">
|
<a-form-item field="description" :label="t('system.plugin.description')" asterisk-position="end">
|
||||||
<a-textarea v-model="form.description" :placeholder="t('system.plugin.pluginDescription')" allow-clear />
|
<a-textarea
|
||||||
|
v-model="form.description"
|
||||||
|
:max-length="1000"
|
||||||
|
:placeholder="t('system.plugin.pluginDescription')"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,16 +7,21 @@
|
||||||
<a-form-item field="pluginName" :label="t('system.plugin.name')" asterisk-position="end">
|
<a-form-item field="pluginName" :label="t('system.plugin.name')" asterisk-position="end">
|
||||||
<a-input
|
<a-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
:placeholder="t('system.plugin.defaultJarNameTip')"
|
:placeholder="t('system.plugin.defaultJarNameTip')"
|
||||||
allow-clear
|
allow-clear
|
||||||
/>
|
/>
|
||||||
<span class="absolute right-0 top-1 flex items-center">
|
<span class="absolute right-0 top-1 flex items-center">
|
||||||
<span class="float-left text-[rgb(var(--primary-5))]">{{ t('system.plugin.getPlugin') }}</span>
|
<span class="float-left text-[rgb(var(--primary-5))]">{{ t('system.plugin.getPlugin') }}</span>
|
||||||
<a-tooltip :content="t('system.plugin.infoTip')" position="bottom">
|
<a-tooltip position="bottom">
|
||||||
<span class="float-right ml-1 mt-[2px]">
|
<span class="float-right ml-1 mt-[2px]">
|
||||||
<IconQuestionCircle class="h-[16px] w-[16px] text-[--color-text-4]" />
|
<IconQuestionCircle
|
||||||
|
class="h-[16px] w-[16px] text-[--color-text-4] hover:text-[rgb(var(--primary-5))]"
|
||||||
|
/>
|
||||||
</span>
|
</span>
|
||||||
|
<template #content>
|
||||||
|
<span @click="openGithub">{{ t('system.plugin.infoTip') }}</span>
|
||||||
|
</template>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</span>
|
</span>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -31,7 +36,8 @@
|
||||||
>{{ t('system.plugin.allOrganize') }}
|
>{{ t('system.plugin.allOrganize') }}
|
||||||
<span class="float-right mx-1 mt-[1px]">
|
<span class="float-right mx-1 mt-[1px]">
|
||||||
<a-tooltip :content="t('system.plugin.allOrganizeTip')" position="top">
|
<a-tooltip :content="t('system.plugin.allOrganizeTip')" position="top">
|
||||||
<IconQuestionCircle class="h-[16px] w-[16px] text-[--color-text-4]"
|
<IconQuestionCircle
|
||||||
|
class="h-[16px] w-[16px] text-[--color-text-4] hover:text-[rgb(var(--primary-5))]"
|
||||||
/></a-tooltip> </span
|
/></a-tooltip> </span
|
||||||
></a-radio>
|
></a-radio>
|
||||||
<a-radio :value="false">{{ t('system.plugin.theOrganize') }}</a-radio>
|
<a-radio :value="false">{{ t('system.plugin.theOrganize') }}</a-radio>
|
||||||
|
@ -54,7 +60,12 @@
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item field="describe" :label="t('system.plugin.description')" asterisk-position="end">
|
<a-form-item field="describe" :label="t('system.plugin.description')" asterisk-position="end">
|
||||||
<a-textarea v-model="form.description" :placeholder="t('system.plugin.pluginDescription')" allow-clear />
|
<a-textarea
|
||||||
|
v-model="form.description"
|
||||||
|
:max-length="1000"
|
||||||
|
:placeholder="t('system.plugin.pluginDescription')"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -74,14 +85,15 @@
|
||||||
<div class="flex justify-between">
|
<div class="flex justify-between">
|
||||||
<div class="flex flex-row items-center justify-center">
|
<div class="flex flex-row items-center justify-center">
|
||||||
<a-switch v-model="form.enable" size="small" type="line" />
|
<a-switch v-model="form.enable" size="small" type="line" />
|
||||||
|
<span class="ml-2">{{ t('system.plugin.pluginStatus') }}</span>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #content>
|
<template #content>
|
||||||
<div class="text-sm">{{ t('system.plugin.statusEnableTip') }}</div>
|
<div class="text-sm">{{ t('system.plugin.statusEnableTip') }}</div>
|
||||||
|
<div class="text-sm">{{ t('organization.service.statusDisableTip') }}</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="mx-1 flex h-[32px] items-center">
|
<div class="mx-1 flex h-[32px] items-center">
|
||||||
<span class="mr-1">{{ t('system.plugin.pluginStatus') }}</span>
|
|
||||||
<span class="mt-[2px]"
|
<span class="mt-[2px]"
|
||||||
><IconQuestionCircle class="h-[16px] w-[16px] text-[rgb(var(--primary-5))]"
|
><IconQuestionCircle class="h-[16px] w-[16px] text-[--color-text-4] hover:text-[rgb(var(--primary-5))]"
|
||||||
/></span>
|
/></span>
|
||||||
</div>
|
</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
@ -218,6 +230,10 @@
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
fileName.value = fileList.value[0]?.name as string;
|
fileName.value = fileList.value[0]?.name as string;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function openGithub() {
|
||||||
|
window.open('https://github.com/metersphere');
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -27,6 +27,8 @@ export default {
|
||||||
'system.plugin.defaultJarNameTip': 'The default is the package name',
|
'system.plugin.defaultJarNameTip': 'The default is the package name',
|
||||||
'system.plugin.appOrganize': 'Application Organization',
|
'system.plugin.appOrganize': 'Application Organization',
|
||||||
'system.plugin.description': 'Description',
|
'system.plugin.description': 'Description',
|
||||||
|
'system.plugin.tableColumnsJar': 'jar',
|
||||||
|
'system.plugin.tableNoData': 'No data, please',
|
||||||
'system.plugin.pluginDescription': 'Please describe the plug-in',
|
'system.plugin.pluginDescription': 'Please describe the plug-in',
|
||||||
'system.plugin.supportFormat': 'Only JAR format files are supported and the file size does not exceed 50M',
|
'system.plugin.supportFormat': 'Only JAR format files are supported and the file size does not exceed 50M',
|
||||||
'system.plugin.interfaceTestDescribe': 'Plug-ins for protocol classes recommend choosing an interface test',
|
'system.plugin.interfaceTestDescribe': 'Plug-ins for protocol classes recommend choosing an interface test',
|
||||||
|
|
|
@ -27,6 +27,8 @@ export default {
|
||||||
'system.plugin.defaultJarNameTip': '默认为包名',
|
'system.plugin.defaultJarNameTip': '默认为包名',
|
||||||
'system.plugin.appOrganize': '应用组织',
|
'system.plugin.appOrganize': '应用组织',
|
||||||
'system.plugin.description': '描述',
|
'system.plugin.description': '描述',
|
||||||
|
'system.plugin.tableColumnsJar': 'jar',
|
||||||
|
'system.plugin.tableNoData': '暂无数据,请',
|
||||||
'system.plugin.pluginDescription': '请对该插件进行描述',
|
'system.plugin.pluginDescription': '请对该插件进行描述',
|
||||||
'system.plugin.supportFormat': '只支持JAR格式文件,文件大小不超过50M',
|
'system.plugin.supportFormat': '只支持JAR格式文件,文件大小不超过50M',
|
||||||
'system.plugin.interfaceTestDescribe': '协议类的插件建议选择接口测试',
|
'system.plugin.interfaceTestDescribe': '协议类的插件建议选择接口测试',
|
||||||
|
@ -44,7 +46,7 @@ export default {
|
||||||
'system.plugin.updateTitle': '更新插件({name})',
|
'system.plugin.updateTitle': '更新插件({name})',
|
||||||
'system.plugin.selectOrganizeTip': '请选择组织',
|
'system.plugin.selectOrganizeTip': '请选择组织',
|
||||||
'system.plugin.selectOrganization': '选择组织',
|
'system.plugin.selectOrganization': '选择组织',
|
||||||
'system.plugin.infoTip': '跳转至Github下载插件',
|
'system.plugin.infoTip': '跳转至 GitHub 下载插件',
|
||||||
'system.plugin.getPlugin': '获取开源插件',
|
'system.plugin.getPlugin': '获取开源插件',
|
||||||
'system.plugin.afterSecond': '秒后回到插件列表',
|
'system.plugin.afterSecond': '秒后回到插件列表',
|
||||||
'system.plugin.uploadSuccess': '上传成功!',
|
'system.plugin.uploadSuccess': '上传成功!',
|
||||||
|
@ -61,7 +63,7 @@ export default {
|
||||||
'system.plugin.enablePluginSuccess': '启用成功',
|
'system.plugin.enablePluginSuccess': '启用成功',
|
||||||
'system.plugin.disablePluginContent': '项目无法与该平台集成且该平台默认模版不可用,谨慎操作!',
|
'system.plugin.disablePluginContent': '项目无法与该平台集成且该平台默认模版不可用,谨慎操作!',
|
||||||
'system.plugin.alertDescribe':
|
'system.plugin.alertDescribe':
|
||||||
'MeterSphere V2.10 LTS 版本支持 DevOps、API 导入、请求、项目管理、协议类型的插件,具体支持插件请',
|
'MeterSphere v2.10 LTS 版本支持 DevOps、API 导入、请求、项目管理、协议 类型的插件,具体支持插件请',
|
||||||
'system.plugin.viewTable': '查看表格',
|
'system.plugin.viewTable': '查看表格',
|
||||||
'system.plugin.downAddress': '更多开源插件,请在此下载',
|
'system.plugin.downAddress': '更多开源插件,请在此下载',
|
||||||
'system.plugin.goDownload': '去下载',
|
'system.plugin.goDownload': '去下载',
|
||||||
|
@ -79,7 +81,7 @@ export default {
|
||||||
'system.plugin.uploadCompSource': '企业版',
|
'system.plugin.uploadCompSource': '企业版',
|
||||||
'system.plugin.sizeExceedTip': '文件大小超出限制!',
|
'system.plugin.sizeExceedTip': '文件大小超出限制!',
|
||||||
'system.plugin.showScriptTitle': '查看脚本({name})',
|
'system.plugin.showScriptTitle': '查看脚本({name})',
|
||||||
'system.plugin.all': '全部',
|
'system.plugin.all': '全部应用场景',
|
||||||
'system.plugin.projectManagement': '项目管理',
|
'system.plugin.projectManagement': '项目管理',
|
||||||
'system.plugin.pluginStatus': '插件状态',
|
'system.plugin.pluginStatus': '插件状态',
|
||||||
'system.plugin.databaseDriver': '数据库驱动',
|
'system.plugin.databaseDriver': '数据库驱动',
|
||||||
|
|
|
@ -18,21 +18,21 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.name"
|
v-model:model-value="form.name"
|
||||||
:placeholder="t('system.resourcePool.namePlaceholder')"
|
:placeholder="t('system.resourcePool.namePlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('system.resourcePool.desc')" field="description" class="form-item">
|
<a-form-item :label="t('system.resourcePool.desc')" field="description" class="form-item">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:model-value="form.description"
|
v-model:model-value="form.description"
|
||||||
:placeholder="t('system.resourcePool.descPlaceholder')"
|
:placeholder="t('system.resourcePool.descPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="1000"
|
||||||
></a-textarea>
|
></a-textarea>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('system.resourcePool.serverUrl')" field="serverUrl" class="form-item">
|
<a-form-item :label="t('system.resourcePool.serverUrl')" field="serverUrl" class="form-item">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.serverUrl"
|
v-model:model-value="form.serverUrl"
|
||||||
:placeholder="t('system.resourcePool.rootUrlPlaceholder')"
|
:placeholder="t('system.resourcePool.rootUrlPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('system.resourcePool.orgRange')" field="orgType" class="form-item">
|
<a-form-item :label="t('system.resourcePool.orgRange')" field="orgType" class="form-item">
|
||||||
|
@ -84,14 +84,14 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.loadTestImage"
|
v-model:model-value="form.testResourceDTO.loadTestImage"
|
||||||
:placeholder="t('system.resourcePool.mirrorPlaceholder')"
|
:placeholder="t('system.resourcePool.mirrorPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item :label="t('system.resourcePool.testHeap')" field="testResourceDTO.loadTestHeap" class="form-item">
|
<a-form-item :label="t('system.resourcePool.testHeap')" field="testResourceDTO.loadTestHeap" class="form-item">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.loadTestHeap"
|
v-model:model-value="form.testResourceDTO.loadTestHeap"
|
||||||
:placeholder="t('system.resourcePool.testHeapPlaceholder')"
|
:placeholder="t('system.resourcePool.testHeapPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<MsFormItemSub
|
<MsFormItemSub
|
||||||
:text="t('system.resourcePool.testHeapExample', { heap: defaultHeap })"
|
:text="t('system.resourcePool.testHeapExample', { heap: defaultHeap })"
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.uiGrid"
|
v-model:model-value="form.testResourceDTO.uiGrid"
|
||||||
:placeholder="t('system.resourcePool.uiGridPlaceholder')"
|
:placeholder="t('system.resourcePool.uiGridPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<div class="mt-[4px] text-[12px] leading-[16px] text-[var(--color-text-4)]">
|
<div class="mt-[4px] text-[12px] leading-[16px] text-[var(--color-text-4)]">
|
||||||
{{ t('system.resourcePool.uiGridExample', { grid: defaultGrid }) }}
|
{{ t('system.resourcePool.uiGridExample', { grid: defaultGrid }) }}
|
||||||
|
@ -218,7 +218,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.ip"
|
v-model:model-value="form.testResourceDTO.ip"
|
||||||
:placeholder="t('system.resourcePool.testResourceDTO.ipPlaceholder')"
|
:placeholder="t('system.resourcePool.testResourceDTO.ipPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
></a-input>
|
></a-input>
|
||||||
<div class="mt-[4px] text-[12px] leading-[16px] text-[var(--color-text-4)]">
|
<div class="mt-[4px] text-[12px] leading-[16px] text-[var(--color-text-4)]">
|
||||||
{{ t('system.resourcePool.testResourceDTO.ipSubTip', { ip: '100.0.0.100', domain: 'example.com' }) }}
|
{{ t('system.resourcePool.testResourceDTO.ipSubTip', { ip: '100.0.0.100', domain: 'example.com' }) }}
|
||||||
|
@ -248,7 +248,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.namespace"
|
v-model:model-value="form.testResourceDTO.namespace"
|
||||||
:placeholder="t('system.resourcePool.testResourceDTO.nameSpacesPlaceholder')"
|
:placeholder="t('system.resourcePool.testResourceDTO.nameSpacesPlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
class="mr-[8px] flex-1"
|
class="mr-[8px] flex-1"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-tooltip
|
<a-tooltip
|
||||||
|
@ -273,7 +273,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-model:model-value="form.testResourceDTO.deployName"
|
v-model:model-value="form.testResourceDTO.deployName"
|
||||||
:placeholder="t('system.resourcePool.testResourceDTO.deployNamePlaceholder')"
|
:placeholder="t('system.resourcePool.testResourceDTO.deployNamePlaceholder')"
|
||||||
:max-length="250"
|
:max-length="255"
|
||||||
class="mr-[8px] flex-1"
|
class="mr-[8px] flex-1"
|
||||||
></a-input>
|
></a-input>
|
||||||
<a-tooltip
|
<a-tooltip
|
||||||
|
|
|
@ -2,7 +2,7 @@ export default {
|
||||||
'system.user.createUser': '创建用户',
|
'system.user.createUser': '创建用户',
|
||||||
'system.user.emailInvite': '邮箱邀请',
|
'system.user.emailInvite': '邮箱邀请',
|
||||||
'system.user.importUser': '导入用户',
|
'system.user.importUser': '导入用户',
|
||||||
'system.user.searchUser': '通过名称或邮箱搜索搜索',
|
'system.user.searchUser': '通过名称或邮箱搜索',
|
||||||
'system.user.editUser': '编辑',
|
'system.user.editUser': '编辑',
|
||||||
'system.user.resetPassword': '重置密码',
|
'system.user.resetPassword': '重置密码',
|
||||||
'system.user.disable': '禁用',
|
'system.user.disable': '禁用',
|
||||||
|
|
Loading…
Reference in New Issue