修改模态框对象类型.

This commit is contained in:
lijiahang
2023-09-25 14:36:13 +08:00
parent e1fafbe135
commit 09610b3c82
29 changed files with 1450 additions and 2658 deletions

View File

@@ -36,7 +36,9 @@
label="SSH端口"
:hide-asterisk="true"
label-col-flex="60px">
<a-input-number v-model="formModel.port" placeholder="请输入SSH端口" />
<a-input-number v-model="formModel.port"
placeholder="请输入SSH端口"
hide-button />
</a-form-item>
<!-- 验证方式 -->
<a-form-item field="authType"
@@ -54,7 +56,6 @@
label="主机密码"
:rules="passwordRules"
label-col-flex="60px">
<!-- FIXME -->
<a-input-password v-model="formModel.password"
:disabled="!formModel.useNewPassword && formModel.hasPassword"
placeholder="主机密码" />
@@ -87,7 +88,9 @@
label="连接超时时间"
:hide-asterisk="true"
label-col-flex="86px">
<a-input-number v-model="formModel.connectTimeout" placeholder="请输入连接超时时间">
<a-input-number v-model="formModel.connectTimeout"
placeholder="请输入连接超时时间"
hide-button>
<template #suffix>
ms
</template>
@@ -125,6 +128,10 @@
</a-space>
</div>
</a-spin>
<!-- FIXME -->
{{ formModel }}
<br><br>
{{ content }}
</a-card>
</template>
@@ -159,7 +166,7 @@
});
const formRef = ref();
const formModel = reactive<HostSshConfig & Record<string, any>>({
const formModel = reactive<HostSshConfig>({
username: undefined,
port: undefined,
password: undefined,
@@ -178,7 +185,8 @@
watch(() => props.content, (v: any) => {
config.value.status = v?.status;
config.value.version = v?.version;
resetConfig();
// FIXME
resetConfig(v.config);
});
// 用户名验证
@@ -228,7 +236,9 @@
// 重置配置
const resetConfig = () => {
// FIXME
Object.keys(formModel).forEach(k => {
console.log(k, props.content?.config?.hasOwnProperty(k));
if (props.content?.config?.hasOwnProperty(k)) {
formModel[k] = props.content?.config[k];
}

View File

@@ -52,7 +52,7 @@
</script>
<script lang="ts" setup>
import { reactive, ref } from 'vue';
import { ref } from 'vue';
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
import formRules from '../types/form.rules';
@@ -66,7 +66,7 @@
const title = ref<string>();
const isAddHandle = ref<boolean>(true);
const defaultForm = (): HostUpdateRequest & Record<string, any> => {
const defaultForm = (): HostUpdateRequest => {
return {
id: undefined,
name: undefined,
@@ -77,7 +77,7 @@
};
const formRef = ref();
const formModel = reactive<HostUpdateRequest & Record<string, any>>(defaultForm());
const formModel = ref<HostUpdateRequest>({});
const emits = defineEmits(['added', 'updated']);
@@ -100,11 +100,7 @@
// 渲染表单
const renderForm = (record: any) => {
Object.keys(formModel).forEach(k => {
if (record.hasOwnProperty(k)) {
formModel[k] = record[k];
}
});
formModel.value = Object.assign({}, record);
};
defineExpose({ openAdd, openUpdate });
@@ -120,12 +116,12 @@
}
if (isAddHandle.value) {
// 新增
await createHost(formModel);
await createHost(formModel.value);
Message.success('创建成功');
emits('added');
} else {
// 修改
await updateHost(formModel);
await updateHost(formModel.value);
Message.success('修改成功');
emits('updated');
}

View File

@@ -7,7 +7,10 @@
@reset="fetchTableData">
<!-- id -->
<a-form-item field="id" label="主机id" label-col-flex="50px">
<a-input-number v-model="formModel.id" placeholder="请输入主机id" allow-clear />
<a-input-number v-model="formModel.id"
placeholder="请输入主机id"
allow-clear
hide-button />
</a-form-item>
<!-- 主机名称 -->
<a-form-item field="name" label="主机名称" label-col-flex="50px">
@@ -74,7 +77,7 @@
:loading="loading"
:columns="columns"
:data="tableRenderData"
:pagination="pagination as PaginationProps"
:pagination="pagination"
@page-change="(page) => fetchTableData(page, pagination.pageSize)"
@page-size-change="(size) => fetchTableData(pagination.current, size)"
:bordered="false">
@@ -174,10 +177,11 @@
const { loading, setLoading } = useLoading();
const emits = defineEmits(['openAdd', 'openUpdate', 'openUpdateConfig']);
const pagination = reactive<PaginationProps>(defaultPagination());
const { copy } = useCopy();
const { toggle: toggleFavorite } = useFavorite('HOST');
const pagination = reactive(defaultPagination()) as PaginationProps;
const formModel = reactive<HostQueryRequest>({
id: undefined,
name: undefined,
@@ -189,7 +193,9 @@
});
// 删除当前行
const deleteRow = async ({ id }: { id: number }) => {
const deleteRow = async ({ id }: {
id: number
}) => {
try {
setLoading(true);
// 调用删除接口

View File

@@ -16,6 +16,14 @@ export const AuthTypeEnum = {
},
};
/**
* 主机所有配置
*/
// fixme
export interface HostConfigWrapper {
SSH: HostSshConfig | unknown;
}
/**
* 主机 SSH 配置
*/