update 为带有输入框的form添加@submit.prevent,防止回车刷新页面

This commit is contained in:
2026-04-09 15:32:58 +08:00
parent 3a74500ae0
commit 250250c34a
27 changed files with 99 additions and 87 deletions

View File

@@ -5,7 +5,7 @@
:width="600"
@close="handleClose"
>
<el-form label-width="auto">
<el-form label-width="auto" @submit.prevent>
<el-form-item :label="fileData.dataType == 1 ? '文件夹名称' : '文件名称'">
<el-input v-model="fileName" placeholder="请输入" clearable>
<template #append v-if="fileSuffix">{{ fileSuffix }}</template>

View File

@@ -55,7 +55,7 @@
</div>
<Dialog v-model="diaShow" diaTitle="图片设置" :width="400" @close="closeFun">
<div class="content">
<el-form label-width="auto">
<el-form label-width="auto" @submit.prevent>
<el-form-item label="图片key">
<el-input v-model="titleKey" placeholder="请输入" clearable />
</el-form-item>

View File

@@ -31,7 +31,7 @@
</div>
<Dialog v-model="diaShow" diaTitle="表格设置" :width="500" @close="closeFun">
<div class="content">
<el-form label-width="auto">
<el-form label-width="auto" @submit.prevent>
<el-form-item label="表格key">
<el-input v-model="titleKey" placeholder="请输入" clearable />
</el-form-item>

View File

@@ -45,7 +45,7 @@
</div>
<Dialog v-model="diaShow" diaTitle="图片设置" :width="400" @close="closeFun">
<div class="content">
<el-form label-width="auto">
<el-form label-width="auto" @submit.prevent>
<el-form-item label="图片key">
<el-input v-model="titleKey" placeholder="请输入" clearable />
</el-form-item>

View File

@@ -23,7 +23,7 @@
</div>
<Dialog v-model="diaShow" diaTitle="表格设置" :width="500" @close="closeFun">
<div class="content">
<el-form label-width="auto">
<el-form label-width="auto" @submit.prevent>
<el-form-item label="表格key">
<el-input v-model="titleKey" placeholder="请输入" clearable />
</el-form-item>

View File

@@ -9,7 +9,7 @@
:width="500"
>
<template #default>
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80">
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80" @submit.prevent>
<el-form-item :label="$t('知识库.名称')" prop="name">
<el-input v-model="form.name" />
</el-form-item>

View File

@@ -38,7 +38,7 @@
</template>
</Dialog>
<Dialog v-model="nodeFormVisible" diaTitle="新增阶段" :width="500" :height="500" show-footer>
<el-form :model="nodeForm" label-width="100px">
<el-form :model="nodeForm" label-width="100px" @submit.prevent>
<el-form-item label="名称">
<el-input v-model="nodeForm.nodeName" />
</el-form-item>

View File

@@ -14,7 +14,7 @@
:full-height="true"
>
<template v-if="showLeftOptions" #leftOptions>
<el-form v-if="viewType === 'card'" inline class="column-form">
<el-form v-if="viewType === 'card'" inline class="column-form" @submit.prevent>
<el-form-item label="列数:">
<el-input-number v-model="columnCount" :min="1" :max="20" :step="1" />
</el-form-item>

View File

@@ -9,7 +9,7 @@
:width="500"
>
<template #default>
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80">
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80" @submit.prevent>
<el-form-item :label="$t('知识库.名称')" prop="name">
<el-input v-model="form.name" />
</el-form-item>

View File

@@ -52,7 +52,7 @@
</div>
<div class="csv-chart-box">
<div class="csv-operate">
<el-form>
<el-form @submit.prevent>
<el-form-item label="列数">
<el-input-number v-model="columnsNum" :min="1" :max="10" @change="handleChangeFun" />
</el-form-item>

View File

@@ -10,7 +10,7 @@
:zIndex="3000"
>
<div class="form">
<el-form ref="formRef" :model="formData" label-width="auto">
<el-form ref="formRef" :model="formData" label-width="auto" @submit.prevent>
<el-form-item
label="配置名称"
prop="name"

View File

@@ -31,6 +31,7 @@
<el-form
:ref="(el: any) => (selectLevelFormRef[item.name] = el)"
:model="selectLevelFormData"
@submit.prevent
>
<el-form-item
v-for="(item, index) in selectLevelFormData.selectLevelList"

View File

