bug修改

This commit is contained in:
zhanchao 2026-08-17 17:12:26 +08:00
parent 6aa126bc81
commit bbe50bdd72
2 changed files with 38 additions and 11 deletions

View File

@ -54,6 +54,7 @@ const posterVisible = ref(false);
const archiveBindPending = ref(false); const archiveBindPending = ref(false);
const bindingTeamId = ref(""); const bindingTeamId = ref("");
const bindCorpName = ref(""); const bindCorpName = ref("");
const bindingTeam = ref(null);
const projectNameText = computed(() => { const projectNameText = computed(() => {
const projects = Array.isArray(issue.value?.projectSnapshot) ? issue.value.projectSnapshot : []; const projects = Array.isArray(issue.value?.projectSnapshot) ? issue.value.projectSnapshot : [];
@ -70,7 +71,7 @@ async function ensureLogin() {
if (!account.value) await login(); if (!account.value) await login();
if (!account.value) { if (!account.value) {
tip.value = "请先登录后再领取体验券"; tip.value = "请先登录后再领取体验券";
uni.navigateTo({ url: "/pages/login/login" }); await openTeamLogin();
return false; return false;
} }
return true; return true;
@ -107,7 +108,7 @@ async function getIssueCustomer({ force = false } = {}) {
issueCustomer.value = customer; issueCustomer.value = customer;
bindCorpName.value = detail?.corpName || issue.value?.corpName || ""; bindCorpName.value = detail?.corpName || issue.value?.corpName || "";
const teamIds = Array.isArray(customer?.teamId) ? customer.teamId : [customer?.teamId]; const teamIds = Array.isArray(customer?.teamId) ? customer.teamId : [customer?.teamId];
bindingTeamId.value = teamIds.find(Boolean) || ""; bindingTeamId.value = issue.value?.teamId || teamIds.find(Boolean) || "";
return customer; return customer;
} catch (e) { } catch (e) {
console.warn("getCustomerByCustomerId failed", e); console.warn("getCustomerByCustomerId failed", e);
@ -140,26 +141,52 @@ function buildTeamLoginUrl() {
return `/pages/login/login?${query}`; return `/pages/login/login?${query}`;
} }
async function ensurePhoneAuthorized() { async function getBindingTeam() {
if (account.value?.mobile) return true; if (!corpId.value || !bindingTeamId.value) return null;
if (bindingTeam.value) return bindingTeam.value;
try {
const res = await api(
"getTeamData",
{ corpId: corpId.value, teamId: bindingTeamId.value, withCorpName: true },
false
);
const data = res?.data || null;
bindingTeam.value = data;
bindCorpName.value = data?.corpName || data?.corp_name || bindCorpName.value;
return data;
} catch (e) {
console.warn("getTeamData failed", e);
return null;
}
}
async function openTeamLogin() {
const customer = await getIssueCustomer(); const customer = await getIssueCustomer();
if (!customer || !bindingTeamId.value) { if (!customer || !bindingTeamId.value) {
tip.value = "体验券发放档案缺少所属团队,暂无法领取"; tip.value = "体验券发放档案缺少所属团队,暂无法领取";
return false; return false;
} }
const team = await getBindingTeam();
set("invite-team-info", { set("invite-team-info", {
corpId: corpId.value, corpId: corpId.value,
teamId: bindingTeamId.value, teamId: bindingTeamId.value,
corpName: bindCorpName.value || issue.value?.corpName || "", corpName: bindCorpName.value || issue.value?.corpName || "",
teamName: issue.value?.teamName || "", teamName: team?.name || team?.teamName || "",
avatars: [], avatars: Array.isArray(team?.memberList)
? team.memberList.map((member) => member?.avatar || "").filter(Boolean)
: [],
}); });
tip.value = "请先授权手机号后再领取体验券";
uni.navigateTo({ url: buildTeamLoginUrl() }); uni.navigateTo({ url: buildTeamLoginUrl() });
return false; return false;
} }
async function ensurePhoneAuthorized() {
if (account.value?.mobile) return true;
tip.value = "请先授权手机号后再领取体验券";
return openTeamLogin();
}
async function ensureTeamAdded() { async function ensureTeamAdded() {
const customer = await getIssueCustomer(); const customer = await getIssueCustomer();
if (!customer || !bindingTeamId.value) { if (!customer || !bindingTeamId.value) {
@ -308,10 +335,10 @@ async function promptClaim() {
async function bootstrap() { async function bootstrap() {
loading("加载中..."); loading("加载中...");
try { try {
const okLogin = await ensureLogin();
if (!okLogin) return;
const okDetail = await loadIssueDetail(); const okDetail = await loadIssueDetail();
if (!okDetail) return; if (!okDetail) return;
const okLogin = await ensureLogin();
if (!okLogin) return;
const phoneAuthorized = await ensurePhoneAuthorized(); const phoneAuthorized = await ensurePhoneAuthorized();
if (!phoneAuthorized) return; if (!phoneAuthorized) return;
const teamAdded = await ensureTeamAdded(); const teamAdded = await ensureTeamAdded();

View File

@ -134,7 +134,7 @@ async function bindTeam() {
await syncExternalUserRelation(); await syncExternalUserRelation();
const res1 = await api('getWxAppCustomerCount', { miniAppId: account.value.openid, corpId: team.value.corpId, teamId: team.value.teamId }); const res1 = await api('getWxAppCustomerCount', { miniAppId: account.value.openid, corpId: team.value.corpId, teamId: team.value.teamId });
if (redirectUrl.value) { if (redirectUrl.value) {
attempToPage(redirectUrl.value) await attempToPage(redirectUrl.value)
} else if (res1 && res1.data > 0) { } else if (res1 && res1.data > 0) {
toHome(); toHome();
} else { } else {
@ -149,7 +149,7 @@ async function getPhoneNumber(e) {
if (!res) return; if (!res) return;
} }
if (team.value) { if (team.value) {
bindTeam() await bindTeam()
} else if (redirectUrl.value) { } else if (redirectUrl.value) {
await attempToPage(redirectUrl.value); await attempToPage(redirectUrl.value);
} else { } else {