1<!--[ucBQPPublishingHome.ascx - Page_Load] 2 Message: Index was out of range. Must be non-negative and less than the size of the collection. 3Parameter name: index 4 Stacktrace: at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) 5 at System.Collections.Generic.List`1.get_Item(Int32 index) 6 at TVSPortal.Video.ucTCQPPublishingVideoTrangChu.<>c.<Page_Load>b__21_0(VideoItem x) 7 at System.Collections.Generic.List`1.ForEach(Action`1 action) 8 at TVSPortal.Video.ucTCQPPublishingVideoTrangChu.Page_Load(Object sender, EventArgs e)--> 9<!DOCTYPE html > 10<html dir="ltr" lang="en-US"> 11 <head><meta http-equiv="X-UA-Compatible" content="IE=10" /><meta name="GENERATOR" content="Microsoft SharePoint" /><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><meta name="google-site-verification" content="5kcYEtZctiM2io37FCi_pFBZzDJVTfG6hNXKDtVkOr0" /><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /><meta http-equiv="Expires" content="0" /><link rel="icon" href="/Publishing_Resources/CongThongTin/assets/images/favicon.ico" type="image/x-icon" /><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /><link rel="stylesheet" href="/Publishing_Resources/CongThongTin/styles/style.css" /><link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&display=swap" rel="stylesheet" /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" /> 12 <title> 13 14 Tá»ng cục Công nghiá»p Quá»c phòng 15 16</title> 17 <link id="CssLink-703078c2116d40e9915966b2d7b054c1" rel="stylesheet" type="text/css" href="/_layouts/15/1033/styles/Themable/corev15.css?rev=UP2nlZLed9gOy%2BMP38oz0A%3D%3DTAG0"/> 18<style id="SPThemeHideForms" type="text/css">body {opacity:0 !important}</style> 19
19<script type="text/javascript">// <![CDATA[ 20 21var g_SPOffSwitches={}; 22// ]]> 23</script>
vendor: 2 bytes, line 23
23
24<script type="text/javascript" src="/_layouts/15/1033/initstrings.debug.js?rev=Obe9mPQdjba9mQMmou7a0Q%3D%3DTAG0"></script>
vendor: 1 bytes, line 24
24
25<script type="text/javascript" src="/_layouts/15/init.debug.js?rev=pvn7xemfHR7reVOCABFQ%2BA%3D%3DTAG0"></script>
vendor: 1 bytes, line 25
25
26<script type="text/javascript" src="/_layouts/15/theming.js?rev=SuLUbbwTXcxFWOWLFUsOkw%3D%3DTAG0"></script>
vendor: 1 bytes, line 26
26
27<script type="text/javascript" src="/ScriptResource.axd?d=iDBW-8MsUEj05bDJQbWPNvxR-iRkt6X21EPwiUW60ED9romTrI7hG8LWW5UKcy5LTRu64JydtuFiOV5xAtwABb8wEtxfui0y_YZTHq-GJN3lJTnnnFnfJUlbqYIV9udINSuK0wwycgLCVbqlIp5X2pFOhfj4VrGDqm7Q-fjwYAJTEH5_OYgm5XOk-khc8VSb0&t=74a40145"></script>
vendor: 1 bytes, line 27
27
28<script type="text/javascript" src="/_layouts/15/blank.js?rev=c3ZdPP%2B17MzLbz9osLMSCw%3D%3DTAG0"></script>
vendor: 1 bytes, line 28
28
29<script type="text/javascript" src="/ScriptResource.axd?d=9pTnQgbiomlhAzux3aUdYKlqe6NTHjIxZ1ksipULNn9pyzZpto4OoVzOu8tqMOD7B4wOzt2kNDmHWwRRQilXoGqiJj_ZggVrbgXxMbP7SZb3rm_IpHBNCFhrHX9moSRGZUnHDXD59IV-eMXb2spcKcL3yjezG9ZxqcPxdTYG-I75C6JHDtajvVI71V1N9fcPF2FlHcODytfnAKIdnWDQLg2&t=74a40145"></script>
vendor: 1 bytes, line 29
29
30<script type="text/javascript">RegisterSod("require.js", "\u002f_layouts\u002f15\u002frequire.js?rev=bv3fWJhk0uFGpVwBxnZKNQ\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 30
30
31<script type="text/javascript">RegisterSod("strings.js", "\u002f_layouts\u002f15\u002f1033\u002fstrings.debug.js?rev=WXemuDwxiJVfPoAinG7MeQ\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 31
31
32<script type="text/javascript">RegisterSod("sp.res.resx", "\u002f_layouts\u002f15\u002f1033\u002fsp.res.js?rev=FnWveYddVjlqQYS2ZBOOzA\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 32
32
33<script type="text/javascript">RegisterSod("sp.runtime.js", "\u002f_layouts\u002f15\u002fsp.runtime.debug.js?rev=yxIb4ZafttVMqR\u00252Fhcji\u00252BGQ\u00253D\u00253DTAG0");RegisterSodDep("sp.runtime.js", "sp.res.resx");</script>
vendor: 1 bytes, line 33
33
34<script type="text/javascript">RegisterSod("sp.js", "\u002f_layouts\u002f15\u002fsp.debug.js?rev=fcMKcsCVi7\u00252FwOAjN4YJnFA\u00253D\u00253DTAG0");RegisterSodDep("sp.js", "sp.runtime.js");RegisterSodDep("sp.js", "sp.ui.dialog.js");RegisterSodDep("sp.js", "sp.res.resx");</script>
vendor: 1 bytes, line 34
34
35<script type="text/javascript">RegisterSod("sp.init.js", "\u002f_layouts\u002f15\u002fsp.init.debug.js?rev=4wAvJARSjgQzMuV2LeDfEw\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 35
35
36<script type="text/javascript">RegisterSod("sp.ui.dialog.js", "\u002f_layouts\u002f15\u002fsp.ui.dialog.debug.js?rev=uBp8RwIxG6xvP5\u00252FVjiwssg\u00253D\u00253DTAG0");RegisterSodDep("sp.ui.dialog.js", "sp.init.js");RegisterSodDep("sp.ui.dialog.js", "sp.res.resx");</script>
vendor: 1 bytes, line 36
36
37<script type="text/javascript">RegisterSod("core.js", "\u002f_layouts\u002f15\u002fcore.debug.js?rev=gdi\u00252BMnaMotfZH631xL96BA\u00253D\u00253DTAG0");RegisterSodDep("core.js", "strings.js");</script>
vendor: 1 bytes, line 37
37
38<script type="text/javascript">RegisterSod("menu.js", "\u002f_layouts\u002f15\u002fmenu.debug.js?rev=HDtI4xABmOAi7OjENBGhJQ\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 38
38
39<script type="text/javascript">RegisterSod("mQuery.js", "\u002f_layouts\u002f15\u002fmquery.debug.js?rev=wGQMaOB9CDf25Pzx3x9VHQ\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 39
39
40<script type="text/javascript">RegisterSod("callout.js", "\u002f_layouts\u002f15\u002fcallout.debug.js?rev=BbpsDbtCRyu62YiT98J1nA\u00253D\u00253DTAG0");RegisterSodDep("callout.js", "strings.js");RegisterSodDep("callout.js", "mQuery.js");RegisterSodDep("callout.js", "core.js");</script>
vendor: 1 bytes, line 40
40
41<script type="text/javascript">RegisterSod("sp.core.js", "\u002f_layouts\u002f15\u002fsp.core.debug.js?rev=g37f\u00252BoR5\u00252FYY6cJvoP6UDZA\u00253D\u00253DTAG0");RegisterSodDep("sp.core.js", "strings.js");RegisterSodDep("sp.core.js", "sp.init.js");RegisterSodDep("sp.core.js", "core.js");</script>
vendor: 1 bytes, line 41
41
42<script type="text/javascript">RegisterSod("clienttemplates.js", "\u002f_layouts\u002f15\u002fclienttemplates.debug.js?rev=MD9R07hYM0bMRh80hEyfzg\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 42
42
43<script type="text/javascript">RegisterSod("sharing.js", "\u002f_layouts\u002f15\u002fsharing.debug.js?rev=61ouURS7kzuQ8tELSzF08g\u00253D\u00253DTAG0");RegisterSodDep("sharing.js", "strings.js");RegisterSodDep("sharing.js", "mQuery.js");RegisterSodDep("sharing.js", "clienttemplates.js");RegisterSodDep("sharing.js", "core.js");</script>
vendor: 1 bytes, line 43
43
44<script type="text/javascript">RegisterSod("suitelinks.js", "\u002f_layouts\u002f15\u002fsuitelinks.debug.js?rev=WQ9C6g\u00252F3d24SEqu6eN3yVA\u00253D\u00253DTAG0");RegisterSodDep("suitelinks.js", "strings.js");RegisterSodDep("suitelinks.js", "core.js");</script>
vendor: 1 bytes, line 44
44
45<script type="text/javascript">RegisterSod("userprofile", "\u002f_layouts\u002f15\u002fsp.userprofiles.debug.js?rev=0IOks9yleEgyg\u00252FcGHXSLxA\u00253D\u00253DTAG0");RegisterSodDep("userprofile", "sp.runtime.js");</script>
vendor: 1 bytes, line 45
45
46<script type="text/javascript">RegisterSod("followingcommon.js", "\u002f_layouts\u002f15\u002ffollowingcommon.debug.js?rev=YVkhU52f3GGHH1U\u00252F1C2xBg\u00253D\u00253DTAG0");RegisterSodDep("followingcommon.js", "strings.js");RegisterSodDep("followingcommon.js", "sp.js");RegisterSodDep("followingcommon.js", "userprofile");RegisterSodDep("followingcommon.js", "core.js");RegisterSodDep("followingcommon.js", "mQuery.js");</script>
vendor: 1 bytes, line 46
46
47<script type="text/javascript">RegisterSod("profilebrowserscriptres.resx", "\u002f_layouts\u002f15\u002f1033\u002fprofilebrowserscriptres.js?rev=qwf69WaVc1mYlJLXqmZmVA\u00253D\u00253DTAG0");</script>
vendor: 1 bytes, line 47
47
48<script type="text/javascript">RegisterSod("sp.ui.mysitecommon.js", "\u002f_layouts\u002f15\u002fsp.ui.mysitecommon.debug.js?rev=5cjuUN9PWwnw6sfFYAuviQ\u00253D\u00253DTAG0");RegisterSodDep("sp.ui.mysitecommon.js", "sp.init.js");RegisterSodDep("sp.ui.mysitecommon.js", "sp.runtime.js");RegisterSodDep("sp.ui.mysitecommon.js", "userprofile");RegisterSodDep("sp.ui.mysitecommon.js", "profilebrowserscriptres.resx");</script>
vendor: 1 bytes, line 48
48
49<script type="text/javascript">RegisterSod("browserScript", "\u002f_layouts\u002f15\u002fie55up.debug.js?rev=Lh\u00252FIoXhmkzMD3ChYtxmfrg\u00253D\u00253DTAG0");RegisterSodDep("browserScript", "strings.js");</script>
vendor: 1 bytes, line 49
49
50<script type="text/javascript">RegisterSod("inplview", "\u002f_layouts\u002f15\u002finplview.debug.js?rev=6\u00252F5LCpuRBC58th0exFWTiQ\u00253D\u00253DTAG0");RegisterSodDep("inplview", "strings.js");RegisterSodDep("inplview", "core.js");RegisterSodDep("inplview", "clienttemplates.js");RegisterSodDep("inplview", "sp.js");</script>
50 51<link type="text/xml" rel="alternate" href="/Public/_vti_bin/spsdisco.aspx" /> 52 53 54 <!-- _lcid="1033" _version="16.0.10417" _dal="1" --> 55<!-- _LocalBinding --> 56 57<link rel="canonical" href="https://vdi.org.vn:443/Public/Pages/Index.aspx" /> 58 59 60 <span id="DeltaSPWebPartManager"> 61 62 </span> 63 <!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 63-64
63 64<script async src="https://www.googletagmanager.com/gtag/js?id=
64G-WCMYQ3H8ST
vendor: 13 bytes, line 64
64"></script>
65<script> 66
vendor: 138 bytes, lines 66-70
66window.dataLayer = window.dataLayer || []; 67 function gtag(){dataLayer.push(arguments);} 68 gtag('js', new Date()); 69 70 gtag('config', '
70G-WCMYQ3H8ST
vendor: 5 bytes, line 70
70');
71</script>
71 72 </head> 73 <body onhashchange="if (typeof(_spBodyOnHashChange) != 'undefined') _spBodyOnHashChange();"> 74 75 76 77 78 <form method="post" action="./" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm"> 79<div class="aspNetHidden"> 80<input type="hidden" name="_wpcmWpid" id="_wpcmWpid" value="" /> 81<input type="hidden" name="wpcmVal" id="wpcmVal" value="" /> 82<input type="hidden" name="MSOWebPartPage_PostbackSource" id="MSOWebPartPage_PostbackSource" value="" /> 83<input type="hidden" name="MSOTlPn_SelectedWpId" id="MSOTlPn_SelectedWpId" value="" /> 84<input type="hidden" name="MSOTlPn_View" id="MSOTlPn_View" value="0" /> 85<input type="hidden" name="MSOTlPn_ShowSettings" id="MSOTlPn_ShowSettings" value="False" /> 86<input type="hidden" name="MSOGallery_SelectedLibrary" id="MSOGallery_SelectedLibrary" value="" /> 87<input type="hidden" name="MSOGallery_FilterString" id="MSOGallery_FilterString" value="" /> 88<input type="hidden" name="MSOTlPn_Button" id="MSOTlPn_Button" value="none" /> 89<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> 90<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> 91<input type="hidden" name="__REQUESTDIGEST" id="__REQUESTDIGEST" value="noDigest" /> 92<input type="hidden" name="MSOSPWebPartManager_DisplayModeName" id="MSOSPWebPartManager_DisplayModeName" value="Browse" /> 93<input type="hidden" name="MSOSPWebPartManager_ExitingDesignMode" id="MSOSPWebPartManager_ExitingDesignMode" value="false" /> 94<input type="hidden" name="MSOWebPartPage_Shared" id="MSOWebPartPage_Shared" value="" /> 95<input type="hidden" name="MSOLayout_LayoutChanges" id="MSOLayout_LayoutChanges" value="" /> 96<input type="hidden" name="MSOLayout_InDesignMode" id="MSOLayout_InDesignMode" value="" /> 97<input type="hidden" name="_wpSelected" id="_wpSelected" value="" /> 98<input type="hidden" name="_wzSelected" id="_wzSelected" value="" /> 99<input type="hidden" name="MSOSPWebPartManager_OldDisplayModeName" id="MSOSPWebPartManager_OldDisplayModeName" value="Browse" /> 100<input type="hidden" name="MSOSPWebPartManager_StartWebPartEditingName" id="MSOSPWebPartManager_StartWebPartEditingName" value="false" /> 101<input type="hidden" name="MSOSPWebPartManager_EndWebPartEditing" id="MSOSPWebPartManager_EndWebPartEditing" value="false" /> 102<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Ck/p0fZB/7gxu0qVCFp2lOC8PIGQicQc5JABFEmyeHsBD6eQp/BORxGYRUNYLOtUJ/2SOy3K8ZH0g7fLa1RTPtzMuCeSyEv0dCNCRuztuqT4Kz8wWwKnLL1wxPleiYn3HutWxahzZoHuZWShW8WykXmf7RuwwrMBMBk910zpq90t4saWwiYSlRQ0jAefyV/jjzMAsMbgdLxM+iBk3ZqWB5EweMzNFd18F0boaIz5qU8xodT52NdHQSqRQdw9pmTg11f/v9MZKW2bNV2l/1FZWb5b2PkO0pRMnZd1/+lcnk14/nVDdSP8thUOGccW+rQpBCwBw9+Oqb7ncHJt/XHUcwyqb27omJBzY13iY4fJFUdTUJ7LXGPpQu2LkLxBdZIkIMDfSt+GmkzocIZ4uS7P9zqNXbW1WRI0wC2i2k0khuqnCFfVycQa1l97G/rELY5p8x0dbiv2LZ7pjlSN/81VqkSQ4FHj9wOmHTqgMNUVMRfBiUDkd5kqCUvSIIe/dvJSYTjvtRF5Dtkwpa2YBK4XUti5Hpmjej/cgUcvxPs1qjGQOJKC9m1p27JQXcRhl2P5LXP+gagJRRg0QDGeTck8U5rKjsAGOnB1CzW4XWZyQzjgzfhBb34Xko37j3/PSd86J8gLhDoZCb1kTYVboX65TPqaPR5t3zfsRPQxxUfcikoMSV3ERFI/I0iyTDYBcqwisP9Bbv3rXHYqXFkssUK7cSoTr2gST4q/ixMdSXew9kN9KWtJ330vpTsBIgrcpJgoKk2EdZ3lbqlyVzZ/oNC8bFCB7UilbB1A0u8N4YbBf7r1P3CPq/LMfJf+WrXUJDYa" /> 103</div> 104
105<script type="text/javascript"> 106//<![CDATA[ 107var theForm = document.forms['aspnetForm']; 108if (!theForm) { 109 theForm = document.aspnetForm; 110} 111function __doPostBack(eventTarget, eventArgument) { 112 if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 113 theForm.__EVENTTARGET.value = eventTarget; 114 theForm.__EVENTARGUMENT.value = eventArgument; 115 theForm.submit(); 116 } 117} 118//]]> 119</script>
119 120 121
122<script src="/WebResource.axd?d=hhLnSkuJOjRhne1p4eMdSaBi8ERUFNLFyqoUbxJi_RDVxbGYaxoHLJ7b-F4ATscSoRsrfQDK0NEVitQLQFMkEmSORk9DKSgR1_5ENc0bccM1&t=638883523099574018" type="text/javascript"></script>
122 123 124
125<script type="text/javascript"> 126//<![CDATA[ 127var MSOWebPartPageFormName = 'aspnetForm'; 128var g_presenceEnabled = true; 129var g_wsaEnabled = false; 130 131var g_correlationId = '54ed40a2-f91e-0078-3761-a60b8fe1a818'; 132var g_wsaQoSEnabled = false; 133var g_wsaQoSDataPoints = []; 134var g_wsaRUMEnabled = false; 135var g_wsaLCID = 1033; 136var g_wsaListTemplateId = 850; 137var g_wsaSiteTemplateId = 'CMSPUBLISHING#0'; 138var _spPageContextInfo={"webServerRelativeUrl":"/Public","webAbsoluteUrl":"https://vdi.org.vn/Public","viewId":"","listId":"{a7fef96a-77ec-45f7-8ea3-769a547e8083}","listPermsMask":{"High":16,"Low":196673},"listUrl":"/Public/Pages","listTitle":"Pages","listBaseTemplate":850,"viewOnlyExperienceEnabled":false,"blockDownloadsExperienceEnabled":false,"idleSessionSignOutEnabled":false,"cdnPrefix":"","siteAbsoluteUrl":"https://vdi.org.vn","siteId":"{fdb5fe46-6074-4623-a514-d25bbef6be54}","showNGSCDialogForSyncOnTS":false,"supportPoundStorePath":true,"supportPercentStorePath":true,"siteSubscriptionId":null,"CustomMarkupInCalculatedFieldDisabled":true,"AllowCustomMarkupInCalculatedField":false,"isSPO":false,"farmLabel":null,"serverRequestPath":"/Public/Pages/Index.aspx","layoutsUrl":"_layouts/15","webId":"{ebebe186-259f-4cdb-9a14-50f0cd1872c3}","webTitle":"Tá»ng cục Công nghiá»p Quá»c phòng","webTemplate":"39","webTemplateConfiguration":"CMSPUBLISHING#0","webDescription":"Tá»ng cục Công nghiá»p Quá»c phòng","tenantAppVersion":"0","isAppWeb":false,"webLogoUrl":"_layouts/15/images/siteicon.png","webLanguage":1033,"currentLanguage":1033,"currentUICultureName":"en-US","currentCultureName":"en-US","currentCultureLCID":1033,"env":null,"nid":0,"fid":0,"serverTime":"2026-10-02T12:48:10.7585074Z","siteClientTag":"750$$16.0.10417.20153","crossDomainPhotosEnabled":false,"openInClient":false,"Has2019Era":true,"webUIVersion":15,"webPermMasks":{"High":16,"Low":196673},"pageListId":"{a7fef96a-77ec-45f7-8ea3-769a547e8083}","pageItemId":90,"pagePermsMask":{"High":16,"Low":196673},"pagePersonalizationScope":1,"userEmail":"","userId":0,"userLoginName":null,"userDisplayName":null,"isAnonymousUser":true,"isAnonymousGuestUser":false,"isEmailAuthenticationGuestUser":false,"isExternalGuestUser":false,"systemUserKey":null,"alertsEnabled":false,"siteServerRelativeUrl":"/","allowSilverlightPrompt":"True","themeCacheToken":"/Public::1:","themedCssFolderUrl":null,"themedImageFileNames":null,"modernThemingEnabled":true,"isSiteAdmin":false,"ExpFeatures":[480216468,1884350801,1158731092,62197791,538521105,335811073,4194306,34614301,268500996,-1946025984,28445328,-2147475455,134291456,65536,288,950272,1282,808326148,134217873,0,0,-1073217536,545285252,18350656,-467402752,6291457,-2147483644,1074794496,-1728053184,1845537108,622628,4102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"killSwitches":{},"InternalValidAuthorities":["sphost01:82","sphost01:92","10.0.0.10:446","xuctienthuongmai.vdi.org.vn","180.50.50.10:446","xuctienthuongmai.vdi.org.vn:446","tapchi.vdi.org.vn:448","sphost01:81","tapchi.vdi.org.vn","sphost01:91","10.0.0.10:448","180.50.50.10:448","sphost01","10.0.0.10","sphost01:90","vdi.org.vn","180.50.50.10","sphost01:83","10.0.0.10:447","sphost01:93","vietnamdefence.vdi.org.vn","vietnamdefence.vdi.org.vn:447","180.50.50.10:447"],"CorrelationId":"54ed40a2-f91e-0078-3761-a60b8fe1a818","hasManageWebPermissions":false,"isNoScriptEnabled":false,"groupId":null,"groupHasHomepage":true,"groupHasQuickLaunchConversationsLink":false,"departmentId":null,"hubSiteId":null,"hasPendingWebTemplateExtension":false,"isHubSite":false,"isWebWelcomePage":true,"siteClassification":"","hideSyncButtonOnODB":false,"showNGSCDialogForSyncOnODB":false,"sitePagesEnabled":false,"sitePagesFeatureVersion":0,"DesignPackageId":"00000000-0000-0000-0000-000000000000","groupType":null,"groupColor":"#d40ac7","siteColor":"#d40ac7","headerEmphasis":0,"navigationInfo":null,"guestsEnabled":false,"MenuData":{"SignInUrl":"/Public/_layouts/15/Authenticate.aspx?Source=%2F"},"RecycleBinItemCount":-1,"PublishingFeatureOn":true,"PreviewFeaturesEnabled":false,"disableAppViews":false,"disableFlows":false,"serverRedirectedUrl":null,"formDigestValue":"0x60E43E2C4B8A8084A9390BE180D10D318900FFAA192E4F985DD09938B00981545E00AF042CC3E6
1387FB5B3C9C90778567B36F61B73010D5E69049239C5F17A521D,02 Oct 2026 12:48:10 -0000","maximumFileSize":10240,"formDigestTimeoutSeconds":1800,"canUserCreateMicrosoftForm":false,"canUserCreateVisioDrawing":true,"readOnlyState":null,"isTenantDevSite":false,"preferUserTimeZone":false,"userTimeZoneData":null,"userTime24":false,"userFirstDayOfWeek":null,"webTimeZoneData":null,"webTime24":false,"webFirstDayOfWeek":null,"isSelfServiceSiteCreationEnabled":null,"alternateWebAppHost":"","aadTenantId":"","aadUserId":"","aadInstanceUrl":"","msGraphEndpointUrl":"https://","allowInfectedDownload":true};_spPageContextInfo.updateFormDigestPageLoaded=new Date();_spPageContextInfo.clientServerTimeDelta=new Date(_spPageContextInfo.serverTime)-new Date();if(typeof(define)=='function'){define('SPPageContextInfo',[],function(){return _spPageContextInfo;});}var L_Menu_BaseUrl="/Public"; 139var L_Menu_LCID="1033"; 140var L_Menu_SiteTheme="null"; 141document.onreadystatechange=fnRemoveAllStatus; function fnRemoveAllStatus(){removeAllStatus(true)};Flighting.ExpFeatures = [480216468,1884350801,1158731092,62197791,538521105,335811073,4194306,34614301,268500996,-1946025984,28445328,-2147475455,134291456,65536,288,950272,1282,808326148,134217873,0,0,-1073217536,545285252,18350656,-467402752,6291457,-2147483644,1074794496,-1728053184,1845537108,622628,4102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; (function() 142{ 143 if(typeof(window.SP) == "undefined") window.SP = {}; 144 if(typeof(window.SP.YammerSwitch) == "undefined") window.SP.YammerSwitch = {}; 145 146 var ysObj = window.SP.YammerSwitch; 147 ysObj.IsEnabled = false; 148 ysObj.TargetYammerHostName = "www.yammer.com"; 149} )(); var _spWebPartComponents = new Object();//]]> 150</script>
150 151
152<script src="/_layouts/15/blank.js?rev=c3ZdPP%2B17MzLbz9osLMSCw%3D%3DTAG0" type="text/javascript"></script>
vendor: 2 bytes, line 152
152
153<script type="text/javascript"> 154//<![CDATA[ 155if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); 156//]]> 157</script>
157 158
159<script type="text/javascript"> 160//<![CDATA[ 161window.SPThemeUtils && SPThemeUtils.RegisterCssReferences([{"Url":"\u002f_layouts\u002f15\u002f1033\u002fstyles\u002fThemable\u002fcorev15.css?rev=UP2nlZLed9gOy\u00252BMP38oz0A\u00253D\u00253DTAG0","OriginalUrl":"\u002f_layouts\u002f15\u002f1033\u002fstyles\u002fThemable\u002fcorev15.css?rev=UP2nlZLed9gOy\u00252BMP38oz0A\u00253D\u00253DTAG0","Id":"CssLink-703078c2116d40e9915966b2d7b054c1","ConditionalExpression":"","After":"","RevealToNonIE":"false"}]); 162(function(){ 163 164 if (typeof(_spBodyOnLoadFunctions) === 'undefined' || _spBodyOnLoadFunctions === null) { 165 return; 166 } 167 _spBodyOnLoadFunctions.push(function() { 168 SP.SOD.executeFunc('core.js', 'FollowingDocument', function() { FollowingDocument(); }); 169 }); 170 })();(function(){ 171 172 if (typeof(_spBodyOnLoadFunctions) === 'undefined' || _spBodyOnLoadFunctions === null) { 173 return; 174 } 175 _spBodyOnLoadFunctions.push(function() { 176 SP.SOD.executeFunc('core.js', 'FollowingCallout', function() { FollowingCallout(); }); 177 }); 178 })();if (typeof(DeferWebFormInitCallback) == 'function') DeferWebFormInitCallback();function WebForm_OnSubmit() { 179UpdateFormDigest('\u002fPublic', 1440000);if (typeof(_spFormOnSubmitWrapper) != 'undefined') {return _spFormOnSubmitWrapper();} else {return true;}; 180return true; 181} 182//]]> 183</script>
183 184 185<div class="aspNetHidden"> 186 187 <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="E75E4FE5" /> 188 <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 189</div> 190 191
191<script type="text/javascript"> 192//<![CDATA[ 193Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManager', 'aspnetForm', [], [], [], 90, 'ctl00'); 194//]]> 195</script>
195 196 197 198 <div> 199 200 <div id="TurnOnAccessibility" style="display: none" class="s4-notdlg noindex"> 201 <a id="linkTurnOnAcc" href="#" class="ms-accessible ms-acc-button" onclick="SetIsAccessibilityFeatureEnabled(true);UpdateAccessibilityUI();document.getElementById('linkTurnOffAcc').focus();return false;"> 202 Turn on more accessible mode 203 </a> 204 </div> 205 <div id="TurnOffAccessibility" style="display: none" class="s4-notdlg noindex"> 206 <a id="linkTurnOffAcc" href="#" class="ms-accessible ms-acc-button" onclick="SetIsAccessibilityFeatureEnabled(false);UpdateAccessibilityUI();document.getElementById('linkTurnOnAcc').focus();return false;"> 207 Turn off more accessible mode 208 </a> 209 </div> 210 211</div> 212 213 <div id="ms-designer-ribbon"> 214 <div> 215 216 <div id="s4-ribbonrow" style="visibility:hidden;display:none"></div> 217 218</div> 219 220 221 </div> 222 223 <div id="s4-workspace"> 224 <div id="s4-bodyContainer"> 225 <div id="ctl00_g_9e11e68b_8166_49ea_bf31_1ebf37d22463" WebPart="true" LoaiMenu="0" GiaTriSX="False" MenuRootID="0" __WebPartId="{9e11e68b_8166_49ea_bf31_1ebf37d22463}" __MarkupType="vsattributemarkup"> 226 227 228<div class="site-header-banner"> 229 <div class="site-header-banner-inner"> 230 <a href="/" class="site-header-banner-link"> 231 <img src="/Publishing_Resources/CongThongTin/assets/images/Untitled design.png" alt="Tá»ng cục Công nghiá»p Quá»c phòng" class="site-header-banner-img"> 232 </a> 233 <div class="mobile-menu-btn"> 234 <i class="fas fa-bars"></i> 235 </div> 236 </div> 237</div> 238<nav class="header-menu" aria-label="Menu chÃnh"> 239 <div class="container"> 240 <div class="header-menu-inner"> 241 <div class="header-menu-top"> 242 <nav class="main-menu"> 243 <ul class="menu-list"> 244 <li class="menu-item"> 245 <a href="/" class="home-link"> 246 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 247 <path d="M20.04 6.82L14.28 2.79C12.71 1.69 10.3 1.75 8.78999 2.92L3.77999 6.83C2.77999 7.61 1.98999 9.21 1.98999 10.47V17.37C1.98999 19.92 4.05999 22 6.60999 22H17.39C19.94 22 22.01 19.93 22.01 17.38V10.6C22.01 9.25 21.14 7.59 20.04 6.82ZM12.75 18C12.75 18.41 12.41 18.75 12 18.75C11.59 18.75 11.25 18.41 11.25 18V15C11.25 14.59 11.59 14.25 12 14.25C12.41 14.25 12.75 14.59 12.75 15V18Z" fill="currentColor" /> 248 </svg> 249 </a> 250 </li> 251 252 <li class="menu-item" data-target="menu-item-data-51"> 253 254 <a href="">Giá»i thiá»u<i class="fas fa-chevron-down"></i></a> 255 <ul class="simple-dropdown"> 256 257 <li><a href="/gioi-thieu.html#TongQuan">Tá»ng quan</a></li> 258 259 <li><a href="/gioi-thieu.html#tran-dai-nghia">GS.Trần Äại NghÄ©a</a></li> 260 261 <li><a href="/gioi-thieu.html#LDHN">Lãnh Äạo hiá»n nay</a></li> 262 263 <li><a href="/gioi-thieu.html#CCTC">CÆ¡ cấu tá» chức</a></li> 264 265 <li><a href="/gioi-thieu.html#DVTV">ÄÆ¡n vá» thành viên</a></li> 266 267 </ul> 268 269 </li> 270 271 <li class="menu-item" data-target="menu-item-data-52"> 272 273 <a href="">Sản phẩm</a> 274 275 </li> 276 277 <li class="menu-item" data-target="menu-item-data-53"> 278 279 <a href="">Tin tức - sá»± kiá»n<i class="fas fa-chevron-down"></i></a> 280 <ul class="simple-dropdown"> 281 282 <li><a href="/tin-tuc/tin-hoat-dong-d101.html">Tin hoạt Äá»ng</a></li> 283 284 <li><a href="/tin-tuc/xuc-tien-thuong-mai-d102.html">Xúc tiến thương mại</a></li> 285 286 <li><a href="/tin-tuc/tin-tong-hop-d104.html">Tin tá»ng hợp</a></li> 287 288 <li><a href="/tin-tuc/bdkt-va-chuyen-doi-so-d105.html">BÄKT và Chuyá»n Äá»i sá»</a></li> 289 290 <li><a href="/tin-tuc/bau-cu-dbqh-va-hdnd-cac-cap-d106.html">Bầu cá» ÄBQH và HÄND các cấp</a></li> 291 292 </ul> 293 294 </li> 295 296 <li class="menu-item" data-target="menu-item-data-54"> 297 298 <a href="/van-ban/van-ban-quy-pham.html">VÄn bản pháp luáºt</a> 299 300 </li> 301 302 <li class="menu-item" data-target="menu-item-data-55"> 303 304 <a href="/lien-he.html">Liên há»</a> 305 306 </li> 307 308 <li class="menu-item" data-target="menu-item-data-56"> 309 310 <a href="">Äa phương tiá»n<i class="fas fa-chevron-down"></i></a> 311 <ul class="simple-dropdown"> 312 313 <li><a href="/video.html">Video</a></li> 314 315 <li><a href="/hinh-anh.html">Hình ảnh</a></li> 316 317 </ul> 318 319 </li> 320 321 </ul> 322 </nav> 323 <div class="right-menu"> 324 <a class="search-btn" id="btnSearch"> 325 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 326 <path d="M11 20C15.9706 20 20 15.9706 20 11C20 6.02944 15.9706 2 11 2C6.02944 2 2 6.02944 2 11C2 15.9706 6.02944 20 11 20Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 327 <path d="M18.9304 20.6898C19.4604 22.2898 20.6704 22.4498 21.6004 21.0498C22.4504 19.7698 21.8904 18.7198 20.3504 18.7198C19.2104 18.7098 18.5704 19.5998 18.9304 20.6898Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> 328 </svg> 329 </a> 330 <div class="lang-switcher"> 331 <div class="lang-current"> 332 <img src="/Publishing_Resources/CongThongTin/assets/images/vn-language.png" alt="Vietnamese"> 333 <i class="fas fa-chevron-down"></i> 334 </div> 335 <ul class="lang-dropdown"> 336 <li> 337 <a href="/"> 338 <img src="/Publishing_Resources/CongThongTin/assets/images/vn-language.png" alt="Vietnamese">
339 <span>Tiếng Viá»t</span> 340 </a> 341 </li> 342 <li> 343 <a href="/en"> 344 <img src="/Publishing_Resources/CongThongTin/assets/images/en-language.png" alt="English"> 345 <span>English</span> 346 </a> 347 </li> 348 </ul> 349 </div> 350 </div> 351 </div> 352 353 </div> 354 </div> 355</nav> 356<div class="mobile-menu"> 357 <div class="mobile-menu-header"> 358 <img src="/Publishing_Resources/CongThongTin/assets/images/logo.png" alt="logo-vdi"> 359 <button type="button" class="close-menu"> 360 <i class="fas fa-times"></i> 361 </button> 362 </div> 363 <nav class="mobile-nav"> 364 <div class="mobile-lang-switcher"> 365 <div class="lang-current"> 366 <img src="/Publishing_Resources/CongThongTin/assets/images/vn-language.png" alt="Vietnamese"> 367 <span>Tiếng Viá»t</span> 368 <i class="fas fa-chevron-down"></i> 369 </div> 370 <ul class="lang-dropdown"> 371 <li> 372 <a href="/"> 373 <img src="/Publishing_Resources/CongThongTin/assets/images/vn-language.png" alt="Vietnamese"> 374 <span>Tiếng Viá»t</span> 375 </a> 376 </li> 377 <li> 378 <a href="/en"> 379 <img src="/Publishing_Resources/CongThongTin/assets/images/en-language.png" alt="English"> 380 <span>English</span> 381 </a> 382 </li> 383 </ul> 384 </div> 385 <ul class="mobile-menu-list"> 386 <li class="mobile-menu-item"> 387 <a href="/" class="home-link"> 388 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 389 <path d="M20.04 6.82L14.28 2.79C12.71 1.69 10.3 1.75 8.78999 2.92L3.77999 6.83C2.77999 7.61 1.98999 9.21 1.98999 10.47V17.37C1.98999 19.92 4.05999 22 6.60999 22H17.39C19.94 22 22.01 19.93 22.01 17.38V10.6C22.01 9.25 21.14 7.59 20.04 6.82ZM12.75 18C12.75 18.41 12.41 18.75 12 18.75C11.59 18.75 11.25 18.41 11.25 18V15C11.25 14.59 11.59 14.25 12 14.25C12.41 14.25 12.75 14.59 12.75 15V18Z" fill="currentColor" /> 390 </svg> 391 </a> 392 </li> 393 394 <li class="menu-item" data-target="menu-item-data-51"> 395 396 <li class="mobile-menu-item"> 397 <a href="">Giá»i thiá»u<i class="fas fa-chevron-down"></i></a> 398 <ul class="mobile-submenu"> 399 400 <li><a href="/gioi-thieu.html#TongQuan">Tá»ng quan</a></li> 401 402 <li><a href="/gioi-thieu.html#tran-dai-nghia">GS.Trần Äại NghÄ©a</a></li> 403 404 <li><a href="/gioi-thieu.html#LDHN">Lãnh Äạo hiá»n nay</a></li> 405 406 <li><a href="/gioi-thieu.html#CCTC">CÆ¡ cấu tá» chức</a></li> 407 408 <li><a href="/gioi-thieu.html#DVTV">ÄÆ¡n vá» thành viên</a></li> 409 410 </ul> 411 </li> 412 413 </li> 414 415 <li class="menu-item" data-target="menu-item-data-52"> 416 417 <li class="mobile-menu-item"> 418 <a href="">Sản phẩm</a> 419 </li> 420 421 </li> 422 423 <li class="menu-item" data-target="menu-item-data-53"> 424 425 <li class="mobile-menu-item"> 426 <a href="">Tin tức - sá»± kiá»n<i class="fas fa-chevron-down"></i></a> 427 <ul class="mobile-submenu"> 428 429 <li><a href="/tin-tuc/tin-hoat-dong-d101.html">Tin hoạt Äá»ng</a></li> 430 431 <li><a href="/tin-tuc/xuc-tien-thuong-mai-d102.html">Xúc tiến thương mại</a></li> 432 433 <li><a href="/tin-tuc/tin-tong-hop-d104.html">Tin tá»ng hợp</a></li> 434 435 <li><a href="/tin-tuc/bdkt-va-chuyen-doi-so-d105.html">BÄKT và Chuyá»n Äá»i sá»</a></li> 436 437 <li><a href="/tin-tuc/bau-cu-dbqh-va-hdnd-cac-cap-d106.html">Bầu cá» ÄBQH và HÄND các cấp</a></li> 438 439 </ul> 440 </li> 441 442 </li> 443 444 <li class="menu-item" data-target="menu-item-data-54"> 445 446 <li class="mobile-menu-item"> 447 <a href="/van-ban/van-ban-quy-pham.html">VÄn bản pháp luáºt</a> 448 </li> 449 450 </li> 451 452 <li class="menu-item" data-target="menu-item-data-55"> 453 454 <li class="mobile-menu-item"> 455 <a href="/lien-he.html">Liên há»</a> 456 </li> 457 458 </li> 459 460 <li class="menu-item" data-target="menu-item-data-56"> 461 462 <li class="mobile-menu-item"> 463 <a href="">Äa phương tiá»n<i class="fas fa-chevron-down"></i></a> 464 <ul class="mobile-submenu"> 465 466 <li><a href="/video.html">Video</a></li> 467 468 <li><a href="/hinh-anh.html">Hình ảnh</a></li> 469 470 </ul> 471 </li> 472 473 </li> 474 475 </ul> 476 </nav> 477</div> 478
479<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
vendor: 2 bytes, line 479
479
480<script type="text/javascript"> 481 $("#btnSearch").click(function () { 482 window.location.href = '/tim-kiem.html'; 483 }); 484</script>
484 485 486 487<style> 488/* Fix language dropdown cut off issue */ 489.header-menu, .header-menu-inner, .header-menu-top, .right-menu, .lang-switcher { 490 overflow: visible !important; 491} 492.header-menu { 493 position: relative; 494 z-index: 9999 !important; 495} 496.lang-dropdown { 497 z-index: 99999 !important; 498} 499 500/* Simple dropdown styles */ 501.header-menu .menu-list .menu-item { 502 position: relative; 503} 504.header-menu .menu-list .simple-dropdown { 505 position: absolute; 506 top: 100%; 507 left: 0; 508 z-index: 99999; 509 display: none; 510 background-color: #8a0307; 511 min-width: 250px; 512 box-shadow: 0 4px 8px rgba(0,0,0,0.2); 513 list-style: none; 514 padding: 5px 0; 515 margin: 0; 516} 517.header-menu .menu-list .menu-item:hover .simple-dropdown { 518 display: block !important; 519} 520.header-menu .menu-list .simple-dropdown li { 521 padding: 0; 522 margin: 0; 523 display: block; 524} 525.header-menu .menu-list .simple-dropdown li a { 526 display: block; 527 padding: 10px 20px; 528 color: #fff !important; 529 text-decoration: none; 530 font-size: 14px; 531 text-transform: none !important; 532 white-space: nowrap; 533 text-align: left; 534} 535.header-menu .menu-list .simple-dropdown li a:hover, 536.header-menu .menu-list .simple-dropdown li a.current-page { 537 background-color: rgba(255, 255, 255, 0.1) !important; 538 color: #ffcc00 !important; 539} 540/* Highlight menu cha trên PC */ 541.header-menu .menu-list .menu-item.current-page > a { 542 color: #ffcc00 !important; 543} 544/* Highlight menu con trên Mobile */ 545.mobile-submenu li a.current-page { 546 color: #006b3a !important; 547 font-weight: bold; 548} 549/* Highlight menu cha trên Mobile */ 550.mobile-menu-item > a.current-page { 551 color: #006b3a !important; 552} 553.menu-child-list { 554 display: none !important; 555} 556</style> 557
558<script> 559$(document).ready(function() { 560 // Äá»i link PRODUCTS trá» vá» trang xúc tiến thương mại 561 $('.main-menu a, .mobile-menu-item a, .main_menu a').each(function() { 562 var text = $(this).text().trim().toUpperCase(); 563 if (text === 'SẢN PHẨM' || text === 'PRODUCTS') { 564 $(this).attr('href', 'https://xuctienthuongmai.vdi.org.vn/'); 565 $(this).attr('target', '_blank'); // Tuỳ chá»n má» tab má»i 566 $(this).find('i.fa-chevron-down').remove(); 567 $(this).parent().removeClass('menu-item-has-children'); 568 } 569 if (text === 'TIN TỨC - Sá»° KIá»N' || text === 'NEWS - EVENTS' || text === 'TIN TỨC - Sá»° KIá»N ') { 570 $(this).attr('href', '/tin-tuc/tin-tuc-su-kien.html'); 571 } 572 }); 573 574 // Fix hà nh vi click menu cha trên mobile bằng Event Capture (ưu tiên chạy trưá»c các script cÅ©) 575 var mobileLinks = document.querySelectorAll('.mobile-menu-item > a'); 576 mobileLinks.forEach(function(link) { 577 if (link.nextElementSibling && link.nextElementSibling.classList.contains('mobile-submenu')) { 578 link.addEventListener('click', function(e) { 579 var isArrow = e.target.closest('i'); 580 581 if (isArrow) { 582 // Click và o mÅ©i tên -> toggle 583 e.preventDefault(); 584 e.stopImmediatePropagation(); 585 e.stopPropagation(); 586 link.classList.toggle('active'); 587 } else { 588 // Click và o chữ 589 if (!link.classList.contains('active')) { 590 // Lần 1: xá» menu 591 e.preventDefault(); 592 e.stopImmediatePropagation(); 593 e.stopPropagation(); 594 link.classList.add('active'); 595 } else { 596 // Lần 2: chuyá»n trang 597 e.preventDefault(); 598 e.stopImmediatePropagation(); 599 e.stopPropagation(); 600 window.location.href = link.getAttribute('href'); 601 } 602 } 603 }, true); // true: Event Capture phase 604 } 605 }); 606 607 // Fix lá»i không Äóng menu khi click và o menu con & lá»i JS vá»i tab không có ná»i dung 608 var subMenuLinks = document.querySelectorAll('.mobile-submenu a'); 609 subMenuLinks.forEach(function(link) { 610 link.addEventListener('click', function(e) { 611 // Tá»± Äá»ng Äóng mobile menu 612 var closeBtn = document.querySelector('.close-menu'); 613 if (closeBtn) { 614 closeBtn.click(); // giả láºp hà nh Äá»ng bấm nút X 615 } 616 // Äảm bảo menu bỠẩn ngay láºp tức (dá»± phòng) 617 var mobileMenu = document.querySelector('.mobile-menu'); 618 if (mobileMenu) mobileMenu.classList.remove('active'); 619 620 // Xá» lý chặn lá»i JS á» main.js khi hash tab không tá»n tại 621 var href = link.getAttribute('href'); 622 if (href) { 623 var a = document.createElement('a'); 624 a.href = href; 625 var aPath = a.pathname.startsWith('/') ? a.pathname : '/' + a.pathname; 626 var wPath = window.location.pathname.startsWith('/') ? window.location.pathname : '/' + window.location.pathname; 627 628 // Nếu Äang á» cùng trang 629 if (aPath === wPath || aPath === wPath + '.html' || aPath + '.html' === wPath) { 630 var hash = a.hash; 631 if (hash && hash.length > 1) { 632 var targetId = hash.substring(1); 633 // Nếu không tìm thấy id trên trang (tab không có ná»i dung) 634 if (!document.getElementById(targetId)) { 635 e.preventDefault(); // chặn event Äá»i hash mặc Äá»nh (Äá» không trigger hashchange gây lá»i main.js) 636 if (history.pushState) { 637 history.pushState(null, null, hash); // Chá»§ Äá»ng Äá»i URL trên thanh Äá»a chá» 638 highlightCurrentMenu(); // Cáºp nháºt highlight sau khi pushState 639 } 640 } 641 } 642 } 643 } 644 }); 645 });
646 647 // --- LOGIC HIGHLIGHT MENU --- 648 function highlightCurrentMenu() { 649 var currentPath = window.location.pathname; 650 var currentHash = window.location.hash; 651 652 // Remove current-page class everywhere 653 $('.current-page').removeClass('current-page'); 654 655 // Tìm tất cả các link trong menu (cả PC và mobile) 656 $('.header-menu a, .mobile-menu a').each(function() { 657 var href = $(this).attr('href'); 658 if (!href) return; 659 660 var a = document.createElement('a'); 661 a.href = href; 662 663 var aPath = a.pathname.startsWith('/') ? a.pathname : '/' + a.pathname; 664 var wPath = currentPath.startsWith('/') ? currentPath : '/' + currentPath; 665 666 var matchPath = (aPath === wPath || aPath === wPath + '.html' || aPath + '.html' === wPath); 667 668 // Trang chá»§ 669 if (href === '/' && currentPath === '/') { 670 $(this).addClass('current-page'); 671 $(this).closest('.menu-item').addClass('current-page'); 672 return; 673 } 674 if (href === '/') return; 675 676 if (matchPath) { 677 // Có hash 678 if (currentHash) { 679 if (a.hash === currentHash) { 680 $(this).addClass('current-page'); 681 // Highlight cả menu cha cá»§a PC nếu menu con ÄÆ°á»£c active 682 $(this).closest('.menu-item').addClass('current-page'); 683 // Highlight menu cha cá»§a Mobile 684 $(this).closest('.mobile-menu-item').children('a').addClass('current-page'); 685 } 686 } else { 687 // Không có hash, link trùng path và không có hash 688 if (!a.hash) { 689 $(this).addClass('current-page'); 690 $(this).closest('.menu-item').addClass('current-page'); 691 $(this).closest('.mobile-menu-item').children('a').addClass('current-page'); 692 } 693 } 694 } 695 }); 696 697 // Tá»± Äá»ng cuá»n ngang thanh tab cá»§a trang giá»i thiá»u Äá» tab active luôn hiá»n thá» ra giữa mà n hình (Äặc biá»t cho mobile) 698 setTimeout(function() { 699 var targetHash = currentHash || '#TongQuan'; 700 var targetTabLink = document.querySelector('.gioithieu-list-tab-news .tab-item a[href="' + targetHash + '"]'); 701 if (targetTabLink) { 702 var activeTab = targetTabLink.parentElement; 703 var container = document.querySelector('.gioithieu-list-tab-news'); 704 if (container) { 705 var tabLeft = activeTab.offsetLeft; 706 var tabWidth = activeTab.offsetWidth; 707 var containerWidth = container.clientWidth; 708 var scrollPos = tabLeft - (containerWidth / 2) + (tabWidth / 2); 709 710 if (container.scrollTo) { 711 container.scrollTo({ left: scrollPos, behavior: 'smooth' }); 712 } else { 713 container.scrollLeft = scrollPos; // Fallback cho trình duyá»t cÅ© 714 } 715 } 716 } 717 }, 100); 718 } 719 720 // Chạy lúc load trang 721 highlightCurrentMenu(); 722 723 // Chạy má»i khi hash thay Äá»i (click back/forward hoặc click hash link) 724 $(window).on('hashchange', function() { 725 highlightCurrentMenu(); 726 }); 727}); 728</script>
728 729 730</div> 731 732 <div id="DeltaPlaceHolderMain"> 733 734 <a id="mainContent" name="mainContent" tabindex="-1"></a> 735 736 737 <main> 738 <div class="ms-webpart-zone ms-fullWidth"> 739 <div id="MSOZoneCell_WebPartctl00_ctl43_g_47e52559_9551_42e7_abea_2ca7767d375f" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 740 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 741 <div WebPartID="47e52559-9551-42e7-abea-2ca7767d375f" HasPers="false" id="WebPartctl00_ctl43_g_47e52559_9551_42e7_abea_2ca7767d375f" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_47e52559_9551_42e7_abea_2ca7767d375f"> 742 743 744 745 746<style> 747 @media (min-width: 992px) { 748 .hide-on-desktop { 749 display: none !important; 750 } 751 } 752</style> 753 754 755<section class="news-section news-latest-section display-grid"> 756 <div class="container"> 757 <div class="news-latest-header"> 758 <h2 class="title-section">Tin má»i nhất</h2> 759 </div> 760 <div class="news-latest-layout"> 761 762 <article class="news-latest-main"> 763 <a href="/tin-tuc/tin-hoat-dong/tong-ket-trao-thuong-thanh-tich-tham-gia-hoi-thi-c-d101-t9819.html" class="item-img"> 764 <img src="https://tapchi.vdi.org.vn/quantri/knd/tintucvn/PublishingImages/TinTuc/AnhDaiDien/2026/09/att.zgjhc78hsft1fqh0atxecczmfhkcdtvzydtvzr0e5lk.jpeg" alt="Tá»ng kết, trao thưá»ng thà nh tÃch tham gia Há»i thi cán bá» Äoà n giá»i và tuyên truyá»n viên trẻ toà n quân nÄm 2026"> 765 </a> 766 <div class="item-content"> 767 <a href="/tin-tuc/tin-hoat-dong/tong-ket-trao-thuong-thanh-tich-tham-gia-hoi-thi-c-d101-t9819.html"> 768 <h3 class="title">Tá»ng kết, trao thưá»ng thà nh tÃch tham gia Há»i thi cán bá» Äoà n giá»i và tuyên truyá»n viên trẻ toà n quân nÄm 2026</h3> 769 </a> 770 771 <div class="date"> 772 <i class="fa-regular fa-clock"></i> 773 <span>30/09/2026 18:39:00</span> 774 </div> 775 776 <p class="des">CNQP&KT - Chiá»u 30/9, tại Nhà máy Z115, Tá»ng cục Công nghiá»p quá»c phòng (CNQP) tá» chức Há»i nghá» tá»ng kết, trao thưá»ng thà nh tÃch trong tham mưu, tá» chức tham gia Há»i thi cán bá» Äoà n giá»i và tuyên truyá»n viên trẻ toà n quân nÄm 2026. Thiếu tưá»ng Nguyá» n Äức TÄng, Ủy viên Thưá»ng vụ Äảng á»§y, Phó ChÃnh á»§y Tá»ng cục CNQP dá»± và phát biá»u chá» Äạo.</p> 777 778 </div> 779 </article> 780 781 782 <div class="news-latest-grid"> 783 784 <article class="news-latest-item"> 785 <a href="/tin-tuc/tin-tong-hop/huy-dong-chuyen-gia-nha-khoa-hoc-tham-gia-xay-dung-d104-t9669.html" class="item-img"> 786 <img src="/media/uploads/image/2024/10/11/123_3mHmjGw.jpg" alt="Huy Äá»ng chuyên gia, nhà khoa há»c tham gia xây dá»±ng các vÄn bản Äạt chất lượng"> 787 </a> 788 <div class="item-content"> 789 <a href="/tin-tuc/tin-tong-hop/huy-dong-chuyen-gia-nha-khoa-hoc-tham-gia-xay-dung-d104-t9669.html"> 790 <h4 class="title">Huy Äá»ng chuyên gia, nhà khoa há»c tham gia xây dá»±ng các vÄn bản Äạt chất lượng</h4> 791 </a> 792 793 <div class="date"> 794 <i class="fa-regular fa-clock"></i> 795 <span>11/10/2024 17:23:00</span> 796 </div> 797 798 </div> 799 </article> 800 801 <article class="news-latest-item">
802 <a href="/tin-tuc/tin-xuc-tien-thuong-mai/xuat-ban-tap-chi-cong-nghiep-quoc-phong-va-kinh-te-d102-t9664.html" class="item-img"> 803 <img src="/media/uploads/image/2024/10/11/123_Z6uvmTP.jpg" alt="Xuất bản Tạp chà Công nghiá»p quá»c phòng và Kinh tế sá» 202"> 804 </a> 805 <div class="item-content"> 806 <a href="/tin-tuc/tin-xuc-tien-thuong-mai/xuat-ban-tap-chi-cong-nghiep-quoc-phong-va-kinh-te-d102-t9664.html"> 807 <h4 class="title">Xuất bản Tạp chà Công nghiá»p quá»c phòng và Kinh tế sá» 202</h4> 808 </a> 809 810 <div class="date"> 811 <i class="fa-regular fa-clock"></i> 812 <span>11/10/2024 17:22:13</span> 813 </div> 814 815 </div> 816 </article> 817 818 <article class="news-latest-item"> 819 <a href="/tin-tuc/tin-co-so/nha-may-z199-don-nhan-huan-chuong-bao-ve-to-quoc-h-d103-t9666.html" class="item-img"> 820 <img src="/media/uploads/image/2024/10/11/tdn.jpg" alt="Nhà máy Z199 Äón nháºn Huân chương Bảo vá» Tá» quá»c hạng Ba"> 821 </a> 822 <div class="item-content"> 823 <a href="/tin-tuc/tin-co-so/nha-may-z199-don-nhan-huan-chuong-bao-ve-to-quoc-h-d103-t9666.html"> 824 <h4 class="title">Nhà máy Z199 Äón nháºn Huân chương Bảo vá» Tá» quá»c hạng Ba</h4> 825 </a> 826 827 <div class="date"> 828 <i class="fa-regular fa-clock"></i> 829 <span>11/10/2024 17:20:49</span> 830 </div> 831 832 </div> 833 </article> 834 835 <article class="news-latest-item"> 836 <a href="/tin-tuc/tin-hoat-dong/hoi-thi-dan-van-kheo-cua-tong-cuc-cong-nghiep-quoc-d101-t9667.html" class="item-img"> 837 <img src="/media/uploads/image/2024/10/11/123.jpg" alt="Há»i thi âDân váºn khéoâ cá»§a Tá»ng cục Công nghiá»p Quá»c phòng thà nh công tá»t Äẹp"> 838 </a> 839 <div class="item-content"> 840 <a href="/tin-tuc/tin-hoat-dong/hoi-thi-dan-van-kheo-cua-tong-cuc-cong-nghiep-quoc-d101-t9667.html"> 841 <h4 class="title">Há»i thi âDân váºn khéoâ cá»§a Tá»ng cục Công nghiá»p Quá»c phòng thà nh công tá»t Äẹp</h4> 842 </a> 843 844 <div class="date"> 845 <i class="fa-regular fa-clock"></i> 846 <span>11/10/2024 17:08:54</span> 847 </div> 848 849 </div> 850 </article> 851 852 <article class="news-latest-item hide-on-desktop"> 853 <a href="/tin-tuc/tin-tuc---su-kien/lay-chuyen-doi-so-lam-dong-luc-cho-tang-truong-kin-d90-t9654.html" class="item-img"> 854 <img src="/media/uploads/image/2024/10/10/A1.png" alt="Lấy chuyá»n Äá»i sá» là m Äá»ng lá»±c cho tÄng trưá»ng kinh tế và nÄng suất lao Äá»ng"> 855 </a> 856 <div class="item-content"> 857 <a href="/tin-tuc/tin-tuc---su-kien/lay-chuyen-doi-so-lam-dong-luc-cho-tang-truong-kin-d90-t9654.html"> 858 <h4 class="title">Lấy chuyá»n Äá»i sá» là m Äá»ng lá»±c cho tÄng trưá»ng kinh tế và nÄng suất lao Äá»ng</h4> 859 </a> 860 861 <div class="date"> 862 <i class="fa-regular fa-clock"></i> 863 <span>10/10/2024 16:33:40</span> 864 </div> 865 866 </div> 867 </article> 868 869 <article class="news-latest-item hide-on-desktop"> 870 <a href="/tin-tuc/tin-hoat-dong/tong-cuc-cong-nghiep-quoc-phong-to-chuc-tri-an-tai-d101-t962
8700.html" class="item-img"> 871 <img src="/media/uploads/image/2024/07/27/1.JPG" alt="Tá»ng cục Công nghiá»p quá»c phòng tá» chức tri ân tại Gia Lai và Kon Tum"> 872 </a> 873 <div class="item-content"> 874 <a href="/tin-tuc/tin-hoat-dong/tong-cuc-cong-nghiep-quoc-phong-to-chuc-tri-an-tai-d101-t9620.html"> 875 <h4 class="title">Tá»ng cục Công nghiá»p quá»c phòng tá» chức tri ân tại Gia Lai và Kon Tum</h4> 876 </a> 877 878 <div class="date"> 879 <i class="fa-regular fa-clock"></i> 880 <span>31/07/2024 13:33:48</span> 881 </div> 882 883 </div> 884 </article> 885 886 <article class="news-latest-item hide-on-desktop"> 887 <a href="/tin-tuc/tin-hoat-dong/khai-giang-lop-boi-duong-ky-nang-quan-ly-nha-nuoc--d101-t9583.html" class="item-img"> 888 <img src="/media/uploads/image/2024/07/01/2._Xi7pgR1.jpg" alt="Khai giảng lá»p bá»i dưỡng kỹ nÄng quản lý Nhà nưá»c cho cán bá» cÆ¡ quan Tá»ng cục Công nghiá»p quá»c phòng"> 889 </a> 890 <div class="item-content"> 891 <a href="/tin-tuc/tin-hoat-dong/khai-giang-lop-boi-duong-ky-nang-quan-ly-nha-nuoc--d101-t9583.html"> 892 <h4 class="title">Khai giảng lá»p bá»i dưỡng kỹ nÄng quản lý Nhà nưá»c cho cán bá» cÆ¡ quan Tá»ng cục Công nghiá»p quá»c phòng</h4> 893 </a> 894 895 <div class="date"> 896 <i class="fa-regular fa-clock"></i> 897 <span>09/07/2024 16:13:54</span> 898 </div> 899 900 </div> 901 </article> 902 903 <article class="news-latest-item hide-on-desktop"> 904 <a href="/tin-tuc/tin-co-so/an-tuong-hoi-thi-can-bo-cong-doan-an-toan-ve-sinh--d103-t9581.html" class="item-img"> 905 <img src="/media/uploads/image/2024/07/05/F9250A6B-23B2-408E-8BDB-9EB76504620C.jpeg" alt="Ấn tượng Há»i thi cán bá» công Äoà n, an toà n vá» sinh viên Nhà máy Z176"> 906 </a> 907 <div class="item-content"> 908 <a href="/tin-tuc/tin-co-so/an-tuong-hoi-thi-can-bo-cong-doan-an-toan-ve-sinh--d103-t9581.html"> 909 <h4 class="title">Ấn tượng Há»i thi cán bá» công Äoà n, an toà n vá» sinh viên Nhà máy Z176</h4> 910 </a> 911 912 <div class="date"> 913 <i class="fa-regular fa-clock"></i> 914 <span>09/07/2024 16:13:28</span> 915 </div> 916 917 </div> 918 </article> 919 920 </div> 921 922 </div> 923 <div class="news-latest-actions"> 924 <a href="/tin-tuc/tin-tuc-su-kien.html" class="view-all"> 925 Xem tất cả 926 <i class="fas fa-arrow-right"></i> 927 </a> 928 </div> 929 </div> 930</section> 931 932 </div><div class="ms-clear"></div></div> 933 </div><div class="ms-PartSpacingVertical"></div> 934 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_ee22245d_de87_499d_b6bf_483f8001b7f4" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 935 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 936 <div WebPartID="ee22245d-de87-499d-b6bf-483f8001b7f4" HasPers="false" id="WebPartctl00_ctl43_g_ee22245d_de87_499d_b6bf_483f8001b7f4" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_ee22245d_de87_499d_b6bf_483f8001b7f4"> 937 938<section class="ad-banner-section display-grid"> 939 <div class="container"> 940 <div class="swiper ad-banner-slider"> 941 <div class="swiper-wrapper"> 942 943 <div class="swiper-slide"> 944 <a href='https://vdi.org.vn/tin-tuc/tin-hoat-dong/trien-lam-quoc-phong-quoc-te-viet-nam-2024-dot-pha-d101-t9813.html' 945 target="_blank" 946 class="ad-banner-link" 947 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 100, this);"> 948 <img class="ad-banner-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/gemini_generated_image_iwblciwblciwblci.png" alt="Banner 1" /> 949 </a> 950 </div> 951 952 <div class="swiper-slide"> 953 <a href='https://vdi.org.vn/tin-tuc/tin-hoat-dong/hoi-thi-dan-van-kheo-cua-tong-cuc-cong-nghiep-quoc-d101-t9667.html' 954 target="_blank" 955 class="ad-banner-link" 956 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 99, this);"> 957 <img class="ad-banner-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/header-banner-1.png" alt="Banner 2" /> 958 </a> 959 </div> 960 961 <div class="swiper-slide"> 962 <a href='https://vdi.org.vn/tin-tuc/tin-hoat-dong/hoi-thi-dan-van-kheo-cua-tong-cuc-cong-nghiep-quoc-d101-t9667.html' 963 target="_blank" 964 class="ad-banner-link" 965 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 98, this);"> 966 <img class="ad-banner-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/header-banner-2.png" alt="Banner 3" /> 967 </a> 968 </div> 969 970 </div> 971 972 <div class="swiper-pagination ad-banner-pagination"></div> 973 <div class="swiper-button-prev ad-banner-prev"></div> 974 <div class="swiper-button-next ad-banner-next"></div> 975 976 </div> 977 </div> 978</section> 979 980<style> 981 .ad-banner-section { 982 padding: 24px 0; 983 width: 100%; 984 overflow: hidden; 985 } 986 987 .ad-banner-section > .container { 988 width: 100%; 989 max-width: 1110px; 990 } 991 992 .ad-banner-section .ad-banner-slider { 993 position: relative; 994 width: 100%; 995 border-radius: 8px; 996 overflow: hidden; 997 background: #f5f5f5; 998 } 999 1000 /* Chưa init Swiper: chá» hiá»n 1 slide, tránh xếp ngang vỡ mobile */ 1001 .ad-banner-section .ad-banner-slider:not(.swiper-initialized) .swiper-wrapper { 1002 display: block; 1003 width: 100%; 1004 } 1005 1006 .ad-banner-section .ad-banner-slider:not(.swiper-initialized) .swiper-slide { 1007 display: none; 1008 width: 100% !important; 1009 } 1010 1011 .ad-banner-section .ad-banner-slider:not(.swiper-initialized) .swiper-slide:first-child { 1012 display: block; 1013 } 1014 1015 .ad-banner-section .ad-banner-slider .swiper-slide { 1016 width: 100% !important; 1017 height: auto; 1018 } 1019 1020 .ad-banner-section .ad-banner-link { 1021 display: block; 1022 width: 100%; 1023 aspect-ratio: 1110 / 280; 1024 overflow: hidden; 1025 line-height: 0; 1026 background: #e8e8e8; 1027 } 1028 1029 .ad-banner-section .ad-banner-img { 1030 display: block; 1031 width: 100%; 1032 height: 100%; 1033 object-fit: cover; 1034 object-position: center; 1035 border-radius: 0; 1036 } 1037 1038 .ad-banner-section .ad-banner-pagination { 1039 bottom: 12px !important; 1040 z-index: 3; 1041 } 1042 1043 .ad-banner-section .ad-banner-pagination .swiper-pagination-bullet { 1044 width: 28px; 1045 height: 4px; 1046 border-radius: 4px; 1047 background: rgba(255, 255, 255, 0.6); 1048 opacity: 1;
1049 } 1050 1051 .ad-banner-section .ad-banner-pagination .swiper-pagination-bullet-active { 1052 background: #ffc702; 1053 } 1054 1055 /* MÅ©i tên giữa ảnh trái/phải â luôn hiá»n tablet/mobile */ 1056 .ad-banner-section .ad-banner-prev, 1057 .ad-banner-section .ad-banner-next, 1058 .ad-banner-section .ad-banner-prev.swiper-button-lock, 1059 .ad-banner-section .ad-banner-next.swiper-button-lock, 1060 .ad-banner-section .ad-banner-prev.swiper-button-disabled, 1061 .ad-banner-section .ad-banner-next.swiper-button-disabled { 1062 display: flex !important; 1063 align-items: center; 1064 justify-content: center; 1065 visibility: visible !important; 1066 pointer-events: auto !important; 1067 position: absolute !important; 1068 top: 50% !important; 1069 transform: translateY(-50%) !important; 1070 width: 36px !important; 1071 height: 36px !important; 1072 margin: 0 !important; 1073 margin-top: 0 !important; 1074 z-index: 20 !important; 1075 border: 2px solid #fff; 1076 border-radius: 50%; 1077 background: rgba(0, 81, 38, 0.85); 1078 color: #fff; 1079 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); 1080 opacity: 1 !important; 1081 cursor: pointer; 1082 } 1083 1084 .ad-banner-section .ad-banner-prev { 1085 left: 10px !important; 1086 right: auto !important; 1087 } 1088 1089 .ad-banner-section .ad-banner-next { 1090 right: 10px !important; 1091 left: auto !important; 1092 } 1093 1094 .ad-banner-section .ad-banner-prev::after, 1095 .ad-banner-section .ad-banner-next::after { 1096 font-size: 14px; 1097 font-weight: 700; 1098 } 1099 1100 .ad-banner-section .ad-banner-prev:hover, 1101 .ad-banner-section .ad-banner-next:hover { 1102 background: #005126; 1103 border-color: #ffc702; 1104 color: #ffc702; 1105 } 1106 1107 @media (max-width: 991px) { 1108 .ad-banner-section { 1109 padding: 20px 0; 1110 } 1111 1112 .ad-banner-section .ad-banner-link { 1113 aspect-ratio: 16 / 5; 1114 } 1115 1116 .ad-banner-section .ad-banner-prev, 1117 .ad-banner-section .ad-banner-next, 1118 .ad-banner-section .ad-banner-prev.swiper-button-lock, 1119 .ad-banner-section .ad-banner-next.swiper-button-lock { 1120 display: flex !important; 1121 width: 32px !important; 1122 height: 32px !important; 1123 } 1124 1125 .ad-banner-section .ad-banner-prev::after, 1126 .ad-banner-section .ad-banner-next::after { 1127 font-size: 12px; 1128 } 1129 } 1130 1131 @media (max-width: 768px) { 1132 .ad-banner-section { 1133 padding: 16px 0; 1134 } 1135 1136 .ad-banner-section .ad-banner-slider { 1137 border-radius: 6px; 1138 } 1139 1140 .ad-banner-section .ad-banner-link { 1141 aspect-ratio: 16 / 6; 1142 } 1143 1144 .ad-banner-section .ad-banner-prev, 1145 .ad-banner-section .ad-banner-next, 1146 .ad-banner-section .ad-banner-prev.swiper-button-lock, 1147 .ad-banner-section .ad-banner-next.swiper-button-lock { 1148 display: flex !important; 1149 width: 32px !important; 1150 height: 32px !important; 1151 } 1152 1153 .ad-banner-section .ad-banner-prev { 1154 left: 8px !important; 1155 } 1156 1157 .ad-banner-section .ad-banner-next { 1158 right: 8px !important; 1159 } 1160 1161 .ad-banner-section .ad-banner-pagination { 1162 bottom: 8px !important; 1163 } 1164 1165 .ad-banner-section .ad-banner-pagination .swiper-pagination-bullet { 1166 width: 20px; 1167 height: 3px; 1168 } 1169 } 1170 1171 @media (max-width: 576px) { 1172 .ad-banner-section { 1173 padding: 12px 0; 1174 } 1175 1176 .ad-banner-section .ad-banner-link { 1177 aspect-ratio: 2 / 1; 1178 } 1179 1180 .ad-banner-section .ad-banner-prev, 1181 .ad-banner-section .ad-banner-next, 1182 .ad-banner-section .ad-banner-prev.swiper-button-lock, 1183 .ad-banner-section .ad-banner-next.swiper-button-lock { 1184 display: flex !important; 1185 width: 30px !important; 1186 height: 30px !important; 1187 } 1188 1189 .ad-banner-section .ad-banner-prev::after, 1190 .ad-banner-section .ad-banner-next::after { 1191 font-size: 11px; 1192 } 1193 1194 .ad-banner-section .ad-banner-pagination .swiper-pagination-bullet { 1195 width: 16px; 1196 } 1197 } 1198 1199 @media (max-width: 425px) { 1200 .ad-banner-section .ad-banner-link { 1201 aspect-ratio: 16 / 9; 1202 } 1203 1204 .ad-banner-section .ad-banner-pagination { 1205 bottom: 6px !important; 1206 } 1207 } 1208</style>
1209<script> 1210 (function () { 1211 function initAdBannerSliders() { 1212 if (typeof Swiper === "undefined") return; 1213 1214 document.querySelectorAll(".ad-banner-section .ad-banner-slider").forEach(function (el) { 1215 if (el.dataset.inited === "1") return; 1216 el.dataset.inited = "1"; 1217 1218 var slideCount = el.querySelectorAll(".swiper-slide").length; 1219 var hasMultiple = slideCount > 1; 1220 1221 new Swiper(el, { 1222 slidesPerView: 1, 1223 spaceBetween: 0, 1224 loop: false, 1225 rewind: hasMultiple, 1226 speed: 800, 1227 effect: "fade", 1228 fadeEffect: { crossFade: true }, 1229 observer: true, 1230 observeParents: true, 1231 autoplay: hasMultiple 1232 ? { delay: 8000, disableOnInteraction: false, pauseOnMouseEnter: true } 1233 : false, 1234 pagination: hasMultiple 1235 ? { el: el.querySelector(".ad-banner-pagination"), clickable: true } 1236 : undefined, 1237 navigation: hasMultiple 1238 ? { 1239 nextEl: el.querySelector(".ad-banner-next"), 1240 prevEl: el.querySelector(".ad-banner-prev"), 1241 disabledClass: "is-nav-disabled", 1242 lockClass: "is-nav-locked", 1243 } 1244 : undefined, 1245 }); 1246 }); 1247 } 1248 1249 document.addEventListener("DOMContentLoaded", initAdBannerSliders); 1250 window.addEventListener("load", initAdBannerSliders); 1251 })(); 1252</script>
1252 1253 1254
1255<script> 1256 window.countClick = function (urlList, itemId, linkElement) { 1257 var url = '/UserControls/Publishing/QuangCao/UpdateClickCount.aspx' + 1258 '?UrlListProcess=' + urlList + 1259 '&itemId=' + itemId; 1260 1261 // Không xá» lý nếu link rá»ng hoặc javascript:; 1262 if (!linkElement.href || linkElement.href.indexOf('javascript:;') !== -1) { 1263 return false; 1264 } 1265 1266 // Gá»i request ngầm Äếm click (fire-and-forget) 1267 if (typeof navigator.sendBeacon === "function") { 1268 navigator.sendBeacon(url); 1269 } else { 1270 $.get(url); 1271 } 1272 1273 // Nếu thẻ <a> chưa có target nhưng cần má» tab má»i như cÅ©, set target 1274 // (Trưá»c Äây code dùng window.open('_blank') cho má»i link) 1275 if (!linkElement.getAttribute('target') && !linkElement.className.includes('category')) { 1276 linkElement.setAttribute('target', '_blank'); 1277 } 1278 1279 // Cho phép thẻ <a> hoạt Äá»ng tá»± nhiên Äá» tránh bá» Safari block popup 1280 return true; 1281 }; 1282</script>
1282 1283 </div><div class="ms-clear"></div></div> 1284 </div><div class="ms-PartSpacingVertical"></div> 1285 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_1a619b0a_db1b_4e2b_9f36_2b2d65c81801" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 1286 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 1287 <div WebPartID="1a619b0a-db1b-4e2b-9f36-2b2d65c81801" HasPers="false" id="WebPartctl00_ctl43_g_1a619b0a_db1b_4e2b_9f36_2b2d65c81801" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_1a619b0a_db1b_4e2b_9f36_2b2d65c81801"> 1288 1289<section class="video-section video-section-home display-grid"> 1290 <div class="video-section-inner container"> 1291 <h2 class="title-section">Video</h2> 1292 <div class="video-wrapper"> 1293 1294 <div class="main-video"> 1295 <div class="video-play"> 1296 <div id="mainVideo" class="video-container"> 1297 <!-- Video will be loaded here dynamically --> 1298 </div> 1299 1300 </div> 1301 <div class="video-content"> 1302 <div class="video-title"> 1303 <h3 class="sub-title">Bá» Quá»c Phòng</h3> 1304 <h2 class="title">Radar cảnh giá»i VRS-2DM do ngành CNQP Viá»t Nam sản xuất</h2> 1305 </div> 1306 <div class="play-btn"> 1307 <a class="play-video"> 1308 <span class="text">Play video</span> 1309 <img src="/Publishing_Resources/CongThongTin/assets/images/play-video.png" alt="play video"> 1310 </a> 1311 </div> 1312 </div> 1313 <div class="video-playlist-dock"> 1314 <div class="video-list-panel"> 1315 <div class="video-list swiper"> 1316 <div class="swiper-wrapper"> 1317 1318 <div class="video-item swiper-slide active" data-src="https://www.youtube.com/watch?v=hRGD9GPbQUk" data-poster="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/21092021vthuy38.jpg"> 1319 <div class="video-thumbnail"> 1320 <img src="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/21092021vthuy38.jpg" alt="Radar cảnh giá»i VRS-2DM do ngành CNQP Viá»t Nam sản xuất"> 1321 <div class="play-icon"> 1322 <img src="/Publishing_Resources/CongThongTin/assets/images/play-video.png" alt="Radar cảnh giá»i VRS-2DM do ngành CNQP Viá»t Nam sản xuất"> 1323 </div> 1324 </div> 1325 </div> 1326 1327 <div class="video-item swiper-slide" data-src="https://www.youtube.com/watch?v=dm6J-Hh0pkI" data-poster="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/111111.jpg"> 1328 <div class="video-thumbnail"> 1329 <img src="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/111111.jpg" alt="Công nghiá»p quá»c phòng Viá»t Nam - Xây dá»±ng và bảo vá» tá» quá»c"> 1330 <div class="play-icon"> 1331 <img src="/Publishing_Resources/CongThongTin/assets/images/play-video.png" alt="Công nghiá»p quá»c phòng Viá»t Nam - Xây dá»±ng và bảo vá» tá» quá»c"> 1332 </div> 1333 </div> 1334 </div> 1335 1336 <div class="video-item swiper-slide" data-src="https://www.youtube.com/watch?v=rZZ2xwORHrw" data-poster="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/nvc_5207.jpg"> 1337 <div class="video-thumbnail"> 1338 <img src="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/nvc_5207.jpg" alt="NGƯá»I THUYá»N TRƯá»NG NHÀ MÁY Z189 - Tá»NG CỤC CNQP"> 1339 <div class="play-icon"> 1340 <img src="/Publishing_Resources/CongThongTin/assets/images/play-video.png" alt="NGƯá»I THUYá»N TRƯá»NG NHÀ MÁY Z189 - Tá»NG CỤC CNQP"> 1341 </div> 1342 </div> 1343 </div> 1344 1345 <div class="video-item swiper-slide" data-src="https://www.youtube.com/watch?v=CRLQCqc2Ynk" data-poster="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/img3182-16704734533681051167907-16705683194181015432403.jpg"> 1346 <div class="video-thumbnail"> 1347 <img src="/quantri/knd/media/PublishingImages/AnhDaiDien/2026/04/img3182-16704734533681051167907-16705683194181015432403.jpg" alt="Công Nghiá»p Quá»c Phòng Viá»t Nam Äã Sản Xuất ÄÆ°á»£c Những VÅ© Khí Gì"> 1348 <div class="play-icon"> 1349 <img src="/Publishing_Resources/CongThongTin/assets/images/play-video.png" alt="Công Nghiá»p Quá»c Phòng Viá»t Nam Äã Sản Xuất ÄÆ°á»£c Những VÅ© Khí Gì"> 1350 </div> 1351 </div> 1352 </div> 1353 1354 </div> 1355 </div> 1356 </div> 1357 <button type="button" class="video-list-toggle" aria-expanded="false" aria-label="Xem danh sách video">
1358 <span class="video-list-toggle-icon" aria-hidden="true"></span> 1359 </button> 1360 </div> 1361 </div> 1362 1363 </div> 1364 </div> 1365</section> 1366 1367 1368<style> 1369/* wpTCQPPublishingVideoTrangChu - full width, playlist overlay trên ná»n video */ 1370.video-section-home .video-wrapper { 1371 width: 100%; 1372 max-width: 800px !important; 1373 margin: 20px auto 0 auto !important; 1374 border-radius: 8px; 1375 overflow: hidden; 1376} 1377 1378.video-section-home .main-video { 1379 border-radius: 8px; 1380 overflow: hidden; 1381} 1382 1383.video-section-home .video-playlist-dock { 1384 position: absolute; 1385 left: 0; 1386 right: 0; 1387 bottom: 10px; 1388 z-index: 9; 1389 display: flex; 1390 flex-direction: column; 1391 align-items: center; 1392 pointer-events: none; 1393 transition: bottom 0.25s ease; 1394} 1395 1396.video-section-home .main-video.controls-visible .video-playlist-dock { 1397 bottom: 54px; 1398} 1399 1400.video-section-home .video-wrapper.is-playlist-open .video-playlist-dock { 1401 bottom: 54px; 1402} 1403 1404.video-section-home #mainVideo video::-webkit-media-controls, 1405.video-section-home #mainVideo video::-webkit-media-controls-enclosure { 1406 display: none !important; 1407} 1408 1409.video-section-home .video-play { 1410 position: absolute; 1411 top: 0; 1412 left: 0; 1413 width: 100%; 1414 height: 100%; 1415} 1416 1417.video-section-home .video-custom-controls { 1418 position: absolute; 1419 left: 0; 1420 right: 0; 1421 bottom: 0; 1422 z-index: 8; 1423 padding: 28px 16px 10px; 1424 background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.55) 45%, rgba(0, 0, 0, 0.88) 100%); 1425 opacity: 0; 1426 visibility: hidden; 1427 transition: opacity 0.25s ease, visibility 0.25s ease; 1428 pointer-events: none; 1429} 1430 1431.video-section-home .video-custom-controls.is-visible { 1432 opacity: 1; 1433 visibility: visible; 1434 pointer-events: auto; 1435} 1436 1437.video-section-home .video-progress-wrap { 1438 position: relative; 1439 height: 18px; 1440 display: flex;
1441 align-items: center; 1442} 1443 1444.video-section-home .video-progress-track { 1445 position: absolute; 1446 left: 0; 1447 right: 0; 1448 height: 3px; 1449 background: rgba(255, 255, 255, 0.28); 1450 border-radius: 3px; 1451 overflow: hidden; 1452} 1453 1454.video-section-home .video-progress-played { 1455 height: 100%; 1456 width: 0; 1457 background: #ffc702; 1458 border-radius: 3px; 1459 transition: width 0.08s linear; 1460} 1461 1462.video-section-home .video-progress-range { 1463 position: relative; 1464 z-index: 2; 1465 width: 100%; 1466 height: 18px; 1467 margin: 0; 1468 opacity: 0; 1469 cursor: pointer; 1470} 1471 1472.video-section-home .video-controls-bar { 1473 display: flex; 1474 align-items: center; 1475 gap: 10px; 1476 margin-top: 2px; 1477} 1478 1479.video-section-home .video-ctrl-btn { 1480 width: 32px; 1481 height: 32px; 1482 padding: 0; 1483 border: none; 1484 background: transparent; 1485 cursor: pointer; 1486 flex-shrink: 0; 1487} 1488 1489.video-section-home .video-ctrl-play::before { 1490 content: ""; 1491 display: block; 1492 width: 0; 1493 height: 0; 1494 margin-left: 10px; 1495 border-top: 7px solid transparent; 1496 border-bottom: 7px solid transparent; 1497 border-left: 12px solid #fff; 1498} 1499 1500.video-section-home .video-ctrl-play.is-playing::before { 1501 width: 12px; 1502 height: 14px; 1503 margin-left: 10px; 1504 border: none; 1505 background: linear-gradient(to right, #fff 0, #fff 35%, transparent 35%, transparent 65%, #fff 65%, #fff 100%); 1506} 1507 1508.video-section-home .video-ctrl-volume { 1509 display: flex;
1510 align-items: center; 1511 gap: 6px; 1512 margin-left: auto; 1513 min-width: 0; 1514} 1515 1516.video-section-home .video-volume-wrap { 1517 position: relative; 1518 width: 88px; 1519 height: 32px; 1520 display: flex; 1521 align-items: center; 1522 flex-shrink: 0; 1523} 1524 1525.video-section-home .video-volume-track { 1526 position: absolute; 1527 left: 0; 1528 right: 0; 1529 height: 3px; 1530 background: rgba(255, 255, 255, 0.28); 1531 border-radius: 3px; 1532 overflow: hidden; 1533} 1534 1535.video-section-home .video-volume-level { 1536 height: 100%; 1537 width: 100%; 1538 background: #fff; 1539 border-radius: 3px; 1540} 1541 1542.video-section-home .video-volume-range { 1543 position: relative; 1544 z-index: 2; 1545 width: 100%; 1546 height: 32px; 1547 margin: 0; 1548 opacity: 0; 1549 cursor: pointer; 1550} 1551 1552.video-section-home .video-ctrl-mute::before { 1553 content: ""; 1554 display: block; 1555 width: 16px; 1556 height: 14px; 1557 margin: 9px auto; 1558 background: 1559 linear-gradient(#fff, #fff) 0 5px / 5px 4px no-repeat, 1560 linear-gradient(#fff, #fff) 5px 3px / 3px 8px no-repeat; 1561 clip-path: polygon(0 40%, 35% 40%, 55% 20%, 55% 80%, 35% 60%, 0 60%); 1562} 1563 1564.video-section-home .video-ctrl-mute.is-muted::before { 1565 opacity: 0.55; 1566} 1567 1568.video-section-home .video-ctrl-time { 1569 color: rgba(255, 255, 255, 0.92); 1570 font-size: 13px; 1571 font-weight: 500; 1572 letter-spacing: 0.02em; 1573 user-select: none; 1574} 1575 1576.video-section-home .video-playlist-dock > * { 1577 pointer-events: auto; 1578} 1579 1580.video-section-home .video-list-panel { 1581 display: none !important; 1582 width: 100%; 1583 margin: 0 !important; 1584 padding: 20px 24px 12px !important; 1585 background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.72) 38%, rgba(0, 0, 0, 0.92) 100%); 1586} 1587 1588.video-section-home .video-wrapper.is-playlist-open .video-list-panel { 1589 display: block !important; 1590} 1591 1592.video-section-home .video-list { 1593 margin-top: 0 !important; 1594 padding: 0 !important; 1595 position: relative !important; 1596 z-index: 1 !important; 1597} 1598 1599.video-section-home .video-list .video-item { 1600 width: 220px !important; 1601} 1602 1603.video-section-home .video-list-toggle { 1604 display: flex !important; 1605 align-items: center; 1606 justify-content: center; 1607 width: 56px; 1608 height: 28px; 1609 padding: 0; 1610 border: none; 1611 border-radius: 8px 8px 0 0; 1612 background: rgba(0, 0, 0, 0.72); 1613 backdrop-filter: blur(4px); 1614 cursor: pointer; 1615} 1616 1617.video-section-home .video-list-toggle-icon { 1618 display: block; 1619 width: 10px; 1620 height: 10px; 1621 border-right: 2px solid #fff; 1622 border-bottom: 2px solid #fff; 1623 transform: rotate(-135deg); 1624 margin-top: 2px; 1625 transition: transform 0.3s ease; 1626} 1627 1628.video-section-home .video-wrapper.is-playlist-open .video-list-toggle-icon { 1629 transform: rotate(45deg); 1630 margin-top: -2px; 1631} 1632 1633@media (max-width: 768px) { 1634 .video-section-home .video-wrapper { 1635 max-width: 100% !important; 1636 } 1637 1638 .video-section-home .video-playlist-dock { 1639 bottom: 8px; 1640 } 1641 1642 .video-section-home .main-video.controls-visible .video-playlist-dock, 1643 .video-section-home .video-wrapper.is-playlist-open .video-playlist-dock { 1644 bottom: 48px; 1645 } 1646 1647 .video-section-home .video-list .video-item { 1648 width: 160px !important; 1649 } 1650 1651 .video-section-home .video-list-panel { 1652 padding: 14px 16px 10px !important; 1653 } 1654 1655 .video-section-home .video-volume-wrap { 1656 width: 64px; 1657 } 1658} 1659</style> 1660 1661
1661<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
1661 1662
1662<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
vendor: 2 bytes, line 1662
1662
1663<script> 1664 $(document).ready(function () { 1665 const mainVideoContainer = document.getElementById("mainVideo"); 1666 const $section = $(".video-section-home"); 1667 const $videoWrapper = $section.find(".video-wrapper"); 1668 const $videoListToggle = $section.find(".video-list-toggle"); 1669 const $videoListPanel = $section.find(".video-list-panel"); 1670 const $videoList = $section.find(".video-list"); 1671 const $videoItems = $section.find(".video-item"); 1672 const $videoContent = $section.find(".video-content"); 1673 const $playBtn = $section.find(".video-content .play-btn"); 1674 const $videoPlay = $section.find(".video-play"); 1675 let currentVideo = null; 1676 let isYoutubeVideo = false; 1677 let player = null; 1678 let isVideoInViewport = false; 1679 1680 // Function to determine video type based on URL 1681 function determineVideoType(url) { 1682 return url.includes("youtube.com") || url.includes("youtu.be") ? "youtube" : "local"; 1683 } 1684 1685 // Update video items with correct data-type 1686 $videoItems.each(function () { 1687 const videoSrc = $(this).attr("data-src"); 1688 const videoType = determineVideoType(videoSrc); 1689 $(this).attr("data-type", videoType); 1690 }); 1691 1692 // Khá»i tạo Swiper 1693 const videoSwiper = new Swiper($section.find(".video-list")[0], { 1694 slidesPerView: "auto", 1695 grabCursor: true, 1696 }); 1697 1698 function collapsePlaylist() { 1699 $videoWrapper.removeClass("is-playlist-open"); 1700 $videoListPanel.hide(); 1701 $videoListToggle.attr("aria-expanded", "false"); 1702 } 1703 1704 function expandPlaylist() { 1705 $videoWrapper.addClass("is-playlist-open"); 1706 $videoListPanel.show(); 1707 $videoListToggle.attr("aria-expanded", "true"); 1708 showCustomControls(true); 1709 if (videoSwiper) { 1710 videoSwiper.update(); 1711 } 1712 } 1713 1714 function togglePlaylist() { 1715 if ($videoWrapper.hasClass("is-playlist-open")) { 1716 collapsePlaylist(); 1717 } else { 1718 expandPlaylist(); 1719 } 1720 } 1721 1722 collapsePlaylist(); 1723 1724 $videoListToggle.on("click", function (e) { 1725 e.preventDefault(); 1726 e.stopPropagation(); 1727 togglePlaylist(); 1728 }); 1729 1730 const $mainVideo = $section.find(".main-video"); 1731 let controlsHideTimer = null; 1732 1733 function formatVideoTime(seconds) { 1734 if (!isFinite(seconds) || seconds < 0) return "0:00"; 1735 const mins = Math.floor(seconds / 60); 1736 const secs = Math.floor(seconds % 60); 1737 return mins + ":" + (secs < 10 ? "0" : "") + secs; 1738 } 1739 1740 function showCustomControls(force) { 1741 const $controls = $section.find(".video-custom-controls"); 1742 if (!$controls.length) return; 1743 $controls.addClass("is-visible"); 1744 $mainVideo.addClass("controls-visible"); 1745 if (!force && currentVideo && !currentVideo.paused) { 1746 scheduleHideCustomControls(); 1747 } 1748 } 1749 1750 function hideCustomControls() { 1751 if ($videoWrapper.hasClass("is-playlist-open")) return; 1752 if (currentVideo && currentVideo.tagName === "VIDEO" && currentVideo.paused) return; 1753 $section.find(".video-custom-controls").removeClass("is-visible"); 1754 $mainVideo.removeClass("controls-visible"); 1755 } 1756 1757 function scheduleHideCustomControls() { 1758 clearTimeout(controlsHideTimer); 1759 controlsHideTimer = setTimeout(hideCustomControls, 2800); 1760 } 1761 1762 function removeCustomVideoControls() { 1763 clearTimeout(controlsHideTimer); 1764 $section.find(".video-custom-controls").remove(); 1765 $mainVideo.removeClass("controls-visible"); 1766 $mainVideo.off(".videoCtrl"); 1767 } 1768 1769 function setupCustomVideoControls(video) { 1770 removeCustomVideoControls(); 1771 1772 const controls = document.createElement("div");
1773 controls.className = "video-custom-controls"; 1774 controls.innerHTML = 1775 '<div class="video-progress-wrap">' + 1776 ' <div class="video-progress-track"><div class="video-progress-played"></div></div>' + 1777 ' <input type="range" class="video-progress-range" min="0" max="100" step="0.1" value="0" aria-label="Tiến trình video">' + 1778 "</div>" + 1779 '<div class="video-controls-bar">' + 1780 ' <button type="button" class="video-ctrl-btn video-ctrl-play" aria-label="Play/Pause"></button>' + 1781 ' <span class="video-ctrl-time"><span class="video-time-current">0:00</span> / <span class="video-time-duration">0:00</span></span>' + 1782 ' <div class="video-ctrl-volume">' + 1783 ' <button type="button" class="video-ctrl-btn video-ctrl-mute" aria-label="Tắt/báºt tiếng"></button>' + 1784 ' <div class="video-volume-wrap">' + 1785 ' <div class="video-volume-track"><div class="video-volume-level"></div></div>' + 1786 ' <input type="range" class="video-volume-range" min="0" max="100" step="1" value="100" aria-label="Ãm lượng">' + 1787 " </div>" + 1788 " </div>" + 1789 "</div>"; 1790 1791 $section.find(".video-play").append(controls); 1792 1793 const $controls = $(controls); 1794 const $ctrlPlay = $controls.find(".video-ctrl-play"); 1795 const $ctrlMute = $controls.find(".video-ctrl-mute"); 1796 const $volumeRange = $controls.find(".video-volume-range"); 1797 const $volumeLevel = $controls.find(".video-volume-level"); 1798 const $range = $controls.find(".video-progress-range"); 1799 const $played = $controls.find(".video-progress-played"); 1800 const $timeCurrent = $controls.find(".video-time-current"); 1801 const $timeDuration = $controls.find(".video-time-duration"); 1802 1803 function updateProgress() { 1804 const pct = video.duration ? (video.currentTime / video.duration) * 100 : 0; 1805 $range.val(pct); 1806 $played.css("width", pct + "%"); 1807 $timeCurrent.text(formatVideoTime(video.currentTime)); 1808 } 1809 1810 video.addEventListener("loadedmetadata", function () { 1811 $timeDuration.text(formatVideoTime(video.duration)); 1812 }); 1813 1814 video.addEventListener("timeupdate", updateProgress); 1815 video.addEventListener("volumechange", updateVolumeUI); 1816 1817 video.addEventListener("play", function () { 1818 $ctrlPlay.addClass("is-playing"); 1819 hideVideoContent(); 1820 scheduleHideCustomControls(); 1821 }); 1822 1823 video.addEventListener("pause", function () { 1824 $ctrlPlay.removeClass("is-playing"); 1825 showCustomControls(true); 1826 }); 1827 1828 video.addEventListener("ended", function () { 1829 $ctrlPlay.removeClass("is-playing"); 1830 showVideoContent(); 1831 showCustomControls(true); 1832 }); 1833 1834 let lastVolume = video.volume > 0 ? video.volume : 1; 1835 1836 function updateVolumeUI() { 1837 const level = video.muted ? 0 : video.volume; 1838 const pct = Math.round(level * 100); 1839 $volumeRange.val(pct); 1840 $volumeLevel.css("width", pct + "%"); 1841 $ctrlMute.toggleClass("is-muted", video.muted || level === 0); 1842 } 1843 1844 $ctrlMute.on("click", function (e) { 1845 e.preventDefault(); 1846 e.stopPropagation(); 1847 if (video.muted || video.volume === 0) { 1848 video.muted = false; 1849 video.volume = lastVolume > 0 ? lastVolume : 0.7; 1850 } else { 1851 lastVolume = video.volume; 1852 video.muted = true; 1853 } 1854 updateVolumeUI(); 1855 }); 1856 1857 $volumeRange.on("input", function () { 1858 const val = parseFloat(this.value) / 100; 1859 video.volume = val; 1860 video.muted = val === 0; 1861 if (val > 0) { 1862 lastVolume = val; 1863 } 1864 updateVolumeUI(); 1865 }); 1866 1867 $ctrlPlay.on("click", function (e) { 1868 e.preventDefault(); 1869 e.stopPropagation(); 1870 if (video.paused) { 1871 video.play(); 1872 } else { 1873 video.pause(); 1874 } 1875 }); 1876 1877 $range.on("input", function () { 1878 const pct = parseFloat(this.value); 1879 $played.css("width", pct + "%"); 1880 if (video.duration) { 1881 $timeCurrent.text(formatVideoTime((pct / 100) * video.duration)); 1882 } 1883 }); 1884 1885 $range.on("change", function () { 1886 if (video.duration) { 1887 video.currentTime = (parseFloat(this.value) / 100) * video.duration; 1888 } 1889 }); 1890 1891 $controls.on("click mousedown touchstart", function (e) { 1892 e.stopPropagation(); 1893 }); 1894 1895 $mainVideo.on("mousemove.videoCtrl touchstart.videoCtrl", function () { 1896 showCustomControls(false); 1897 }); 1898 1899 $ctrlMute.toggleClass("is-muted", video.muted); 1900 updateVolumeUI(); 1901 showCustomControls(true); 1902 } 1903
1904 function loadVideo(videoItem) { 1905 const videoSrc = videoItem.getAttribute("data-src"); 1906 const videoType = videoItem.getAttribute("data-type"); 1907 const poster = videoItem.getAttribute("data-poster"); 1908 1909 $videoItems.removeClass("active"); 1910 $(videoItem).addClass("active"); 1911 1912 mainVideoContainer.innerHTML = ""; 1913 removeCustomVideoControls(); 1914 isYoutubeVideo = videoType === "youtube"; 1915 player = null; 1916 1917 if (isYoutubeVideo) { 1918 1919 const iframe = document.createElement("iframe"); 1920 iframe.src = convertYouTubeUrl(videoSrc); 1921 iframe.setAttribute("frameborder", "0"); 1922 iframe.setAttribute("allowfullscreen", "1"); 1923 iframe.setAttribute( 1924 "allow", 1925 "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 1926 ); 1927 iframe.style.position = "absolute"; 1928 iframe.style.top = "0"; 1929 iframe.style.left = "0"; 1930 iframe.style.width = "100%"; 1931 iframe.style.height = "100%"; 1932 iframe.style.objectFit = "cover"; 1933 mainVideoContainer.appendChild(iframe); 1934 currentVideo = iframe; 1935 hideVideoContent(); 1936 $videoContent.addClass("youtube-mode"); 1937 1938 // Delay init player Äá» Äảm bảo iframe Äã render 1939 setTimeout(() => { 1940 player = new YT.Player(currentVideo, { 1941 events: { 1942 onReady: function () { 1943 if (isVideoInViewport) { 1944 playVideoFromScroll(); 1945 } 1946 }, 1947 onStateChange: function () { }, 1948 }, 1949 }); 1950 }, 500); 1951 } else { 1952 const video = document.createElement("video"); 1953 video.setAttribute("poster", poster); 1954 video.setAttribute("playsinline", ""); 1955 video.setAttribute("preload", "metadata"); 1956 const source = document.createElement("source"); 1957 source.setAttribute("src", videoSrc); 1958 source.setAttribute("type", "video/mp4"); 1959 video.style.width = "100%"; 1960 video.style.height = "100%"; 1961 video.style.objectFit = "cover"; 1962 video.appendChild(source); 1963 mainVideoContainer.appendChild(video); 1964 currentVideo = video; 1965 $videoContent.removeClass("youtube-mode"); 1966 setupCustomVideoControls(video); 1967 1968 video.onplay = function () { 1969 hideVideoContent(); 1970 }; 1971 1972 if (isVideoInViewport) { 1973 playVideoFromScroll(); 1974 } 1975 } 1976 } 1977 1978 // Function to convert YouTube URL to embed format 1979 function convertYouTubeUrl(url) { 1980 let videoId = ''; 1981 let embedUrl = ''; 1982 1983 // Handle youtu.be format 1984 if (url.includes('youtu.be/')) { 1985 videoId = url.split('youtu.be/')[1].split('?')[0]; 1986 } 1987 // Handle youtube.com/watch format 1988 else if (url.includes('youtube.com/watch')) { 1989 const urlParams = new URLSearchParams(url.split('?')[1]); 1990 videoId = urlParams.get('v'); 1991 } 1992 // Handle youtube.com/embed format 1993 else if (url.includes('youtube.com/embed/')) { 1994 videoId = url.split('youtube.com/embed/')[1].split('?')[0]; 1995 } 1996 // Handle youtube.com/v format 1997 else if (url.includes('youtube.com/v/')) { 1998 videoId = url.split('youtube.com/v/')[1].split('?')[0]; 1999 } 2000 // Handle youtube.com/e format 2001 else if (url.includes('youtube.com/e/')) { 2002 videoId = url.split('youtube.com/e/')[1].split('?')[0]; 2003 } 2004 // Handle youtube.com/user format 2005 else if (url.includes('youtube.com/user/')) { 2006 const parts = url.split('/'); 2007 videoId = parts[parts.length - 1].split('?')[0]; 2008 } 2009 // Handle youtube.com/channel format 2010 else if (url.includes('youtube.com/channel/')) { 2011 const parts = url.split('/'); 2012 videoId = parts[parts.length - 1].split('?')[0]; 2013 } 2014 // Handle youtube.com/c format 2015 else if (url.includes('youtube.com/c/')) { 2016 const parts = url.split('/'); 2017 videoId = parts[parts.length - 1].split('?')[0]; 2018 } 2019 // Handle youtube.com/playlist format 2020 else if (url.includes('youtube.com/playlist')) {
2021 const urlParams = new URLSearchParams(url.split('?')[1]); 2022 videoId = urlParams.get('list'); 2023 } 2024 2025 if (videoId) { 2026 // Add necessary parameters for better functionality 2027 embedUrl = `https://www.youtube.com/embed/${videoId}?enablejsapi=1&origin=${window.location.origin}&rel=0&showinfo=0&autoplay=1&mute=1`; 2028 } else { 2029 // If we can't extract video ID, return original URL 2030 return url; 2031 } 2032 2033 return embedUrl; 2034 } 2035 2036 if ($videoItems.length > 0) { 2037 loadVideo($videoItems[0]); 2038 } 2039 2040 setupScrollAutoplay(); 2041 2042 $videoPlay.on("click", function () { 2043 if (!isYoutubeVideo && currentVideo && currentVideo.tagName === "VIDEO") { 2044 if (currentVideo.paused) { 2045 playVideo(); 2046 hideVideoContent(); 2047 } else { 2048 pauseVideo(); 2049 showVideoContent(); 2050 } 2051 } 2052 }); 2053 2054 $playBtn.click(function () { 2055 if (currentVideo) { 2056 if (!isYoutubeVideo && currentVideo.tagName === "VIDEO") { 2057 if (currentVideo.paused) { 2058 playVideo(); 2059 hideVideoContent(); 2060 } else { 2061 pauseVideo(); 2062 showVideoContent(); 2063 } 2064 } else if ( 2065 isYoutubeVideo && 2066 currentVideo.tagName === "IFRAME" && 2067 player 2068 ) { 2069 const state = player.getPlayerState(); 2070 if (state === YT.PlayerState.PLAYING) { 2071 player.pauseVideo(); 2072 } else { 2073 player.playVideo(); 2074 } 2075 } 2076 } 2077 }); 2078 2079 $videoItems.click(function () { 2080 if ( 2081 currentVideo && 2082 currentVideo.tagName === "VIDEO" && 2083 !currentVideo.paused 2084 ) { 2085 currentVideo.pause(); 2086 } 2087 loadVideo(this); 2088 collapsePlaylist(); 2089 2090 if (window.innerWidth < 768) { 2091 $("html, body").animate( 2092 { 2093 scrollTop: $(".main-video").offset().top - 20, 2094 }, 2095 500 2096 ); 2097 } 2098 }); 2099 2100 function playVideo() { 2101 if (!isYoutubeVideo && currentVideo && currentVideo.tagName === "VIDEO") { 2102 currentVideo.muted = false; 2103 currentVideo.play(); 2104 } 2105 } 2106 2107 function pauseVideo() { 2108 if (!isYoutubeVideo && currentVideo && currentVideo.tagName === "VIDEO") { 2109 currentVideo.pause(); 2110 } 2111 } 2112 2113 function playVideoFromScroll() { 2114 if (!currentVideo) return; 2115 2116 if (!isYoutubeVideo && currentVideo.tagName === "VIDEO") { 2117 const video = currentVideo; 2118 video.muted = false; 2119 const playPromise = video.play(); 2120 if (playPromise !== undefined) { 2121 playPromise 2122 .then(function () { 2123 hideVideoContent(); 2124 }) 2125 .catch(function () { 2126 video.muted = true; 2127 video.play() 2128 .then(function () { 2129 hideVideoContent(); 2130 }) 2131 .catch(function () { 2132 showVideoContent(); 2133 }); 2134 }); 2135 } 2136 } else if ( 2137 isYoutubeVideo && 2138 currentVideo.tagName === "IFRAME" && 2139 player && 2140 typeof player.playVideo === "function" 2141 ) { 2142 player.playVideo(); 2143 hideVideoContent(); 2144 } 2145 } 2146 2147 function pauseVideoFromScroll() { 2148 if (!currentVideo) return; 2149 2150 if (!isYoutubeVideo && currentVideo.tagName === "VIDEO") { 2151 currentVideo.pause(); 2152 } else if ( 2153 isYoutubeVideo && 2154 currentVideo.tagName === "IFRAME" && 2155 player && 2156 typeof player.pauseVideo === "function" 2157 ) { 2158 player.pauseVideo(); 2159 } 2160 } 2161 2162 function setupScrollAutoplay() { 2163 const videoTarget = document.querySelector(".video-section .main-video"); 2164 if (!videoTarget || typeof IntersectionObserver === "undefined") return; 2165 2166 const scrollObserver = new IntersectionObserver( 2167 function (entries) {
2168 entries.forEach(function (entry) { 2169 isVideoInViewport = entry.isIntersecting; 2170 if (entry.isIntersecting) { 2171 playVideoFromScroll(); 2172 } else { 2173 pauseVideoFromScroll(); 2174 } 2175 }); 2176 }, 2177 { threshold: 0.45 } 2178 ); 2179 2180 scrollObserver.observe(videoTarget); 2181 } 2182 2183 function hideVideoContent() { 2184 $videoContent.css("opacity", "0"); 2185 $videoContent.css("visibility", "hidden"); 2186 collapsePlaylist(); 2187 } 2188 2189 function showVideoContent() { 2190 $videoContent.css("opacity", "1"); 2191 $videoContent.css("visibility", "visible"); 2192 } 2193 2194 // Tải YouTube Iframe API 2195 if (typeof YT === "undefined" || typeof YT.Player === "undefined") { 2196 const tag = document.createElement("script"); 2197 tag.src = "https://www.youtube.com/iframe_api"; 2198 document.head.appendChild(tag); 2199 } 2200 2201 // Gá»i lại khi API Äã sẵn sà ng 2202 window.onYouTubeIframeAPIReady = function () { }; 2203 }); 2204</script>
2204 2205 2206 </div><div class="ms-clear"></div></div> 2207 </div><div class="ms-PartSpacingVertical"></div> 2208 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_3b47b55f_38e1_4388_8033_ec2da14bd33e" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 2209 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 2210 <div WebPartID="3b47b55f-38e1-4388-8033-ec2da14bd33e" HasPers="false" id="WebPartctl00_ctl43_g_3b47b55f_38e1_4388_8033_ec2da14bd33e" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_3b47b55f_38e1_4388_8033_ec2da14bd33e"> 2211 2212<section class="products-section products-section-slider display-grid"> 2213 <div class="products-section-inner container"> 2214 <h2 class="title-section">Sản phẩm quá»c phòng</h2> 2215 <div class="swiper product-slider"> 2216 <div class="swiper-wrapper"> 2217 2218 <div class="swiper-slide"> 2219 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 55, this);"> 2220 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2025/04/product-1.jpeg" alt="Sản phẩm quá»c phòng 1"> 2221 <h3 class="category-title">Sản phẩm quá»c phòng 1</h3> 2222 </a> 2223 </div> 2224 2225 <div class="swiper-slide"> 2226 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 56, this);"> 2227 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2025/04/product-2.jpeg" alt="Sản phẩm quá»c phòng 2"> 2228 <h3 class="category-title">Sản phẩm quá»c phòng 2</h3> 2229 </a> 2230 </div> 2231 2232 <div class="swiper-slide"> 2233 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 92, this);"> 2234 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/img-material.png" alt="Sản phẩm chung"> 2235 <h3 class="category-title">Sản phẩm chung</h3> 2236 </a> 2237 </div> 2238 2239 </div> 2240 2241 <div class="swiper-button-prev product-slider-prev"></div> 2242 <div class="swiper-button-next product-slider-next"></div> 2243 <div class="swiper-pagination product-slider-pagination"></div> 2244 2245 </div> 2246 </div> 2247</section> 2248 2249<style> 2250 .products-section-slider { 2251 width: 100% !important; 2252 max-width: 100% !important; 2253 overflow: hidden !important; 2254 box-sizing: border-box; 2255 padding: 20px 0; 2256 } 2257 2258 .products-section-slider .products-section-inner.container { 2259 width: 100% !important; 2260 max-width: 1110px; 2261 margin-left: auto; 2262 margin-right: auto; 2263 box-sizing: border-box; 2264 } 2265 2266 2267 2268 .products-section-slider .product-slider { 2269 width: 100% !important; 2270 max-width: 100% !important; 2271 margin-top: 12px; 2272 overflow: hidden !important; 2273 box-sizing: border-box; 2274 position: relative; 2275 } 2276 2277 .products-section-slider .product-slider .swiper-wrapper { 2278 box-sizing: border-box; 2279 } 2280 2281 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-wrapper { 2282 display: block !important; 2283 width: 100% !important; 2284 transform: none !important; 2285 } 2286 2287 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-slide { 2288 display: none !important; 2289 width: 100% !important; 2290 } 2291
2292 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-slide:first-child { 2293 display: block !important; 2294 } 2295 2296 .products-section-slider .product-slider .swiper-slide { 2297 box-sizing: border-box; 2298 height: auto; 2299 } 2300 2301 .products-section-slider .product-slider .category { 2302 position: relative; 2303 display: block; 2304 width: 100%; 2305 max-width: 100%; 2306 border-radius: 8px; 2307 overflow: hidden; 2308 aspect-ratio: 16 / 9; 2309 box-sizing: border-box; 2310 } 2311 2312 .products-section-slider .product-slider .category .category-img { 2313 display: block; 2314 height: 100%; 2315 width: 100%; 2316 max-width: 100%; 2317 object-fit: cover; 2318 object-position: center; 2319 transition: transform 0.4s ease; 2320 } 2321 2322 .products-section-slider .product-slider .category .category-title { 2323 background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.5) 100%); 2324 position: absolute; 2325 top: 0; 2326 left: 0; 2327 right: 0; 2328 bottom: 0; 2329 color: #fff; 2330 font-size: 28px; 2331 line-height: 32px; 2332 text-align: center; 2333 width: 100%; 2334 height: 100%; 2335 display: flex; 2336 align-items: flex-end; 2337 justify-content: center; 2338 padding: 0 12px 28px; 2339 font-weight: bold; 2340 margin: 0; 2341 box-sizing: border-box; 2342 } 2343 2344 .products-section-slider .product-slider .category:hover .category-img { 2345 transform: scale(1.15); 2346 } 2347 2348 .products-section-slider .product-slider .category:hover .category-title { 2349 color: #ffc702; 2350 } 2351 2352 .products-section-slider .product-slider-pagination { 2353 position: relative !important; 2354 margin-top: 14px; 2355 bottom: auto !important; 2356 width: 100% !important; 2357 text-align: center; 2358 } 2359 2360 .products-section-slider .product-slider-pagination .swiper-pagination-bullet { 2361 width: 24px; 2362 height: 3px; 2363 border-radius: 4px; 2364 background: #d8ddd9; 2365 opacity: 1; 2366 } 2367 2368 .products-section-slider .product-slider-pagination .swiper-pagination-bullet-active { 2369 background: #005126; 2370 } 2371 2372 /* MÅ©i tên: chá» hiá»n tablet/mobile, ẩn laptop/desktop */ 2373 .products-section-slider .product-slider-prev, 2374 .products-section-slider .product-slider-next { 2375 display: none !important; 2376 } 2377 2378 @media (max-width: 991px) { 2379 .products-section-slider .product-slider-prev, 2380 .products-section-slider .product-slider-next, 2381 .products-section-slider .product-slider-prev.swiper-button-lock, 2382 .products-section-slider .product-slider-next.swiper-button-lock, 2383 .products-section-slider .product-slider-prev.swiper-button-disabled, 2384 .products-section-slider .product-slider-next.swiper-button-disabled, 2385 .products-section-slider .product-slider-prev.is-nav-locked, 2386 .products-section-slider .product-slider-next.is-nav-locked, 2387 .products-section-slider .product-slider-prev.is-nav-disabled, 2388 .products-section-slider .product-slider-next.is-nav-disabled { 2389 display: flex !important; 2390 align-items: center; 2391 justify-content: center; 2392 visibility: visible !important; 2393 pointer-events: auto !important; 2394 position: absolute !important; 2395 top: 50% !important; 2396 bottom: auto !important; 2397 transform: translateY(-50%) !important; 2398 width: 34px !important; 2399 height: 34px !important; 2400 margin: 0 !important; 2401 margin-top: 0 !important; 2402 z-index: 20 !important; 2403 border: 2px solid #fff; 2404 border-radius: 50%; 2405 background: rgba(0, 81, 38, 0.85); 2406 color: #fff; 2407 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); 2408 opacity: 1 !important; 2409 cursor: pointer; 2410 } 2411
2412 .products-section-slider .product-slider-prev { 2413 left: 10px !important; 2414 right: auto !important; 2415 } 2416 2417 .products-section-slider .product-slider-next { 2418 right: 10px !important; 2419 left: auto !important; 2420 } 2421 2422 .products-section-slider .product-slider-prev::after, 2423 .products-section-slider .product-slider-next::after { 2424 font-size: 13px; 2425 font-weight: 700; 2426 } 2427 2428 .products-section-slider .product-slider-prev:hover, 2429 .products-section-slider .product-slider-next:hover { 2430 background: #005126; 2431 border-color: #ffc702; 2432 color: #ffc702; 2433 } 2434 } 2435 2436 @media (max-width: 576px) { 2437 .products-section-slider .product-slider-prev, 2438 .products-section-slider .product-slider-next, 2439 .products-section-slider .product-slider-prev.swiper-button-lock, 2440 .products-section-slider .product-slider-next.swiper-button-lock { 2441 display: flex !important; 2442 width: 32px !important; 2443 height: 32px !important; 2444 } 2445 2446 .products-section-slider .product-slider-prev { 2447 left: 8px !important; 2448 } 2449 2450 .products-section-slider .product-slider-next { 2451 right: 8px !important; 2452 } 2453 2454 .products-section-slider .product-slider-prev::after, 2455 .products-section-slider .product-slider-next::after { 2456 font-size: 12px; 2457 } 2458 } 2459 2460 /* Tablet + mobile: luôn 1 slide full width */ 2461 @media (max-width: 991px) { 2462 .products-section-slider { 2463 padding: 16px 0; 2464 } 2465 2466 2467 2468 .products-section-slider .product-slider .swiper-slide { 2469 width: 100% !important; 2470 margin-right: 0 !important; 2471 } 2472 2473 .products-section-slider .product-slider .category { 2474 aspect-ratio: 16 / 10; 2475 } 2476 2477 .products-section-slider .product-slider .category .category-title { 2478 font-size: 22px; 2479 line-height: 26px; 2480 padding-bottom: 22px; 2481 } 2482 } 2483 2484 @media (max-width: 576px) { 2485 .products-section-slider .products-section-inner.container { 2486 padding-left: 15px; 2487 padding-right: 15px; 2488 } 2489 2490 .products-section-slider .product-slider .category { 2491 aspect-ratio: 16 / 11; 2492 } 2493 2494 .products-section-slider .product-slider .category .category-title { 2495 font-size: 18px; 2496 line-height: 22px; 2497 padding-bottom: 16px; 2498 } 2499 } 2500 2501 @media (max-width: 425px) { 2502 .products-section-slider .product-slider .category .category-title { 2503 font-size: 16px; 2504 line-height: 20px; 2505 padding-bottom: 14px; 2506 } 2507 } 2508</style>
2509<script> 2510 (function () { 2511 function initProductSliders() { 2512 if (typeof Swiper === "undefined") return; 2513 2514 document.querySelectorAll(".products-section-slider .product-slider").forEach(function (el) { 2515 if (el.dataset.inited === "1") return; 2516 el.dataset.inited = "1"; 2517 2518 var slideCount = el.querySelectorAll(".swiper-slide").length; 2519 var hasMultiple = slideCount > 1; 2520 2521 var swiper = new Swiper(el, { 2522 slidesPerView: 1, 2523 spaceBetween: 0, 2524 loop: false, 2525 rewind: hasMultiple, 2526 speed: 600, 2527 watchOverflow: false, 2528 observer: true, 2529 observeParents: true, 2530 autoplay: hasMultiple 2531 ? { delay: 5000, disableOnInteraction: false, pauseOnMouseEnter: true } 2532 : false, 2533 pagination: hasMultiple 2534 ? { el: el.querySelector(".product-slider-pagination"), clickable: true } 2535 : undefined, 2536 navigation: hasMultiple 2537 ? { 2538 nextEl: el.querySelector(".product-slider-next"), 2539 prevEl: el.querySelector(".product-slider-prev"), 2540 disabledClass: "is-nav-disabled", 2541 lockClass: "is-nav-locked", 2542 } 2543 : undefined, 2544 breakpoints: { 2545 /* Chá» desktop >= 992 má»i hiá»n 2 SP cạnh nhau */ 2546 992: { 2547 slidesPerView: Math.min(2, slideCount), 2548 spaceBetween: 27 2549 } 2550 }, 2551 on: { 2552 init: function () { this.update(); }, 2553 resize: function () { this.update(); } 2554 } 2555 }); 2556 2557 window.addEventListener("resize", function () { 2558 if (swiper && !swiper.destroyed) { 2559 swiper.update(); 2560 } 2561 }); 2562 }); 2563 } 2564 2565 document.addEventListener("DOMContentLoaded", initProductSliders); 2566 window.addEventListener("load", initProductSliders); 2567 })(); 2568</script>
2568 2569 2570
2571<script> 2572 window.countClick = function (urlList, itemId, linkElement) { 2573 var url = '/UserControls/Publishing/QuangCao/UpdateClickCount.aspx' + 2574 '?UrlListProcess=' + urlList + 2575 '&itemId=' + itemId; 2576 2577 // Không xá» lý nếu link rá»ng hoặc javascript:; 2578 if (!linkElement.href || linkElement.href.indexOf('javascript:;') !== -1) { 2579 return false; 2580 } 2581 2582 // Gá»i request ngầm Äếm click (fire-and-forget) 2583 if (typeof navigator.sendBeacon === "function") { 2584 navigator.sendBeacon(url); 2585 } else { 2586 $.get(url); 2587 } 2588 2589 // Nếu thẻ <a> chưa có target nhưng cần má» tab má»i như cÅ©, set target 2590 // (Trưá»c Äây code dùng window.open('_blank') cho má»i link) 2591 if (!linkElement.getAttribute('target') && !linkElement.className.includes('category')) { 2592 linkElement.setAttribute('target', '_blank'); 2593 } 2594 2595 // Cho phép thẻ <a> hoạt Äá»ng tá»± nhiên Äá» tránh bá» Safari block popup 2596 return true; 2597 }; 2598</script>
2598 2599 </div><div class="ms-clear"></div></div> 2600 </div><div class="ms-PartSpacingVertical"></div> 2601 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_6ec008a9_9316_42a2_833b_bc3f997507aa" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 2602 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 2603 <div WebPartID="6ec008a9-9316-42a2-833b-bc3f997507aa" HasPers="false" id="WebPartctl00_ctl43_g_6ec008a9_9316_42a2_833b_bc3f997507aa" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_6ec008a9_9316_42a2_833b_bc3f997507aa"> 2604 2605<section class="products-section products-section-slider display-grid"> 2606 <div class="products-section-inner container"> 2607 <h2 class="title-section">Sản phẩm kinh tế</h2> 2608 <div class="swiper product-slider"> 2609 <div class="swiper-wrapper"> 2610 2611 <div class="swiper-slide"> 2612 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 94, this);"> 2613 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/img-nhua-caosu.png" alt="Sản phẩm kinh tế 1"> 2614 <h3 class="category-title">Sản phẩm kinh tế 1</h3> 2615 </a> 2616 </div> 2617 2618 <div class="swiper-slide"> 2619 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 93, this);"> 2620 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/img-quang-dien-tu.png" alt="Sản phẩm kinh tế 2"> 2621 <h3 class="category-title">Sản phẩm kinh tế 2</h3> 2622 </a> 2623 </div> 2624 2625 <div class="swiper-slide"> 2626 <a href="https://xuctienthuongmai.vdi.org.vn/" class="category" onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 92, this);"> 2627 <img class="category-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/img-material.png" alt="Sản phẩm chung"> 2628 <h3 class="category-title">Sản phẩm chung</h3> 2629 </a> 2630 </div> 2631 2632 </div> 2633 2634 <div class="swiper-button-prev product-slider-prev"></div> 2635 <div class="swiper-button-next product-slider-next"></div> 2636 <div class="swiper-pagination product-slider-pagination"></div> 2637 2638 </div> 2639 </div> 2640</section> 2641 2642<style> 2643 .products-section-slider { 2644 width: 100% !important; 2645 max-width: 100% !important; 2646 overflow: hidden !important; 2647 box-sizing: border-box; 2648 padding: 20px 0; 2649 } 2650 2651 .products-section-slider .products-section-inner.container { 2652 width: 100% !important; 2653 max-width: 1110px; 2654 margin-left: auto; 2655 margin-right: auto; 2656 box-sizing: border-box; 2657 } 2658 2659 2660 2661 .products-section-slider .product-slider { 2662 width: 100% !important; 2663 max-width: 100% !important; 2664 margin-top: 12px; 2665 overflow: hidden !important; 2666 box-sizing: border-box; 2667 position: relative; 2668 } 2669 2670 .products-section-slider .product-slider .swiper-wrapper { 2671 box-sizing: border-box; 2672 } 2673 2674 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-wrapper { 2675 display: block !important; 2676 width: 100% !important; 2677 transform: none !important; 2678 } 2679 2680 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-slide { 2681 display: none !important; 2682 width: 100% !important; 2683 } 2684
2685 .products-section-slider .product-slider:not(.swiper-initialized) .swiper-slide:first-child { 2686 display: block !important; 2687 } 2688 2689 .products-section-slider .product-slider .swiper-slide { 2690 box-sizing: border-box; 2691 height: auto; 2692 } 2693 2694 .products-section-slider .product-slider .category { 2695 position: relative; 2696 display: block; 2697 width: 100%; 2698 max-width: 100%; 2699 border-radius: 8px; 2700 overflow: hidden; 2701 aspect-ratio: 16 / 9; 2702 box-sizing: border-box; 2703 } 2704 2705 .products-section-slider .product-slider .category .category-img { 2706 display: block; 2707 height: 100%; 2708 width: 100%; 2709 max-width: 100%; 2710 object-fit: cover; 2711 object-position: center; 2712 transition: transform 0.4s ease; 2713 } 2714 2715 .products-section-slider .product-slider .category .category-title { 2716 background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.5) 100%); 2717 position: absolute; 2718 top: 0; 2719 left: 0; 2720 right: 0; 2721 bottom: 0; 2722 color: #fff; 2723 font-size: 28px; 2724 line-height: 32px; 2725 text-align: center; 2726 width: 100%; 2727 height: 100%; 2728 display: flex; 2729 align-items: flex-end; 2730 justify-content: center; 2731 padding: 0 12px 28px; 2732 font-weight: bold; 2733 margin: 0; 2734 box-sizing: border-box; 2735 } 2736 2737 .products-section-slider .product-slider .category:hover .category-img { 2738 transform: scale(1.15); 2739 } 2740 2741 .products-section-slider .product-slider .category:hover .category-title { 2742 color: #ffc702; 2743 } 2744 2745 .products-section-slider .product-slider-pagination { 2746 position: relative !important; 2747 margin-top: 14px; 2748 bottom: auto !important; 2749 width: 100% !important; 2750 text-align: center; 2751 } 2752 2753 .products-section-slider .product-slider-pagination .swiper-pagination-bullet { 2754 width: 24px; 2755 height: 3px; 2756 border-radius: 4px; 2757 background: #d8ddd9; 2758 opacity: 1; 2759 } 2760 2761 .products-section-slider .product-slider-pagination .swiper-pagination-bullet-active { 2762 background: #005126; 2763 } 2764 2765 /* MÅ©i tên: chá» hiá»n tablet/mobile, ẩn laptop/desktop */ 2766 .products-section-slider .product-slider-prev, 2767 .products-section-slider .product-slider-next { 2768 display: none !important; 2769 } 2770 2771 @media (max-width: 991px) { 2772 .products-section-slider .product-slider-prev, 2773 .products-section-slider .product-slider-next, 2774 .products-section-slider .product-slider-prev.swiper-button-lock, 2775 .products-section-slider .product-slider-next.swiper-button-lock, 2776 .products-section-slider .product-slider-prev.swiper-button-disabled, 2777 .products-section-slider .product-slider-next.swiper-button-disabled, 2778 .products-section-slider .product-slider-prev.is-nav-locked, 2779 .products-section-slider .product-slider-next.is-nav-locked, 2780 .products-section-slider .product-slider-prev.is-nav-disabled, 2781 .products-section-slider .product-slider-next.is-nav-disabled { 2782 display: flex !important; 2783 align-items: center; 2784 justify-content: center; 2785 visibility: visible !important; 2786 pointer-events: auto !important; 2787 position: absolute !important; 2788 top: 50% !important; 2789 bottom: auto !important; 2790 transform: translateY(-50%) !important; 2791 width: 34px !important; 2792 height: 34px !important; 2793 margin: 0 !important; 2794 margin-top: 0 !important; 2795 z-index: 20 !important; 2796 border: 2px solid #fff; 2797 border-radius: 50%; 2798 background: rgba(0, 81, 38, 0.85); 2799 color: #fff; 2800 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); 2801 opacity: 1 !important; 2802 cursor: pointer; 2803 } 2804
2805 .products-section-slider .product-slider-prev { 2806 left: 10px !important; 2807 right: auto !important; 2808 } 2809 2810 .products-section-slider .product-slider-next { 2811 right: 10px !important; 2812 left: auto !important; 2813 } 2814 2815 .products-section-slider .product-slider-prev::after, 2816 .products-section-slider .product-slider-next::after { 2817 font-size: 13px; 2818 font-weight: 700; 2819 } 2820 2821 .products-section-slider .product-slider-prev:hover, 2822 .products-section-slider .product-slider-next:hover { 2823 background: #005126; 2824 border-color: #ffc702; 2825 color: #ffc702; 2826 } 2827 } 2828 2829 @media (max-width: 576px) { 2830 .products-section-slider .product-slider-prev, 2831 .products-section-slider .product-slider-next, 2832 .products-section-slider .product-slider-prev.swiper-button-lock, 2833 .products-section-slider .product-slider-next.swiper-button-lock { 2834 display: flex !important; 2835 width: 32px !important; 2836 height: 32px !important; 2837 } 2838 2839 .products-section-slider .product-slider-prev { 2840 left: 8px !important; 2841 } 2842 2843 .products-section-slider .product-slider-next { 2844 right: 8px !important; 2845 } 2846 2847 .products-section-slider .product-slider-prev::after, 2848 .products-section-slider .product-slider-next::after { 2849 font-size: 12px; 2850 } 2851 } 2852 2853 /* Tablet + mobile: luôn 1 slide full width */ 2854 @media (max-width: 991px) { 2855 .products-section-slider { 2856 padding: 16px 0; 2857 } 2858 2859 2860 2861 .products-section-slider .product-slider .swiper-slide { 2862 width: 100% !important; 2863 margin-right: 0 !important; 2864 } 2865 2866 .products-section-slider .product-slider .category { 2867 aspect-ratio: 16 / 10; 2868 } 2869 2870 .products-section-slider .product-slider .category .category-title { 2871 font-size: 22px; 2872 line-height: 26px; 2873 padding-bottom: 22px; 2874 } 2875 } 2876 2877 @media (max-width: 576px) { 2878 .products-section-slider .products-section-inner.container { 2879 padding-left: 15px; 2880 padding-right: 15px; 2881 } 2882 2883 .products-section-slider .product-slider .category { 2884 aspect-ratio: 16 / 11; 2885 } 2886 2887 .products-section-slider .product-slider .category .category-title { 2888 font-size: 18px; 2889 line-height: 22px; 2890 padding-bottom: 16px; 2891 } 2892 } 2893 2894 @media (max-width: 425px) { 2895 .products-section-slider .product-slider .category .category-title { 2896 font-size: 16px; 2897 line-height: 20px; 2898 padding-bottom: 14px; 2899 } 2900 } 2901</style>
2902<script> 2903 (function () { 2904 function initProductSliders() { 2905 if (typeof Swiper === "undefined") return; 2906 2907 document.querySelectorAll(".products-section-slider .product-slider").forEach(function (el) { 2908 if (el.dataset.inited === "1") return; 2909 el.dataset.inited = "1"; 2910 2911 var slideCount = el.querySelectorAll(".swiper-slide").length; 2912 var hasMultiple = slideCount > 1; 2913 2914 var swiper = new Swiper(el, { 2915 slidesPerView: 1, 2916 spaceBetween: 0, 2917 loop: false, 2918 rewind: hasMultiple, 2919 speed: 600, 2920 watchOverflow: false, 2921 observer: true, 2922 observeParents: true, 2923 autoplay: hasMultiple 2924 ? { delay: 5000, disableOnInteraction: false, pauseOnMouseEnter: true } 2925 : false, 2926 pagination: hasMultiple 2927 ? { el: el.querySelector(".product-slider-pagination"), clickable: true } 2928 : undefined, 2929 navigation: hasMultiple 2930 ? { 2931 nextEl: el.querySelector(".product-slider-next"), 2932 prevEl: el.querySelector(".product-slider-prev"), 2933 disabledClass: "is-nav-disabled", 2934 lockClass: "is-nav-locked", 2935 } 2936 : undefined, 2937 breakpoints: { 2938 /* Chá» desktop >= 992 má»i hiá»n 2 SP cạnh nhau */ 2939 992: { 2940 slidesPerView: Math.min(2, slideCount), 2941 spaceBetween: 27 2942 } 2943 }, 2944 on: { 2945 init: function () { this.update(); }, 2946 resize: function () { this.update(); } 2947 } 2948 }); 2949 2950 window.addEventListener("resize", function () { 2951 if (swiper && !swiper.destroyed) { 2952 swiper.update(); 2953 } 2954 }); 2955 }); 2956 } 2957 2958 document.addEventListener("DOMContentLoaded", initProductSliders); 2959 window.addEventListener("load", initProductSliders); 2960 })(); 2961</script>
2961 2962 2963
2964<script> 2965 window.countClick = function (urlList, itemId, linkElement) { 2966 var url = '/UserControls/Publishing/QuangCao/UpdateClickCount.aspx' + 2967 '?UrlListProcess=' + urlList + 2968 '&itemId=' + itemId; 2969 2970 // Không xá» lý nếu link rá»ng hoặc javascript:; 2971 if (!linkElement.href || linkElement.href.indexOf('javascript:;') !== -1) { 2972 return false; 2973 } 2974 2975 // Gá»i request ngầm Äếm click (fire-and-forget) 2976 if (typeof navigator.sendBeacon === "function") { 2977 navigator.sendBeacon(url); 2978 } else { 2979 $.get(url); 2980 } 2981 2982 // Nếu thẻ <a> chưa có target nhưng cần má» tab má»i như cÅ©, set target 2983 // (Trưá»c Äây code dùng window.open('_blank') cho má»i link) 2984 if (!linkElement.getAttribute('target') && !linkElement.className.includes('category')) { 2985 linkElement.setAttribute('target', '_blank'); 2986 } 2987 2988 // Cho phép thẻ <a> hoạt Äá»ng tá»± nhiên Äá» tránh bá» Safari block popup 2989 return true; 2990 }; 2991</script>
2991 2992 </div><div class="ms-clear"></div></div> 2993 </div><div class="ms-PartSpacingVertical"></div> 2994 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_6aa42ef7_cdf5_48f3_a41d_b0cf34619298" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 2995 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 2996 <div WebPartID="6aa42ef7-cdf5-48f3-a41d-b0cf34619298" HasPers="false" id="WebPartctl00_ctl43_g_6aa42ef7_cdf5_48f3_a41d_b0cf34619298" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_6aa42ef7_cdf5_48f3_a41d_b0cf34619298"> 2997 2998<section class="members-section display-grid"> 2999 <div class="members-section-inner container"> 3000 <div class="title-block"> 3001 <h2 class="title-section">Các ÄÆ¡n vá» thà nh viên</h2> 3002 <a href="/gioi-thieu.html#DVTV" class="see-more">Xem tất cả</a> 3003 </div> 3004 <div class="member-slider-wrap"> 3005 <div class="member-slider swiper"> 3006 <div class="swiper-wrapper"> 3007 3008 <div class="swiper-slide"> 3009 <a href="http://z127.vn/" 3010 class="member-item-link" 3011 target="_blank" 3012 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 87, this);"> 3013 <img class="item-img" src="/media/uploads/image/2021/06/14/LOGO_Z127_V2.png" alt="Công ty TNHH MTV 27" /> 3014 <h5 class="item-name">Công ty TNHH MTV 27</h5> 3015 </a> 3016 </div> 3017 3018 <div class="swiper-slide"> 3019 <a href="http://ck25.vn" 3020 class="member-item-link" 3021 target="_blank" 3022 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 84, this);"> 3023 <img class="item-img" src="/media//uploads/images/logoz125.png" alt="Nhà máy cÆ¡ khà chÃnh xác 25" /> 3024 <h5 class="item-name">Nhà máy cÆ¡ khà chÃnh xác 25</h5> 3025 </a> 3026 </div> 3027 3028 <div class="swiper-slide"> 3029 <a href="https://www.songthu.com.vn/" 3030 class="member-item-link" 3031 target="_blank" 3032 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 83, this);"> 3033 <img class="item-img" src="/media//uploads/images/songthu.jpg" alt="Công ty Sông Thu" /> 3034 <h5 class="item-name">Công ty Sông Thu</h5> 3035 </a> 3036 </div> 3037 3038 <div class="swiper-slide"> 3039 <a href="http://vttn.vn/" 3040 class="member-item-link" 3041 target="_blank" 3042 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 82, this);"> 3043 <img class="item-img" src="/media//uploads/images/vcn.png" alt="Viá»n công nghá»" /> 3044 <h5 class="item-name">Viá»n công nghá»</h5> 3045 </a> 3046 </div> 3047 3048 <div class="swiper-slide"> 3049 <a href="#" 3050 class="member-item-link" 3051 target="_blank" 3052 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 80, this);"> 3053 <img class="item-img" src="/media//uploads/images/lgc.jpg" alt="Tá»ng cục công nghiá»p quá»c phòng" /> 3054 <h5 class="item-name">Tá»ng cục công nghiá»p quá»c phòng</h5> 3055 </a> 3056 </div> 3057 3058 <div class="swiper-slide"> 3059 <a href="http://basonshipyard.vn/" 3060 class="member-item-link" 3061 target="_blank" 3062 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 79, this);"> 3063 <img class="item-img" src="/media//uploads/images/bason.png" alt="Tá»ng công ty Bason" /> 3064 <h5 class="item-name">Tá»ng công ty Bason</h5> 3065 </a> 3066 </div> 3067 3068 <div class="swiper-slide"> 3069 <a href="http://quangdientu.com.vn/" 3070 class="member-item-link" 3071 target="_blank" 3072 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 74, this);"> 3073 <img class="item-img" src="/media//uploads/images/logo-xn23.png" alt="XN 23/Z199" /> 3074 <h5 class="item-name">XN 23/Z199</h5> 3075 </a> 3076 </div> 3077 3078 <div class="swiper-slide"> 3079 <a href="http://www.cokhi17.com" 3080 class="member-item-link" 3081 target="_blank" 3082 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 72, this);"> 3083 <img class="item-img" src="/media//uploads/images/logo-z11
30837.jpg" alt="Nhà máy Z117" /> 3084 <h5 class="item-name">Nhà máy Z117</h5> 3085 </a> 3086 </div> 3087 3088 <div class="swiper-slide"> 3089 <a href="http://xn59.com.vn/" 3090 class="member-item-link" 3091 target="_blank" 3092 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 71, this);"> 3093 <img class="item-img" src="/media//uploads/images/logo-xn59-z27.png" alt="XN 59/Z27" /> 3094 <h5 class="item-name">XN 59/Z27</h5> 3095 </a> 3096 </div> 3097 3098 <div class="swiper-slide"> 3099 <a href="https://z114.vn/" 3100 class="member-item-link" 3101 target="_blank" 3102 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 69, this);"> 3103 <img class="item-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/z114.png" alt="Nhà máy Z114" /> 3104 <h5 class="item-name">Nhà máy Z114</h5> 3105 </a> 3106 </div> 3107 3108 <div class="swiper-slide"> 3109 <a href="http://z115.vn" 3110 class="member-item-link" 3111 target="_blank" 3112 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 70, this);"> 3113 <img class="item-img" src="/media//uploads/images/logo-z115.png" alt="Nhà máy Z115" /> 3114 <h5 class="item-name">Nhà máy Z115</h5> 3115 </a> 3116 </div> 3117 3118 <div class="swiper-slide"> 3119 <a href="http://z76.vn/" 3120 class="member-item-link" 3121 target="_blank" 3122 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 75, this);"> 3123 <img class="item-img" src="/media//uploads/images/logo76-2.png" alt="Nhà máy Z176" /> 3124 <h5 class="item-name">Nhà máy Z176</h5> 3125 </a> 3126 </div> 3127 3128 <div class="swiper-slide"> 3129 <a href="http://dienco91.com.vn/" 3130 class="member-item-link" 3131 target="_blank" 3132 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 78, this);"> 3133 <img class="item-img" src="/media//uploads/images/z191.png" alt="Nhà máy Z199" /> 3134 <h5 class="item-name">Nhà máy Z199</h5> 3135 </a> 3136 </div> 3137 3138 <div class="swiper-slide"> 3139 <a href="http://189shipbuilding.com.vn/" 3140 class="member-item-link" 3141 target="_blank" 3142 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 81, this);"> 3143 <img class="item-img" src="/media//uploads/images/logo189.jpg" alt="Nhà máy Z189" /> 3144 <h5 class="item-name">Nhà máy Z189</h5> 3145 </a> 3146 </div> 3147 3148 <div class="swiper-slide"> 3149 <a href="https://cokhichinhxac29.vn/" 3150 class="member-item-link" 3151 target="_blank" 3152 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 88, this);"> 3153 <img class="item-img" src="/media//uploads/images/logo-20z129.png" alt="Nhà máy Z129" /> 3154 <h5 class="item-name">Nhà máy Z129</h5> 3155 </a> 3156 </div> 3157 3158 <div class="swiper-slide"> 3159 <a href="http://www.eme31.com.vn" 3160 class="member-item-link" 3161 target="_blank" 3162 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 89, this);"> 3163 <img class="item-img" src="/media//uploads/images/z131-logo-2.png" alt="Nhà máy Z131" /> 3164 <h5 class="item-name">Nhà máy Z131</h5> 3165 </a> 3166 </div> 3167 3168 <div class="swiper-slide"> 3169 <a href="http://dientusaomai.com.vn/" 3170 class="member-item-link" 3171 target="_blank" 3172 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 90, this);"> 3173 <img class="item-img" src="/media/uploads/image/2022/06/13/logoz181.jpg" alt="Nhà máy Z181" /> 3174 <h5 class="item-name">Nhà máy Z181</h5> 3175 </a> 3176 </div> 3177 3178 <div class="swiper-slide"> 3179 <a href="http://www.cokhiz183.com/" 3180 class="member-item-link" 3181 target="_blank" 3182 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 91, this);"> 3183 <img class="item-img" src="/media/uploads/image/2022/11/01/logoz183.jpg" alt="Nhà máy Z183" /> 3184 <h5 class="item-name">Nhà máy Z183</h5> 3185 </a> 3186 </div> 3187 3188 <div class="swiper-slide"> 3189 <a href="http://ck11.vn/" 3190 class="member-item-link" 3191 target="_blank" 3192 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 95, this);"> 3193 <img class="item-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/z111.png" alt="Nhà máy Z111" /> 3194 <h5 class="item-name">Nhà máy Z111</h5> 3195 </a> 3196 </div> 3197 3198 <div class="swiper-slide"> 3199 <a href="https://z113.vn/" 3200 class="member-item-link" 3201 target="_blank" 3202 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 96, this);"> 3203 <img class="item-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/z113.png" alt="Nhà máy Z113" /> 3204 <h5 class="item-name">Nhà máy Z113</h5> 3205 </a> 3206 </div> 3207 3208 <div class="swiper-slide"> 3209 <a href="https://z121.vn/" 3210 class="member-item-link" 3211 target="_blank" 3212 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 97, this);"> 3213 <img class="item-img" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2026/09/image-29.png" alt="Nhà máy Z121" /> 3214 <h5 class="item-name">Nhà máy Z121</h5> 3215 </a> 3216 </div> 3217 3218 </div> 3219 </div> 3220 <div class="swiper-button-next"></div> 3221 <div class="swiper-button-prev"></div> 3222 </div> 3223 </div> 3224</section> 3225
3226<script> 3227 (function () { 3228 function initMemberSliders() { 3229 if (typeof Swiper === "undefined") return; 3230 3231 document.querySelectorAll(".members-section .member-slider").forEach(function (el) { 3232 if (el.dataset.inited === "1") return; 3233 el.dataset.inited = "1"; 3234 3235 var wrap = el.closest(".member-slider-wrap"); 3236 var slideCount = el.querySelectorAll(".swiper-slide").length; 3237 var hasMultiple = slideCount > 1; 3238 3239 new Swiper(el, { 3240 slidesPerView: 7, 3241 spaceBetween: 30, 3242 direction: "horizontal", 3243 loop: hasMultiple, 3244 watchOverflow: false, 3245 autoplay: hasMultiple 3246 ? { delay: 5000, disableOnInteraction: false, pauseOnMouseEnter: true } 3247 : false, 3248 navigation: { 3249 nextEl: wrap ? wrap.querySelector(".swiper-button-next") : null, 3250 prevEl: wrap ? wrap.querySelector(".swiper-button-prev") : null, 3251 }, 3252 breakpoints: { 3253 0: { slidesPerView: 3, spaceBetween: 10 }, 3254 370: { slidesPerView: 3, spaceBetween: 10 }, 3255 567: { slidesPerView: 4, spaceBetween: 10 }, 3256 768: { slidesPerView: 5, spaceBetween: 20 }, 3257 1024: { slidesPerView: 6, spaceBetween: 30 }, 3258 1280: { slidesPerView: 7, spaceBetween: 30 }, 3259 }, 3260 }); 3261 }); 3262 } 3263 3264 document.addEventListener("DOMContentLoaded", initMemberSliders); 3265 window.addEventListener("load", initMemberSliders); 3266 })(); 3267</script>
3267 3268 3269
3270<script> 3271 window.countClick = function (urlList, itemId, linkElement) { 3272 var url = '/UserControls/Publishing/QuangCao/UpdateClickCount.aspx' + 3273 '?UrlListProcess=' + urlList + 3274 '&itemId=' + itemId; 3275 3276 // Không xá» lý nếu link rá»ng hoặc javascript:; 3277 if (!linkElement.href || linkElement.href.indexOf('javascript:;') !== -1) { 3278 return false; 3279 } 3280 3281 // Gá»i request ngầm Äếm click (fire-and-forget) 3282 if (typeof navigator.sendBeacon === "function") { 3283 navigator.sendBeacon(url); 3284 } else { 3285 $.get(url); 3286 } 3287 3288 // Nếu thẻ <a> chưa có target nhưng cần má» tab má»i như cÅ©, set target 3289 // (Trưá»c Äây code dùng window.open('_blank') cho má»i link) 3290 if (!linkElement.getAttribute('target') && !linkElement.className.includes('category')) { 3291 linkElement.setAttribute('target', '_blank'); 3292 } 3293 3294 // Cho phép thẻ <a> hoạt Äá»ng tá»± nhiên Äá» tránh bá» Safari block popup 3295 return true; 3296 }; 3297</script>
3297 3298 </div><div class="ms-clear"></div></div> 3299 </div><div class="ms-PartSpacingVertical"></div> 3300 </div><div id="MSOZoneCell_WebPartctl00_ctl43_g_afdb125e_b769_4f26_af30_b8c561d4da9d" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical-inline-table ms-webpart-cell-vertical ms-fullWidth "> 3301 <div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth "> 3302 <div WebPartID="afdb125e-b769-4f26-af30-b8c561d4da9d" HasPers="false" id="WebPartctl00_ctl43_g_afdb125e_b769_4f26_af30_b8c561d4da9d" width="100%" class="ms-WPBody noindex " allowDelete="false" allowExport="false" style="" ><div id="ctl00_ctl43_g_afdb125e_b769_4f26_af30_b8c561d4da9d"> 3303 3304<section class="members-section display-grid"> 3305 <div class="members-section-inner container"> 3306 <div class="government-units"> 3307 3308 <a href='https://vietnamdefence.vdi.org.vn' 3309 target="_blank" 3310 class="government-item" 3311 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 66, this);"> 3312 <img class="img-banner" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2025/04/web-trien-lam.png" alt="Triá»n lãm quá»c phòng quá»c tế viá»t nam" /> 3313 </a> 3314 3315 <a href='https://tapchi.vdi.org.vn' 3316 target="_blank" 3317 class="government-item" 3318 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 65, this);"> 3319 <img class="img-banner" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2025/04/web-cong-nghiep.png" alt="Tạp chà quá»c phòng và kinh tế" /> 3320 </a> 3321 3322 <a href='https://dichvucong.mod.gov.vn' 3323 target="_blank" 3324 class="government-item" 3325 onclick="return countClick('/QuanTri/KND/QuangCao/Lists/DanhSachQuangCao', 64, this);"> 3326 <img class="img-banner" src="/quantri/knd/quangcao/PublishingImages/QuangCao/AnhDaiDien/2025/04/web-dich-vu-cong.png" alt="Cá»ng dá»ch vụ công bá» quá»c phòng" /> 3327 </a> 3328 3329 </div> 3330 </div> 3331</section> 3332 3333
3334<script> 3335 window.countClick = function (urlList, itemId, linkElement) { 3336 var url = '/UserControls/Publishing/QuangCao/UpdateClickCount.aspx' + 3337 '?UrlListProcess=' + urlList + 3338 '&itemId=' + itemId; 3339 3340 // Không xá» lý nếu link rá»ng hoặc javascript:; 3341 if (!linkElement.href || linkElement.href.indexOf('javascript:;') !== -1) { 3342 return false; 3343 } 3344 3345 // Gá»i request ngầm Äếm click (fire-and-forget) 3346 if (typeof navigator.sendBeacon === "function") { 3347 navigator.sendBeacon(url); 3348 } else { 3349 $.get(url); 3350 } 3351 3352 // Nếu thẻ <a> chưa có target nhưng cần má» tab má»i như cÅ©, set target 3353 // (Trưá»c Äây code dùng window.open('_blank') cho má»i link) 3354 if (!linkElement.getAttribute('target') && !linkElement.className.includes('category')) { 3355 linkElement.setAttribute('target', '_blank'); 3356 } 3357 3358 // Cho phép thẻ <a> hoạt Äá»ng tá»± nhiên Äá» tránh bá» Safari block popup 3359 return true; 3360 }; 3361</script>
3361 3362 </div><div class="ms-clear"></div></div> 3363 </div> 3364 </div> 3365 </div> 3366 </main> 3367<div style='display:none' id='hidZone'><menu class="ms-hide"> 3368 <ie:menuitem id="MSOMenu_Help" iconsrc="/_layouts/15/images/HelpIcon.gif" onmenuclick="MSOWebPartPage_SetNewWindowLocation(MenuWebPart.getAttribute('helpLink'), MenuWebPart.getAttribute('helpMode'))" text="Help" type="option" style="display:none"> 3369 3370 </ie:menuitem> 3371 </menu></div> 3372 3373</div> 3374 3375 <footer class="footer"> 3376 <div id="ctl00_g_9e11e68b_8166_49ea_bf31_1ebf37d53018" __MarkupType="vsattributemarkup" __WebPartId="{9e11e68b_8166_49ea_bf31_1ebf37d22463}" WebPart="true"> 3377 <div class="ExternalClass4069423512B749429F5F05254E1F88FA"> 3378<div class="container"> 3379 <div class="footer-content"> 3380 <div class="footer-logo"> 3381 <a> 3382 <img src="/Publishing_Resources/CongThongTin/assets/images/logo-footer.png" alt="Logo" /> 3383 </a> 3384 </div> 3385 <div class="footer-main"> 3386 <div class="footer-info"> 3387 <div class="footer-info-item"> 3388 <span class="item-icon"> 3389 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" fill="none"> 3390 <path d="M29.2934 24.44C29.2934 24.92 29.1867 25.4133 28.9601 25.8933C28.7334 26.3733 28.4401 26.8266 28.0534 27.2533C27.4001 27.9733 26.6801 28.4933 25.8667 28.8266C25.0667 29.16 24.2001 29.3333 23.2668 29.3333C21.9067 29.3333 20.4534 29.0133 18.9201 28.36C17.3867 27.7066 15.8534 26.8266 14.3334 25.72C12.8001 24.6 11.3467 23.36 9.96008 21.9866C8.58675 20.6 7.34675 19.1466 6.24008 17.6266C5.14675 16.1066 4.26675 14.5866 3.62675 13.08C2.98675 11.56 2.66675 10.1066 2.66675 8.71996C2.66675 7.81329 2.82675 6.94663 3.14675 6.14663C3.46675 5.33329 3.97341 4.58663 4.68008 3.91996C5.53341 3.07996 6.46675 2.66663 7.45341 2.66663C7.82675 2.66663 8.20008 2.74663 8.53341 2.90663C8.88008 3.06663 9.18675 3.30663 9.42675 3.65329L12.5201 8.01329C12.7601 8.34663 12.9334 8.65329 13.0534 8.94663C13.1734 9.22663 13.2401 9.50663 13.2401 9.75996C13.2401 10.08 13.1467 10.4 12.9601 10.7066C12.7867 11.0133 12.5334 11.3333 12.2134 11.6533L11.2001 12.7066C11.0534 12.8533 10.9867 13.0266 10.9867 13.24C10.9867 13.3466 11.0001 13.44 11.0267 13.5466C11.0667 13.6533 11.1067 13.7333 11.1334 13.8133C11.3734 14.2533 11.7867 14.8266 12.3734 15.52C12.9734 16.2133 13.6134 16.92 14.3067 17.6266C15.0267 18.3333 15.7201 18.9866 16.4267 19.5866C17.1201 20.1733 17.6934 20.5733 18.1467 20.8133C18.2134 20.84 18.2934 20.88 18.3867 20.92C18.4934 20.96 18.6001 20.9733 18.7201 20.9733C18.9467 20.9733 19.1201 20.8933 19.2667 20.7466L20.2801 19.7466C20.6134 19.4133 20.9334 19.16 21.2401 19C21.5467 18.8133 21.8534 18.72 22.1867 18.72C22.4401 18.72 22.7067 18.7733 23.0001 18.8933C23.2934 19.0133 23.6001 19.1866 23.9334 19.4133L28.3467 22.5466C28.6934 22.7866 28.9334 23.0666 29.0801 23.4C29.2134 23.7333 29.2934 24.0666 29.2934 24.44Z" fill="currentColor"></path> 3391 <path d="M24.6667 11.9999C24.6667 11.1999 24.04 9.97325 23.1067 8.97325C22.2533 8.05325 21.12 7.33325 20 7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 3392 <path d="M29.3333 12C29.3333 6.83996 25.16 2.66663 20 2.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> 3393</svg> 3394 </span> 3395 <a class="item-content">+84-69.696154</a> 3396 </div> 3397 <div class="footer-info-item"> 3398 <span class="item-icon"> 3399 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 3400 <path d="M21.4167 8.25V5.01758C21.4167 4.85339 21.3844 4.69081 21.3215 4.53914C21.2586 4.38746 21.1665 4.24966 21.0503 4.13359L19.2828 2.36602C19.0484 2.1317 18.7306 2.00005 18.3992 2H8.91675C8.58523 2 8.26729 2.1317 8.03286 2.36612C7.79844 2.60054 7.66675 2.91848 7.66675 3.25V20.75C7.66675 21.0815 7.79844 21.3995 8.03286 21.6339C8.26729 21.8683 8.58523 22 8.91675 22H21.4167C21.7483 22 22.0662 21.8683 22.3006 21.6339C22.5351 21.3995 22.6667 21.0815 22.6667 20.75V9.5C22.6667 9.16848 22.5351 8.85054 22.3006 8.61612C22.0662 8.3817 21.7483 8.25 21.4167 8.25ZM13.9167 18.875C13.9167 19.0408 13.8509 19.1997 13.7337 19.3169C13.6165 19.4342 13.4575 19.5 13.2917 19.5H12.0417C11.876 19.5 11.717 19.4342 11.5998 19.3169C11.4826 19.1997 11.4167 19.0408 11.4167 18.875V17.625C11.4167 17.4592 11.4826 17.3003 11.5998 17.1831C11.717 17.0658 11.876 17 12.0417 17H13.2917C13.4575 17 13.6165 17.0658 13.7337 17.1831C13.8509 17.3003 13.9167 17.4592 13.9167 17.625V18.875ZM13.9167 13.875C13.9167 14.0408 13.8509 14.1997 13.7337 14.3169C13.6165 14.4342 13.4575 14.5 13.2917 14.5H12.0417C11.876 14.5 11.717 14.4342 11.5998 14.3169C11.4826 14.1997 11.4167 14.0408 11.4167 13.875V12.625C11.4167 12.4592 11.4826 12.3003 11.5998 12.1831C11.717 12.0658 11.876 12 12.0417 12H13.2917C13.4575 12 13.6165 12.0658 13.7337 12.1831C13.8509 12.3003 13.9167 12.4592 13.9167 12.625V13.875ZM18.9167 18.875C18.9167 19.0408 18.8509 19.1997 18.7337 19.3169C18.6165 19.4342 18.4575 19.5 18.2917 19.5H17.0417C16.876 19.5 16.717 19.4342 16.5998 19.3169C16.4826 19.1997 16.4167 19.0408 16.4167 18.875V17.625C16.4167 17.4592 16.4826 17.3003 16.5998 17.1831C16.717 17.0658 16.876 17 17.0417 17H18.2917C18.4575 17 18.6165 17.0658 18.7337 17.1831C18.8509 17.3003 18.9167 17.4592 18.9167 17.625V18.875ZM18.9167 13.875C18.9167 14.0408 18.8509 14.1997 18.7337 14.3169C18.6165 14.4342 18.4575 14.5 18.2917 14.5H1
34007.0417C16.876 14.5 16.717 14.4342 16.5998 14.3169C16.4826 14.1997 16.4167 14.0408 16.4167 13.875V12.625C16.4167 12.4592 16.4826 12.3003 16.5998 12.1831C16.717 12.0658 16.876 12 17.0417 12H18.2917C18.4575 12 18.6165 12.0658 18.7337 12.1831C18.8509 12.3003 18.9167 12.4592 18.9167 12.625V13.875ZM18.9167 9.5H10.1667V4.5H16.4167V6.375C16.4167 6.54076 16.4826 6.69973 16.5998 6.81694C16.717 6.93415 16.876 7 17.0417 7H18.9167V9.5ZM5.16675 7H3.91675C3.58523 7 3.26729 7.1317 3.03286 7.36612C2.79844 7.60054 2.66675 7.91848 2.66675 8.25L2.66675 20.75C2.66675 21.0815 2.79844 21.3995 3.03286 21.6339C3.26729 21.8683 3.58523 22 3.91675 22H5.16675C5.49827 22 5.81621 21.8683 6.05063 21.6339C6.28505 21.3995 6.41675 21.0815 6.41675 20.75V8.25C6.41675 7.91848 6.28505 7.60054 6.05063 7.36612C5.81621 7.1317 5.49827 7 5.16675 7Z" fill="currentColor"></path> 3401</svg> 3402 </span> 3403 <a class="item-content">+84-4.37334163</a> 3404 </div> 3405 <div class="footer-info-item"> 3406 <span class="item-icon"> 3407 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 32 32" fill="none"> 3408 <path d="M22.6667 4.66663H9.33342C5.33341 4.66663 2.66675 6.66663 2.66675 11.3333V20.6666C2.66675 25.3333 5.33341 27.3333 9.33342 27.3333H22.6667C26.6667 27.3333 29.3334 25.3333 29.3334 20.6666V11.3333C29.3334 6.66663 26.6667 4.66663 22.6667 4.66663ZM23.2934 12.7866L19.1201 16.12C18.2401 16.8266 17.1201 17.1733 16.0001 17.1733C14.8801 17.1733 13.7467 16.8266 12.8801 16.12L8.70675 12.7866C8.28008 12.44 8.21341 11.8 8.54675 11.3733C8.89341 10.9466 9.52008 10.8666 9.94675 11.2133L14.1201 14.5466C15.1334 15.36 16.8534 15.36 17.8667 14.5466L22.0401 11.2133C22.4667 10.8666 23.1067 10.9333 23.4401 11.3733C23.7867 11.8 23.7201 12.44 23.2934 12.7866Z" fill="currentColor"></path> 3409</svg> 3410 </span> 3411 <a class="item-content" href="mailto:[email protected]">[email protected]</a> 3412 </div> 3413 <div class="footer-info-item"> 3414 <span class="item-icon"> 3415 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 3416 <path d="M8.31681 20.9101C8.28681 20.9101 8.24681 20.9301 8.21681 20.9301C6.27681 19.9701 4.69681 18.3801 3.72681 16.4401C3.72681 16.4101 3.74681 16.3701 3.74681 16.3401C4.96681 16.7001 6.22681 16.9701 7.47681 17.1801C7.69681 18.4401 7.95681 19.6901 8.31681 20.9101Z" fill="currentColor"></path> 3417 <path d="M21.6068 16.4501C20.6168 18.4401 18.9668 20.0501 16.9568 21.0201C17.3368 19.7501 17.6568 18.4701 17.8668 17.1801C19.1268 16.9701 20.3668 16.7001 21.5868 16.3401C21.5768 16.3801 21.6068 16.4201 21.6068 16.4501Z" fill="currentColor"></path> 3418 <path d="M21.6868 7.70998C20.4268 7.32998 19.1568 7.01998 17.8668 6.79998C17.6568 5.50998 17.3468 4.22998 16.9568 2.97998C19.0268 3.96998 20.6968 5.63998 21.6868 7.70998Z" fill="currentColor"></path> 3419 <path d="M8.31673 3.09006C7.95673 4.31006 7.69673 5.55006 7.48673 6.81006C6.19673 7.01006 4.91673 7.33006 3.64673 7.71006C4.61673 5.70006 6.22673 4.05006 8.21673 3.06006C8.24673 3.06006 8.28673 3.09006 8.31673 3.09006Z" fill="currentColor"></path> 3420 <path d="M16.1568 6.59C13.8368 6.33 11.4968 6.33 9.17676 6.59C9.42676 5.22 9.74676 3.85 10.1968 2.53C10.2168 2.45 10.2068 2.39 10.2168 2.31C11.0068 2.12 11.8168 2 12.6668 2C13.5068 2 14.3268 2.12 15.1068 2.31C15.1168 2.39 15.1168 2.45 15.1368 2.53C15.5868 3.86 15.9068 5.22 16.1568 6.59Z" fill="currentColor"></path> 3421 <path d="M7.25675 15.49C5.87675 15.24 4.51675 14.92 3.19675 14.47C3.11675 14.45 3.05675 14.46 2.97675 14.45C2.78675 13.66 2.66675 12.85 2.66675 12C2.66675 11.16 2.78675 10.34 2.97675 9.56001C3.05675 9.55001 3.11675 9.55001 3.19675 9.53001C4.52675 9.09001 5.87675 8.76001 7.25675 8.51001C7.00675 10.83 7.00675 13.17 7.25675 15.49Z" fill="currentColor"></path> 3422 <path d="M22.6667 12C22.6667 12.85 22.5467 13.66 22.3567 14.45C22.2767 14.46 22.2167 14.45 22.1367 14.47C20.8067 14.91 19.4467 15.24 18.0767 15.49C18.3367 13.17 18.3367 10.83 18.0767 8.51001C19.4467 8.76001 20.8167 9.08001 22.1367 9.53001C22.2167 9.55001 22.2767 9.56001 22.3567 9.56001C22.54
342267 10.35 22.6667 11.16 22.6667 12Z" fill="currentColor"></path> 3423 <path d="M16.1568 17.4099C15.9068 18.7899 15.5868 20.1499 15.1368 21.4699C15.1168 21.5499 15.1168 21.6099 15.1068 21.6899C14.3268 21.8799 13.5068 21.9999 12.6668 21.9999C11.8168 21.9999 11.0068 21.8799 10.2168 21.6899C10.2068 21.6099 10.2168 21.5499 10.1968 21.4699C9.75676 20.1399 9.42676 18.7899 9.17676 17.4099C10.3368 17.5399 11.4968 17.6299 12.6668 17.6299C13.8368 17.6299 15.0068 17.5399 16.1568 17.4099Z" fill="currentColor"></path> 3424 <path d="M16.4301 15.7633C13.929 16.0789 11.4045 16.0789 8.90342 15.7633C8.58786 13.2622 8.58786 10.7378 8.90342 8.23667C11.4045 7.92111 13.929 7.92111 16.4301 8.23667C16.7456 10.7378 16.7456 13.2622 16.4301 15.7633Z" fill="currentColor"></path> 3425</svg> 3426 </span> 3427 <a class="item-content" href="http://vdi.org.vn/" target="_blank">vdi.org.vn</a> 3428 </div> 3429 <div class="footer-info-item"> 3430 <span class="item-icon"> 3431 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 3432 <path d="M21.2868 8.45C20.2368 3.83 16.2068 1.75 12.6668 1.75C12.6668 1.75 12.6668 1.75 12.6568 1.75C9.12684 1.75 5.08684 3.82 4.03684 8.44C2.86684 13.6 6.02684 17.97 8.88684 20.72C9.94684 21.74 11.3068 22.25 12.6668 22.25C14.0268 22.25 15.3868 21.74 16.4368 20.72C19.2968 17.97 22.4568 13.61 21.2868 8.45ZM12.6668 13.46C10.9268 13.46 9.51684 12.05 9.51684 10.31C9.51684 8.57 10.9268 7.16 12.6668 7.16C14.4068 7.16 15.8168 8.57 15.8168 10.31C15.8168 12.05 14.4068 13.46 12.6668 13.46Z" fill="currentColor"></path> 3433</svg> 3434 </span> 3435 <p class="item-content">Km6+500 Äại Lá» ThÄng Long, Xuân Phương, Hà Ná»i</p> 3436 </div> 3437 </div> 3438 </div> 3439 <div class="footer-link"> 3440 <a class="item-link">Giá»i thiá»u</a> 3441 <a class="item-link">Sản phẩm</a> 3442 <a class="item-link">Tin tức - sá»± kiá»n</a> 3443 <a class="item-link">Liên há»</a> 3444 <div class="social-links"> 3445 <a class="item-link"> 3446 <img src="/Publishing_Resources/CongThongTin/assets/images/icon-fb.png" alt="img-social" /></a> 3447 <a class="item-link"> 3448 <img src="/Publishing_Resources/CongThongTin/assets/images/icon-intagram.png" alt="img-social" /></a> 3449 <a class="item-link"> 3450 <img src="/Publishing_Resources/CongThongTin/assets/images/icon-zalo.png" alt="img-social" /></a> 3451 <a class="item-link"> 3452 <img src="/Publishing_Resources/CongThongTin/assets/images/icon-youtube.png" alt="img-social" /></a> 3453 </div> 3454 </div> 3455 <div class="footer-status"> 3456 </div> 3457 </div> 3458</div> 3459 3460<div class="copyright"> 3461<p>Bản quyá»n © Tá»ng Cục Công Nghiá»p Quá»c Phòng</p> 3462</div> 3463</div> 3464 3465 3466<div class="data-upgrading-text">Äang nâng cấp dữ liá»u</div> 3467
3468<script> 3469 $(document).ready(function () { 3470 $.get('/UserControls/Publishing/ShowMenu/LoadGA4.aspx', function (data) { 3471 if (!data) return; 3472 3473 const footerStatus = $('.footer-status'); 3474 footerStatus.empty(); 3475 3476 const items = [ 3477 { label: "Äang online", value: data.RealTimeActiveUsers }, 3478 { label: "Truy cáºp ngà y", value: data.RealTimePageViews }, 3479 { label: "Thá»ng kê truy cáºp", value: data.TotalPageViews } 3480 ]; 3481 3482 $.each(items, function (i, item) { 3483 footerStatus.append('<p class="item">' + item.label + ': <span>' + item.value + '</span></p>'); 3484 }); 3485 3486 }, 'json') 3487 .fail(function (err) { 3488 console.error('Lá»i khi tải GA4:', err); 3489 }); 3490 3491 // Fix the built-in .back-to-top button for SharePoint's scroll container 3492 var scrollContainer = $('#s4-workspace').length ? $('#s4-workspace') : $(window); 3493 var backToTopBtn = $('.back-to-top'); 3494 3495 if (backToTopBtn.length > 0) { 3496 scrollContainer.scroll(function() { 3497 if ($(this).scrollTop() > 300) { 3498 backToTopBtn.css({'opacity': '1', 'visibility': 'visible', 'pointer-events': 'auto'}); 3499 } else { 3500 backToTopBtn.css({'opacity': '0', 'visibility': 'hidden', 'pointer-events': 'none'}); 3501 } 3502 }); 3503 3504 backToTopBtn.off('click').on('click', function(e) { 3505 e.preventDefault(); 3506 $(this).blur(); 3507 var target = $('#s4-workspace').length ? $('#s4-workspace') : $("html, body"); 3508 target.animate({ scrollTop: 0 }, 500); 3509 }); 3510 3511 if (scrollContainer.scrollTop() > 300) { 3512 backToTopBtn.css({'opacity': '1', 'visibility': 'visible', 'pointer-events': 'auto'}); 3513 } else { 3514 backToTopBtn.css({'opacity': '0', 'visibility': 'hidden', 'pointer-events': 'none'}); 3515 } 3516 } 3517 3518 // Force footer links to have the correct hrefs (since HTML is loaded from database) 3519 $('.footer-link .item-link').each(function() { 3520 var text = $(this).text().trim().toUpperCase(); 3521 if (text === 'GIá»I THIá»U' || text === 'ABOUT US') { 3522 $(this).attr('href', '/gioi-thieu.html'); 3523 } else if (text === 'SẢN PHẨM' || text === 'PRODUCTS') { 3524 $(this).attr('href', 'https://xuctienthuongmai.vdi.org.vn/'); 3525 $(this).attr('target', '_blank'); 3526 } else if (text === 'TIN TỨC - Sá»° KIá»N' || text === 'NEWS - EVENTS' || text === 'TIN TỨC - Sá»° KIá»N ') { 3527 $(this).attr('href', '/tin-tuc/tin-tuc-su-kien.html'); 3528 } else if (text === 'LIÃN Há»' || text === 'CONTACT') { 3529 $(this).attr('href', '/lien-he.html'); 3530 } 3531 }); 3532 }); 3533</script>
3533 3534<style> 3535.back-to-top { 3536 z-index: 999999 !important; 3537 transition: all 0.3s ease !important; 3538 min-width: 45px !important; 3539 width: 45px !important; 3540 height: 45px !important; 3541 padding: 0 !important; 3542 border-radius: 50% !important; 3543 text-align: center !important; 3544 line-height: 45px !important; 3545 -webkit-tap-highlight-color: transparent !important; 3546 outline: none !important; 3547} 3548.back-to-top:hover, .back-to-top:focus, .back-to-top:active { 3549 transform: translateY(-3px) !important; 3550 background-color: #259d4f !important; 3551 color: #fff !important; 3552 border: none !important; 3553} 3554.data-upgrading-text { 3555 position: fixed !important; 3556 bottom: 40px !important; 3557 right: 100px !important; /* Positioned to the left of back-to-top button (40px + 45px + gap) */ 3558 z-index: 999998 !important; 3559 padding: 8px 16px !important; 3560 background: rgba(255, 255, 255, 0.4) !important; 3561 backdrop-filter: blur(8px) !important; 3562 -webkit-backdrop-filter: blur(8px) !important; 3563 border: 1px solid rgba(255, 255, 255, 0.5) !important; 3564 border-radius: 20px !important; 3565 color: #333 !important; 3566 font-size: 13px !important; 3567 font-style: italic !important; 3568 font-weight: 500 !important; 3569 pointer-events: none !important; /* Clicks will pass through it */ 3570 box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important; 3571 transition: all 0.3s ease !important; 3572 opacity: 1 !important; /* Always visible */ 3573 visibility: visible !important; 3574} 3575@media (max-width: 768px) { 3576 .data-upgrading-text { 3577 right: 100px !important; /* Keep it left of back-to-top */ 3578 bottom: 40px !important; 3579 font-size: 11px !important; 3580 padding: 5px 10px !important; 3581 } 3582 .footer-logo { 3583 text-align: center !important; 3584 margin-bottom: 20px; 3585 } 3586 .footer-link { 3587 display: flex !important; 3588 flex-direction: row !important; 3589 flex-wrap: wrap; 3590 justify-content: center; 3591 align-items: center; 3592 gap: 10px 20px; 3593 margin-top: 25px; 3594 } 3595 .footer-link > .item-link { 3596 margin-bottom: 0 !important; 3597 padding: 5px 0; 3598 font-size: 15px; 3599 font-weight: 500; 3600 } 3601 .footer-link .social-links { 3602 width: 100%; 3603 display: flex; 3604 justify-content: center; 3605 gap: 20px; 3606 margin-top: 15px; 3607 } 3608 .footer-info-item { 3609 margin-bottom: 12px !important; 3610 align-items: flex-start !important; 3611 } 3612 .footer-info-item .item-icon { 3613 margin-top: 2px; 3614 margin-right: 8px; 3615 } 3616 .footer-info-item .item-content { 3617 font-size: 15px !important; 3618 } 3619 .copyright { 3620 text-align: center !important; 3621 padding: 15px !important; 3622 } 3623} 3624</style> 3625</div> 3626 </footer> 3627 3628
3628<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
3628 3629
3629<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
3629 3630
3630<script src="/Publishing_Resources/CongThongTin/js/main.js"></script>
3630 3631 <button class="back-to-top"> 3632 <i class="fas fa-chevron-up"></i> 3633 </button> 3634 </div> 3635 <div id="DeltaFormDigest"> 3636 3637 3638
3638<script type="text/javascript">//<![CDATA[ 3639 var formDigestElement = document.getElementsByName('__REQUESTDIGEST')[0]; 3640 if (!((formDigestElement == null) || (formDigestElement.tagName.toLowerCase() != 'input') || (formDigestElement.type.toLowerCase() != 'hidden') || 3641 (formDigestElement.value == null) || (formDigestElement.value.length <= 0))) 3642 { 3643 formDigestElement.value = '0x4A528AFF53D6C06BEE69F708820618229220A8837A5A55E4398474AC93BCCF07F749A38CA44587577291899F714D29FDD6549B6E7AFB1FB2DF94B4102C5B4840,02 Oct 2026 12:48:11 -0000';_spPageContextInfo.updateFormDigestPageLoaded = new Date(); 3644 } 3645 //]]> 3646 </script>
3646 3647 3648 3649</div> 3650 3651
3652<script type="text/javascript"> 3653//<![CDATA[ 3654var _spFormDigestRefreshInterval = 1440000;window.SPThemeUtils && SPThemeUtils.ApplyCurrentTheme(true); IsSPSocialSwitchEnabled = function() { return true; };var _fV4UI = true; 3655function _RegisterWebPartPageCUI() 3656{ 3657 var initInfo = {editable: false,isEditMode: false,allowWebPartAdder: false,listId: "{a7fef96a-77ec-45f7-8ea3-769a547e8083}",itemId: 90,recycleBinEnabled: true,enableMinorVersioning: true,enableModeration: false,forceCheckout: true,rootFolderUrl: "\u002fPublic\u002fPages",itemPermissions:{High:16,Low:196673}}; 3658 SP.Ribbon.WebPartComponent.registerWithPageManager(initInfo); 3659 var wpcomp = SP.Ribbon.WebPartComponent.get_instance(); 3660 var hid; 3661 hid = document.getElementById("_wpSelected"); 3662 if (hid != null) 3663 { 3664 var wpid = hid.value; 3665 if (wpid.length > 0) 3666 { 3667 var zc = document.getElementById(wpid); 3668 if (zc != null) 3669 wpcomp.selectWebPart(zc, false); 3670 } 3671 } 3672 hid = document.getElementById("_wzSelected"); 3673 if (hid != null) 3674 { 3675 var wzid = hid.value; 3676 if (wzid.length > 0) 3677 { 3678 wpcomp.selectWebPartZone(null, wzid); 3679 } 3680 } 3681}; 3682function __RegisterWebPartPageCUI() { 3683ExecuteOrDelayUntilScriptLoaded(_RegisterWebPartPageCUI, "sp.ribbon.js");} 3684_spBodyOnLoadFunctionNames.push("__RegisterWebPartPageCUI");var __wpmExportWarning='This Web Part Page has been personalized. As a result, one or more Web Part properties may contain confidential information. Make sure the properties contain information that is safe for others to read. After exporting this Web Part, view properties in the Web Part description file (.WebPart) by using a text editor such as Microsoft Notepad.';var __wpmCloseProviderWarning='You are about to close this Web Part. It is currently providing data to other Web Parts, and these connections will be deleted if this Web Part is closed. To close this Web Part, click OK. To keep this Web Part, click Cancel.';var __wpmDeleteWarning='You are about to permanently delete this Web Part. Are you sure you want to do this? To delete this Web Part, click OK. To keep this Web Part, click Cancel.';var g_clientIdDeltaPlaceHolderMain = "DeltaPlaceHolderMain"; 3685var g_clientIdDeltaPlaceHolderUtilityContent = "DeltaPlaceHolderUtilityContent"; 3686//]]> 3687</script>
3687 3688</form> 3689 <span id="DeltaPlaceHolderUtilityContent"> 3690 3691 </span> 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 </body> 3721</html> 3722 3723 3724 3725 3726 3727 3728
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.