订阅软件

This commit is contained in:
MaxShen
2025-03-18 19:51:01 +08:00
parent a252eda5c7
commit 88b994de76
2 changed files with 40 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ export function releaseInfo(params: { repoId: string,releaseId: string }): Prom
}); });
} }
// 获取用户信息 // 获取邀请列表
export function getInviteListData(): catchRt<any> { export function getInviteListData(): catchRt<any> {
return reqCatchV2(() => request({ return reqCatchV2(() => request({
url: '/api/v1/group/member/invite/list', url: '/api/v1/group/member/invite/list',
@@ -20,7 +20,7 @@ export function getInviteListData(): catchRt<any> {
})); }));
} }
// 获取用户信息 // 处理邀请
export function acceptInvite(params): catchRt<any> { export function acceptInvite(params): catchRt<any> {
return reqCatchV2(() => request({ return reqCatchV2(() => request({
url: '/api/v1/group/member/invite/accept', url: '/api/v1/group/member/invite/accept',
@@ -30,3 +30,14 @@ export function acceptInvite(params): catchRt<any> {
customError: true customError: true
})); }));
} }
// 发送订阅
export function subscribeSoftware(params): catchRt<any> {
return reqCatchV2(() => request({
url: '/api/v1/alert/subscribe',
method: 'post',
data: params,
}, {
customError: true
}));
}

View File

@@ -20,24 +20,49 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { subscribeSoftware } from '@/api/jyh';
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import { Message } from 'vue-devui';
const props = defineProps(['softwareData']); const props = defineProps(['softwareData']);
const emit = defineEmits(['close']); const emit = defineEmits(['close']);
const formRef = ref(null); const formRef = ref(null);
const formData = ref({ const formData = ref({
subscribeType: '', subscribeType: '',
subscribeText: '',
}); });
const rules = { const rules = {
subscribeType: [{ required: true, message: '请选择', trigger: 'change' }], subscribeType: [{ required: true, message: '请选择', trigger: 'change' }],
}; };
const sendSubscribe = async () => {
const data = await subscribeSoftware({
softwareId: props.softwareData.id,
status: '1',
alertType: {
mobileSwitch: formData.value.subscribeType === '0',
emailSwitch: formData.value.subscribeType === '1',
webSwitch: formData.value.subscribeType === '2',
}
}).catch(err => {
Message({
message: err.error,
type: 'error'
})
});
if (!data?.data?.data?.data) {
Message({
message: data?.data?.data?.msg,
type: 'error'
})
} else {
emit('close');
}
}
const confirm = () => { const confirm = () => {
(formRef?.value as any)?.validate((isValid: boolean, invalidFields: any) => { (formRef?.value as any)?.validate((isValid: boolean, invalidFields: any) => {
if (!isValid) { if (!isValid) {
return; return;
} }
emit('close'); sendSubscribe();
}); });
}; };
</script> </script>