受益所有人信息备案

提示

×
Zoomed Image
部分 document.head.appendChild(newFavicon); // 图片预览缩放 const imgBenefit = document.getElementById('imgBenefit'); const imgBenefitDetail = document.getElementById('imgBenefitDetail'); const imgBenefitPartner = document.getElementById('imgBenefitPartner'); const imgBenefitDetailPartner = document.getElementById('imgBenefitDetailPartner'); const imgForeignBenefit = document.getElementById('imgForeignBenefit'); const imgForeignBenefitDetail = document.getElementById('imgForeignBenefitDetail'); const imgForeignBenefitLeader = document.getElementById('imgForeignBenefitLeader'); imgBenefit.addEventListener('click', () => showZoomedImage(imgBenefit.src)); imgBenefitDetail.addEventListener('click', () => showZoomedImage(imgBenefitDetail.src)); imgBenefitPartner.addEventListener('click', () => showZoomedImage(imgBenefitPartner.src)); imgBenefitDetailPartner.addEventListener('click', () => showZoomedImage(imgBenefitDetailPartner.src)); imgForeignBenefit.addEventListener('click', () => showZoomedImage(imgForeignBenefit.src)); imgForeignBenefitDetail.addEventListener('click', () => showZoomedImage(imgForeignBenefitDetail.src)); imgForeignBenefitLeader.addEventListener('click', () => showZoomedImage(imgForeignBenefitLeader.src)); const overlay = document.getElementById('overlay'); overlay.addEventListener('click', (event) => { overlay.style.display = 'none'; // if (event.target === overlay) { // overlay.style.display = 'none'; // } }); const zoomedImage = document.getElementById('zoomedImage'); let isDragging = false; let startX, startY, currentX, currentY; let scale = 1; let initialPinchDistance = null; const showZoomedImage = (src) => { overlay.style.display = 'flex'; zoomedImage.src = src; scale = 1; zoomedImage.style.transform = `scale(${scale})`; zoomedImage.style.left = '0%'; zoomedImage.style.top = '0%'; zoomedImage.style.transform = `scale(${scale})`; }; zoomedImage.addEventListener('wheel', (event) => { event.preventDefault(); if (event.deltaY < 0) { scale += 0.1; } else { scale -= 0.1; } scale = Math.max(1, Math.min(scale, 3)); zoomedImage.style.transform = `translate(${zoomedImage.offsetLeft}px, ${zoomedImage.offsetTop}px) scale(${scale})`; }); zoomedImage.addEventListener('mousedown', (event) => { isDragging = true; startX = event.clientX - zoomedImage.offsetLeft; startY = event.clientY - zoomedImage.offsetTop; event.preventDefault(); }); document.addEventListener('mousemove', (event) => { if (isDragging) { currentX = event.clientX; currentY = event.clientY; zoomedImage.style.left = `${currentX - startX}px`; zoomedImage.style.top = `${currentY - startY}px`; } }); document.addEventListener('mouseup', () => { isDragging = false; }); zoomedImage.addEventListener('touchstart', (event) => { if (event.touches.length === 1) { isDragging = true; startX = event.touches[0].clientX - zoomedImage.offsetLeft; startY = event.touches[0].clientY - zoomedImage.offsetTop; } else if (event.touches.length === 2) { initialPinchDistance = distance(event.touches[0], event.touches[1]); } }); zoomedImage.addEventListener('touchmove', (event) => { if (isDragging && event.touches.length === 1) { currentX = event.touches[0].clientX - zoomedImage.offsetLeft; currentY = event.touches[0].clientY - zoomedImage.offsetTop; zoomedImage.style.left = `${zoomedImage.offsetLeft + (currentX - startX)}px`; zoomedImage.style.top = `${zoomedImage.offsetTop + (currentY - startY)}px`; } else if (event.touches.length === 2 && initialPinchDistance) { const currentDistance = distance(event.touches[0], event.touches[1]); scale *= currentDistance / initialPinchDistance; scale = Math.max(1, Math.min(scale, 3)); zoomedImage.style.transform = `translate(${zoomedImage.offsetLeft}px, ${zoomedImage.offsetTop}px) scale(${scale})`; initialPinchDistance = currentDistance; } }); zoomedImage.addEventListener('touchend', () => { isDragging = false; initialPinchDistance = null; }); const distance = (point1, point2) => { return Math.sqrt(Math.pow(point1.clientX - point2.clientX, 2) + Math.pow(point1.clientY - point2.clientY, 2)); }; }); /* 定义页面元素 */ const btnStart = document.getElementById('btnStartAnswer') // 开始页 const contentStart = document.getElementById('content_start') // 回答内容页父容器 const contentWrapper = document.getElementById('guide_content_wrapper') // 引导标题 const contentTitle = document.getElementById('content_title') // 经营主体 const principalContent = document.getElementById('content_principal') // 选择资本规模 const capitalContent = document.getElementById('content_capital') // 是否国有独资或控股 const individualContent = document.getElementById('content_individual') // (公司)选择受益所有权关系 const benefitContent = document.getElementById('content_benefit') // (公司)填写受益所有人信息 const benefitDetailContent = document.getElementById('content_benefit_detail') // (公司)选择受益所有权关系 const benefitPartnerContent = document.getElementById('content_benefit_partner') // (公司)填写受益所有人信息 const benefitDetailPartnerContent = document.getElementById('content_benefit_detail_partner') // 股东是否均为自然人 const shareholderContent = document.getElementById('content_shareholder') // 是否存在除股东以外的其他控制人 const otherControlContent = document.getElementById('content_other_control') // 外国公司分支机构受益所有权关系 const foreignBenefitContent = document.getElementById('content_foreign_benefit') // 外国公司分支机构所有人信息 const foreignBenefitDetailContent = document.getElementById('content_foreign_benefit_detail') // 外国公司分支机构高管信息 const foreignLeaderContent = document.getElementById('content_foreign_leader') // 完全结束 const realFinish = document.getElementById('content_real_finish') // 承诺免责结束 const promiseFinish = document.getElementById('content_finish_with_promise') // 无需备案 const noNeedFinish = document.getElementById('content_finish_with_nothing') // 无需备案(重新模拟) const btnRestartWithNothing = document.getElementById('btnRestartWithNothing') // 完全结束 const btnRestartAfterRealFinish = document.getElementById('btnRestartAfterRealFinish') // 承诺免责 // const btnRestartWithPromise = document.getElementById('btnRestartWithPromise') const btnNextWithPromise = document.getElementById('btnNextWithPromise') const btnPreWithPromise = document.getElementById('btnPreWithPromise') // 上一步、下一步 const btnPrincipalNext = document.getElementById('btnPrincipalNext') const btnPrincipalPre = document.getElementById('btnPrincipalPre') const btnCapitalPre = document.getElementById('btnCapitalPre') const btnCapitalNext = document.getElementById('btnCapitalNext') const btnIndividualPre = document.getElementById('btnIndividualPre') const btnIndividualNext = document.getElementById('btnIndividualNext') const btnBenefitPre = document.getElementById('btnBenefitPre') const btnBenefitNext = document.getElementById('btnBenefitNext') const btnBenefitPartnerPre = document.getElementById('btnBenefitPartnerPre') const btnBenefitPartnerNext = document.getElementById('btnBenefitPartnerNext') const btnBenefitDetailPre = document.getElementById('btnBenefitDetailPre') const btnBenefitDetailNext = document.getElementById('btnBenefitDetailNext') const btnBenefitDetailPartnerPre = document.getElementById('btnBenefitDetailPartnerPre') const btnBenefitDetailPartnerNext = document.getElementById('btnBenefitDetailPartnerNext') const btnForeignBenefitPre = document.getElementById('btnForeignBenefitPre') const btnForeignBenefitNext = document.getElementById('btnForeignBenefitNext') const btnForeignBenefitDetailPre = document.getElementById('btnForeignBenefitDetailPre') const btnForeignBenefitDetailNext = document.getElementById('btnForeignBenefitDetailNext') const btnForeignLeaderPre = document.getElementById('btnForeignLeaderPre') const btnForeignLeaderNext = document.getElementById('btnForeignLeaderNext') // 企业类型和注册资本选中展示信息 const topHint = document.getElementById('top_hint') const topHintPrincipal = document.getElementById('top_hint_principal') const topHintCapital = document.getElementById('top_hint_capital') // 注册资本页(公司和合伙企业有区别) const capitalTitle = document.getElementById('capital_title') const shareholderTitle = document.getElementById('shareholder_title') const otherControlTitle = document.getElementById('other_control_title') // 公司类型:注册资本页标题 const capitalCompanyText = "请选择注册资本(外币请折算成人民币)" const shareholderCompanyText = "股东是否均为自然人" const otherControlCompanyText = "您所在的经营主体是否存在股东以外的自然人对其实际控制或者从其获取收益,或者是否存在股东以外的自然人通过股权以外的方式对其实施控制或者从其获取收益的情形" // 合伙企业:注册资本页标题 const capitalPartnerText = "请选择出资额(外币请折算成人民币)" const shareholderPartnerText = "合伙人是否均为自然人" const otherControlPartnerText = "您所在的经营主体是否存在合伙人以外的自然人对其实际控制或者从其获取收益,或者是否存在合伙人以外的自然人通过合伙权益以外的方式对其实施控制或者从其获取收益的情形" // 承诺免除登记(公司和合伙企业有区别) const promiseText = document.getElementById('promise_text') const companyPromiseText = '本公司注册资本不超过1000万元人民币(或等值外币)且股东全部为自然人,不存在股东以外的自然人对本公司实际控制或者从本公司获取收益,也不存在通过股权以外的方式对本公司实施控制或者从本公司获取收益的情形。' const partnerPromiseText = '本合伙企业出资额不超过1000万元人民币(或等值外币)且合伙人全部为自然人,不存在合伙人以外的自然人对本合伙企业实际控制或者从本合伙企业获取收益,也不存在通过合伙权益以外的方式对本合伙企业实施控制或者从本合伙企业获取收益的情形。' /* 全局属性 */ const contentPrefix = 'content_' let res_individual = '#' let res_capital = '#' let res_shareholder = '#' let res_principal = '#' let res_other_control = '#' const tip_after_capital = '根据您提供的信息,您所在的经营主体需要进行受益所有人信息备案。接下来,我们将协助您确定您所在经营主体的受益所有人,并对如何备案进行一些说明。' const tip_after_individual = '您所在经营主体的受益所有人为法定代表人,点击“本公司为国有独资公司、国有控股公司,受益所有人为法定代表人”选项后,备案流程即结束。' const title_in_flow = '模拟备案流程' const title_end_flow = '模拟备案完成' const principalMap = { 'company': '公司', 'partnership': '合伙企业' } const capitalMap = { 'up1000': '1000万元人民币以上', 'down1000': '1000万元人民币及以下' } /* 1.获取经营主体单选按钮 */ const principalRadioBtns = document.querySelectorAll('input[name="principal"]'); principalRadioBtns.forEach(radio => { radio.addEventListener('change', function () { res_principal = this.value }) }) /* 2.获取注册资本单选按钮 */ const capitalRadioBtns = document.querySelectorAll('input[name="capital"]'); capitalRadioBtns.forEach(radio => { radio.addEventListener('change', function () { res_capital = this.value if (res_capital === 'down1000') { shareholderContent.style.display = 'block' if (res_shareholder === 'yes') { otherControlContent.style.display = 'block' } } else { shareholderContent.style.display = 'none' otherControlContent.style.display = 'none' } }) }) /* 3.获取股东是否均为自然人按钮组 */ const shareholderRadioBtns = document.querySelectorAll('input[name="shareholder"]') shareholderRadioBtns.forEach(radio => { radio.addEventListener('change', function () { res_shareholder = this.value if (res_shareholder === 'yes') { otherControlContent.style.display = 'block' } else { otherControlContent.style.display = 'none' } }) }) /* 4.获取股东以外其他控制人按钮组 */ const otherControlRadioBtns = document.querySelectorAll('input[name="other_control"]') otherControlRadioBtns.forEach(radio => { radio.addEventListener('change', function () { res_other_control = this.value }) }) /* 5.获取是否国资或国有控股 */ const individualRadioBtns = document.querySelectorAll('input[name="individual"]') individualRadioBtns.forEach(radio => { radio.addEventListener('change', function () { res_individual = this.value }) }) /* 对话框 */ function showDialog(msg) { const myDialog = document.getElementById('myDialog') const myDialogContent = document.getElementById('myDialogContent') myDialogContent.innerText = msg myDialog.showModal() return myDialog } /* 注册关闭弹出框监听事件 */ const closeDialogBtn = document.getElementById('closeDialogButton') closeDialogBtn.addEventListener('click', function () { const myDialog = document.getElementById('myDialog') myDialog.close() }) // 阻止 Esc 键关闭对话框 document.addEventListener('keydown', function (event) { const myDialog = document.getElementById('myDialog') if (event.key === 'Escape' && myDialog.open) { event.preventDefault(); // 阻止默认行为(即关闭对话框) } }) /* 消息通知 */ document.getElementById('closeNotification').addEventListener('click', function () { hideNotification(); }); function showNotification(msg) { const noticeMsg = document.getElementById('lackNeedInfoMsg') noticeMsg.innerText = msg const notification = document.getElementById('notification'); notification.classList.add('show'); setTimeout(hideNotification, 3000); // 5秒后自动隐藏通知 } function hideNotification() { const notification = document.getElementById('notification'); notification.classList.remove('show'); } /* 开始模拟 */ btnStart.addEventListener('click', function () { restart() // contentWrapper.style.display = 'block' // contentStart.style.display = 'none' // btnStart.style.display = 'none' // contentTitle.innerText = '您准备备案的经营主体属于以下哪一类别?' }) /* 经营主体:下一步 */ btnPrincipalNext.addEventListener('click', function () { hideCapitalHint() if (res_principal == '#') { showNotification('请选择经营主体') return } else { setInvisibleWithPrefix(contentPrefix) contentTitle.innerText = '模拟备案流程' switch (res_principal) { case 'company': capitalTitle.innerText = capitalCompanyText shareholderTitle.innerText = shareholderCompanyText + '?' otherControlTitle.innerText = otherControlCompanyText + '?' forwardToCapital() break; case 'partnership': capitalTitle.innerText = capitalPartnerText shareholderTitle.innerText = shareholderPartnerText + '?' otherControlTitle.innerText = otherControlPartnerText + '?' forwardToCapital() break; case 'foreign': foreignBenefitContent.style.display = 'block' break; case 'other': contentTitle.innerText = '模拟备案完成' noNeedFinish.style.display = 'block' contentWrapper.style.display = 'none' break; } } }) btnPrincipalPre.addEventListener('click', function () { showGuideHome() }) function showGuideHome() { contentWrapper.style.display = 'none' contentStart.style.display = 'block' btnStart.style.display = 'block' contentTitle.innerText = '模拟备案流程' } /* 注册资本页:按钮联动设置 */ function forwardToCapital() { showTopHint() capitalContent.style.display = 'block' if (res_capital === 'down1000') { shareholderContent.style.display = 'block' } if (res_capital === 'down1000' && res_shareholder === 'yes') { otherControlContent.style.display = 'block' } } /* 企业类型、注册资本提示页展示和隐藏逻辑 */ function showTopHint() { topHint.style.display = 'flex' topHintPrincipal.style.display = 'block' topHintPrincipal.innerText = '企业类型:' + principalMap[res_principal] } function hideTopHint() { topHint.style.display = 'none' } function showCapitalHint() { topHintCapital.style.display = 'block' topHintCapital.innerText = '注册资本:' + capitalMap[res_capital] } function hideCapitalHint() { topHintCapital.style.display = 'none' } /* 外国公司分支机构受益所有权关系:下一步 */ btnForeignBenefitNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) foreignBenefitDetailContent.style.display = 'block' }) btnForeignBenefitPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) principalContent.style.display = 'block' }) /* 外国公司分支机构受益所有人信息:下一步 */ btnForeignBenefitDetailNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) foreignLeaderContent.style.display = 'block' }) btnForeignBenefitDetailPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) foreignBenefitContent.style.display = 'block' }) /* 外国公司分支机构高管:下一步 */ btnForeignLeaderNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) realFinish.style.display = 'block' contentWrapper.style.display = 'none' }) btnForeignLeaderPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) foreignBenefitContent.style.display = 'block' }) /* 注册资本:下一步*/ btnCapitalNext.addEventListener('click', function () { if (res_capital === '#') { showNotification('请选择注册资本') return } if (res_capital === 'down1000' && res_shareholder === '#') { let msg = '/sxrcb/bjfw26/ayd/sysyrba/' if (res_principal == 'company') { msg = shareholderCompanyText } else { msg = shareholderPartnerText } showNotification('请选择' + msg) return } if (res_capital === 'down1000' && res_shareholder === 'yes' && res_other_control === '#') { if (res_principal == 'company') { msg = otherControlCompanyText } else { msg = otherControlPartnerText } showNotification('请选择' + msg) return } if (res_principal === 'company') { if (res_capital === 'up1000' || res_shareholder === 'no' || res_other_control === 'yes') { goToContentWithTip([individualContent, contentWrapper, topHintCapital], [], tip_after_capital, title_in_flow); } else { promiseText.innerText = companyPromiseText promiseFinish.style.display = 'block'; contentWrapper.style.display = 'none'; hideTopHint() } } else if (res_principal === 'partnership') { if (res_capital === 'up1000' || res_shareholder === 'no' || res_other_control === 'yes') { goToContentWithTip([benefitPartnerContent, contentWrapper], [topHint], tip_after_capital, title_in_flow) } else { hideTopHint() hideCapitalHint() promiseText.innerText = partnerPromiseText promiseFinish.style.display = 'block'; contentWrapper.style.display = 'none' } } }) function goToContentWithTip(showContent, hideContent, tips, title) { let dialog = showDialog(tips) dialog.addEventListener('close', function () { if (title != null && title != '') { contentTitle.innerText = title } setInvisibleWithPrefix(contentPrefix) for (content of showContent) { content.style.display = 'block'; if (content.id === 'top_hint_capital') { showTopHint() showCapitalHint() } } for (content of hideContent) { content.style.display = 'none' } }) } btnCapitalPre.addEventListener('click', function () { if (res_principal === '#') { return } contentTitle.innerText = '您准备备案的经营主体属于以下哪一类别?' setInvisibleWithPrefix(contentPrefix) hideTopHint() principalContent.style.display = 'block' }) /* 选择受益所有权关系: 下一步 */ btnBenefitNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) benefitDetailContent.style.display = 'block' }) btnBenefitPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) individualContent.style.display = 'block' showCapitalHint() showTopHint() }) btnBenefitPartnerPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) if (res_capital === 'down1000' && res_shareholder === 'yes' && res_other_control === 'no') { contentWrapper.style.display = 'none' promiseFinish.style.display = 'block' } else { backToCaptial() } }) btnBenefitPartnerNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) benefitDetailPartnerContent.style.display = 'block' }) /* 填写受益所有人信息:下一步 */ btnBenefitDetailNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) realFinish.style.display = 'block' contentWrapper.style.display = 'none' }) btnBenefitDetailPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) benefitContent.style.display = 'block' }) btnBenefitDetailPartnerNext.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) realFinish.style.display = 'block' contentWrapper.style.display = 'none' }) btnBenefitDetailPartnerPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案完成' setInvisibleWithPrefix(contentPrefix) benefitPartnerContent.style.display = 'block' }) /* 是否国有独资或控股-下一步 */ btnIndividualNext.addEventListener('click', function () { if (res_individual === '#') { showNotification('请选择您所在经营主体是否属于国有独资公司或国有控股公司') return } if (res_individual === 'yes') { // 正常结束 goToContentWithTip([realFinish], [contentWrapper, topHint], tip_after_individual, title_end_flow) } else { hideTopHint() contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) benefitContent.style.display = 'block' } }) btnIndividualPre.addEventListener('click', function () { contentTitle.innerText = '模拟备案流程' setInvisibleWithPrefix(contentPrefix) if (res_principal === 'company' && res_capital === 'down1000' && res_shareholder === 'yes' && res_other_control === 'no') { contentWrapper.style.display = 'none' promiseFinish.style.display = 'block' hideCapitalHint() hideTopHint() } else { individualContent.style.display = 'none' backToCaptial() } }) /* 回到资本注册页-需要一些独立的逻辑判断 */ function backToCaptial() { showTopHint() hideCapitalHint() capitalContent.style.display = 'block' if (res_capital === 'down1000') { shareholderContent.style.display = 'block' } if (res_capital === 'down1000' && res_shareholder === 'yes') { otherControlContent.style.display = 'block' } } /* 承诺免登记-下一步*/ btnNextWithPromise.addEventListener('click', function () { // if (res_principal === 'company') { // contentTitle.innerText = '模拟备案流程' // setInvisibleWithPrefix(contentPrefix) // individualContent.style.display = 'block' // contentWrapper.style.display = 'block' // showTopHint() // showCapitalHint() // return // } // if (res_principal === 'partnership') { // contentWrapper.style.display = 'block' // setInvisibleWithPrefix(contentPrefix) // benefitPartnerContent.style.display = 'block' // } // 正常结束 setInvisibleWithPrefix(contentPrefix) contentWrapper.style.display = 'none' topHint.style.display = 'none' realFinish.style.display = 'block' }) btnPreWithPromise.addEventListener('click', function () { promiseFinish.style.display = 'none' contentWrapper.style.display = 'block' backToCaptial() }) /* 无需备案:重新模拟 */ btnRestartWithNothing.addEventListener('click', function () { restart() }) btnRestartAfterRealFinish.addEventListener('click', function () { restart() }) /* 承诺免登记:重新模拟 */ // btnRestartWithPromise.addEventListener('click', function () { // restart() // }) /* 重新开始,回到经营主体选择 */ function restart() { setInvisibleWithPrefix(contentPrefix) resetRadioGroup() principalContent.style.display = 'block' contentWrapper.style.display = 'block' contentTitle.innerText = '您准备备案的经营主体属于以下哪一类别?' } /* 重置按钮选项 */ function resetRadioGroup() { let tags = ['principal', 'capital', 'shareholder', 'other_control', 'individual'] for (const t of tags) { const name = 'input[name="' + t + '"]' const radios = document.querySelectorAll(name); radios.forEach(r => { r.checked = false }) } res_individual = '#' res_capital = '#' res_shareholder = '#' res_principal = '#' res_other_control = '#' } /* 按照前缀设置元素不可见 */ function setInvisibleWithPrefix(prefix) { const visibleElements = findVisibleElementsWithPrefix(prefix); visibleElements.forEach(element => { element.style.display = 'none' }) } /* 将其他content_开头的元素设为不可见 */ function findVisibleElementsWithPrefix(prefix) { const elements = document.querySelectorAll(`[id^="${prefix}"]`); const visibleElements = Array.from(elements).filter(element => { return window.getComputedStyle(element).display === 'block'; }); return visibleElements; }