diff --git a/src/views/infra/apiAccessLog/ApiAccessLogModel.vue b/src/views/infra/apiAccessLog/ApiAccessLogModel.vue
new file mode 100644
index 000000000..f9d4e441b
--- /dev/null
+++ b/src/views/infra/apiAccessLog/ApiAccessLogModel.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+import { ref, computed, unref } from 'vue'
+import { BasicModal, useModalInner } from '@/components/Modal'
+import { BasicForm, useForm } from '@/components/Form'
+import { formSchema } from './ApiAccessLog.data'
+import { createApiAccessLogApi, getApiAccessLogApi, updatePostApi } from '@/api/infra/apiAccessLog'
+
+const emit = defineEmits(['success', 'register'])
+const isUpdate = ref(true)
+const rowId = ref()
+
+const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
+ labelWidth: 100,
+ baseColProps: { span: 24 },
+ schemas: formSchema,
+ showActionButtonGroup: false,
+ actionColOptions: {
+ span: 23
+ }
+})
+
+const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
+ resetFields()
+ setModalProps({ confirmLoading: false })
+ isUpdate.value = !!data?.isUpdate
+
+ if (unref(isUpdate)) {
+ const res = await getApiAccessLogApi(data.record.id)
+ rowId.value = res.id
+ setFieldsValue({
+ ...res
+ })
+ }
+})
+
+const getTitle = computed(() => (!unref(isUpdate) ? '新增API访问日志表' : '编辑API访问日志表'))
+
+async function handleSubmit() {
+ try {
+ const values = await validate()
+ setModalProps({ confirmLoading: true })
+ if (unref(isUpdate)) {
+ await updateApiAccessLogApi(values)
+ } else {
+ await createApiAccessLogApi(values)
+ }
+ closeModal()
+ emit('success')
+ } finally {
+ setModalProps({ confirmLoading: false })
+ }
+}
+