@@ -53,7 +53,7 @@
@closed="closeDialogFun"
>
<template #default>
<el-form :model="editform" label-width="auto">
<el-form :model="editform" label-width="auto" @submit.prevent>
<el-form-item label="用户:" v-if="editType === 'single'">
<el-input readonly class="w160" v-model="editform.userName"></el-input>
</el-form-item>

View File

@@ -61,7 +61,12 @@
<param-setting ref="paramSettingRef" :param="algorithmParamForm" />
<div class="algorithm-select-box" v-if="false">
<div class="algorithm-title">算法选择</div>
<el-form :model="algorithmParamForm" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<el-form
:model="algorithmParamForm"
:label-col="{ span: 8 }"
:wrapper-col="{ span: 16 }"
@submit.prevent
>
<el-form-item label="线性求解">
<el-radio-group
:disabled="props.modelForm.algorithmType !== AlgorithmType.Steady"

View File

@@ -21,6 +21,7 @@
:labelWidth="150"
labelPosition="right"
v-loading="isLoading"
@submit.prevent
>
<el-form-item label="求解器类型:">
<el-radio-group v-model="formData.hpcGroup" @change="hpcGroupChangeFun">

View File

@@ -4,7 +4,7 @@
<div class="field-box">
<div class="right-scrollbar">
<!-- 组件属性 -->
<el-form v-show="currentTab === 'field' && showField" label-width="90px">
<el-form v-show="currentTab === 'field' && showField" label-width="90px" @submit.prevent>
<!-- <el-form-item v-if="activeData.changeTag" label="组件类型">
<el-select
v-model="activeData.tagIcon"

View File

@@ -1,7 +1,7 @@
<template>
<Dialog v-model="visible" show-footer diaTitle="新增参数库" :width="400" @close="closeFun">
<template #default>
<el-form :model="formData" labelWidth="auto">
<el-form :model="formData" labelWidth="auto" @submit.prevent>
<el-form-item label="参数库名称" prop="parameterLibraryName">
<el-input v-model="formData.parameterLibraryName"></el-input>
</el-form-item>

View File

@@ -1,7 +1,7 @@
<template>
<Dialog v-model="visible" show-footer diaTitle="新增参数类型" :width="400" @close="closeFun">
<template #default>
<el-form :model="formData" labelWidth="auto">
<el-form :model="formData" labelWidth="auto" @submit.prevent>
<el-form-item label="参数库名称" prop="parameterLibraryName">
<el-input v-model="formData.parameterLibraryName" disabled></el-input>
</el-form-item>

View File

@@ -1,7 +1,7 @@
<template>
<Dialog v-model="visible" diaTitle="编辑名称" :width="350" @close="closeFun">
<template #default>
<el-form :model="formData" labelWidth="auto">
<el-form :model="formData" labelWidth="auto" @submit.prevent>
<el-form-item label="名称" prop="modifyFileName">
<el-input v-model="formData.modifyFileName" clearable></el-input>
</el-form-item>

View File

@@ -9,7 +9,7 @@
@show="onShowFun"
>
<template #default>
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80">
<el-form ref="formRef" :rules="rules" :model="form" labelWidth="80" @submit.prevent>
<el-form-item :label="$t('知识库.名称')" prop="name">
<el-input v-model="form.name" />
</el-form-item>

View File

