Files
pj_admin_cloud/src/hooks/smProcessFormAction.ts
T
2025-07-31 16:16:21 +08:00

60 lines
1.4 KiB
TypeScript

import { Ref } from "vue"
import { useMessage } from "./message"
export function useSmProcessFormAction() {
// 校验 成功返回true 失败返回false
const formValidate = async (baseFormRef: any, vxeTableRef: any, vxeTableDataLength: number) => {
const valid = await baseFormRef.value.validate().catch(() => {})
if (!valid) return false
if (vxeTableDataLength <= 0) {
useMessage().warning("请选择商品")
return false
}
const $table = vxeTableRef.value
if ($table) {
const errMap = await $table.validate(true)
if (errMap) {
console.log("全量校验失败!")
return false
}
}
return true
}
// 提交数据 成功返回 true 失败返回 false
const submitData = async (baseDataForm: any, vxeTableItems: Ref<any[]>, loading: Ref<boolean>, putObj: any, addObj: any) => {
try {
loading.value = true
const _pa = {
...baseDataForm,
items: vxeTableItems,
}
console.log("提交的数据:", _pa)
const res = baseDataForm.id ? await putObj(_pa) : await addObj(_pa)
if (res.code == 0) {
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
return true
}
useMessage().error(res.msg || baseDataForm.id ? "修改失败" : "添加失败")
return false
} catch (err: any) {
useMessage().error(err.msg)
loading.value = false
return false
} finally {
loading.value = false
}
}
return {
formValidate,
submitData,
}
}