<template>
|
<el-dialog :title="modalOptions.title" v-model="visible" @close="close" width="30%">
|
<Form ref="formRef"></Form>
|
<template #footer>
|
<el-button type="primary" @click="sendForm" :loading="loading">
|
{{ modalOptions.confirmText }}
|
</el-button>
|
<el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script setup>
|
import { useModal } from "@/hooks/useModal";
|
import { add, update } from "@/api/lavorissce/ledger";
|
import Form from "./Form.vue";
|
import { ElMessage } from "element-plus";
|
const { proxy } = getCurrentInstance()
|
|
defineOptions({
|
name: "收入新增编辑",
|
});
|
|
const emits = defineEmits(["success"]);
|
|
const formRef = ref();
|
const {
|
id,
|
visible,
|
loading,
|
openModal,
|
modalOptions,
|
handleConfirm,
|
closeModal,
|
} = useModal({ title: "劳保台账" });
|
|
const sendForm = () => {
|
proxy.$refs.formRef.$refs.formRef.validate(async valid => {
|
if (valid) {
|
const {code} = id.value
|
? await update({id: id.value, ...formRef.value.form})
|
: await add(formRef.value.form);
|
if (code == 200) {
|
emits("success");
|
ElMessage({message: "操作成功", type: "success"});
|
close();
|
} else {
|
loading.value = false;
|
}
|
}
|
})
|
};
|
|
const close = () => {
|
formRef.value.resetFormAndValidate();
|
closeModal();
|
};
|
|
const loadForm = async (row) => {
|
openModal(row.id);
|
await nextTick();
|
formRef.value.loadForm(row);
|
|
};
|
|
defineExpose({
|
openModal,
|
loadForm,
|
});
|
</script>
|