✨ feat(mes): 优化删除按钮操作及表单数据处理逻辑
parent
5856838c73
commit
fe6e80271d
|
|
@ -61,15 +61,13 @@ const props = defineProps<{
|
|||
|
||||
const emit = defineEmits(['success'])
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n()
|
||||
const message = useMessage()
|
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const dialogTitle = ref('') // 弹窗的标题
|
||||
const formLoading = ref(false) // 表单的加载中
|
||||
const formType = ref('') // 表单的类型:create / update
|
||||
const currentLineId = ref<number>() // 当前操作的行 ID
|
||||
const formRef = ref() // 表单 Ref
|
||||
const formData = ref({
|
||||
id: undefined as number | undefined,
|
||||
lineId: undefined as number | undefined,
|
||||
|
|
@ -88,14 +86,15 @@ const formRules = reactive({
|
|||
areaId: [{ required: true, message: '库位不能为空', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '数量不能为空', trigger: 'blur' }]
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 打开弹窗 */
|
||||
const open = async (type: string, lineId: number, itemId?: number, detailId?: number) => {
|
||||
dialogVisible.value = true
|
||||
dialogTitle.value = type === 'create' ? '添加拣货明细' : '编辑拣货明细'
|
||||
formType.value = type
|
||||
currentLineId.value = lineId
|
||||
resetForm()
|
||||
formData.value.lineId = lineId
|
||||
// 修改时,设置数据
|
||||
if (detailId) {
|
||||
formLoading.value = true
|
||||
|
|
@ -108,7 +107,6 @@ const open = async (type: string, lineId: number, itemId?: number, detailId?: nu
|
|||
formData.value.itemId = itemId
|
||||
}
|
||||
}
|
||||
defineExpose({ open })
|
||||
|
||||
/** 提交表单 */
|
||||
const submitForm = async () => {
|
||||
|
|
@ -119,8 +117,7 @@ const submitForm = async () => {
|
|||
try {
|
||||
const data = {
|
||||
...formData.value,
|
||||
returnId: props.returnId,
|
||||
lineId: currentLineId.value
|
||||
returnId: props.returnId
|
||||
} as unknown as WmReturnVendorDetailVO
|
||||
if (formType.value === 'create') {
|
||||
await WmReturnVendorDetailApi.createReturnVendorDetail(data)
|
||||
|
|
@ -131,7 +128,7 @@ const submitForm = async () => {
|
|||
}
|
||||
dialogVisible.value = false
|
||||
// 发送操作成功的事件
|
||||
emit('success', currentLineId.value)
|
||||
emit('success', formData.value.lineId)
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
|
|
@ -152,4 +149,6 @@ const resetForm = () => {
|
|||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<el-table-column label="库位名称" align="center" prop="areaName" min-width="100" />
|
||||
<el-table-column label="数量" align="center" prop="quantity" width="100" />
|
||||
<el-table-column
|
||||
v-if="props.formType === 'stock'"
|
||||
v-if="isStock"
|
||||
label="操作"
|
||||
align="center"
|
||||
width="120"
|
||||
|
|
@ -42,9 +42,10 @@ const props = defineProps<{
|
|||
|
||||
const emit = defineEmits(['edit-detail'])
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n()
|
||||
const message = useMessage()
|
||||
|
||||
const isStock = computed(() => props.formType === 'stock') // 是否为拣货模式
|
||||
const loading = ref(false) // 列表的加载中
|
||||
const list = ref<WmReturnVendorDetailVO[]>([]) // 明细列表
|
||||
|
||||
|
|
@ -57,7 +58,6 @@ const getList = async () => {
|
|||
loading.value = false
|
||||
}
|
||||
}
|
||||
defineExpose({ getList })
|
||||
|
||||
/** 删除拣货明细 */
|
||||
const handleDelete = async (detailId: number) => {
|
||||
|
|
@ -69,8 +69,8 @@ const handleDelete = async (detailId: number) => {
|
|||
} catch {}
|
||||
}
|
||||
|
||||
/** 初始化:延迟加载,展开时才触发 */
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
defineExpose({ getList })
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@
|
|||
保 存
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="(isEditable && formData.status === MesWmReturnVendorStatusEnum.PREPARE) || isSubmit"
|
||||
v-if="isEditable && formData.status === MesWmReturnVendorStatusEnum.PREPARE"
|
||||
@click="handleSubmit"
|
||||
type="warning"
|
||||
:disabled="formLoading"
|
||||
|
|
@ -136,7 +136,6 @@ defineOptions({ name: 'ReturnVendorForm' })
|
|||
const emit = defineEmits(['success'])
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const formLoading = ref(false) // 表单的加载中
|
||||
const formType = ref<string>('create') // 表单的类型:create / update / stock / finish / detail
|
||||
|
|
@ -157,9 +156,9 @@ const dialogTitle = computed(() => {
|
|||
})
|
||||
const formData = ref({
|
||||
id: undefined as number | undefined,
|
||||
status: undefined as number | undefined,
|
||||
code: undefined,
|
||||
name: undefined,
|
||||
status: undefined as number | undefined,
|
||||
purchaseOrderCode: undefined,
|
||||
vendorId: undefined,
|
||||
returnDate: undefined,
|
||||
|
|
@ -189,7 +188,7 @@ const open = async (type: string, id?: number) => {
|
|||
dialogVisible.value = true
|
||||
formType.value = type
|
||||
resetForm()
|
||||
// 修改/提交/拣货/完成/详情时,加载数据
|
||||
// 修改/拣货/完成/详情时,加载数据
|
||||
if (id) {
|
||||
formLoading.value = true
|
||||
try {
|
||||
|
|
@ -202,7 +201,7 @@ const open = async (type: string, id?: number) => {
|
|||
originalFormData.value = JSON.stringify(formData.value)
|
||||
}
|
||||
|
||||
/** 保存表单(create/update 模式) */
|
||||
/** 提交表单(create/update 模式) */
|
||||
const submitForm = async () => {
|
||||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
|
|
@ -291,9 +290,9 @@ const handleFinish = async () => {
|
|||
const resetForm = () => {
|
||||
formData.value = {
|
||||
id: undefined,
|
||||
status: undefined,
|
||||
code: undefined,
|
||||
name: undefined,
|
||||
status: undefined,
|
||||
purchaseOrderCode: undefined,
|
||||
vendorId: undefined,
|
||||
returnDate: undefined,
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ const getList = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
/** 删除 */
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (id: number) => {
|
||||
try {
|
||||
await message.delConfirm()
|
||||
|
|
|
|||
|
|
@ -213,16 +213,6 @@ const openForm = (type: string, id?: number) => {
|
|||
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) => {
|
||||
try {
|
||||
|
|
@ -233,6 +223,16 @@ const handleCancel = async (id: number) => {
|
|||
} 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 () => {
|
||||
try {
|
||||
|
|
@ -246,6 +246,7 @@ const handleExport = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
/** 初始化 */
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue