Files
pj_admin_cloud/src/views/thirdparty/thirdPartyLog/form.vue
T
2025-04-01 18:49:28 +08:00

141 lines
3.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible"
:close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="12" class="mb20">
<el-form-item label="接口名称" prop="apiName">
<el-input v-model="form.apiName" placeholder="请输入接口名称"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="请求参数" prop="requestParameter">
<el-input v-model="form.requestParameter" placeholder="请输入请求参数"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="请求路径" prop="requestUrl">
<el-input v-model="form.requestUrl" placeholder="请输入请求路径"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="状态码" prop="httpStatus">
<el-input v-model="form.httpStatus" placeholder="请输入状态码"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="原始响应" prop="responseBody">
<editor v-if="visible" v-model:get-html="form.responseBody" placeholder="请输入原始响应"></editor>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="错误码(如-1)" prop="errorCode">
<el-input v-model="form.errorCode" placeholder="请输入错误码(如-1)"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="错误描述" prop="errorMsg">
<el-input type="textarea" v-model="form.errorMsg" placeholder="请输入错误描述"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
</span>
</template>
</el-dialog>
</template>
<script setup lang="ts" name="ThirdPartyLogDialog">
import { useDict } from '/src/hooks/dict';
import { useMessage } from "/src/hooks/message";
import { getObj, addObj, putObj } from '/src/api/thirdparty/thirdPartyLog'
import { rule } from '/src/utils/validate';
const emit = defineEmits(['refresh']);
// 定义变量内容
const dataFormRef = ref();
const visible = ref(false)
const loading = ref(false)
// 定义字典
// 提交表单数据
const form = reactive({
id:'',
apiName: '',
deleted: '',
requestUrl: '',
httpStatus: '',
responseBody: '',
errorCode: '',
errorMsg: '',
requestParameter:'',
});
// 定义校验规则
const dataRules = ref({
})
// 打开弹窗
const openDialog = (id: string) => {
visible.value = true
form.id = ''
// 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields();
});
// 获取thirdPartyLog信息
if (id) {
form.id = id
getthirdPartyLogData(id)
}
};
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {});
if (!valid) return false;
try {
loading.value = true;
form.id ? await putObj(form) : await addObj(form);
useMessage().success(form.id ? '修改成功' : '添加成功');
visible.value = false;
emit('refresh');
} catch (err: any) {
useMessage().error(err.msg);
} finally {
loading.value = false;
}
};
// 初始化表单数据
const getthirdPartyLogData = (id: string) => {
// 获取数据
loading.value = true
getObj(id).then((res: any) => {
Object.assign(form, res.data)
}).finally(() => {
loading.value = false
})
};
// 暴露变量
defineExpose({
openDialog
});
</script>