✨ feat(mes): 优化删除按钮操作及表单数据处理逻辑
parent
5856838c73
commit
fe6e80271d
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue