merge wsw into master
feat: 个人中心信息api Created-by: yfzmpj Commit-by: 汪少伟 Merged-by: yfzmpj Description: feat: 个人中心信息api See merge request: hk_openRepo/OpenRepo_Portal!39
This commit is contained in:
@@ -134,6 +134,32 @@ export const getVulnList = (data): Promise<any> => {
|
||||
);
|
||||
};
|
||||
|
||||
// 获取SBOM依赖树
|
||||
export const dependencyTree = (softwareId: any): Promise<any> => {
|
||||
return reqCatchV2(() =>
|
||||
request({
|
||||
url: `/api/v1/repo/dependency/tree`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
softwareId,
|
||||
current: 1,
|
||||
size: 99999
|
||||
}
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
// 编辑用户信息(包含订阅默认预警方式)
|
||||
export const userEdit = (data: any): Promise<any> => {
|
||||
return reqCatchV2(() =>
|
||||
request({
|
||||
url: `/api/v1/user/edit`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
// 获取漏洞数据
|
||||
export const getVulnDetail = (data): Promise<any> => {
|
||||
return reqCatchV2(() =>
|
||||
@@ -143,18 +169,18 @@ export const getVulnDetail = (data): Promise<any> => {
|
||||
data
|
||||
})
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
// 迁移批量导入
|
||||
export function repoImport(data: types.commonRepoReqType){
|
||||
export function repoImport(data: types.commonRepoReqType) {
|
||||
return reqCatchV2(() =>
|
||||
request({
|
||||
url: `/api/v1/home/software/valid`,
|
||||
method: 'post',
|
||||
data,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data', // 设置请求头
|
||||
},
|
||||
'Content-Type': 'multipart/form-data' // 设置请求头
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -165,10 +191,10 @@ export const getNoticeList = (data): Promise<any> => {
|
||||
request({
|
||||
url: `/api/v1/alert/notice/list`,
|
||||
method: 'POST',
|
||||
data,
|
||||
data
|
||||
})
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
// 个人中心-获取组织级预警列表
|
||||
export const getgroupNoticeList = (data): Promise<any> => {
|
||||
@@ -176,7 +202,7 @@ export const getgroupNoticeList = (data): Promise<any> => {
|
||||
request({
|
||||
url: `/api/v1/alert/group/notice/list`,
|
||||
method: 'POST',
|
||||
data,
|
||||
data
|
||||
})
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4,21 +4,33 @@
|
||||
<div class="text-[14px] w-full flex items-center justify-between">
|
||||
<div class="font-bold mb-[16px]">基础信息</div>
|
||||
</div>
|
||||
<d-form layout="vertical" class="ml-3 mr-3" :data="forms">
|
||||
<d-form ref="formRef" layout="vertical" class="ml-3 mr-3" :data="forms">
|
||||
<d-row :gutter="16">
|
||||
<d-col span="8">
|
||||
<d-form-item field="name" label="名称" required>
|
||||
<d-input v-model="forms.name" />
|
||||
<d-form-item
|
||||
field="nickname"
|
||||
label="名称"
|
||||
:rules="[{ required: true, message: '请填写名称', trigger: 'blur' }]"
|
||||
>
|
||||
<d-input v-model="forms.nickname" />
|
||||
</d-form-item>
|
||||
</d-col>
|
||||
<d-col span="8">
|
||||
<d-form-item field="email" label="邮件" required>
|
||||
<d-form-item
|
||||
field="email"
|
||||
label="邮件"
|
||||
:rules="[{ required: true, message: '请填写邮件', trigger: 'blur' }]"
|
||||
>
|
||||
<d-input v-model="forms.email" />
|
||||
</d-form-item>
|
||||
</d-col>
|
||||
<d-col span="8">
|
||||
<d-form-item field="phone" label="电话" required>
|
||||
<d-input v-model="forms.phone" />
|
||||
<d-form-item
|
||||
field="mobile"
|
||||
label="电话"
|
||||
:rules="[{ required: true, message: '请填写电话', trigger: 'blur' }]"
|
||||
>
|
||||
<d-input v-model="forms.mobile" />
|
||||
</d-form-item>
|
||||
</d-col>
|
||||
</d-row>
|
||||
@@ -30,28 +42,70 @@
|
||||
</div>
|
||||
<d-form layout="vertical">
|
||||
<d-form-item field="radio" label="是否开启预警通知">
|
||||
<d-radio-group direction="row" v-model="radio">
|
||||
<d-radio value="0">开启</d-radio>
|
||||
<d-radio value="1">关闭</d-radio>
|
||||
<d-radio-group direction="row" v-model="forms.userExt.emailAlertSwitch">
|
||||
<d-radio :value="true">开启</d-radio>
|
||||
<d-radio :value="false">关闭</d-radio>
|
||||
</d-radio-group>
|
||||
</d-form-item>
|
||||
</d-form>
|
||||
</d-card>
|
||||
<div class="flex">
|
||||
<d-button variant="solid" class="mr-[8px]">保存</d-button>
|
||||
<d-button variant="solid" class="mr-[8px]" @click="save" :loading="loading">保存</d-button>
|
||||
<!-- <d-button color="secondary" class="mr-[8px]">保存草稿</d-button> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref, shallowRef } from 'vue';
|
||||
const radio = ref('0');
|
||||
import { userEdit } from '@/api/jyh';
|
||||
import { getUserInfo } from '@/api/user';
|
||||
import { onMounted, reactive, ref, shallowRef } from 'vue';
|
||||
import { Message } from 'vue-devui';
|
||||
import { useAccountStore } from '@/stores/user';
|
||||
|
||||
const loading = ref(false);
|
||||
|
||||
const forms = reactive({
|
||||
name: '',
|
||||
nickname: '',
|
||||
mobile: '',
|
||||
email: '',
|
||||
phone: ''
|
||||
userExt: {
|
||||
emailAlertSwitch: true
|
||||
}
|
||||
});
|
||||
|
||||
const getInfo = async () => {
|
||||
const userRes = await getUserInfo();
|
||||
const user = userRes.data.data.data || {};
|
||||
forms.nickname = user.nickname;
|
||||
forms.mobile = user.mobile;
|
||||
forms.email = user.email;
|
||||
forms.userExt.emailAlertSwitch = user.userExt?.emailAlertSwitch || false;
|
||||
|
||||
if (userRes.data?.data) {
|
||||
localStorage.setItem('userInfo', JSON.stringify(userRes.data?.data));
|
||||
useAccountStore().saveAccountInfo({
|
||||
...userRes.data?.data
|
||||
});
|
||||
// }
|
||||
}
|
||||
};
|
||||
|
||||
const formRef = ref();
|
||||
const save = () => {
|
||||
formRef.value.validate(async (isValid, invalidFields) => {
|
||||
if (isValid) {
|
||||
loading.value = true;
|
||||
await userEdit(forms);
|
||||
loading.value = false;
|
||||
Message.success('保存成功');
|
||||
getInfo();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getInfo();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user