{"id":2584,"date":"2026-05-18T21:48:54","date_gmt":"2026-05-18T14:48:54","guid":{"rendered":"https:\/\/xadilinh.com\/?page_id=2584"},"modified":"2026-05-19T07:57:55","modified_gmt":"2026-05-19T00:57:55","slug":"ho-tich","status":"publish","type":"page","link":"https:\/\/xadilinh.com\/?page_id=2584","title":{"rendered":"H\u1ed9 T\u1ecbch"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"vi\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\n\n<title>Kiosk H\u00e0nh Ch\u00ednh C\u00f4ng X\u00e3 Di Linh<\/title>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800;900&#038;display=swap\" rel=\"stylesheet\">\n\n<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n\n<style>\n\nbody{\n  margin:0;\n  overflow:hidden;\n  background:#ececec;\n  font-family:'Be Vietnam Pro',sans-serif;\n  user-select:none;\n  -webkit-tap-highlight-color:transparent;\n}\n\n.hidden-modal{\n  display:none !important;\n}\n\n.service-btn{\n  transition:all .18s ease;\n  border-radius:24px;\n}\n\n.service-btn:hover{\n  transform:translateY(-3px);\n  box-shadow:0 18px 40px rgba(0,0,0,.12);\n}\n\n.service-btn:active{\n  transform:scale(.98);\n}\n\n#print-iframe{\n  position:fixed;\n  right:0;\n  bottom:0;\n  width:1px;\n  height:1px;\n  border:0;\n  opacity:0;\n  pointer-events:none;\n}\n\n<\/style>\n<\/head>\n\n<body>\n\n<div class=\"min-h-screen p-4 bg-[#ececec]\">\n\n  <div class=\"h-[calc(100vh-32px)] bg-white rounded-[32px] overflow-hidden shadow-2xl flex flex-col\">\n\n    <!-- HEADER -->\n    <div class=\"bg-gradient-to-r from-red-800 to-red-700 border-b-[5px] border-yellow-400 text-white p-8 relative\">\n\n      <button\n        onclick=\"openSettings()\"\n        class=\"absolute top-6 right-6 bg-white text-red-700 border-2 border-yellow-400 px-5 py-3 rounded-xl font-black shadow-xl hover:bg-yellow-50\"\n      >\n        \u2699 C\u1ea5u h\u00ecnh\n      <\/button>\n\n      <div class=\"text-center\">\n\n        <div class=\"text-6xl font-black uppercase tracking-tight leading-tight\">\n          Trung T\u00e2m Ph\u1ee5c V\u1ee5\n          <br>\n          H\u00e0nh Ch\u00ednh C\u00f4ng\n        <\/div>\n\n        <div class=\"mt-4 text-[28px] uppercase tracking-[8px] font-bold\">\n          X\u00e3 Di Linh\n        <\/div>\n\n        <div class=\"mt-6 inline-flex items-center gap-3 bg-white text-red-700 px-6 py-4 rounded-2xl font-black uppercase shadow-xl\">\n\n          <div class=\"w-3 h-3 rounded-full bg-green-500 animate-pulse\"><\/div>\n\n          Kiosk In Bi\u1ec3u M\u1eabu T\u1ef1 \u0110\u1ed9ng\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n    <!-- BODY -->\n    <div class=\"flex-1 overflow-auto p-8 bg-[#f5f5f5]\">\n\n      <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-7\">\n\n        <!-- KHAI SINH -->\n        <button\n          onclick=\"openPopup('KHAI SINH')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            Khai Sinh\n          <\/div>\n        <\/button>\n\n        <!-- KHAI T\u1eec -->\n        <button\n          onclick=\"openPopup('KHAI T\u1eec')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            Khai T\u1eed\n          <\/div>\n        <\/button>\n\n        <!-- K\u1ebeT H\u00d4N -->\n        <button\n          onclick=\"openPopup('K\u1ebeT H\u00d4N')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            K\u1ebft H\u00f4n\n          <\/div>\n        <\/button>\n\n        <!-- X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N -->\n        <button\n          onclick=\"openPopup('X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            X\u00e1c Nh\u1eadn H\u00f4n Nh\u00e2n\n          <\/div>\n        <\/button>\n\n        <!-- TR\u00cdCH L\u1ee4C -->\n        <button\n          onclick=\"printDirect('TR\u00cdCH L\u1ee4C','IN')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            Tr\u00edch L\u1ee5c\n          <\/div>\n        <\/button>\n\n        <!-- C\u1ea2I CH\u00cdNH -->\n        <button\n          onclick=\"printDirect('C\u1ea2I CH\u00cdNH','IN')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            C\u1ea3i Ch\u00ednh\n          <\/div>\n        <\/button>\n\n        <!-- GI\u00c1M H\u1ed8 -->\n        <button\n          onclick=\"printDirect('GI\u00c1M H\u1ed8','IN')\"\n          class=\"service-btn bg-white border border-gray-200 p-10 shadow-xl hover:bg-red-700 hover:text-white hover:border-yellow-400 text-left\"\n        >\n          <div class=\"text-[34px] font-extrabold uppercase\">\n            Gi\u00e1m H\u1ed9\n          <\/div>\n        <\/button>\n\n      <\/div>\n\n    <\/div>\n\n    <!-- FOOTER -->\n    <div class=\"bg-gradient-to-r from-red-900 to-red-800 border-t-[5px] border-yellow-400 text-white px-8 py-4 flex items-center justify-between\">\n\n      <div class=\"font-bold uppercase tracking-wider\">\n        \u1ee6y Ban Nh\u00e2n D\u00e2n X\u00e3 Di Linh\n      <\/div>\n\n      <div class=\"flex items-center gap-3\">\n\n        <div\n          id=\"printer-dot\"\n          class=\"w-3 h-3 rounded-full bg-green-500\"\n        ><\/div>\n\n        <div\n          id=\"printer-status\"\n          class=\"font-bold uppercase tracking-wide\"\n        >\n          M\u00e1y in s\u1eb5n s\u00e0ng\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n<!-- POPUP -->\n<div\n  id=\"popupModal\"\n  class=\"hidden-modal fixed inset-0 bg-black\/50 z-50 flex items-center justify-center p-6\"\n>\n\n  <div class=\"bg-white rounded-3xl overflow-hidden shadow-2xl w-full max-w-3xl\">\n\n    <div class=\"bg-gradient-to-r from-red-800 to-red-700 text-white p-6\">\n\n      <div\n        id=\"popupTitle\"\n        class=\"text-4xl font-black uppercase\"\n      ><\/div>\n\n    <\/div>\n\n    <div\n      id=\"popupButtons\"\n      class=\"grid grid-cols-1 md:grid-cols-2 gap-5 p-8 bg-[#f5f5f5]\"\n    ><\/div>\n\n    <div class=\"p-5 border-t bg-[#f5f5f5] flex justify-end\">\n\n      <button\n        onclick=\"closePopup()\"\n        class=\"bg-white border border-gray-300 px-8 py-3 rounded-xl font-black uppercase hover:bg-gray-100\"\n      >\n        \u0110\u00f3ng\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n<script>\n\n\/* =========================\nC\u1ea4U H\u00ccNH POPUP\n========================= *\/\n\nconst popupConfig = {\n\n  \"KHAI SINH\":[\n    \"\u0110\u0102NG K\u00dd M\u1edaI\",\n    \"\u0110\u0102NG K\u00dd L\u1ea0I\"\n  ],\n\n  \"KHAI T\u1eec\":[\n    \"\u0110\u0102NG K\u00dd M\u1edaI\",\n    \"\u0110\u0102NG K\u00dd L\u1ea0I\"\n  ],\n\n  \"K\u1ebeT H\u00d4N\":[\n    \"\u0110\u0102NG K\u00dd M\u1edaI\",\n    \"\u0110\u0102NG K\u00dd L\u1ea0I\"\n  ],\n\n  \"X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N\":[\n    \"\u0110\u00c3 CH\u1ebeT\",\n    \"LY H\u00d4N\",\n    \"\u0110\u1ed8C TH\u00c2N\"\n  ]\n\n};\n\n\/* =========================\nC\u1ea4U H\u00ccNH PDF\n========================= *\/\n\nconst defaultConfig = {\n\n  \"KHAI SINH_\u0110\u0102NG K\u00dd M\u1edaI\":\"\",\n  \"KHAI SINH_\u0110\u0102NG K\u00dd L\u1ea0I\":\"\",\n\n  \"KHAI T\u1eec_\u0110\u0102NG K\u00dd M\u1edaI\":\"\",\n  \"KHAI T\u1eec_\u0110\u0102NG K\u00dd L\u1ea0I\":\"\",\n\n  \"K\u1ebeT H\u00d4N_\u0110\u0102NG K\u00dd M\u1edaI\":\"\",\n  \"K\u1ebeT H\u00d4N_\u0110\u0102NG K\u00dd L\u1ea0I\":\"\",\n\n  \"X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N_\u0110\u00c3 CH\u1ebeT\":\"\",\n  \"X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N_LY H\u00d4N\":\"\",\n  \"X\u00c1C NH\u1eacN H\u00d4N NH\u00c2N_\u0110\u1ed8C TH\u00c2N\":\"\",\n\n  \"TR\u00cdCH L\u1ee4C_IN\":\"\",\n  \"C\u1ea2I CH\u00cdNH_IN\":\"\",\n  \"GI\u00c1M H\u1ed8_IN\":\"\"\n\n};\n\nlet pdfConfig =\nJSON.parse(localStorage.getItem(\"pdfConfig\"))\n|| defaultConfig;\n\n\/* =========================\nPOPUP\n========================= *\/\n\nfunction openPopup(service){\n\n  const modal =\n  document.getElementById(\"popupModal\");\n\n  const title =\n  document.getElementById(\"popupTitle\");\n\n  const buttons =\n  document.getElementById(\"popupButtons\");\n\n  title.innerText = service;\n\n  buttons.innerHTML = \"\";\n\n  popupConfig[service].forEach(type=>{\n\n    const btn =\n    document.createElement(\"button\");\n\n    btn.className =\n    \"bg-white border border-gray-200 hover:bg-red-700 hover:text-white hover:border-yellow-400 text-2xl font-black uppercase py-8 px-6 rounded-2xl shadow-xl\";\n\n    btn.innerText = type;\n\n    btn.onclick = ()=>{\n\n      printDirect(service,type);\n\n    };\n\n    buttons.appendChild(btn);\n\n  });\n\n  modal.classList.remove(\"hidden-modal\");\n\n}\n\nfunction closePopup(){\n\n  document\n  .getElementById(\"popupModal\")\n  .classList.add(\"hidden-modal\");\n\n}\n\n\/* =========================\nTR\u1ea0NG TH\u00c1I M\u00c1Y IN\n========================= *\/\n\nfunction setPrinterStatus(status){\n\n  const dot =\n  document.getElementById(\"printer-dot\");\n\n  const text =\n  document.getElementById(\"printer-status\");\n\n  if(status === \"READY\"){\n\n    dot.className =\n    \"w-3 h-3 rounded-full bg-green-500\";\n\n    text.innerText =\n    \"M\u00e1y in s\u1eb5n s\u00e0ng\";\n\n  }\n\n  if(status === \"PRINTING\"){\n\n    dot.className =\n    \"w-3 h-3 rounded-full bg-yellow-400 animate-pulse\";\n\n    text.innerText =\n    \"\u0110ang in bi\u1ec3u m\u1eabu\";\n\n  }\n\n  if(status === \"ERROR\"){\n\n    dot.className =\n    \"w-3 h-3 rounded-full bg-red-500\";\n\n    text.innerText =\n    \"L\u1ed7i m\u00e1y in\";\n\n  }\n\n}\n\n\/* =========================\nIN PDF T\u1ef0 \u0110\u1ed8NG\n========================= *\/\n\nfunction printDirect(service,type){\n\n  closePopup();\n\n  const key =\n  `${service}_${type}`;\n\n  const pdfUrl =\n  pdfConfig[key];\n\n  if(!pdfUrl){\n\n    alert(\"Ch\u01b0a c\u1ea5u h\u00ecnh PDF\");\n\n    return;\n\n  }\n\n  setPrinterStatus(\"PRINTING\");\n\n  const oldFrame =\n  document.getElementById(\"print-iframe\");\n\n  if(oldFrame){\n\n    oldFrame.remove();\n\n  }\n\n  const iframe =\n  document.createElement(\"iframe\");\n\n  iframe.id = \"print-iframe\";\n\n  iframe.style.position = \"fixed\";\n  iframe.style.right = \"0\";\n  iframe.style.bottom = \"0\";\n  iframe.style.width = \"1px\";\n  iframe.style.height = \"1px\";\n  iframe.style.border = \"0\";\n  iframe.style.opacity = \"0\";\n\n  iframe.src = pdfUrl;\n\n  document.body.appendChild(iframe);\n\n  iframe.onload = ()=>{\n\n    setTimeout(()=>{\n\n      try{\n\n        iframe.contentWindow.focus();\n\n        iframe.contentWindow.print();\n\n        setPrinterStatus(\"READY\");\n\n      }catch(e){\n\n        setPrinterStatus(\"ERROR\");\n\n        alert(\"Kh\u00f4ng th\u1ec3 in t\u1ef1 \u0111\u1ed9ng\");\n\n      }\n\n    },1200);\n\n  };\n\n}\n\n\/* =========================\nC\u1ea4U H\u00ccNH PDF\n========================= *\/\n\nfunction openSettings(){\n\n  const pin =\n  prompt(\"Nh\u1eadp m\u00e3 PIN qu\u1ea3n tr\u1ecb\");\n\n  if(pin !== \"1234\"){\n\n    if(pin !== null){\n\n      alert(\"Sai m\u00e3 PIN\");\n\n    }\n\n    return;\n\n  }\n\n  let html = \"\";\n\n  Object.keys(defaultConfig).forEach(key=>{\n\n    html += `\n      <div style=\"margin-bottom:14px\">\n\n        <div style=\"\n          font-weight:700;\n          margin-bottom:6px;\n          font-family:sans-serif;\n        \">\n          ${key}\n        <\/div>\n\n        <input\n          style=\"\n            width:100%;\n            padding:14px;\n            border:1px solid #ccc;\n            border-radius:12px;\n            box-sizing:border-box;\n          \"\n          value=\"${pdfConfig[key] || ''}\"\n          onchange=\"window.opener.updatePdf('${key}',this.value)\"\n        >\n\n      <\/div>\n    `;\n\n  });\n\n  const popup =\n  window.open(\n    \"\",\n    \"SETTINGS\",\n    \"width=850,height=850\"\n  );\n\n  popup.document.write(`\n\n    <html>\n\n      <head>\n\n        <title>C\u1ea5u h\u00ecnh PDF<\/title>\n\n      <\/head>\n\n      <body style=\"\n        font-family:sans-serif;\n        padding:20px;\n      \">\n\n        <h2>\n          C\u1ea5u h\u00ecnh \u0111\u01b0\u1eddng d\u1eabn PDF\n        <\/h2>\n\n        ${html}\n\n      <\/body>\n\n    <\/html>\n\n  `);\n\n}\n\nfunction updatePdf(key,value){\n\n  pdfConfig[key] = value;\n\n  localStorage.setItem(\n    \"pdfConfig\",\n    JSON.stringify(pdfConfig)\n  );\n\n}\n\n\/* =========================\nT\u1eaeT CHU\u1ed8T PH\u1ea2I\n========================= *\/\n\ndocument.addEventListener(\n  \"contextmenu\",\n  e => e.preventDefault()\n);\n\n\/* =========================\nRESET POPUP\n========================= *\/\n\nlet inactivityTimer;\n\nfunction resetTimer(){\n\n  clearTimeout(inactivityTimer);\n\n  inactivityTimer = setTimeout(()=>{\n\n    closePopup();\n\n  },30000);\n\n}\n\ndocument.addEventListener(\n  \"click\",\n  resetTimer\n);\n\ndocument.addEventListener(\n  \"touchstart\",\n  resetTimer\n);\n\nresetTimer();\n\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Kiosk H\u00e0nh Ch\u00ednh C\u00f4ng X\u00e3 Di Linh \u2699 C\u1ea5u h\u00ecnh Trung T\u00e2m Ph\u1ee5c V\u1ee5 H\u00e0nh Ch\u00ednh C\u00f4ng X\u00e3 Di Linh [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2584","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/pages\/2584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xadilinh.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2584"}],"version-history":[{"count":3,"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/pages\/2584\/revisions"}],"predecessor-version":[{"id":2589,"href":"https:\/\/xadilinh.com\/index.php?rest_route=\/wp\/v2\/pages\/2584\/revisions\/2589"}],"wp:attachment":[{"href":"https:\/\/xadilinh.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}