diff --git a/src/api/link/certificate.ts b/src/api/link/certificate.ts index 9ed5f5e1..3f6b0a31 100644 --- a/src/api/link/certificate.ts +++ b/src/api/link/certificate.ts @@ -5,3 +5,12 @@ export const NETWORK_CERTIFICATE_UPLOAD = `${BASE_API_PATH}/network/certificate/ export const save = (data: object) => server.post(`/network/certificate`, data); + +export const update = (data: object) => server.patch(`/network/certificate`, data); + +export const query = (data: object) => server.post(`/network/certificate/_query`, data); + +export const queryDetail = (id: string) => server.get(`/network/certificate/${id}`); + +export const remove = (id: string) => server.remove(`/network/certificate/${id}`); + diff --git a/src/router/menu.ts b/src/router/menu.ts index fd304be9..234bcabf 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -87,7 +87,7 @@ export default [ component: () => import('@/views/link/Certificate/index.vue') }, { - path: '/link/certificate/detail/add', + path: '/link/certificate/detail/:type/:id', component: () => import('@/views/link/Certificate/Detail/index.vue') }, { diff --git a/src/views/link/AccessConfig/index.vue b/src/views/link/AccessConfig/index.vue index e1509f3b..b3a74786 100644 --- a/src/views/link/AccessConfig/index.vue +++ b/src/views/link/AccessConfig/index.vue @@ -1,8 +1,328 @@ + diff --git a/src/views/link/Certificate/Detail/index.vue b/src/views/link/Certificate/Detail/index.vue index 410bd10c..e8857baf 100644 --- a/src/views/link/Certificate/Detail/index.vue +++ b/src/views/link/Certificate/Detail/index.vue @@ -60,6 +60,7 @@ ({ type: 'common', name: '', configs: { @@ -137,9 +142,10 @@ const { resetFields, validate, validateInfos } = useForm( const onSubmit = () => { validate() .then(async (res) => { - const params = toRaw(formData); + const params = toRaw(formData.value); loading.value = true; - const response = await save(params); + const response = + type === 'edit' ? await update(params) : await save(params); if (response.status === 200) { message.success('操作成功'); router.push('/link/certificate'); @@ -156,10 +162,28 @@ const handleChange = (info: UploadChangeParam) => { if (info.file.status === 'done') { message.success('上传成功!'); const result = info.file.response?.result; - formData.configs.cert = result; + formData.value.configs.cert = result; fileLoading.value = false; } }; + +const detail = async (id: string) => { + if (type !== 'add') { + loading.value = true; + const res = await queryDetail(id); + if (res.success) { + const result = res.result as FormDataType; + const type = result.type.value as TypeObjType; + formData.value = { + ...result, + type, + }; + } + loading.value = false; + } +}; + +detail(id); diff --git a/src/views/link/Certificate/type.d.ts b/src/views/link/Certificate/type.d.ts new file mode 100644 index 00000000..eb38e3e6 --- /dev/null +++ b/src/views/link/Certificate/type.d.ts @@ -0,0 +1,19 @@ + +export interface TypeObjType = { + text: string; + value: string; +}; +export type FormDataType = { + description: string; + name: string; + type: string | TypeObjType; + configs: { + cert: string; + key: string; + }; + id?: string; + format?: string; + mode?: object; + creatorId?: string; + createTime?: number; +};