feat: 添加多语言可以追加

This commit is contained in:
bunny 2025-05-07 22:16:36 +08:00
parent e3726755ef
commit a47ff8d3e1
3 changed files with 12 additions and 8 deletions

View File

@ -8,8 +8,7 @@ import { usePublicHooks } from '@/views/hooks';
const props = withDefaults(defineProps<FormProps>(), { const props = withDefaults(defineProps<FormProps>(), {
formInline: () => ({ formInline: () => ({
// //
email: undefined, email: '',
emailTemplate: undefined,
// //
password: undefined, password: undefined,
// Host // Host
@ -18,6 +17,7 @@ const props = withDefaults(defineProps<FormProps>(), {
port: undefined, port: undefined,
// //
smtpAgreement: undefined, smtpAgreement: undefined,
openSSL: false,
// //
isDefault: false, isDefault: false,
}), }),

View File

@ -11,6 +11,7 @@ interface Props {
type: string; type: string;
file: any; file: any;
fileType: string; fileType: string;
isAppend: boolean;
}; };
} }
@ -36,6 +37,7 @@ const props = withDefaults(defineProps<Props>(), {
type: '', type: '',
file: undefined, file: undefined,
fileType: '', fileType: '',
isAppend: true,
}), }),
}); });
@ -63,6 +65,10 @@ defineExpose({ formRef });
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('isAppend')" prop="isAppend">
<el-switch v-model="form.isAppend" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" />
</el-form-item>
<el-form-item :label="$t('files')" prop="file"> <el-form-item :label="$t('files')" prop="file">
<el-upload ref="uploadRef" v-model:file-list="form.file" :autoUpload="false" :limit="1" :on-exceed="handleExceed" class="w-full mt-2" drag> <el-upload ref="uploadRef" v-model:file-list="form.file" :autoUpload="false" :limit="1" :on-exceed="handleExceed" class="w-full mt-2" drag>
<el-icon class="el-icon--upload"> <el-icon class="el-icon--upload">
@ -75,6 +81,6 @@ defineExpose({ formRef });
</el-form-item> </el-form-item>
<!-- 更新提示 --> <!-- 更新提示 -->
<el-text type="danger">{{ $t('update_tip') }}</el-text> <el-text type="danger">{{ $t('update_i18n_tip') }}</el-text>
</el-form> </el-form>
</template> </template>

View File

@ -23,18 +23,17 @@ export const downloadI18nSetting = (type: string) => {
i18nStore.downloadI18nFile({ type }); i18nStore.downloadI18nFile({ type });
}; };
/* 下载多语言配置 */ /* 上传多语言配置 */
export const updateI18nSetting = (fileType: string) => { export const updateI18nSetting = (fileType: string) => {
const uploadFormRef = ref(); const uploadFormRef = ref();
addDialog({ addDialog({
title: $t('update_multilingual'), title: $t('update_multilingual'),
draggable: true, draggable: true,
fullscreenIcon: true, fullscreenIcon: true,
closeOnClickModal: false, closeOnClickModal: false,
props: { form: { type: undefined, file: undefined, fileType } }, props: { form: { type: undefined, file: undefined, fileType, isAppend: true } },
contentRenderer: () => h(I18NUploadDialog, { ref: uploadFormRef, form: { type: '', file: undefined, fileType } }), contentRenderer: () => h(I18NUploadDialog, { ref: uploadFormRef, form: { type: '', file: undefined, fileType, isAppend: true } }),
beforeSure: async (done, { options }) => { beforeSure: async (done, { options }) => {
uploadFormRef.value.formRef.validate(async (valid: any) => { uploadFormRef.value.formRef.validate(async (valid: any) => {
if (!valid) return; if (!valid) return;
@ -51,7 +50,6 @@ export const updateI18nSetting = (fileType: string) => {
export const onAdd = () => { export const onAdd = () => {
addDialog({ addDialog({
title: $t('addMultilingual'), title: $t('addMultilingual'),
props: { formInline: { keyName: '', translation: '', typeName: '' } }, props: { formInline: { keyName: '', translation: '', typeName: '' } },
draggable: true, draggable: true,
fullscreenIcon: true, fullscreenIcon: true,