修改模态框对象类型.
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
// 调用删除接口
|
||||
|
||||
@@ -16,6 +16,14 @@ export const AuthTypeEnum = {
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* 主机所有配置
|
||||
*/
|
||||
// fixme
|
||||
export interface HostConfigWrapper {
|
||||
SSH: HostSshConfig | unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 主机 SSH 配置
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user