feat(mes): 优化删除按钮操作及表单数据处理逻辑

pull/871/MERGE
YunaiV 2026-03-29 21:57:26 +08:00
parent 5856838c73
commit fe6e80271d
5 changed files with 30 additions and 31 deletions

View File

@ -61,15 +61,13 @@ const props = defineProps<{
const emit = defineEmits(['success']) const emit = defineEmits(['success'])
const { t } = useI18n() // const { t } = useI18n()
const message = useMessage() // const message = useMessage()
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // const formLoading = ref(false) //
const formType = ref('') // 表单的类型create / update const formType = ref('') // 表单的类型create / update
const currentLineId = ref<number>() // ID
const formRef = ref() // Ref
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
lineId: undefined as number | undefined, lineId: undefined as number | undefined,
@ -88,14 +86,15 @@ const formRules = reactive({
areaId: [{ required: true, message: '库位不能为空', trigger: 'change' }], areaId: [{ required: true, message: '库位不能为空', trigger: 'change' }],
quantity: [{ required: true, message: '数量不能为空', trigger: 'blur' }] quantity: [{ required: true, message: '数量不能为空', trigger: 'blur' }]
}) })
const formRef = ref() // Ref
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (type: string, lineId: number, itemId?: number, detailId?: number) => { const open = async (type: string, lineId: number, itemId?: number, detailId?: number) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = type === 'create' ? '添加拣货明细' : '编辑拣货明细' dialogTitle.value = type === 'create' ? '添加拣货明细' : '编辑拣货明细'
formType.value = type formType.value = type
currentLineId.value = lineId
resetForm() resetForm()
formData.value.lineId = lineId
// //
if (detailId) { if (detailId) {
formLoading.value = true formLoading.value = true
@ -108,7 +107,6 @@ const open = async (type: string, lineId: number, itemId?: number, detailId?: nu
formData.value.itemId = itemId formData.value.itemId = itemId
} }
} }
defineExpose({ open })
/** 提交表单 */ /** 提交表单 */
const submitForm = async () => { const submitForm = async () => {
@ -119,8 +117,7 @@ const submitForm = async () => {
try { try {
const data = { const data = {
...formData.value, ...formData.value,
returnId: props.returnId, returnId: props.returnId
lineId: currentLineId.value
} as unknown as WmReturnVendorDetailVO } as unknown as WmReturnVendorDetailVO
if (formType.value === 'create') { if (formType.value === 'create') {
await WmReturnVendorDetailApi.createReturnVendorDetail(data) await WmReturnVendorDetailApi.createReturnVendorDetail(data)
@ -131,7 +128,7 @@ const submitForm = async () => {
} }
dialogVisible.value = false dialogVisible.value = false
// //
emit('success', currentLineId.value) emit('success', formData.value.lineId)
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
@ -152,4 +149,6 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
defineExpose({ open })
</script> </script>

View File

@ -8,7 +8,7 @@
<el-table-column label="库位名称" align="center" prop="areaName" min-width="100" /> <el-table-column label="库位名称" align="center" prop="areaName" min-width="100" />
<el-table-column label="数量" align="center" prop="quantity" width="100" /> <el-table-column label="数量" align="center" prop="quantity" width="100" />
<el-table-column <el-table-column
v-if="props.formType === 'stock'" v-if="isStock"
label="操作" label="操作"
align="center" align="center"
width="120" width="120"
@ -42,9 +42,10 @@ const props = defineProps<{
const emit = defineEmits(['edit-detail']) const emit = defineEmits(['edit-detail'])
const { t } = useI18n() // const { t } = useI18n()
const message = useMessage() // const message = useMessage()
const isStock = computed(() => props.formType === 'stock') //
const loading = ref(false) // const loading = ref(false) //
const list = ref<WmReturnVendorDetailVO[]>([]) // const list = ref<WmReturnVendorDetailVO[]>([]) //
@ -57,7 +58,6 @@ const getList = async () => {
loading.value = false loading.value = false
} }
} }
defineExpose({ getList })
/** 删除拣货明细 */ /** 删除拣货明细 */
const handleDelete = async (detailId: number) => { const handleDelete = async (detailId: number) => {
@ -69,8 +69,8 @@ const handleDelete = async (detailId: number) => {
} catch {} } catch {}
} }
/** 初始化:延迟加载,展开时才触发 */
onMounted(() => { onMounted(() => {
getList() getList()
}) })
defineExpose({ getList })
</script> </script>

View File

@ -107,7 +107,7 @@
</el-button> </el-button>
<el-button <el-button
v-if="(isEditable && formData.status === MesWmReturnVendorStatusEnum.PREPARE) || isSubmit" v-if="isEditable && formData.status === MesWmReturnVendorStatusEnum.PREPARE"
@click="handleSubmit" @click="handleSubmit"
type="warning" type="warning"
:disabled="formLoading" :disabled="formLoading"
@ -136,7 +136,6 @@ defineOptions({ name: 'ReturnVendorForm' })
const emit = defineEmits(['success']) const emit = defineEmits(['success'])
const message = useMessage() // const message = useMessage() //
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const formLoading = ref(false) // const formLoading = ref(false) //
const formType = ref<string>('create') // 表单的类型create / update / stock / finish / detail const formType = ref<string>('create') // 表单的类型create / update / stock / finish / detail
@ -157,9 +156,9 @@ const dialogTitle = computed(() => {
}) })
const formData = ref({ const formData = ref({
id: undefined as number | undefined, id: undefined as number | undefined,
status: undefined as number | undefined,
code: undefined, code: undefined,
name: undefined, name: undefined,
status: undefined as number | undefined,
purchaseOrderCode: undefined, purchaseOrderCode: undefined,
vendorId: undefined, vendorId: undefined,
returnDate: undefined, returnDate: undefined,
@ -189,7 +188,7 @@ const open = async (type: string, id?: number) => {
dialogVisible.value = true dialogVisible.value = true
formType.value = type formType.value = type
resetForm() resetForm()
// //// // ///
if (id) { if (id) {
formLoading.value = true formLoading.value = true
try { try {
@ -202,7 +201,7 @@ const open = async (type: string, id?: number) => {
originalFormData.value = JSON.stringify(formData.value) originalFormData.value = JSON.stringify(formData.value)
} }
/** 保存表单create/update 模式) */ /** 提交表单create/update 模式) */
const submitForm = async () => { const submitForm = async () => {
// //
await formRef.value.validate() await formRef.value.validate()
@ -291,9 +290,9 @@ const handleFinish = async () => {
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined,
status: undefined,
code: undefined, code: undefined,
name: undefined, name: undefined,
status: undefined,
purchaseOrderCode: undefined, purchaseOrderCode: undefined,
vendorId: undefined, vendorId: undefined,
returnDate: undefined, returnDate: undefined,

View File

@ -159,7 +159,7 @@ const getList = async () => {
} }
} }
/** 删除 */ /** 删除按钮操作 */
const handleDelete = async (id: number) => { const handleDelete = async (id: number) => {
try { try {
await message.delConfirm() await message.delConfirm()

View File

@ -213,16 +213,6 @@ const openForm = (type: string, id?: number) => {
formRef.value.open(type, id) formRef.value.open(type, id)
} }
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
await message.delConfirm()
await WmReturnVendorApi.deleteReturnVendor(id)
message.success(t('common.delSuccess'))
await getList()
} catch {}
}
/** 取消按钮操作 */ /** 取消按钮操作 */
const handleCancel = async (id: number) => { const handleCancel = async (id: number) => {
try { try {
@ -233,6 +223,16 @@ const handleCancel = async (id: number) => {
} catch {} } catch {}
} }
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
await message.delConfirm()
await WmReturnVendorApi.deleteReturnVendor(id)
message.success(t('common.delSuccess'))
await getList()
} catch {}
}
/** 导出按钮操作 */ /** 导出按钮操作 */
const handleExport = async () => { const handleExport = async () => {
try { try {
@ -246,6 +246,7 @@ const handleExport = async () => {
} }
} }
/** 初始化 */
onMounted(() => { onMounted(() => {
getList() getList()
}) })