@@ -9,7 +9,7 @@
:confirm-closable="false"
>
<template #default>
<el-form :model="form" :rules="rules" ref='formRef' labelWidth="auto">
<el-form :model="form" :rules="rules" ref="formRef" labelWidth="auto" @submit.prevent>
<el-form-item :label="$t('知识库.名称')" prop="fileList">
<el-upload
v-model:file-list="form.fileList"
@@ -29,16 +29,9 @@
<el-input v-model="form.dirName" disabled />
</el-form-item>
<el-form-item :label="$t('知识库.所属项目')" prop="projectId">
<node-level-select
v-model="form.projectId"
:nodeType="NODE_TYPE.PROJECT"
/>
<node-level-select v-model="form.projectId" :nodeType="NODE_TYPE.PROJECT" />
</el-form-item>
<el-form-item
:label="
$t('知识库.分析方向')"
prop="analysisDirectionId"
>
<el-form-item :label="$t('知识库.分析方向')" prop="analysisDirectionId">
<node-level-select
v-model="form.analysisDirectionId"
:pid="form.projectId"
@@ -49,7 +42,7 @@
<el-input v-model="form.remarks" />
</el-form-item>
<el-form-item :label="$t('工况库.评审人')" prop="userId">
<el-select multiple v-model="form.userId" :options="userList"/>
<el-select multiple v-model="form.userId" :options="userList" />
</el-form-item>
</el-form>
</template>
@@ -73,8 +66,8 @@ const { t } = useI18n();
interface Props {
modelValue: boolean;
detail: any,
folder:any,
detail: any;
folder: any;
}
const props = withDefaults(defineProps<Props>(), {
@@ -94,16 +87,16 @@ const userList = [
];
interface RuleForm {
file: File | null
fileList: any[] | null
fileName: string | null
fileSize?: string | null
dirName: string | null
projectId: string | null
analysisDirectionId: string | null
remarks: string | null
userId: string | null
userList: Array<any> | null
file: File | null;
fileList: any[] | null;
fileName: string | null;
fileSize?: string | null;
dirName: string | null;
projectId: string | null;
analysisDirectionId: string | null;
remarks: string | null;
userId: string | null;
userList: Array<any> | null;
}
const formRef = ref<FormInstance>();
const uploadRef = ref();
@@ -121,11 +114,9 @@ const form = ref<RuleForm>({
});
const rules = reactive<FormRules<any>>({
fileList: [
{ required: true, message: t('知识库.请选择文件'), trigger: 'change' },
],
fileList: [{ required: true, message: t('知识库.请选择文件'), trigger: 'change' }],
});
const onUploadChangeFun: UploadProps['onChange'] = (uploadFile:any, uploadFiles:any[]) => {
const onUploadChangeFun: UploadProps['onChange'] = (uploadFile: any, uploadFiles: any[]) => {
form.value.fileList = uploadFiles;
form.value.file = uploadFile.raw || uploadFile; // 用于上传
};
@@ -135,15 +126,16 @@ const onShowFun = () => {
if (props.detail) {
Object.assign(form.value, props.detail);
if (props.detail.originalName) {
form.value.fileList = [{
name: props.detail.originalName,
status: 'success',
}];
form.value.fileList = [
{
name: props.detail.originalName,
status: 'success',
},
];
}
}
form.value.dirName = props.folder.originalName;
});
};
const resetFun = () => {
if (!formRef.value) {
@@ -163,13 +155,10 @@ const onConfirmFun = async () => {
}
});
};
onMounted(async () => {
});
onMounted(async () => {});
</script>
<style lang="scss" scoped>
.upload {
width: 100%;
}
</style>

View File

@@ -26,7 +26,7 @@
show-footer
>
<div class="content">
<el-form :model="formData" labelPosition="right" labelWidth="100">
<el-form :model="formData" labelPosition="right" labelWidth="100" @submit.prevent>
<el-form-item label="物理量" props="physical">
<el-input v-model="formData.physical" :disabled="isEditDialog"></el-input>
</el-form-item>

View File

@@ -11,7 +11,13 @@
>
<template #default>
<div class="form">
<el-form ref="dictFormRef" :model="formData" label-width="auto" :rules="rules">
<el-form
ref="dictFormRef"
:model="formData"
label-width="auto"
:rules="rules"
@submit.prevent
>
<el-form-item label="字典名称" prop="dictName">
<el-input
v-model="formData.dictName"

View File

