Commit 1ae4c861 authored by 高滢's avatar 高滢

feat(安全教育培训): 弹窗偶尔禁用

parent 3b6eda99
...@@ -5,6 +5,7 @@ enum Api { ...@@ -5,6 +5,7 @@ enum Api {
GetList = '/pro/educationTraining/page', GetList = '/pro/educationTraining/page',
UpdateProject = '/pro/educationTraining/update', UpdateProject = '/pro/educationTraining/update',
DeleteProject = '/pro/educationTraining/del', DeleteProject = '/pro/educationTraining/del',
GetUserList = '/pro/sys/sysUser'
} }
export const getListByPage = (params?: ProjectParams) => export const getListByPage = (params?: ProjectParams) =>
...@@ -18,3 +19,6 @@ export const updateItem = (params?: any) => ...@@ -18,3 +19,6 @@ export const updateItem = (params?: any) =>
export const deleteItem = (params?: any) => export const deleteItem = (params?: any) =>
defHttp.delete<ProjectModel>({ url: Api.DeleteProject, params }); defHttp.delete<ProjectModel>({ url: Api.DeleteProject, params });
export const getUserList = (params?: ProjectParams) =>
defHttp.post<ProjectModel>({ url: Api.GetUserList, data: params });
...@@ -82,7 +82,9 @@ function handleDelete(record: Recordable) { ...@@ -82,7 +82,9 @@ function handleDelete(record: Recordable) {
deleteItem({ id: record.id }); deleteItem({ id: record.id });
reload(); reload();
} }
function handleSuccess() {
reload();
}
function handleCreate() { function handleCreate() {
openDrawer(true, { openDrawer(true, {
isUpdate: false, isUpdate: false,
......
...@@ -37,8 +37,18 @@ ...@@ -37,8 +37,18 @@
if (isUpdate.value) { if (isUpdate.value) {
detailId.value = data.record.id; detailId.value = data.record.id;
getTitle.value = '编辑隐患管理'; getTitle.value = '编辑隐患管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: false,
});
} else { } else {
getTitle.value = '创建隐患管理'; getTitle.value = '创建隐患管理';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: false,
});
} }
if (data.disabled == true) { if (data.disabled == true) {
getTitle.value = '查看隐患管理'; getTitle.value = '查看隐患管理';
......
<template> <template>
<BasicDrawer <BasicDrawer
v-bind="$attrs" v-bind="$attrs"
@register="registerDrawer" @register="registerDrawer"
showFooter showFooter
:title="getTitle" :title="getTitle"
width="700px" width="700px"
@ok="handleSubmit" @ok="handleSubmit"
> >
<BasicForm ref="formElRef" @register="registerForm"> <BasicForm ref="formElRef" @register="registerForm">
<!-- <template #menu="{ model, field }"> </template> --> <!-- <template #menu="{ model, field }"> </template> -->
...@@ -13,66 +13,76 @@ ...@@ -13,66 +13,76 @@
</BasicDrawer> </BasicDrawer>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, unref } from 'vue'; import { ref, unref } from 'vue';
import { BasicForm, useForm, FormActionType } from '@/components/Form'; import { BasicForm, useForm, FormActionType } from '@/components/Form';
import { formSchema } from './data'; import { formSchema } from './data';
import { BasicDrawer, useDrawerInner } from '@/components/Drawer'; import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
import { addItem, updateItem } from '@/api/project/safetyEducation'; import { addItem, updateItem } from '@/api/project/safetyEducation';
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const isUpdate = ref(true); const isUpdate = ref(true);
const detailId = ref(0); const detailId = ref(0);
const formElRef = ref<Nullable<FormActionType>>(null); const formElRef = ref<Nullable<FormActionType>>(null);
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({ const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
labelWidth: 90, labelWidth: 90,
baseColProps: { span: 24 }, baseColProps: { span: 24 },
schemas: formSchema, schemas: formSchema,
showActionButtonGroup: false, showActionButtonGroup: false,
}); });
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
resetFields(); resetFields();
setDrawerProps({ confirmLoading: false }); setDrawerProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
if (isUpdate.value) {
detailId.value = data.record.id;
getTitle.value = '编辑安全教育';
} else {
getTitle.value = '创建安全教育';
}
if (data.disabled == true) {
getTitle.value = '查看安全教育';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
}
if (unref(isUpdate)) {
setFieldsValue({
...data.record,
});
}
});
const getTitle = ref('');
async function handleSubmit() {
try {
const values = await validate();
setDrawerProps({ confirmLoading: true });
if (isUpdate.value) { if (isUpdate.value) {
values.id = detailId.value; detailId.value = data.record.id;
getTitle.value = '编辑安全教育';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: false,
});
} else {
getTitle.value = '创建安全教育';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: false,
});
}
if (data.disabled == true) {
getTitle.value = '查看安全教育';
const formEl = unref(formElRef);
if (!formEl) return;
await formEl.setProps({
disabled: true,
});
} }
// TODO custom api
console.log(values);
let res = isUpdate.value ? await updateItem(values) : await addItem(values);
console.log(res);
closeDrawer(); if (unref(isUpdate)) {
emit('success', res); setFieldsValue({
} finally { ...data.record,
setDrawerProps({ confirmLoading: false }); });
}
});
const getTitle = ref('');
async function handleSubmit() {
try {
const values = await validate();
setDrawerProps({ confirmLoading: true });
if (isUpdate.value) {
values.id = detailId.value;
}
// TODO custom api
console.log(values);
let res = isUpdate.value ? await updateItem(values) : await addItem(values);
console.log(res);
closeDrawer();
emit('success', res);
} finally {
setDrawerProps({ confirmLoading: false });
}
} }
}
</script> </script>
...@@ -88,6 +88,10 @@ function handleCreate() { ...@@ -88,6 +88,10 @@ function handleCreate() {
isUpdate: false, isUpdate: false,
}); });
} }
function handleSuccess() {
reload();
}
</script> </script>
<style scoped lang="less"></style> <style scoped lang="less"></style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment