fix: 修复表单输入框的清除功能逻辑

在多个编辑页面中,修正了输入框的清除功能逻辑,使其仅在新建记录时可清除。同时,在物料编辑页面中添加了输入框的变化事件处理函数。
This commit is contained in:
user 2025-03-30 23:22:39 +08:00
parent fac90887ab
commit 1a7b6c3f78
8 changed files with 22 additions and 10 deletions

View File

@ -23,7 +23,7 @@
<vxe-form :data="menu" custom-layout class="vxe-form-group" title-align="left" title-width="90" :rules="formRules" ref="menuForm">
<vxe-form-item field="number" :title="$t('jewpmsApp.menu.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!menu.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!menu.id" data-cy="number" :clearable="!menu.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.menu.name')" :item-render="{}">

View File

@ -31,7 +31,7 @@
>
<vxe-form-item field="number" :title="t$('jewpmsApp.company.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!company.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!company.id" data-cy="number" :clearable="!company.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="t$('jewpmsApp.company.name')" :item-render="{}">

View File

@ -23,7 +23,7 @@
<vxe-form :data="depart" custom-layout class="vxe-form-group" title-align="left" title-width="90" :rules="formRules" ref="departForm">
<vxe-form-item field="number" :title="$t('jewpmsApp.depart.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!depart.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!depart.id" data-cy="number" :clearable="!depart.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.depart.name')" :item-render="{}">

View File

@ -23,7 +23,7 @@
<vxe-form :data="dict" custom-layout class="vxe-form-group" title-align="left" title-width="90" :rules="formRules" ref="dictForm">
<vxe-form-item field="number" :title="$t('jewpmsApp.dict.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!dict.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!dict.id" data-cy="number" :clearable="!dict.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.dict.name')" :item-render="{}">

View File

@ -3,7 +3,7 @@ import { useI18n } from 'vue-i18n';
import { useAlertService } from '@/shared/alert/alert.service';
import { useRoute, useRouter } from 'vue-router';
import axios from 'axios';
import type { VxeFormInstance, VxeSelectInstance } from 'vxe-table';
import type { VxeFormInstance } from 'vxe-table';
export default defineComponent({
name: 'MaterialUpdate',
@ -119,6 +119,16 @@ export default defineComponent({
router.go(-1);
};
const handleChange = (event: any) => {
const dataCy = event.$event.target.getAttribute('data-cy');
console.log(`字段 ${dataCy} 触发,值为:`, event.value);
console.log(event);
};
const handleInput = (event: any) => {
console.log(event);
};
const clearInput = (field: string) => {
if (material.value[field]) {
material.value[field] = null;
@ -161,6 +171,8 @@ export default defineComponent({
formRules,
previousState,
save,
handleChange,
handleInput,
clearInput,
statusDicts,
matGroupDicts,

View File

@ -31,7 +31,7 @@
>
<vxe-form-item field="number" :title="$t('jewpmsApp.material.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!material.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" data-cy="number" disabled />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.material.name')" :item-render="{}">
@ -65,7 +65,7 @@
:item-render="{}"
>
<template #default="{ data }">
<vxe-select v-model="data.matGroup00" filterable clearable data-cy="matGroup00">
<vxe-select v-model="data.matGroup00" filterable clearable data-cy="matGroup00" @change="handleChange">
<vxe-option :value="null" :label="$t('entity.action.select')"></vxe-option>
<vxe-option
v-for="dict in matGroupDicts[0]"
@ -83,7 +83,7 @@
:item-render="{}"
>
<template #default="{ data }">
<vxe-select v-model="data.matGroup01" filterable clearable data-cy="matGroup01">
<vxe-select v-model="data.matGroup01" filterable clearable data-cy="matGroup01" @change="handleChange">
<vxe-option :value="null" :label="$t('entity.action.select')"></vxe-option>
<vxe-option
v-for="dict in matGroupDicts[1]"

View File

@ -23,7 +23,7 @@
<vxe-form :data="region" custom-layout class="vxe-form-group" title-align="left" title-width="90" :rules="formRules" ref="regionForm">
<vxe-form-item field="number" :title="$t('jewpmsApp.region.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!region.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!region.id" data-cy="number" :clearable="!region.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.region.name')" :item-render="{}">

View File

@ -23,7 +23,7 @@
<vxe-form :data="stock" custom-layout class="vxe-form-group" title-align="left" title-width="90" :rules="formRules" ref="stockForm">
<vxe-form-item field="number" :title="$t('jewpmsApp.stock.number')" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.number" type="text" :readonly="!!stock.id" data-cy="number" clearable />
<vxe-input v-model="data.number" type="text" :readonly="!!stock.id" data-cy="number" :clearable="!stock.id" />
</template>
</vxe-form-item>
<vxe-form-item field="name" :title="$t('jewpmsApp.stock.name')" :item-render="{}">