|
@@ -17,7 +17,7 @@
|
|
|
:key="item.templateUrl"
|
|
:key="item.templateUrl"
|
|
|
class="agreement-card"
|
|
class="agreement-card"
|
|
|
hover-class="agreement-card--active"
|
|
hover-class="agreement-card--active"
|
|
|
- @click="handlePreviewPdf(item)"
|
|
|
|
|
|
|
+ @click="handlePreviewAgreement(item)"
|
|
|
>
|
|
>
|
|
|
<text class="agreement-card__title">《{{ item.name }}》</text>
|
|
<text class="agreement-card__title">《{{ item.name }}》</text>
|
|
|
<text class="agreement-card__arrow">›</text>
|
|
<text class="agreement-card__arrow">›</text>
|
|
@@ -43,19 +43,22 @@ interface StaticAgreementItem {
|
|
|
path: string
|
|
path: string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-interface AgreementPdfItem {
|
|
|
|
|
|
|
+interface AgreementItem {
|
|
|
name: string
|
|
name: string
|
|
|
templateUrl: string
|
|
templateUrl: string
|
|
|
|
|
+ subjectLocation: string
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const AGREEMENT_PAGE_BASE = '/pages-mine/agreement'
|
|
const AGREEMENT_PAGE_BASE = '/pages-mine/agreement'
|
|
|
const CERT_SUCCESS_STATUS = 'CERT'
|
|
const CERT_SUCCESS_STATUS = 'CERT'
|
|
|
|
|
+const WEB_VIEW_AGREEMENT_SUBJECT_LOCATION = 'CLOUD_ACCOUNT_LXLW'
|
|
|
|
|
+const WEB_VIEW_AGREEMENT_PAGE = `${AGREEMENT_PAGE_BASE}/web-view`
|
|
|
|
|
|
|
|
const userStore = useUserStore()
|
|
const userStore = useUserStore()
|
|
|
|
|
|
|
|
const currentUserInfo = computed(() => userStore.currentUserInfo)
|
|
const currentUserInfo = computed(() => userStore.currentUserInfo)
|
|
|
|
|
|
|
|
-const certSuccessList = ref<AgreementPdfItem[]>([])
|
|
|
|
|
|
|
+const certSuccessList = ref<AgreementItem[]>([])
|
|
|
|
|
|
|
|
const hasSignedAgreement = (agreementCode: string): boolean => {
|
|
const hasSignedAgreement = (agreementCode: string): boolean => {
|
|
|
const signedAgreement = currentUserInfo.value?.signedAgreement ?? []
|
|
const signedAgreement = currentUserInfo.value?.signedAgreement ?? []
|
|
@@ -115,19 +118,23 @@ const getCertifiedSubjectLocations = (): string[] => {
|
|
|
return Array.from(new Set(subjectLocations))
|
|
return Array.from(new Set(subjectLocations))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const normalizeAgreementInfos = (list: agreementInfosItem[] = []): AgreementPdfItem[] => {
|
|
|
|
|
|
|
+const normalizeAgreementInfos = (
|
|
|
|
|
+ list: agreementInfosItem[] = [],
|
|
|
|
|
+ subjectLocation: string
|
|
|
|
|
+): AgreementItem[] => {
|
|
|
return list
|
|
return list
|
|
|
.filter((item) => Boolean(item.templateUrl?.trim()))
|
|
.filter((item) => Boolean(item.templateUrl?.trim()))
|
|
|
.map((item) => {
|
|
.map((item) => {
|
|
|
return {
|
|
return {
|
|
|
name: item.name?.trim() || '协议',
|
|
name: item.name?.trim() || '协议',
|
|
|
templateUrl: item.templateUrl.trim(),
|
|
templateUrl: item.templateUrl.trim(),
|
|
|
|
|
+ subjectLocation,
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const dedupeAgreementInfos = (list: AgreementPdfItem[]): AgreementPdfItem[] => {
|
|
|
|
|
- const map = new Map<string, AgreementPdfItem>()
|
|
|
|
|
|
|
+const dedupeAgreementInfos = (list: AgreementItem[]): AgreementItem[] => {
|
|
|
|
|
+ const map = new Map<string, AgreementItem>()
|
|
|
|
|
|
|
|
list.forEach((item) => {
|
|
list.forEach((item) => {
|
|
|
if (!map.has(item.templateUrl)) {
|
|
if (!map.has(item.templateUrl)) {
|
|
@@ -159,7 +166,7 @@ const getCertSuccessList = async (): Promise<void> => {
|
|
|
subjectLocation,
|
|
subjectLocation,
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- return normalizeAgreementInfos(res.data?.agreementInfos)
|
|
|
|
|
|
|
+ return normalizeAgreementInfos(res.data?.agreementInfos, subjectLocation)
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.log('getSubjectLocationAgreementApi error:', error)
|
|
console.log('getSubjectLocationAgreementApi error:', error)
|
|
|
return []
|
|
return []
|
|
@@ -179,7 +186,14 @@ const navigateToAgreementPage = (path: string): void => {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const handlePreviewPdf = (item: AgreementPdfItem): void => {
|
|
|
|
|
|
|
+const handlePreviewAgreement = (item: AgreementItem): void => {
|
|
|
|
|
+ if (item.subjectLocation === WEB_VIEW_AGREEMENT_SUBJECT_LOCATION) {
|
|
|
|
|
+ uni.navigateTo({
|
|
|
|
|
+ url: `${WEB_VIEW_AGREEMENT_PAGE}?url=${encodeURIComponent(item.templateUrl)}`,
|
|
|
|
|
+ })
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
void previewAgreementPdf({
|
|
void previewAgreementPdf({
|
|
|
url: item.templateUrl,
|
|
url: item.templateUrl,
|
|
|
})
|
|
})
|