60 lines
1.4 KiB
TypeScript
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,
|
|
}
|
|
}
|