@@ -14,11 +14,13 @@
:nodata="disciplineNodata"
@update="disciplineConfidenceUpdate"
>
<!-- <template #actionSlot>
<downloadAction
@download="(command) => downloadFun(command, 'disciplineConfidenceChart')"
/>
</template> -->
<template #actionSlot>
<el-tooltip content="导出excel" placement="top">
<el-icon class="common-icon-style" @click="downloadAction('discipline')"
><Download
/></el-icon>
</el-tooltip>
</template>
<template #extraFilters>
<el-form label-position="left">
<el-form-item label="模式">
@@ -44,11 +46,13 @@
:nodata="machineNodata"
@update="queryMachineConfidenceFun"
>
<!-- <template #actionSlot>
<downloadAction
@download="(command) => downloadFun(command, 'machineConfidenceChart')"
/>
</template> -->
<template #actionSlot>
<el-tooltip content="导出excel" placement="top">
<el-icon class="common-icon-style" @click="downloadAction('machine')"
><Download
/></el-icon>
</el-tooltip>
</template>
<template #extraFilters>
<el-form label-position="left">
<el-form-item label="地图库">
@@ -112,22 +116,10 @@ import {
statisticDisciplineConfidenceTrendApi,
statisticTaskPoolConfidenceApi,
} from '@/api/task/taskpool';
import downloadAction from './common/download.vue';
import { exportToImage } from '@/utils/exportPdf';
import dayjs from 'dayjs';
const downloadFun = async (command: string | number | object, id: string) => {
if (command === 'pic') {
const element = document.getElementById(id + '_pic'); // 根据id获取对应的DOM元素
if (element) {
const baseName = id === 'disciplineConfidenceChart' ? '学科准确度' : '机型准确度';
const timestamp = dayjs().format('YYYYMMDD_HHmmss');
const picName = `${baseName}_${timestamp}`;
await exportToImage(element, picName);
}
} else if (command === 'excel') {
// 导出excel的逻辑
}
const downloadAction = (type: string) => {
const params = type === 'discipline' ? disciplineParams.value : machineParams.value;
console.log('下载参数:', params);
};
// #region学科准确度
@@ -136,6 +128,7 @@ const disciplineConfidenceOption = ref<any>();
const disciplineExtraFilters = ref({
mode: 'effective',
});
const disciplineParams = ref();
const disciplineNodata = ref(false);
const disciplineConfidenceUpdate = async (data: any) => {
const params = {
@@ -143,6 +136,7 @@ const disciplineConfidenceUpdate = async (data: any) => {
bTotal: disciplineExtraFilters.value.mode === 'all',
filterDisciplines: data.discipline ? data.discipline.split(',') : [],
};
disciplineParams.value = params;
disciplineLoading.value = true;
try {
const res: any = await statisticTaskPoolConfidenceApi(params);
@@ -172,7 +166,7 @@ const disciplineConfidenceUpdate = async (data: any) => {
disciplineNodata.value = true;
disciplineLoading.value = false;
}
} catch (e) {
} catch {
disciplineNodata.value = true;
} finally {
disciplineLoading.value = false;
@@ -188,6 +182,7 @@ const machineExtraFilters = ref({
const machineLoading = ref(false);
const machineConfidenceOption = ref<any>();
const machineNodata = ref(false);
const machineParams = ref();
const queryMachineConfidenceFun = async (data: any) => {
const params = {
type: 2,
@@ -197,6 +192,7 @@ const queryMachineConfidenceFun = async (data: any) => {
? machineExtraFilters.value.workspacePoolName.split(',')
: [],
};
machineParams.value = params;
machineLoading.value = true;
try {
const res: any = await statisticTaskPoolConfidenceApi(params);
@@ -224,7 +220,7 @@ const queryMachineConfidenceFun = async (data: any) => {
} else {
machineNodata.value = true;
}
} catch (e) {
} catch {
machineNodata.value = true;
} finally {
machineLoading.value = false;
@@ -285,7 +281,7 @@ const queryTrendFun = async () => {
trendChartNodata.value = true;
}
}
} catch (e) {
} catch {
trendChartNodata.value = true;
} finally {
trendLoading.value = false;
@@ -350,3 +346,11 @@ onMounted(() => {
}
}
</style>
<style lang="scss" scoped>
.common-icon-style {
margin-left: 5px;
font-size: 18px;
cursor: pointer;
color: var(--el-color-primary);
}
</style>

View File

@@ -9,7 +9,7 @@
>
<div class="report-page">
<div class="form-box">
<el-form :model="reportFormData" inline>
<el-form :model="reportFormData" inline @submit.prevent>
<el-form-item label="报告名称:">
<el-input class="w180" v-model="reportFormData.reportName"></el-input>
</el-form-item>

View File

@@ -11,7 +11,7 @@
<div class="param-page">
<BaseTable ref="paramTableRef" tableName="PARAMETER_LIST" hidePagination>
<template #leftOptions>
<el-form inline :model="paramFormData">
<el-form inline :model="paramFormData" @submit.prevent>
<el-form-item label="参数库名称:">
<el-select
class="m150"

View File

@@ -41,7 +41,13 @@
@close="closeSendFun"
show-footer
>
<el-form ref="sendFormRef" :rules="sendFormRules" :model="sendForm" label-width="auto">
<el-form
ref="sendFormRef"
:rules="sendFormRules"
:model="sendForm"
label-width="auto"
@submit.prevent
>
<el-form-item label="上层节点:" prop="insertIndex">
<el-tree-select
ref="taskTreeRef"