瀏覽代碼

2015年10月18日新增需求开发

王强 1 月之前
父節點
當前提交
b2ff90f8a8

+ 261 - 65
i18n/locales/en.json

@@ -1,66 +1,262 @@
-{
-  "message": {
-    "hello": "Hello World",
-    "companyName": "China Tobacco International (Hong Kong) Company Limited",
-    "description": "China Tobacco International (Hong Kong) Company Limited (referred to as \"China Tobacco Hong Kong\", stock code: 6055.HK) was registered in Hong Kong in February 2004 and listed on the Hong Kong Stock Exchange in June 2019. It is currently the only listed tobacco business company within the China Tobacco system and has become a constituent stock of the Hang Seng Composite Index, Hang Seng Consumer Goods Manufacturing and Services Index, and MSCI China All Shares Index.",
-    "title": "Tobacco Leaf Business",
-    "title1": "Cigarette Business",
-    "title2": "New Tobacco Products Business",
-    "t1": "Home",
-    "t2": "About the Group",
-    "t3": "News & Updates",
-    "t4": "Our Business",
-    "t5": "Careers",
-    "t6": "Contact Us",
-    "more": "More",
-    "newTitle": "News and Consultation",
-    "mianze": "Disclaimer",
-    "siyin": "Privacy Policy",
-    "lianxi": "Contact Us",
-    "mianze": "Disclaimer",
-    "siyin": "Privacy Policy",
-    "lianxi": "Contact Us",
-    "xiyan": "Smoking is harmful to health. This website contains tobacco-related content and is not intended for minors!",
-    "number": "23.250",
-    "zuixin": "Latest Stock Price",
-    "gupiao": "Stock Code",
-    "daimanumber": "6055.HK",
-    "jiezhi": "As of",
-    "date": "2024/10/21 13:52:12",
-    "xianggangshijian": "Hong Kong Time",
-    "yanchi": "Quote delayed by fifteen minutes or more",
-    "banquan": "All Rights Reserved",
-    "banquan1": "© China Tobacco International (Hong Kong) Company Limited June 2024",
-    "description": "China Tobacco International (Hong Kong) Company Limited (referred to as \"China Tobacco Hong Kong\", stock code: 6055.HK) was registered in Hong Kong in February 2004 and listed on the Hong Kong Stock Exchange in June 2019. It is currently the only listed tobacco business company within the China Tobacco system and has become a constituent stock of the Hang Seng Composite Index, Hang Seng Consumer Goods Manufacturing and Services Index, and MSCI China All Shares Index.",
-    "description1": "Our tobacco leaf business involves purchasing various types of tobacco leaf products from major tobacco leaf producing regions worldwide and selling them to global markets.",
-    "description2": "Our cigarette business involves purchasing cigarette products from cigarette manufacturing enterprises under China Tobacco and selling them to global markets (excluding mainland China) and duty-free shops within mainland China.",
-    "description3": "Our new tobacco products business involves purchasing new tobacco products from cigarette manufacturing enterprises under China Tobacco and exclusively selling them to global markets (excluding mainland China).",
-    "swiperList": [
-      {
-        "title": "China Tobacco Hong Kong Shines at Dortmund",
-        "title1": "InterTabac 2024 International Tobacco Exhibition",
-        "content": "China Tobacco Hong Kong organized a 66-person exhibition team, representing 13 Chinese tobacco industrial enterprises, showcasing 25 brands, over 100 heated tobacco products, and 30 cigar products, the largest scale ever.",
-        "date": "2024.10.14"
+  {
+    "message": {
+      "hello": "Hello, World",
+      "companyName": "China Tobacco International (Hong Kong) Company Limited",
+      "title": "Leaf Tobacco Business",
+      "title1": "Cigarette Business",
+      "title2": "New Tobacco Business",
+      "t1": "Home",
+      "t2": "Group Overview",
+      "t3": "News",
+      "t4": "Main Business",
+      "t5": "Talent Recruitment",
+      "t6": "Contact Information",
+      "t7": "Recruitment Information",
+      "t8": "Corporate Website",
+      "newTitle": "News & Information",
+      "more": "More",
+      "mianze": "Disclaimer",
+      "siyin": "Privacy Policy",
+      "lianxi": "Contact Us",
+      "xiyan": "Smoking is harmful to health. This website contains tobacco-related content and is not intended for minors!",
+      "number": "23.250",
+      "zuixin": "Latest Stock Price",
+      "gupiao": "Stock Code",
+      "daimanumber": "6055.HK",
+      "jiezhi": "As of",
+      "date": "2024/10/21 13:52:12",
+      "xianggangshijian": "Hong Kong Time",
+      "yanchi": "Quotes are delayed by 15 minutes or more",
+      "banquan": "All Rights Reserved",
+      "banquan1": "© China Tobacco International (Hong Kong) Company Limited June 2024",
+      "description": "China Tobacco International (Hong Kong) Company Limited (abbreviated as 'China Tobacco Hong Kong', stock code: 6055.HK) was incorporated in Hong Kong in February 2004 and listed on the Hong Kong Stock Exchange in June 2019. It is currently the only listed tobacco business company within the China Tobacco system and is a constituent stock of the Hang Seng Composite Index, Hang Seng Consumer Goods Manufacturing & Services Index, and MSCI China A Inclusion Index.",
+      "description1": "Our leaf tobacco business involves sourcing various types of leaf tobacco products from major global tobacco-growing regions and selling them to the global market.",
+      "description2": "Our cigarette business involves sourcing cigarette products from cigarette manufacturers under China Tobacco and selling them to the global market (excluding Mainland China) and duty-free shops within Mainland China.",
+      "description3": "Our new tobacco business involves sourcing new tobacco products from cigarette manufacturers under China Tobacco and exclusively selling them to the global market (excluding Mainland China).",
+      "company": "Company Overview",
+      "companyContent": "China Tobacco International (Hong Kong) Company Limited (abbreviated as 'China Tobacco Hong Kong', stock code: 6055.HK) was incorporated in Hong Kong in February 2004 and listed on the Hong Kong Stock Exchange in June 2019. It is currently the only listed tobacco business company within the China Tobacco system and is a constituent stock of the Hang Seng Composite Index, Hang Seng Consumer Goods Manufacturing & Services Index, and MSCI China A Inclusion Index.",
+      "companyContent1": "Since its listing, China Tobacco Hong Kong has focused on international market expansion, continuously exploring market potential, and striving to enhance the scale and quality of business development. The company is committed to corporate governance, promoting board diversity, and continuously improving corporate management and risk control systems. It is also dedicated to social value realization, continuously enhancing shareholder returns, and systematically aligning with international standards to build an ESG system. Currently, China Tobacco Hong Kong's business covers new tobacco, cigarettes, leaf tobacco, cigars, and other categories, with market regions spanning more than 50 countries and regions in East Asia, Southeast Asia, North and South America, Central and Eastern Europe, etc. The company operates more than 20 new tobacco brands, over 35 cigarette brands, and more than 35 cigar specifications.",
+      "companyContent2": "In the future, China Tobacco Hong Kong will continue to uphold the development philosophy of 'respecting the market, respecting rules, and respecting investors', continuously cultivate core businesses, actively pursue cross-border mergers and acquisitions, and continuously enhance market value, striving to build a world-class tobacco enterprise with international competitiveness!",
+      "p1": "Mr. Shao Yan",
+      "p11": "Chairman, Non-executive Director",
+      "p111": "Serving as Chairman of the Board and Non-executive Director since June 2018",
+      "p1111": "Joined the company in August 2016",
+      "unit": "Billion HKD",
+      "unit1": "HKD",
+      "yingyeshouru": "Operating Revenue",
+      "zichanjingzhi": "Net Asset Value",
+      "meiguyingli": "Earnings Per Share",
+      "mianzeshengming": "Disclaimer",
+      "mianzeshengmingE": "Disclaimer",
+      "mianzeContent1": "This website is intended to provide basic information about China Tobacco International Group Co., Ltd. ('the Company') and its subsidiaries for reference only and should not be regarded as investment or other professional advice.",
+      "mianzeContent2": "The Company does not guarantee that the information contained on this website is comprehensive, accurate, or up-to-date. The Company is not responsible for any loss arising from the use of the information contained on this website (including any third-party websites accessed via hyperlinks from this website).",
+      "mianzeContent3": "This website is not for advertising or marketing purposes and is for reference only. The information contained on this website does not and should not be regarded as an inducement, suggestion, solicitation to purchase or use, advocacy, or encouragement to use any smoking products, or an offer or invitation to purchase smoking products. Such products are only sold in jurisdictions where their sale is permitted by law.",
+      "mianzeContent4": "This website provides three language versions: Simplified Chinese, Traditional Chinese, and English. In case of any discrepancy, the Simplified Chinese version shall prevail.",
+      "yinsizhengce": "Privacy Policy",
+      "yinsizhengceE": "Privacy Policy",
+      "yinsizhengceContent1": "China Tobacco International Group Co., Ltd. ('the Company') is committed to complying with the Personal Data (Privacy) Ordinance (Cap. 486 of the Laws of Hong Kong) ('Hong Kong Privacy Ordinance'). The Company will ensure that its employees implement relevant policies and strictly keep your personal data confidential.",
+      "yinsizhengceContent2": "This privacy policy and personal data collection statement ('this Statement') are intended to explain how the Company collects and uses personal data.",
+      "yinsizhengceContent3": "Generally, except for data collected by Cookies, this website does not collect your personal data. If necessary, your personal data will be collected through the contact methods designated by the Company on a voluntary basis.",
+      "yinsizhengceContent4": "However, when you access any third-party website via hyperlinks from this website, such third-party websites may collect your personal data as a result of your use of their services. If such behavior occurs, please be sure to carefully read and understand the privacy policy statement and/or personal data collection statement formulated by the relevant third-party website. The Company is not responsible for protecting your privacy and personal data security and will not be responsible for any of its content.",
+      "yinsizhengceContent5": "The Company will update this Statement as necessary. Please read the latest revised Statement from time to time.",
+      "yinsizhengceContent6": "Collection and Use of Personal Data",
+      "yinsizhengceContent7": "Personal Data Collected",
+      "yinsizhengceContent8": "The personal data collected and used by the Company will depend on the purpose of collection and use. Such personal data may include relevant information such as name, contact details, and other information ('Personal Data').",
+      "yinsizhengceContent9": "Purpose of Collecting Personal Data",
+      "yinsizhengceContent10": "The purposes for which the Company collects and uses your personal data include but are not limited to the following:",
+      "yinsizhengceContent11": "- For recruitment and other human resources management purposes;",
+      "yinsizhengceContent12": "- Performance and execution of contracts",
+      "yinsizhengceContent13": "- Responding to comments, inquiries, and complaints;",
+      "yinsizhengceContent14": "- Preventing fraud or other illegal activities;",
+      "yinsizhengceContent15": "Disclosure as required by relevant laws or regulations",
+      "yinsizhengceContent16": "- Collecting and organizing visitor data for website usage analysis;",
+      "yinsizhengceContent17": "- Monitoring the operation of this website to assist its future development and improvement;",
+      "yinsizhengceContent18": "- Other purposes related to the above.",
+      "yinsizhengceContent19": "Disclosure and Transfer of Personal Data",
+      "yinsizhengceContent20": "To fulfill the purposes described in this Statement, the Company may, where reasonable and necessary, transfer your personal data to the Company's employees, subsidiary employees, affiliated companies, third-party business partners, and service providers.",
+      "yinsizhengceContent21": "Without your prior consent, the Company will not intentionally or deliberately use, disclose, transfer, or provide access to your personal data for any purpose unrelated to the above. Except as stated above, the Company will not provide, disclose, transfer, or provide access to your personal data to any other third party.",
+      "yinsizhengceContent22": "Retention of Personal Data",
+      "yinsizhengceContent23": "In compliance with legal, accounting, or relevant compliance requirements, the Company will retain your personal data in an appropriate manner for no longer than is necessary to fulfill the purposes described in this Statement. The relevant data will be destroyed or deleted after the relevant purposes are completed without further notice.",
+      "yinsizhengceContent24": "Protection of Personal Data Security",
+      "yinsizhengceContent25": "The Company is committed to taking all reasonably practicable measures to protect your personal data, including adopting industry-standard security measures, ensuring that only authorized personnel can access it, and regularly providing security and confidentiality training to the Company's employees.",
+      "yinsizhengceContent26": "Use of Cookies",
+      "yinsizhengceContent27": "Cookies are a commonly used technology on the Internet. When you browse the website, a small file is created by the web server and stored by the web browser on your computer or other device. The Company uses Cookies on the website to enhance your browsing experience.",
+      "yinsizhengceContent28": "The Company will only collect such data on a voluntary basis. You have the right to choose whether to accept Cookies. If you wish to accept Cookies, please click the pop-up banner at the bottom of the webpage when you first visit this website or set it through your browser. If you do not accept Cookies, you may not be able to experience the corresponding functions of this website that rely on Cookies.",
+      "yinsizhengceContent29": "The Company will not use Cookies for any purpose other than those described in this Statement.",
+      "yinsizhengceContent30": "Access and Correction of Personal Data",
+      "yinsizhengceContent31": "You have the right to request access to or correction of your personal data in accordance with the Hong Kong Privacy Ordinance. If you have any requests for access or correction of data, you may submit them in writing to the Company's Confidentiality Officer, marked 'Confidential Data' on the envelope, and mail it to the following address:",
+      "yinsizhengceContent32": "China Tobacco International Group Co., Ltd.",
+      "yinsizhengceContent33": "19th Floor, South Tower, Concordia Plaza, No. 1 Science Museum Road, Tsim Sha Tsui East, Kowloon, Hong Kong",
+      "yinsizhengceContent34": "For Confidentiality Officer",
+      "wzasm": "Accessibility Statement",
+      "wzasmContent1": "We are committed to ensuring that this website complies with the Web Content Accessibility Guidelines (WCAG) 2.1 AA level standards of the World Wide Web Consortium (W3C). However, this website contains a large amount of multimedia content, and it is not possible to ensure that all such content fully complies with all AA level standards. Nevertheless, such multimedia content is placed in specific locations to ensure that it does not hinder users from accessing important content on this website. If you have any inquiries, please email wongly@cti-group.com.hk, and we will do our best to provide you with the information you need in the required format.",
+      "banquansuoyou": "All Rights Reserved © China Tobacco International Group Co., Ltd.",
+      "tishi": "Smoking is harmful to health. This website contains tobacco-related content and is not intended for minors!",
+      "gengduoxinwen": "More News",
+      "zygjjt": "China Tobacco International Group Co., Ltd.",
+      "zygjjt1": "China Tobacco International Co., Ltd.",
+      "zygjjtContent": "China Tobacco International Group Co., Ltd. is located in Hong Kong, China, and is the overseas entity of China National Tobacco Corporation. Its main internal departments include Public Affairs Department, Strategic Development Department, Marketing Department, Supply Chain Department, Production and Operation Department, Finance Department, Human Resources Department, Information and Digitalization Department, Compliance and Risk Control Department, and Supervision Department, totaling 10 departments.",
+      "zygjjtContent1": "The group's major participating and holding enterprises include China Tobacco Hong Kong, Tianze Company, China Tobacco Brazil, China Tobacco North America, China Tobacco Argentina, China Tobacco Middle East, China Tobacco British American, China Tobacco Philip Morris, Macao Jinye, Laos Hongta, Cambodia Wellington, Hongta Switzerland, and Hongta Switzerland Romania.",
+      "zygjjtContent2": "China Tobacco International Co., Ltd. is located in Beijing, China, and serves as the Beijing branch of China Tobacco International Group Co., Ltd. Its internal departments include the General Affairs Department, State Trade Department, and Financial Management Department, totaling 3 departments.",
+      "ywjs": "Business Introduction",
+      "ywjs1": "China Tobacco International Group Co., Ltd. mainly engages in the international business of cigarettes and new tobacco products, leaf tobacco, tobacco machinery, acetate tow, cigarette paper, and other raw and auxiliary products, as well as cigarette production and processing.",
+      "ywzx": "Business Consultation",
+      "ywzx1": "Consultation on leaf tobacco, tobacco machinery, acetate tow, cigarette paper, etc.",
+      "ywzx2": "Consultation on cigarettes, new tobacco products, etc.",
+      "ywzx3": "Consultation on cigarette production and processing, etc.",
+      "contactAddress": "China Tobacco International Group Co., Ltd.",
+      "contactAddress1": "Room 1901, 19th Floor, South Tower, Concordia Plaza, No. 1 Science Museum Road, Kowloon, Hong Kong, China",
+      "tousu": "Complaint Channels",
+      "suoshuqiye": "Group Participating and Holding Enterprises",
+      "jt": "Group",
+      "ssqy": "Participating and Holding Enterprises",
+      "zyxg": {
+        "title": "China Tobacco International (Hong Kong) Company Limited",
+        "content": "China Tobacco International (Hong Kong) Company Limited is located in Hong Kong, China. It was listed on the Hong Kong Stock Exchange in June 2019 (China Tobacco Hong Kong, 6055.HK) and is the only listed tobacco business company within the China Tobacco system. It mainly engages in the international business of cigarettes, leaf tobacco, new tobacco products, and other tobacco products.",
+        "phone": "+852 26209500",
+        "website": "www.ctihk.com.hk"
       },
-      {
-        "title": "China Tobacco Hong Kong Shines at Dortmund InterTabac 2024 International Tobacco Exhibition, Deepening Global Tobacco Market Layout",
-        "title1": "InterTabac 2024 International Tobacco Exhibition",
-        "content": "On September 19, 2024, Beijing time, the InterTabac 2024 International Tobacco Exhibition opened in Dortmund, Germany.",
-        "date": "2024.09.16"
-      }
-    ],
-    "unit": "Billion HKD",
-    "yingyeshouru":"Revenue",
-    "unit1": "HKD",
-    "zichanjingzhi": "Net Asset Value",
-    "meiguyingli": "Earnings Per Share",
-    "gengduoxinwen": "More News",
-    "banquansuoyou":"Copyright © China Tobacco International Group Co., Ltd.",
-    "tishi": "Smoking is harmful to health. This website contains tobacco-related content. Minors are not allowed to visit!",
-    "suoshuqiye": "Group affiliated enterprises",
-    "jt": "Group",
-    "ssqy": "Subsidiaries",
-    "wzasm": "Accessibility Statement"
-
-  }
-}
+      "tzyc": {
+        "title": "Tianze Company",
+        "content": "Tianze Company is located in Harare, Zimbabwe, mainly engaged in the procurement and export of leaf tobacco.",
+        "phone": "+263 719754365/7"
+      },
+      "zybx": {
+        "title": "China Tobacco International Brazil Co., Ltd.",
+        "content": "China Tobacco International Brazil Co., Ltd. is located in Santa Cruz do Sul, Rio Grande do Sul, Brazil. It jointly invested with United International Brazil to establish China-Brazil Tobacco Export Co., Ltd., mainly engaged in the procurement and export of leaf tobacco.",
+        "phone": "+55 51981867090"
+      },
+      "zybn": {
+        "title": "China Tobacco International (North America) Co., Ltd.",
+        "content": "China Tobacco International (North America) Co., Ltd. is located in Raleigh, North Carolina, USA, mainly engaged in the procurement and export of leaf tobacco.",
+        "phone": "+1 (919)307-8449"
+      },
+      "zyag": {
+        "title": "China Tobacco International Argentina Co., Ltd.",
+        "content": "China Tobacco International Argentina Co., Ltd. is located in Salta, Argentina, mainly engaged in the procurement and export of leaf tobacco.",
+        "phone": "+54 93875139158"
+      },
+      "zyzd": {
+        "title": "China Tobacco International (Middle East) Co., Ltd.",
+        "content": "China Tobacco International (Middle East) Co., Ltd. is located in Dubai, UAE, mainly engaged in the marketing of cigarettes and other tobacco products.",
+        "phone": "+971 43991810"
+      },
+      "zyyb": {
+        "title": "China Tobacco British American International Co., Ltd.",
+        "content": "China Tobacco British American International Co., Ltd. is located in Hong Kong, China. It is a joint venture between China National Tobacco and British American Tobacco, mainly engaged in the marketing of cigarettes and other tobacco products.",
+        "phone": "+852 31295331"
+      },
+      "zyfm": {
+        "title": "China Tobacco Philip Morris International Co., Ltd.",
+        "content": "China Tobacco Philip Morris International Co., Ltd. is located in Lausanne, Switzerland. It is a joint venture between China National Tobacco and Philip Morris International, mainly engaged in the marketing of cigarettes and other tobacco products.",
+        "phone": "+41 215254620"
+      },
+      "zyhk": {
+        "title": "China Tobacco International (Hong Kong) Manufacturing Co., Ltd.",
+        "content": "China Tobacco International (Hong Kong) Manufacturing Co., Ltd. is located in Hong Kong, China, mainly engaged in cigarette manufacturing.",
+        "phone": ""
+      },
+      "zymo": {
+        "title": "Macao Jinye",
+        "content": "Macao Jinye is located in Macao, China, mainly engaged in cigarette manufacturing.",
+        "phone": ""
+      },
+      "zyls": {
+        "title": "Laos Hongta",
+        "content": "Laos Hongta is located in Savannakhet, Laos, mainly engaged in cigarette manufacturing.",
+        "phone": ""
+      },
+      "zyjm": {
+        "title": "Cambodia Wellington",
+        "content": "Cambodia Wellington is located in Phnom Penh, Cambodia, mainly engaged in cigarette manufacturing.",
+        "phone": ""
+      },
+      "zylm": {
+        "title": "China Tobacco International (Romania) Manufacturing Co., Ltd.",
+        "content": "China Tobacco International (Romania) Manufacturing Co., Ltd. is located in Bucharest, Romania, mainly engaged in cigarette manufacturing.",
+        "phone": ""
+      },
+      "zysw": {
+        "title": "Hongta Switzerland",
+        "content": "Hongta Switzerland is located in Baar, Switzerland, mainly engaged in the marketing of cigarettes and other tobacco products.",
+        "phone": ""
+      },
+      "companyList": [
+        {
+          "id": 1,
+          "name": "China Tobacco Hong Kong",
+          "nameEnglish": "China Tobacco International (Hong Kong)"
+        },
+        {
+          "id": 2,
+          "name": "Tianze Company",
+          "nameEnglish": "Tianze Company"
+        },
+        {
+          "id": 3,
+          "name": "China Tobacco Brazil",
+          "nameEnglish": "China Tobacco International Brazil"
+        },
+        {
+          "id": 4,
+          "name": "China Tobacco North America",
+          "nameEnglish": "China Tobacco International (North America)"
+        },
+        {
+          "id": 5,
+          "name": "China Tobacco Argentina",
+          "nameEnglish": "China Tobacco International Argentina"
+        },
+        {
+          "id": 6,
+          "name": "China Tobacco Middle East",
+          "nameEnglish": "China Tobacco International (Middle East)"
+        },
+        {
+          "id": 7,
+          "name": "China Tobacco British American",
+          "nameEnglish": "China Tobacco British American International"
+        },
+        {
+          "id": 8,
+          "name": "China Tobacco Philip Morris",
+          "nameEnglish": "China Tobacco Philip Morris International"
+        },
+        {
+          "id": 10,
+          "name": "Macao Jinye",
+          "nameEnglish": "Macao Jinye"
+        },
+        {
+          "id": 11,
+          "name": "Laos Hongta",
+          "nameEnglish": "Laos Hongta"
+        },
+        {
+          "id": 12,
+          "name": "Cambodia Wellington",
+          "nameEnglish": "Cambodia Wellington"
+        },
+        {
+          "id": 14,
+          "name": "Hongta Switzerland",
+          "nameEnglish": "Hongta Switzerland"
+        },
+        {
+          "id": 15,
+          "name": "Hongta Switzerland Romania",
+          "nameEnglish": "Hongta Switzerland Romania"
+        }
+      ],
+      "contactAddress2": "Room 1908, 19th Floor, South Tower, Concordia Plaza, No. 1 Science Museum Road, Tsim Sha Tsui East, Kowloon, Hong Kong, Supervision Department",
+      "contactPhone": "852-26207376",
+      "complaintsPhone": "852-26207376",
+      "complaintsEmail": "whistleb@cti-group.com.hk",
+      "complaintsTime": "Working days 9:00—18:00 (Beijing Time)",
+      "laixinlaifangdizhi": "Mailing and Visiting Address",
+      "lianxidianhua": "Contact Phone",
+      "tousudianhua": "Complaint Phone",
+      "tousuyouxiang": "Complaint Email",
+      "laifangjitousudianhuashoulishijian": "Reception Time for Visits and Complaint Calls"
+    }
+  }

+ 78 - 13
i18n/locales/zh-CN.json

@@ -11,6 +11,8 @@
     "t4": "主营业务",
     "t5": "人才招聘",
     "t6": "联系方式",
+    "t7": "招聘信息",
+    "t8": "企业网站",
     "newTitle": "新闻咨询",
     "more": "更多",
     "mianze": "免责声明",
@@ -45,27 +47,69 @@
     "zichanjingzhi": "资产净值",
     "meiguyingli": "每股盈利",
     "mianzeshengming": "免责声明",
+    "mianzeshengmingE":"Disclaimer",
+    "mianzeContent1":"本网站旨在提供有关中烟国际集团有限公司(“本公司”)及附属公司的基本信息,仅供参考之用,并非亦不该被视为投资或其他专业意见。",
+    "mianzeContent2":"本公司不保证本网站所载资料是全面、准确或最新的,因使用本网站所载资料(包括透过超链接方式经本网站进入的任何第三方网站)所引致的任何损失,本公司概不负责。",
+    "mianzeContent3":"本网站不用于广告或营销目的,仅供参考。本网站所载资料并无亦不该被视为诱使、建议、促请购买或吸用、提倡或鼓励使用任何吸烟产品的目的或要约,或购买吸烟产品的邀请。此类产品仅在符合其销售地所在的司法管辖区法律的情况下销售。",
+    "mianzeContent4":"本网站提供简体中文版、繁体中文版和英文版三个语言版本,如有歧义,请以简体中文版为准。",
     "yinsizhengce": "隐私政策",
+    "yinsizhengceE":"Privacy Policy",
+    "yinsizhengceContent1":"中烟国际集团有限公司(“本公司”)承诺遵守香港法例第486章《个人资料(私隐)条例》(“香港私隐条例”),本公司将确保本公司的雇员执行有关政策,严格保密阁下的个人资料。",
+    "yinsizhengceContent2":"此私隐政策及个人资料收集声明(“本声明”)旨在说明本公司如何收集和使用个人资料。",
+    "yinsizhengceContent3":"一般而言, 除Cookies收集以外,本网站不会收集阁下的个人资料,若有需要,阁下的个人资料将在阁下自愿的情况下,透过本公司指定的联络方式收集。",
+    "yinsizhengceContent4":"然而, 当阁下透过超链接方式经本网站进入的任何第三方网站时,此等第三方网站可能因阁下使用其服务而收集阁下的个人资料。若有上述行为,请阁下务必仔细阅读并了解有关第三方网站所制定的私隐政策声明及/或收集个人资料声明,本公司不负责保障阁下的私隐及个人资料安全,亦不会为其任何内容负责。",
+    "yinsizhengceContent5":"本公司会在有需要时对本声明进行更新,请阁下不时阅读最新修订的声明。",
+    "yinsizhengceContent6":"个人资料收集及使用",
+    "yinsizhengceContent7":"收集的个人资料",
+    "yinsizhengceContent8":"本公司收集并使用阁下的个人资料将取决于个人资料收集及使用的目的。该等个人资料可能包括姓名、联络资料及其他信息在内的相关信息(“个人资料”)。",
+    "yinsizhengceContent9":"收集个人资料的目的",
+    "yinsizhengceContent10":"本公司收集及使用阁下个人资料的目的,包括但不限于以下用途:",
+    "yinsizhengceContent11":"- 招聘及其他人力资源管理有关的用途;",
+    "yinsizhengceContent12":"- 合同的履行及执行",
+    "yinsizhengceContent13":"- 回复有关意见、查询及投诉;",
+    "yinsizhengceContent14":"- 避免欺诈行为或其他非法活动;",
+    "yinsizhengceContent15":"根据相关法律或法规要求而作出披露",
+    "yinsizhengceContent16":"- 搜集及整理访客的数据,用于网站使用的分析;",
+    "yinsizhengceContent17":"- 监控本网站的运作以协助其日后的发展及改良;",
+    "yinsizhengceContent18":"- - 其他与上述用途相关的目的。",
+    "yinsizhengceContent19":"个人资料的披露及转移",
+    "yinsizhengceContent20":"为满足本声明所述目的,本公司在合理及有需要的情况,可能会将阁下的个人资料转移给本公司雇员、附属公司雇员、关联公司、第三方业务合作伙伴及服务供应商。",
+    "yinsizhengceContent21":"未经阁下事先同意,本公司不会故意或刻意使用、披露、转移或供访问阁下的个人资料,以用作任何与上述目的无关的用途。除上述以外,本公司不会向任何其他第三方提供、披露、转移或供访问阁下的个人资料。",
+    "yinsizhengceContent22":"个人资料的保留",
+    "yinsizhengceContent23":"在符合法律或会计或有关合规要求的规定下,本公司会以适当的方式保存阁下提供的个人资料,保存的时间将不超过完成本声明所述目的所需的时间,有关数据在完成相关目的后将会被销毁或删除,而不另行通知。",
+    "yinsizhengceContent24":"个人资料的安全保护",
+    "yinsizhengceContent25":"本公司承诺将采取所有切实可行的措施,保护阁下的个人资料,包括采取符合业界标准合理可行的安全防护措施、尽力确保只有授权人员方可查阅及定期向本公司雇员进行安全保密培训等。",
+    "yinsizhengceContent26":"Cookies的使用",
+    "yinsizhengceContent27":"Cookies是互联网中普遍使用的技术,即阁下浏览网站时由网络服务器建立并由网页浏览器存放于阁下电脑或其他装置的小型档案。本公司在网站上使用Cookies以增强阁下的浏览体验。",
+    "yinsizhengceContent28":"本公司只会在阁下自愿的情况下收集该些数据,阁下有权选择是否接受Cookies。若需选择接受Cookies,请在阁下首次访问本网站时点击网页底端的弹出式横幅进行选择或透过浏览器进行设置。若阁下不接受Cookies,阁下可能无法体验本网站内依赖于Cookies的相应功能。",
+    "yinsizhengceContent29":"本公司不会将Cookies用于本声明所述目的以外的任何用途。",
+    "yinsizhengceContent30":"查阅及更改个人资料",
+    "yinsizhengceContent31":"阁下有权根据香港私隐条例规定,要求查阅或更正阁下的个人资料。如有任何查阅或更正资料的要求,可以书面方式向本公司的保密专员提出,信封注明“保密资料”,并邮寄至以下地址:",
+    "yinsizhengceContent32":"中烟国际集团有限公司",
+    "yinsizhengceContent33":"香港九龙尖沙咀东科学馆道一号康宏广场南座十九楼",
+    "yinsizhengceContent34":"保密专员收",
     "wzasm":"无障碍声明",
+    "wzasmContent1":"我们承诺尽力确保本网站符合万维网联盟(W3C)《无障碍网页内容指引》(WCAG)2.1 AA级别标准,但本网页载有大量多媒体内容,要规定这类内容全部符合所有AA级别标准并不可能。尽管如此,这类多媒体内容会摆放在特定位置,确保不会阻碍用户接触本网站所载的重要内容。如有查询,请电邮至wongly@cti-group.com.hk,我们将竭尽所能,为阁下提供以所需格式制备的资料。",
     "banquansuoyou": "版权所有 © 中烟国际集团有限公司",
     "tishi": "吸烟有害健康,本网站含有烟草相关内容,谢绝未成年人访问!",
     "gengduoxinwen": "更多新闻",
     "zygjjt": "中烟国际集团有限公司",
     "zygjjt1":"中国烟草国际有限公司",
-    "zygjjtContent": "中烟国际集团有限公司位于中国香港,是国家烟草专卖局、中国烟草总公司在境外的实体化公司,承担“海外总部”的管理职能。其内设机构主要包括公共事务部、战略发展部、市场营销部、供应链部、生产运营部、财务部、人力资源部、信息数字化部、合规风控部、监察部等10个部门。",
-    "zygjjtContent1": "  集团所属企业主要包括中烟香港、天泽公司、中烟巴西、中烟北美、中烟阿根廷、中烟中东、中烟英美、中烟菲莫、澳门金叶、老挝红塔、柬埔寨威灵顿、红塔瑞士、红塔瑞士罗马尼亚等企业。",
+    "zygjjtContent": "中烟国际集团有限公司位于中国香港,是中国烟草总公司在境外的实体化公司。其内设机构主要包括公共事务部、战略发展部、市场营销部、供应链部、生产运营部、财务部、人力资源部、信息数字化部、合规风控部、监察部等10个部门。",
+    "zygjjtContent1": "  集团参控股企业主要包括中烟香港、天泽公司、中烟巴西、中烟北美、中烟阿根廷、中烟中东、中烟英美、中烟菲莫、澳门金叶、老挝红塔、柬埔寨威灵顿、红塔瑞士、红塔瑞士罗马尼亚等企业。",
     "zygjjtContent2": "中国烟草国际有限公司位于中国北京,承担中烟国际集团有限公司的北京分部职能。其内设机构包括综合事务部、国营贸易部、财务管理部等3个部门。",
     "ywjs": "业务介绍",
-    "ywjs1": "中烟国际集团有限公司主要是统一经营卷烟、烟叶、新型烟草制品、烟用丝束等烟草类产品国际业务。",
+    "ywjs1": "中烟国际集团有限公司主要是经营卷烟及新型烟草制品,烟叶、烟草专用机械、烟用丝束、卷烟纸等原辅产品,卷烟生产加工等国际业务。",
     "ywzx": "业务咨询",
-    "ywzx1": "卷烟、新型烟草制品等业务咨询",
-    "ywzx2": "烟叶、烟用丝束等业务咨询",
+    "ywzx1": "烟叶、烟草专用机械、烟用丝束、卷烟纸等业务咨询",
+    "ywzx2": "卷烟、新型烟草制品等业务咨询",
+    "ywzx3": "卷烟生产加工等业务咨询",
     "contactAddress": "中烟国际集团有限公司",
     "contactAddress1": "中国香港九龙科学馆道1号康宏广场南座19楼1901室",
-    "tousu": "合规投诉",
-    "suoshuqiye": "集团所属企业",
+    "tousu": "投诉渠道",
+    "suoshuqiye": "集团参控股企业",
     "jt":"集团",
-    "ssqy": "所属企业",
+    "ssqy": "参控股企业",
     "zyxg": {
       "title": "中烟国际(香港)有限公司",
       "content": "中烟国际(香港)有限公司位于中国香港,2019年6月在香港联交所上市(中烟香港,6055.HK),是中国烟草体系内唯一的烟草业务上市公司,主要从事卷烟、烟叶、新型烟草制品等烟草类产品国际业务",
@@ -137,11 +181,32 @@
       "content": "红塔瑞士位于瑞士巴尔,主要从事卷烟等烟草类产品营销业务。",
       "phone": ""
     },
-    "zyou":{
-      "title": "红塔瑞士罗马尼亚",
-      "content": "红塔瑞士罗马尼亚位于瑞士巴尔,主要从事卷烟等烟草类产品营销业务。",
-      "phone": ""  
-    }
+    "companyList": [
+      { "id": 1, "name": "中烟香港", "nameEnglish": "China Tobacco International (Hong Kong)" },
+      { "id": 2, "name": "天泽公司", "nameEnglish": "Tianze Company" },
+      { "id": 3, "name": "中烟巴西", "nameEnglish": "China Tobacco International Brazil" },
+      { "id": 4, "name": "中烟北美", "nameEnglish": "China Tobacco International (North America)" },
+      { "id": 5, "name": "中烟阿根廷", "nameEnglish": "China Tobacco International Argentina" },
+      { "id": 6, "name": "中烟中东", "nameEnglish": "China Tobacco International (Middle East)" },
+      { "id": 7, "name": "中烟英美", "nameEnglish": "China Tobacco British American International" },
+      { "id": 8, "name": "中烟菲莫", "nameEnglish": "China Tobacco Philip Morris International" },
+      { "id": 10, "name": "澳门金叶", "nameEnglish": "Macao Jinye" },
+      { "id": 11, "name": "老挝红塔", "nameEnglish": "Laos Hongta" },
+      { "id": 12, "name": "柬埔寨威尼顿", "nameEnglish": "Cambodia Wellington" },
+      { "id": 14, "name": "红塔瑞士", "nameEnglish": "Hongta Switzerland" },
+      { "id": 15, "name": "红塔瑞士罗马尼亚", "nameEnglish": "Hongta Switzerland Romania" }
+    ],
+    "contactAddress2": "香港九龙尖沙咀东科学馆道一号康宏广场南座 19 楼 1908 室监察部", 
+    "contactPhone": "852-26207376", 
+    "complaintsPhone": "852-26207376", 
+    "complaintsEmail": "whistleb@cti-group.com.hk", 
+    "complaintsTime": "工作日 9:00—18:00(北京时间)",
+    "laixinlaifangdizhi": "来信来访地址",
+    "lianxidianhua": "联系电话",
+    "tousudianhua": "投诉电话",
+    "tousuyouxiang": "投诉邮箱",
+    "laifangjitousudianhuashoulishijian": "来访及投诉电话受理时间为"
 
   }
+
 }

+ 228 - 9
i18n/locales/zh-TW.json

@@ -10,13 +10,14 @@
     "t3": "新聞動態",
     "t4": "主營業務",
     "t5": "人才招聘",
-    "t6": "聯繫方式",
+    "t6": "聯絡方式",
+    "t7": "招聘資訊",
+    "t8": "企業網站",
     "newTitle": "新聞諮詢",
     "more": "更多",
     "mianze": "免責聲明",
     "siyin": "隱私政策",
-    "lianxi": "聯繫我們",
-    "mianze": "免責聲明",
+    "lianxi": "聯絡我們",
     "xiyan": "吸煙有害健康,本網站含有煙草相關內容,謝絕未成年人訪問!",
     "number": "23.250",
     "zuixin": "最新股價",
@@ -32,17 +33,235 @@
     "description1": "我們的煙葉業務是從全球主要煙葉產區採購各類型煙葉類產品,並銷售至全球市場。",
     "description2": "我們的捲煙業務是從中國煙草旗下的捲煙生產企業採購捲煙產品,並銷售至全球市場(中國內地除外)以及中國內地境內關外免稅店。",
     "description3": "我們的新型煙草業務是從中國煙草旗下的捲煙生產企業採購新型煙草製品,並獨家銷售至全球市場(中國內地除外)。",
+    "company": "公司概況",
+    "companyContent": "中煙國際(香港)有限公司(簡稱“中煙香港”,股份代號:6055.HK)於2004年2月在香港註冊成立,2019年6月在香港聯交所上市,現為中國煙草體系內唯一的煙草業務上市公司,並成為恒生綜合指數、恒生消費品製造及服務業指數、MSCI滬港深可投資市場等指數的成分股。",
+    "companyContent1": "中煙香港自上市以來,聚焦國際市場拓展,持續挖掘市場潛力,努力提升業務發展規模及質量。聚力公司治理規範,持續促進董事會多元化,不斷完善公司管治及風險防控體系。聚心社會價值實現,持續提升股東回報,系統對接國際標準開展ESG體系建設。目前,中煙香港經營業務領域涵蓋新型煙草、捲煙、煙葉及雪茄等品類,市場區域覆蓋東亞、東南亞、南北美、中東歐等50餘個國家和地區,經營新型煙草品牌超過20個,捲煙品牌超過35個,雪茄品規超過35個。",
+    "companyContent2": "未來,中煙香港將繼續秉持“尊重市場、尊重規則、尊重投資人”發展理念,持續培育核心業務、努力開展跨國併購、不斷提升市場價值,為打造具有國際競爭力的一流煙草企業而不懈努力!",
+    "p1": "邵岩先生 ",
+    "p11": "主席、非執行董事",
+    "p111": "自2018年6月起擔任董事會主席兼非執行董事",
+    "p1111": "於2016年8月加入本公司",
     "unit": "億港元",
-    "yingyeshouru": "營業收入",
     "unit1": "港元",
+    "yingyeshouru": "營業收入",
     "zichanjingzhi": "資產淨值",
     "meiguyingli": "每股盈利",
-    "gengduoxinwen": "更多新聞",
+    "mianzeshengming": "免責聲明",
+    "mianzeshengmingE": "Disclaimer",
+    "mianzeContent1": "本網站旨在提供有關中煙國際集團有限公司(“本公司”)及附屬公司的基本信息,僅供參考之用,並非亦不該被視為投資或其他專業意見。",
+    "mianzeContent2": "本公司不保證本網站所載資料是全面、準確或最新的,因使用本網站所載資料(包括透過超連結方式經本網站進入的任何第三方網站)所引致的任何損失,本公司概不負責。",
+    "mianzeContent3": "本網站不用於廣告或營銷目的,僅供參考。本網站所載資料並無亦不該被視為誘使、建議、促請購買或吸用、提倡或鼓勵使用任何吸煙產品的目的或要約,或購買吸煙產品的邀請。此類產品僅在符合其銷售地所在的司法管轄區法律的情況下銷售。",
+    "mianzeContent4": "本網站提供簡體中文版、繁體中文版和英文版三個語言版本,如有歧義,請以簡體中文版為準。",
+    "yinsizhengce": "隱私政策",
+    "yinsizhengceE": "Privacy Policy",
+    "yinsizhengceContent1": "中煙國際集團有限公司(“本公司”)承諾遵守香港法例第486章《個人資料(私隱)條例》(“香港私隱條例”),本公司將確保本公司的僱員執行有關政策,嚴格保密閣下的個人資料。",
+    "yinsizhengceContent2": "此私隱政策及個人資料收集聲明(“本聲明”)旨在說明本公司如何收集和使用個人資料。",
+    "yinsizhengceContent3": "一般而言, 除Cookies收集以外,本網站不會收集閣下的個人資料,若有需要,閣下的個人資料將在閣下自願的情況下,透過本公司指定的聯絡方式收集。",
+    "yinsizhengceContent4": "然而, 當閣下透過超連結方式經本網站進入的任何第三方網站時,此等第三方網站可能因閣下使用其服務而收集閣下的個人資料。若有上述行為,請閣下務必仔細閱讀並了解有關第三方網站所制定的私隱政策聲明及/或收集個人資料聲明,本公司不負責保障閣下的私隱及個人資料安全,亦不會為其任何內容負責。",
+    "yinsizhengceContent5": "本公司會在有需要時對本聲明進行更新,請閣下不時閱讀最新修訂的聲明。",
+    "yinsizhengceContent6": "個人資料收集及使用",
+    "yinsizhengceContent7": "收集的個人資料",
+    "yinsizhengceContent8": "本公司收集並使用閣下的個人資料將取決於個人資料收集及使用的目的。該等個人資料可能包括姓名、聯絡資料及其他信息在內的相關信息(“個人資料”)。",
+    "yinsizhengceContent9": "收集個人資料的目的",
+    "yinsizhengceContent10": "本公司收集及使用閣下個人資料的目的,包括但不限於以下用途:",
+    "yinsizhengceContent11": "- 招聘及其他人力資源管理有關的用途;",
+    "yinsizhengceContent12": "- 合同的履行及執行",
+    "yinsizhengceContent13": "- 回覆有關意見、查詢及投訴;",
+    "yinsizhengceContent14": "- 避免欺詐行為或其他非法活動;",
+    "yinsizhengceContent15": "根據相關法律或法規要求而作出披露",
+    "yinsizhengceContent16": "- 搜集及整理訪客的數據,用於網站使用的分析;",
+    "yinsizhengceContent17": "- 監控本網站的運作以協助其日後的發展及改良;",
+    "yinsizhengceContent18": "- - 其他與上述用途相關的目的。",
+    "yinsizhengceContent19": "個人資料的披露及轉移",
+    "yinsizhengceContent20": "為滿足本聲明所述目的,本公司在合理及有需要的情況,可能會將閣下的個人資料轉移給本公司僱員、附屬公司僱員、關聯公司、第三方業務合作夥伴及服務供應商。",
+    "yinsizhengceContent21": "未經閣下事先同意,本公司不會故意或刻意使用、披露、轉移或供訪問閣下的個人資料,以用作任何與上述目的無關的用途。除上述以外,本公司不會向任何其他第三方提供、披露、轉移或供訪問閣下的個人資料。",
+    "yinsizhengceContent22": "個人資料的保留",
+    "yinsizhengceContent23": "在符合法律或會計或有關合規要求的規定下,本公司會以適當的方式保存閣下提供的個人資料,保存的時間將不超過完成本聲明所述目的所需的時間,有關數據在完成相關目的後將會被銷毀或刪除,而不另行通知。",
+    "yinsizhengceContent24": "個人資料的安全保護",
+    "yinsizhengceContent25": "本公司承諾將採取所有切實可行的措施,保護閣下的個人資料,包括採取符合業界標準合理可行的安全防護措施、盡力確保只有授權人員方可查閱及定期向本公司僱員進行安全保密培訓等。",
+    "yinsizhengceContent26": "Cookies的使用",
+    "yinsizhengceContent27": "Cookies是互聯網中普遍使用的技術,即閣下瀏覽網站時由網絡服務器建立並由網頁瀏覽器存放於閣下電腦或其他裝置的小型檔案。本公司在網站上使用Cookies以增強閣下的瀏覽體驗。",
+    "yinsizhengceContent28": "本公司只會在閣下自願的情況下收集該些數據,閣下有權選擇是否接受Cookies。若需選擇接受Cookies,請在閣下首次訪問本網站時點擊網頁底端的彈出式橫幅進行選擇或透過瀏覽器進行設置。若閣下不接受Cookies,閣下可能無法體驗本網站內依賴於Cookies的相應功能。",
+    "yinsizhengceContent29": "本公司不會將Cookies用於本聲明所述目的以外的任何用途。",
+    "yinsizhengceContent30": "查閱及更改個人資料",
+    "yinsizhengceContent31": "閣下有權根據香港私隱條例規定,要求查閱或更正閣下的個人資料。如有任何查閱或更正資料的要求,可以書面方式向本公司的保密專員提出,信封註明“保密資料”,並郵寄至以下地址:",
+    "yinsizhengceContent32": "中煙國際集團有限公司",
+    "yinsizhengceContent33": "香港九龍尖沙咀東科學館道一號康宏廣場南座十九樓",
+    "yinsizhengceContent34": "保密專員收",
+    "wzasm": "無障礙聲明",
+    "wzasmContent1": "我們承諾盡力確保本網站符合萬維網聯盟(W3C)《無障礙網頁內容指引》(WCAG)2.1 AA級別標準,但本網頁載有大量多媒體內容,要規定這類內容全部符合所有AA級別標準並不可能。儘管如此,這類多媒體內容會擺放在特定位置,確保不會阻礙用戶接觸本網站所載的重要內容。如有查詢,請電郵至wongly@cti-group.com.hk,我們將竭盡所能,為閣下提供以所需格式製備的資料。",
     "banquansuoyou": "版權所有 © 中煙國際集團有限公司",
-    "tishi": "吸煙有害健康,本網站含有煙草相關內容,謝絕未成年人訪問!",
-    "suoshuqiye": "集團所屬企業",
+    "tishi": "吸煙有害健康,本網站含有煙草相關內容,謝絕未成年人訪問!",
+    "gengduoxinwen": "更多新聞",
+    "zygjjt": "中煙國際集團有限公司",
+    "zygjjt1": "中國煙草國際有限公司",
+    "zygjjtContent": "中煙國際集團有限公司位於中國香港,是中國煙草總公司在境外的實體化公司。其內設機構主要包括公共事務部、戰略發展部、市場營銷部、供應鏈部、生產運營部、財務部、人力資源部、信息數字化部、合規風控部、監察部等10個部門。",
+    "zygjjtContent1": "  集團參控股企業主要包括中煙香港、天澤公司、中煙巴西、中煙北美、中煙阿根廷、中煙中東、中煙英美、中煙菲莫、澳門金葉、老撾紅塔、柬埔寨威靈頓、紅塔瑞士、紅塔瑞士羅馬尼亞等企業。",
+    "zygjjtContent2": "中國煙草國際有限公司位於中國北京,承擔中煙國際集團有限公司的北京分部職能。其內設機構包括綜合事務部、國營貿易部、財務管理部等3個部門。",
+    "ywjs": "業務介紹",
+    "ywjs1": "中煙國際集團有限公司主要是經營捲煙及新型煙草製品,煙葉、煙草專用機械、煙用絲束、捲煙紙等原輔產品,捲煙生產加工等國際業務。",
+    "ywzx": "業務諮詢",
+    "ywzx1": "煙葉、煙草專用機械、煙用絲束、捲煙紙等業務諮詢",
+    "ywzx2": "捲煙、新型煙草製品等業務諮詢",
+    "ywzx3": "捲煙生產加工等業務諮詢",
+    "contactAddress": "中煙國際集團有限公司",
+    "contactAddress1": "中國香港九龍科學館道1號康宏廣場南座19樓1901室",
+    "tousu": "投訴渠道",
+    "suoshuqiye": "集團參控股企業",
     "jt": "集團",
-    "ssqy": "所屬企業",
-    "wzasm":"無障礙聲明"
+    "ssqy": "參控股企業",
+    "zyxg": {
+      "title": "中煙國際(香港)有限公司",
+      "content": "中煙國際(香港)有限公司位於中國香港,2019年6月在香港聯交所上市(中煙香港,6055.HK),是中國煙草體系內唯一的煙草業務上市公司,主要從事捲煙、煙葉、新型煙草製品等煙草類產品國際業務",
+      "phone": "+852 26209500",
+      "website": "www.ctihk.com.hk"
+    },
+    "tzyc": {
+      "title": "天澤公司",
+      "content": "天澤公司位於津巴布韋哈拉雷,主要從事煙葉採購、出口等經營業務。",
+      "phone": "+263 719754365/7"
+    },
+    "zybx": {
+      "title": "中煙國際巴西有限公司",
+      "content": "中煙國際巴西有限公司位於巴西南里奧格蘭德州南聖克魯斯,與聯一國際巴西公司共同投資成立中巴煙草出口股份有限公司,主要從事煙葉採購、出口等經營業務。",
+      "phone": "+55 51981867090"
+    },
+    "zybn": {
+      "title": "中煙國際(北美)股份有限公司",
+      "content": "中煙國際(北美)股份有限公司位於美國北卡羅來納州羅利,主要從事煙葉採購、出口等經營業務。",
+      "phone": "+1 (919)307-8449"
+    },
+    "zyag": {
+      "title": "中煙國際阿根廷有限公司",
+      "content": "中煙國際阿根廷有限公司位於阿根廷薩爾塔,主要從事煙葉採購、出口等經營業務。",
+      "phone": "+54 93875139158"
+    },
+    "zyzd": {
+      "title": "中煙國際(中東)有限公司",
+      "content": "中煙國際(中東)有限公司位於阿聯酋迪拜,主要從事捲煙等煙草類產品營銷業務。",
+      "phone": "+971 43991810"
+    },
+    "zyyb": {
+      "title": "中煙英美國際有限公司",
+      "content": "中煙英美國際有限公司位於中國香港,是中國煙草與英美煙草公司共同投資的國際煙草合資公司,主要從事捲煙等煙草類產品營銷業務。",
+      "phone": "+852 31295331"
+    },
+    "zyfm": {
+      "title": "中煙菲莫國際有限公司",
+      "content": "中煙菲莫國際有限公司位於瑞士洛桑,是中國煙草與菲利普莫里斯國際公司共同投資的國際煙草合資公司,主要從事捲煙等煙草類產品營銷業務。",
+      "phone": "+41 215254620"
+    },
+    "zyhk": {
+      "title": "中煙國際(香港)製造有限公司",
+      "content": "中煙國際(香港)製造有限公司位於中國香港,主要從事捲煙生產製造業務。",
+      "phone": ""
+    },
+    "zymo": {
+      "title": "澳門金葉",
+      "content": "澳門金葉位於中國澳門,主要從事捲煙生產製造業務。",
+      "phone": ""
+    },
+    "zyls": {
+      "title": "老撾紅塔",
+      "content": "老撾紅塔位於老撾沙灣拿吉,主要從事捲煙生產製造業務。",
+      "phone": ""
+    },
+    "zyjm": {
+      "title": "柬埔寨威尼頓",
+      "content": "柬埔寨威尼頓位於柬埔寨金邊,主要從事捲煙生產製造業務。",
+      "phone": ""
+    },
+    "zylm": {
+      "title": "中煙國際(羅馬尼亞)製造有限公司",
+      "content": "中煙國際(羅馬尼亞)製造有限公司位於羅馬尼亞布加勒斯特,主要從事捲煙生產製造業務。",
+      "phone": ""
+    },
+    "zysw": {
+      "title": "紅塔瑞士",
+      "content": "紅塔瑞士位於瑞士巴爾,主要從事捲煙等煙草類產品營銷業務。",
+      "phone": ""
+    },
+    "zyou": {
+      "title": "紅塔瑞士羅馬尼亞",
+      "content": "紅塔瑞士羅馬尼亞位於瑞士巴爾,主要從事捲煙等煙草類產品營銷業務。",
+      "phone": ""
+    },
+    "companyList": [
+      {
+        "id": 1,
+        "name": "中煙香港",
+        "nameEnglish": "China Tobacco International (Hong Kong)"
+      },
+      {
+        "id": 2,
+        "name": "天澤公司",
+        "nameEnglish": "Tianze Company"
+      },
+      {
+        "id": 3,
+        "name": "中煙巴西",
+        "nameEnglish": "China Tobacco International Brazil"
+      },
+      {
+        "id": 4,
+        "name": "中煙北美",
+        "nameEnglish": "China Tobacco International (North America)"
+      },
+      {
+        "id": 5,
+        "name": "中煙阿根廷",
+        "nameEnglish": "China Tobacco International Argentina"
+      },
+      {
+        "id": 6,
+        "name": "中煙中東",
+        "nameEnglish": "China Tobacco International (Middle East)"
+      },
+      {
+        "id": 7,
+        "name": "中煙英美",
+        "nameEnglish": "China Tobacco British American International"
+      },
+      {
+        "id": 8,
+        "name": "中煙菲莫",
+        "nameEnglish": "China Tobacco Philip Morris International"
+      },
+      {
+        "id": 10,
+        "name": "澳門金葉",
+        "nameEnglish": "Macao Jinye"
+      },
+      {
+        "id": 11,
+        "name": "老撾紅塔",
+        "nameEnglish": "Laos Hongta"
+      },
+      {
+        "id": 12,
+        "name": "柬埔寨威尼頓",
+        "nameEnglish": "Cambodia Wellington"
+      },
+      {
+        "id": 14,
+        "name": "紅塔瑞士",
+        "nameEnglish": "Hongta Switzerland"
+      },
+      {
+        "id": 15,
+        "name": "紅塔瑞士羅馬尼亞",
+        "nameEnglish": "Hongta Switzerland Romania"
+      }
+    ],
+  "contactAddress2": "香港九龍尖沙咀東科學館道一號康宏廣場南座19樓1908室監察部",
+  "contactPhone": "852-26207376",
+  "complaintsPhone": "852-26207376",
+  "complaintsEmail": "whistleb@cti-group.com.hk",
+  "complaintsTime": "工作日 9:00—18:00(北京時間)",
+    "laixinlaifangdizhi": "來信來訪地址",
+    "lianxidianhua": "聯絡電話",
+    "tousudianhua": "投訴電話",
+    "tousuyouxiang": "投訴郵箱",
+    "laifangjitousudianhuashoulishijian": "來訪及投訴電話受理時間為"
   }
 }

+ 80 - 4
src/App.vue

@@ -1,7 +1,13 @@
 
 <script setup>
-import {reactive, onMounted} from 'vue'
-import {ref} from'vue'
+import {reactive, onMounted, ref} from 'vue'
+const ageModalVisible = ref(true);
+const confirmEnter = () => {
+  ageModalVisible.value = false;
+};
+const denyEnter = () => {
+  window.location.href = 'https://www.gov.hk/tc/theme/psi/';
+};
 // 接受 对象类型 数据的参数传入并返回一个响应式的对象
 const state = reactive({
     count:0
@@ -19,12 +25,82 @@ const addcount =()=>{
 </script>
 
 <template>
-  <!-- 一级路由出口组件 -->
+  <div v-if="ageModalVisible" class="age-modal">
+    <div class="age-modal-content">
+      <div class="age-modal-title">本人年满18岁声明</div>
+      <div class="age-modal-desc">
+        根据香港法律,不得在业务过程中,向未成年人售卖或供应烟。<br>
+        <span style="font-size:0.95rem;color:#666;">
+          Under the law of Hong Kong, tobacco must not be sold or supplied to a minor in the course of business.
+        </span>
+      </div>
+      <div class="age-modal-actions">
+        <button class="age-btn deny" @click="denyEnter">否,未满18岁<br>No, I'm under 18.</button>
+        <button class="age-btn confirm" @click="confirmEnter">确认进入<br>Confirm</button>
+      </div>
+    </div>
+  </div>
   <RouterView/>
-  
 </template>
 <style lang="scss" scoped>
 .test{
   // color: $priceColor;
 }
+</style>
+<style scoped>
+.age-modal {
+  position: fixed;
+  z-index: 99999;
+  left: 0; top: 0; right: 0; bottom: 0;
+  background: rgba(0,0,0,0.55);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.age-modal-content {
+  background: #fff;
+  border-radius: 12px;
+  box-shadow: 0 4px 32px rgba(0,0,0,0.18);
+  padding: 2.5rem 2rem 2rem;
+  max-width: 350px;
+  width: 90%;
+  text-align: center;
+}
+.age-modal-title {
+  font-size: 1.3rem;
+  font-weight: bold;
+  margin-bottom: 1.2rem;
+  color: #c9082c;
+}
+.age-modal-desc {
+  font-size: 1.05rem;
+  margin-bottom: 2rem;
+  color: #333;
+}
+.age-modal-actions {
+  display: flex;
+  justify-content: space-between;
+  gap: 1.2rem;
+}
+.age-btn {
+  flex: 1;
+  padding: 0.7rem 0.2rem;
+  border-radius: 6px;
+  border: none;
+  font-size: 1rem;
+  cursor: pointer;
+  font-weight: bold;
+  transition: background 0.2s;
+}
+.age-btn.deny {
+  background: #eee;
+  color: #c9082c;
+}
+.age-btn.confirm {
+  background: #F7B334;
+  color: #fff;
+}
+.age-btn:hover {
+  opacity: 0.85;
+}
 </style>

+ 1 - 1
src/assets/css/common.min.css

@@ -79,7 +79,7 @@
 
 /*================================ Nav ================================*/
 .nav-wrapper{
-     width: 70.8%;
+     width: 70.2%;
     /* margin-top:8px; */
     /* box-shadow: 0 1px 3px #e9e9e9; */
 }

二進制
src/assets/images/banner.png


二進制
src/assets/images/banner1.png


二進制
src/assets/images/bannerr.png


二進制
src/assets/images/logo.png


二進制
src/assets/images/手机.png


+ 113 - 6
src/components/common/footer/FooterNew.vue

@@ -1,22 +1,62 @@
 <script setup>
-
+import { ref } from 'vue';
+const dialogVisible = ref(false);
+const dialogType = ref(1);
+const openDialog = (type) => {
+    dialogType.value = type;
+    dialogVisible.value = true;
+};
+const closeDialog = () => {
+    dialogVisible.value = false;
+};
 </script>
 <template>
     <div class="footerBox">
         <div></div>
         <div>
             <div class="footerContainer">
-                <div>{{ $t('message.mianze') }}</div>
+                <div @click="openDialog(1)">{{ $t('message.mianze') }}</div>
                 <div>|</div>
-                <div>{{ $t('message.wzasm') }}</div>
+                <div @click="openDialog(3)">{{ $t('message.wzasm') }}</div>
                 <div>|</div>
-                <div>{{ $t('message.siyin') }}</div>
+                <div @click="openDialog(5)">{{ $t('message.siyin') }}</div>
                 <div>|</div>
                 <div>{{ $t('message.banquansuoyou') }}</div>
             </div>
             <div class="footerFooter">{{ $t('message.tishi') }}</div>
         </div>
     </div>
+
+    <!-- 弹窗 -->
+    <div v-if="dialogVisible" class="footer-dialog-mask">
+        <div class="footer-dialog">
+            <span class="footer-dialog-close" @click="closeDialog">×</span>
+            <div class="footer-dialog-content">
+                <template v-if="dialogType === 1">
+                    <!-- 这里填写第1个弹窗内容 -->
+                    <div>
+                        <div>{{ $t("message.mianzeshengming") }}</div>
+                        <div>{{ $t("message.mianzeshengmingE") }}</div>
+                        <p>{{ $t("message.mianzeContent1") }}</p>
+                        <p>{{ $t("message.mianzeContent2") }}</p>
+                        <p>{{ $t("message.mianzeContent3") }}</p>
+                        <p>{{ $t("message.mianzeContent4") }}</p>
+                    </div>
+                </template>
+                <template v-else-if="dialogType === 3">
+                    <!-- 这里填写第3个弹窗内容 -->
+                    <div>{{ $t("message.wzasm") }}</div>
+                    <p>{{ $t("message.wzasmContent1") }}</p>
+                </template>
+                <template v-else-if="dialogType === 5">
+                    <!-- 这里填写第5个弹窗内容 -->
+                    <div>{{ $t("message.yinsizhengce") }}</div>
+                    <p>{{ $t("message.yinsizhengceE") }}</p>
+                    <p v-for="i in 34" :key="i">{{ $t(`message.yinsizhengceContent${i}`) }}</p>
+                </template>
+            </div>
+        </div>
+    </div>
 </template>
 <style>
 .footerBox {
@@ -55,6 +95,13 @@
     align-items: center;
     font-size: 0.8rem;
 
+    >div:nth-child(1),
+    >div:nth-child(5),
+    >div:nth-child(3) {
+        cursor: pointer;
+
+    }
+
     >div:nth-child(2) {
         margin: 0px 1rem;
     }
@@ -109,7 +156,7 @@
 }
 
 .footerFooter {
-    width: 90%;
+    width: 95%;
     font-size: 0.9rem;
     margin-top: 1rem;
 }
@@ -126,4 +173,64 @@
 
     }
 }
-</style>
+
+/* 弹窗样式 */
+.footer-dialog-mask {
+    position: fixed;
+    z-index: 99999;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.35);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.footer-dialog {
+    background: #fff;
+    border-radius: 12px;
+    width: 50vw;
+    max-width: 900px;
+    max-height: 90vh;
+    position: relative;
+    box-shadow: 0 4px 32px rgba(0, 0, 0, 0.18);
+    padding: 3rem 4rem 2.5rem;
+    display: flex;
+    flex-direction: column;
+}
+
+.footer-dialog-close {
+    position: absolute;
+    right: 1.2rem;
+    top: 1.2rem;
+    font-size: 1.5rem;
+    color: #888;
+    cursor: pointer;
+    z-index: 2;
+    font-weight: bold;
+    transition: color 0.2s;
+}
+
+.footer-dialog-close:hover {
+    color: #c9082c;
+}
+
+.footer-dialog-content {
+    flex: 1;
+    overflow-y: auto;
+    margin-top: 1rem;
+    font-size: 1.1rem;
+    color: #333;
+
+    >div {
+        font-size: 1.3rem;
+
+        >p {
+            font-size: 1rem;
+        }
+    }
+
+}
+</style>

+ 66 - 36
src/components/common/header/Header.vue

@@ -1,6 +1,7 @@
 <script setup>
 import AppFunctions from "@/utils/AppFunctions";
-import { nextTick, onBeforeUnmount, onMounted, ref } from 'vue';
+import { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue';
+import { onLanguageChange, getCurrentLanguage } from '@/utils/language.js';
 import { getCompanyInfoAPI } from '@/apis/aboutourAPi.js';
 import { h } from 'vue';
 import { ElMessage } from 'element-plus'
@@ -70,25 +71,44 @@ const showMenu = () => {
 	drawer.value = true;
 }
 
+// 当前语言
+const currentLanguage = ref(getCurrentLanguage());
+const offLangListener = ref(null);
+
 // 处理drawer关闭
 const handleClose = (done) => {
 	drawer.value = false;
 	done();
 }
-
+// 如果当前语言是英语的话 就不显示新闻资讯
+const isNews = computed(() => {
+	return currentLanguage.value !== 'en'
+})
 
 onMounted(() => {
 	// 初始化检查移动端
 	checkMobile()
 	// 监听窗口大小变化
 	window.addEventListener('resize', checkMobile)
-	
+
+	// 订阅语言变更
+	offLangListener.value = onLanguageChange((lang) => {
+		currentLanguage.value = lang;
+		console.log('Header detected language change:', lang);
+	});
+
 })
 
 onBeforeUnmount(() => {
 	// window.removeEventdivstener('scroll', toggleStickyHeader);
 	// 移除监听器
 	window.removeEventListener('resize', checkMobile)
+
+	// 取消语言监听
+	if (offLangListener.value) {
+		offLangListener.value();
+		offLangListener.value = null;
+	}
 })
 </script>
 <template>
@@ -96,11 +116,9 @@ onBeforeUnmount(() => {
 		<div v-if="isMobile" class="header-mobile">
 			<img src="../../../assets/images/menu.png" alt="" srcset="" @click="showMenu">
 			<div class="header-mobile-title">
-				<img src="../../../assets/images/inlogo.png" alt="">
-				<div>
-					<div class="mainTitle">中烟国际集团有限公司</div>
-					<div class="assistantTitle"> China Tobacco International Group Limited</div>
-				</div>
+				<!-- <div> -->
+					<img src="../../../assets/images/logo.png" alt="">
+				<!-- </div> -->
 
 			</div>
 			<LanguageSwitcher class="lang-switcher" />
@@ -110,10 +128,10 @@ onBeforeUnmount(() => {
 			<div class="zgyc">
 				<!-- <img src="../../../assets/images/newIndex/titleNew.png" alt="" srcset=""> -->
 				<!-- #0F409E -->
-				<img src="../../../assets/images/inlogo.png" alt="">
+				<!-- <img src="../../../assets/images/inlogo.png" alt=""> -->
 				<div>
-					<div class="mainTitle">中烟国际集团有限公司</div>
-					<div class="assistantTitle"> China Tobacco International Group Limited</div>
+					<!-- <div class="mainTitle">中烟国际集团有限公司</div> -->
+					<img src="../../../assets/images/logo.png" alt="" class="logoImg">
 				</div>
 			</div>
 
@@ -125,19 +143,19 @@ onBeforeUnmount(() => {
 		<div class="nav desktop-nav" v-if="!isMobile">
 			<div class="am-navss am-navss-pills">
 				<div><router-link class="router" to="/index" @click="closeMobileMenu">{{ $t('message.t1')
-						}}</router-link></div>
+				}}</router-link></div>
 				<div><router-link class="router" to="/overview" @click="closeMobileMenu">{{ $t('message.t2')
-						}}</router-link></div>
-				<div><router-link class="router" to="/news" @click="closeMobileMenu">{{ $t('message.t3')
-						}}</router-link></div>
+				}}</router-link></div>
+				<div v-if="isNews"><router-link class="router" to="/news"  @click="closeMobileMenu">{{ $t('message.t3')
+				}}</router-link></div>
 				<!-- <div><router-link class="router" to="/example">客户案例</router-link></div> -->
 				<div><router-link class="router" to="/MainBusiness" @click="closeMobileMenu">{{ $t('message.t4')
-				}}</router-link>
+						}}</router-link>
 				</div>
 				<div><router-link class="router" to="/JoinUs" @click="closeMobileMenu">{{ $t('message.t5')
-						}}</router-link></div>
+				}}</router-link></div>
 				<div><router-link class="router" to="/ContactInformation" @click="closeMobileMenu">{{ $t('message.t6')
-						}}</router-link></div>
+				}}</router-link></div>
 			</div>
 		</div>
 
@@ -158,19 +176,19 @@ onBeforeUnmount(() => {
 		<el-drawer v-model="drawer" :direction="direction" :before-close="handleClose">
 			<div class="am-navss am-navss-pills">
 				<div><router-link class="router" to="/index" @click="closeMobileMenu">{{ $t('message.t1')
-						}}</router-link></div>
+				}}</router-link></div>
 				<div><router-link class="router" to="/overview" @click="closeMobileMenu">{{ $t('message.t2')
-						}}</router-link></div>
-				<div><router-link class="router" to="/news" @click="closeMobileMenu">{{ $t('message.t3')
-						}}</router-link></div>
+				}}</router-link></div>
+				<div v-if="isNews"><router-link class="router" to="/news" @click="closeMobileMenu">{{ $t('message.t3')
+				}}</router-link></div>
 				<!-- <div><router-link class="router" to="/example">客户案例</router-link></div> -->
 				<div><router-link class="router" to="/MainBusiness" @click="closeMobileMenu">{{ $t('message.t4')
-				}}</router-link>
+						}}</router-link>
 				</div>
 				<div><router-link class="router" to="/JoinUs" @click="closeMobileMenu">{{ $t('message.t5')
-						}}</router-link></div>
+				}}</router-link></div>
 				<div><router-link class="router" to="/ContactInformation" @click="closeMobileMenu">{{ $t('message.t6')
-						}}</router-link></div>
+				}}</router-link></div>
 			</div>
 		</el-drawer>
 	</div>
@@ -179,13 +197,19 @@ onBeforeUnmount(() => {
 
 
 <style lang="scss" scoped>
+.logoImg {
+	width: 25rem;
+	height: auto;
+	// margin-left:-1rem;
+}
+
 // .el-drawer .el-drawer__body .am-navss div .router
 // Vue 3 深度渗透选择器示例
 :deep(.el-drawer) {
 	// height: 36% !important;
 	// 高度自适应怎么写
-	height: auto!important;
-	
+	height: auto !important;
+
 
 	.el-drawer__header {
 		padding: 1rem;
@@ -215,6 +239,7 @@ onBeforeUnmount(() => {
 			}
 		}
 	}
+
 }
 
 .header-mobile {
@@ -232,15 +257,20 @@ onBeforeUnmount(() => {
 	}
 
 	.header-mobile-title {
-		display: flex;
-		align-items: center;
-		
-	}
-	>div:nth-child(3){
-			width: 4rem;
-			height: 4rem;
+		width: 20rem;
+		img{
+			width: 100%;
+			height: auto;
+			margin-top:1rem;
 		}
 
+	}
+
+	>div:nth-child(3) {
+		width: 4rem;
+		height: 4rem;
+	}
+
 
 }
 
@@ -304,7 +334,7 @@ onBeforeUnmount(() => {
 }
 
 .am-navss {
-	width: 100%;
+	width: 99%;
 	display: flex;
 	flex-wrap: wrap;
 	justify-content: space-between;
@@ -319,7 +349,7 @@ onBeforeUnmount(() => {
 	display: flex;
 	justify-content: space-between;
 	align-items: center;
-	width: 100%;
+	// width: 100%;
 }
 
 .am-navss>div {

+ 116 - 18
src/views/ContactInformation.vue

@@ -8,13 +8,14 @@ const { t } = useI18n();
 const contactAddress = ref([
     { number: 1, address: '' }
 ]);
-
+const moreVisible = ref(false);
 onMounted(() => {
     // 在组件挂载后设置国际化文本
     contactAddress.value = [
-        { number: '+852 XXXX XXXX', address: t('message.ywzx2'), email: 'xxxxx@xxxx.com' },
-        { number: '+852 XXXX XXXX', address: t('message.ywzx1'), email: 'xxxxx@xxxx.com' },
-        { number: '+852 XXXX XXXX', address: t('message.tousu'), email: 'xxxxx@xxxx.com' }
+        { number: '+852-XXXXXXXX', address: t('message.ywzx2'), email: 'xxxxx@xxxx.com' },
+        { number: '+852-XXXXXXXX', address: t('message.ywzx1'), email: 'xxxxx@xxxx.com' },
+        { number: '+852-26206055', address: t('message.ywzx3'), email: 'yangy@cti-group.com.hk' },
+        { number: '+852-26207376', address: t('message.tousu'), email: 'whistleb@cti-group.com.hk' }
     ];
 });
 </script>
@@ -25,7 +26,7 @@ onMounted(() => {
                 <div class="index-page">
                     <div class="page-header-sub">
                         <!-- <img src="../assets/images/contact.png" alt=""> -->
-                        <img src="../assets/images/jtgk.jpg" alt="" srcset="">
+                        <img src="../assets/images/banner.png" alt="" srcset="">
                     </div>
                 </div>
                 <div class="contact-content">
@@ -36,13 +37,29 @@ onMounted(() => {
                     <div>{{ $t('message.contactAddress') }}</div>
                     <div>{{ $t('message.contactAddress1') }}</div>
                     <div class="contactAddress">
-                        <div v-for="(item, key) in contactAddress" :key="key">
-                            <img src="../assets/images/call.png" alt="" srcset="">
-                            <div>{{ item.number }}</div>
-                            <div>{{ item.email }}</div>
-                            <div>{{ item.address }}</div>
-
-                        </div>
+                        <template v-for="(item, key) in contactAddress" :key="key">
+                            <div :style="key === 3 ? 'position:relative;' : ''">
+                                <img src="../assets/images/call.png" alt="" srcset="">
+                                <div>{{ item.number }}</div>
+                                <div>{{ item.email }}</div>
+                                <div>{{ item.address }}</div>
+                                <div v-if="key === 3" class="more" @click="moreVisible = !moreVisible">查看更多>></div>
+                                <!-- 只在第四个盒子上方覆盖显示更多内容 -->
+                                <div v-if="key === 3 && moreVisible" class="more-box">
+                                    <span class="close-btn" @click="moreVisible = false">×</span>
+                                    <div class="detail">
+                                        <div>
+                                            {{ $t("message.laixinlaifangdizhi") }}:{{ $t("message.contactAddress2") }}{{
+                                            $t("message.lianxidianhua") }}:{{
+                                                $t("message.complaintsPhone") }}</div>
+                                        <div>{{ $t("message.tousudianhua") }}:852-26207376</div>
+                                        <div>{{ $t("message.tousuyouxiang") }}:whistleb@cti-group.com.hk</div>
+                                        <div>{{ $t("message.laifangjitousudianhuashoulishijian") }}{{
+                                            $t("message.complaintsTime") }}</div>
+                                    </div>
+                                </div>
+                            </div>
+                        </template>
                     </div>
                 </div>
             </div>
@@ -61,7 +78,7 @@ onMounted(() => {
     width: 100%;
 
     >div {
-        width: 60%;
+        width: 80%;
         margin: 0 auto;
         text-align: center;
 
@@ -97,9 +114,9 @@ onMounted(() => {
     margin-top: 4rem !important;
 
     >div {
-        width: 27%;
+        width: 20%;
         background-color: #eeeeee;
-        padding: 3rem 1.6rem;
+        padding: 1.2rem 1rem;
 
         >img {
             width: 2.5rem;
@@ -110,13 +127,14 @@ onMounted(() => {
         >div:nth-child(2) {
             font-weight: bold;
             color: #F7B334;
-            font-size: 1.9rem;
+            font-size: 1.6rem;
             margin-left: 1%;
         }
-         >div:nth-child(3) {
+
+        >div:nth-child(3) {
             font-weight: bold;
             color: #F7B334;
-            font-size: 1.3rem;
+            font-size: 1.1rem;
             margin-left: 1%;
         }
 
@@ -138,4 +156,84 @@ onMounted(() => {
         }
     }
 }
+
+.more-box {
+    width: 100%;
+    background: #eeeeee;
+    padding: 1.5rem 1.5rem;
+    border-radius: 12px;
+    box-shadow: 0 6px 24px rgba(247, 179, 52, 0.18);
+    color: #333;
+    font-size: 1.3rem;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    position: absolute;
+    left: 0;
+    top: 0;
+    z-index: 10;
+    animation: moreFadeIn 0.35s cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+@keyframes moreFadeIn {
+    from {
+        opacity: 0;
+        transform: scale(0.9);
+    }
+
+    to {
+        opacity: 1;
+        transform: scale(1);
+    }
+}
+.close-btn {
+    position: absolute;
+    top: 0.5rem;
+    right: 0.5rem;
+    font-size: 1.4rem;
+    color: #888;
+    cursor: pointer;
+    z-index: 20;
+    transition: color 0.2s;
+}
+
+@media screen and (max-width: 767px) {
+    .more-box {
+        width: 90%;
+        margin-bottom: 2rem;
+        padding: 0.5rem 2rem;
+    }
+    .close-btn {
+        top: 1rem;
+        right: 1rem;
+        font-size: 1.2rem;
+    }
+}
+
+.more {
+    color: #F7B334;
+    cursor: pointer;
+    font-size: 0.8rem;
+    margin-top: 1rem;
+    text-align: right;
+
+    &:hover {
+        color: #333;
+    }
+}
+
+
+
+.close-btn:hover {
+    color: #F7B334;
+}
+
+.detail {
+    text-align: left;
+    font-size: 1rem;
+
+    div {
+        margin-top: 0.7rem;
+    }
+}
 </style>

+ 295 - 186
src/views/IndexView.vue

@@ -1,6 +1,7 @@
 <script setup>
 import Layout from '../components/common/Layout.vue';
-import { onBeforeUnmount, onMounted, ref } from "vue";
+import { onBeforeUnmount, onMounted, ref ,computed} from "vue";
+import { onLanguageChange, getCurrentLanguage } from '@/utils/language.js';
 import { getstudentAPI } from '@/apis/studentlistAPI.js';
 import { getSlidephotoAPI, getAdvantageAPI, getServiceAPI } from '@/apis/indexAPI.js';
 import index1 from '../assets/images/newindex/lunbo1.png';
@@ -12,7 +13,18 @@ import c3 from '../assets/images/newindex/c3.png';
 import news from '../assets/images/newindex/news.png';
 import news1 from '../assets/images/newindex/news1.png';
 import news2 from '../assets/images/newindex/news2.png';
+import bannner from '../assets/images/banner.png';
 import { useRouter } from 'vue-router';
+import zhounian from '../assets/images/newIndex/80zhounian.jpg';
+import guanaishequ from '../assets/images/newsPic/guanaishequ.png';
+import lifa from '../assets/images/newsPic/lifa.png';
+import { useI18n } from 'vue-i18n'
+const { t, locale, messages } = useI18n()
+
+// 当前语言(可在模板或逻辑中使用)
+const currentLanguage = ref(getCurrentLanguage());
+// 存储取消订阅函数
+const offLanguageListener = ref(null);
 // 导入swiper组件
 import { Swiper, SwiperSlide } from "swiper/vue";
 // 引入swiper样式(按需导入)
@@ -34,40 +46,23 @@ const onSlideChange = (swiper) => {
 
 };
 
-const tabList = ref([
-	{ name: '家用电梯', desc: '一句话概括特点', icon: 'fa fa-arrows-h' },
-	{ name: '家用电梯', desc: '一句话概括特点', icon: 'am-icon-cog' },
-	{ name: '别墅电梯', desc: '一句话概括特点', icon: 'am-icon-lightbulb-o' },
-	{ name: '观光电梯', desc: '一句话概括特点', icon: 'am-icon-line-chart' },
-	{ name: '关于我们', desc: '一句话概括特点', icon: 'am-icon-hourglass-end' },
-])
 const tabIndex = ref(0)
 const slideshow = ref([
 	{
-		ImageUrl: index3,
-		// Name: 'eee',
-		// Desc: '聚焦市场拓展',
-		// Desc1: '聚力公司治理',
-		// Desc2: '聚心社会价值',
-		// Desc3: 'FOCUS ON MARKET EXPANSION',
-		// Desc4: 'FOCUS ON CORPORATE GOVERNANCE',
-		// Desc5: 'FOCUS ON SOCIAL VALUE',
+		ImageUrl: bannner,
+	}
+
+])
+const newImg = ref([
+	{
+		ImageUrl: zhounian,
 	},
 	{
-		ImageUrl: index2,
-		Name: 'aaa',
-		Desc: '',
-		Desc1: '',
-		Desc2: ' ',
-		Desc3: ' ',
+		ImageUrl: guanaishequ,
 	},
 	{
-		ImageUrl: index1,
-		Name: '',
-		// Desc: '更加绿色更可持续',
-		// Desc1: 'More Green More Sustainable',
+		ImageUrl: lifa,
 	}
-
 ])
 const advantageList = ref([
 	{ id: 1, Cover: c3, title: '烟叶业务', desc: '我们的烟叶业务是从全球主要烟叶产区采购各类型烟叶类产品,并销售至全球市场。。' },
@@ -79,52 +74,11 @@ const serviceList = ref([
 	{ id: 2, icon: 'am-icon-user', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
 	{ id: 3, icon: 'am-icon-umbrella', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
 	{ id: 4, icon: 'am-icon-briefcase', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
-]);
-const swiperList = ref([
-	// {
-	// 	title: '中烟香港亮相多特蒙德',
-	// 	title1: 'InterTabac 2024国际烟草展会',
-	// 	// img:,
-	// 	content: '中烟香港统一组织66人的策展团队,代表中国烟草13家工业企业,携25个品牌、超100个品规的加热烟及30款雪茄产品参展,规模为历次之最。',
-	// 	date: '2024.10.14'
-	// },
-	// {
-	// 	title: '中烟香港亮相多特蒙德InterTabac 2024国际烟草展会 深化全球烟草市场布局',
-	// 	title1: 'InterTabac 2024国际烟草展会',
-	// 	content: '北京时间2024年9月19日,德国多特蒙德InterTabac 2024国际烟草展会开幕。',
-	// 	date: '2024.09.16'
-	// }
-	{
-		img: news,
-	},
-	{
-		img: news1,
-	},
-	{
-		img: news2,
-	}
-])
-const indexPhoto = ref()
-const changeTab = (ind) => {
+]);const changeTab = (ind) => {
 	tabIndex.value = ind
 	// indexPhoto.value.style.opcity = '1'
 }
 
-const getSlideshow = async () => {
-	const { data: res } = await getSlidephotoAPI();
-	console.log(res.Data);
-	slideshow.value = res.Data
-}
-const getAdvantage = async () => {
-	const { data: res } = await getAdvantageAPI();
-	console.log(res);
-	advantageList.value = res.Data
-}
-const getService = async () => {
-	const { data: res } = await getServiceAPI();
-	console.log(res);
-	serviceList.value = res.Data
-}
 const timer = ref(null)
 const swiper = () => {
 	if (timer.value) {
@@ -144,17 +98,6 @@ const clearData = () => {
 		timer.value = null
 	}
 }
-const closeit = () => {
-	clearData();
-}
-const openit = () => {
-	swiper();
-}
-const goTo = (item) => {
-	// 跳到别的网站怎么写
-	window.open('https://www.dotdotnews.com/s/202409/14/AP66e52bdce4b0d645a76ba050.html')
-
-}
 const card = ref('');
 // 当屏幕小于640px时,设置为vertical
 if (window.innerWidth < 640) {
@@ -208,90 +151,9 @@ const newsList = ref([
 		content: '2025年7月15日,国际集团组织员工赴香港立法会综合大楼参观,开展“爱国爱港主题教育”活动。本次活动得到了全国人大代表、香港立法会议员陈勇先生及工作人员的大力支持。',
 		date: '2025-07-18'
 	},
-	// {
-	// 	id:4,
-	// 	title: '国际集团举办《哪吒2》主题观影活动',
-	// 	content: '2025年2月26日,国际集团组织员工及家属集体观看国产动画《哪吒2》。影片以传统神话为根基,通过前沿数字技术与东方美学叙事的深度融合,以哪吒“逆天改命”的成长史诗,生动诠释了中华文明“自强不息”的精神内核。多名员工表示,这场视听盛宴不仅让传统文化“活起来”,更让文化自信“强起来”——既为中华文明“守正创新”的基因所震撼,也为身为文化传承者深感自豪。',
-	// 	date: '2015-03-05 14:29:00'
-	// }
-])
-const groupList = ref([
-	{
-		id: 1,
-		name: '中烟香港',
-		nameEnglish: 'China Tobacco International (Hong Kong)',
-	},
-	{
-		id: 2,
-		name: '天泽公司',
-		nameEnglish: 'Tianze Company',
-	},
-	{
-		id: 3,
-		name: '中烟巴西',
-		nameEnglish: 'China Tobacco International Brazil',
-	},
-	{
-		id: 4,
-		name: '中烟北美',
-		nameEnglish: 'China Tobacco International (North America)',
-	},
-	{
-		id: 5,
-		name: '中烟阿根廷',
-		nameEnglish: 'China Tobacco International Argentina',
-	},
-	{
-		id: 6,
-		name: '中烟中东',
-		nameEnglish: 'China Tobacco International (Middle East)',
-	},
-	{
-		id: 7,
-		name: '中烟英美',
-		nameEnglish: 'China Tobacco British American International',
-	},
-	{
-		id: 8,
-		name: '中烟菲莫',
-		nameEnglish: 'China Tobacco Philip Morris International',
-	},
-	// {
-	// 	id: 9,
-	// 	name: '中烟香港制造',
-	// 	nameEnglish: 'China Tobacco International (Hong Kong) Manufacturing',
-	// },
-	{
-		id: 10,
-		name: '澳门金叶',
-		nameEnglish: 'Macao Jinye',
-	},
-	{
-		id: 11,
-		name: '老挝红塔',
-		nameEnglish: 'Laos Hongta',
-	},
-	{
-		id: 12,
-		name: '柬埔寨威尼顿',
-		nameEnglish: 'Cambodia Wellington',
-	},
-	// {
-	// 	id: 13,
-	// 	name: '中烟罗马尼亚制造',
-	// 	nameEnglish: 'China Tobacco International (Romania) Manufacturing',
-	// },
-	{
-		id: 14,
-		name: '红塔瑞士',
-		nameEnglish: 'Hongta Switzerland',
-	},
-	{
-		id: 15,
-		name: '红塔瑞士罗马尼亚',
-		nameEnglish: 'Hongta Switzerland Romania',
-	},
 ])
+// 引用zh-CN里面的companyList数组
+const companyList = computed(() => messages.value[locale.value].message.companyList)
 const route = useRouter();
 const handleClick = (item) => {
 	console.log('item', item);
@@ -314,6 +176,10 @@ const isMobile = ref(false)
 const checkMobile = () => {
 	isMobile.value = window.innerWidth <= 768
 }
+// 当语言是英文的时候,首页和路由都不要新闻列表了
+const showNews = computed(() => {
+	return locale.value !== 'en'
+})
 onMounted(() => {
 	// videoPlayer.value.play();
 	// getSlideshow();
@@ -321,6 +187,16 @@ onMounted(() => {
 	// getService();
 	// 初始化检查移动端
 	checkMobile()
+
+	// 初始化当前语言为 i18n 中的 locale(优先)
+	currentLanguage.value = locale.value || getCurrentLanguage();
+
+	// 订阅全局语言变更事件(使用 utils 封装)
+	offLanguageListener.value = onLanguageChange((lang) => {
+		currentLanguage.value = lang;
+		console.log('IndexView detected language change:', lang);
+		// 在这里可以执行语言切换后需要的额外逻辑(比如重新请求某些接口)
+	});
 	// 监听窗口大小变化
 	window.addEventListener('resize', checkMobile)
 	swiper();
@@ -328,6 +204,11 @@ onMounted(() => {
 onBeforeUnmount(() => {
 	window.removeEventListener('resize', checkMobile)
 	clearData();
+	// 取消语言变更监听
+	if (offLanguageListener.value) {
+		offLanguageListener.value();
+		offLanguageListener.value = null;
+	}
 })
 </script>
 <template>
@@ -351,11 +232,23 @@ onBeforeUnmount(() => {
 				</Swiper>
 			</div>
 		</div>
-		<div class="news-section">
+		<div class="news-section" v-if="showNews">
 			<div class="newsTitle" v-if="isMobile">{{ $t('message.t3') }}</div>
 			<div>
-				<img src="../assets/images/newIndex/80zhounian.jpg" alt="" style="width: 100%; height: 100%;"
-					@click="goDetail(2)">
+				<Swiper :modules="modules" :slides-per-view="1" :space-between="0" :pagination="{ clickable: true }"
+					:mousewheel="false" :allowTouchMove="true" :autoplay="{ delay: 3000, disableOnInteraction: false }"
+					:loop="true" @swiper="onSwiper" @slideChange="onSlideChange" class="home-swiper">
+					<SwiperSlide v-for="(slide, index) in newImg" :key="index" class="swiper-slide-item" :style="{
+						backgroundImage: `url(${slide.ImageUrl})`,
+						backgroundRepeat: 'no-repeat',
+						backgroundSize: '100% auto',
+						backgroundPosition: 'center'
+					}">
+						<div class="index-banner">
+							<!-- 可以在这里添加轮播图上的内容 -->
+						</div>
+					</SwiperSlide>
+				</Swiper>
 			</div>
 			<div class="news-content">
 				<div class="newsTitle" v-if="!isMobile">{{ $t('message.t3') }}</div>
@@ -369,11 +262,61 @@ onBeforeUnmount(() => {
 				<div class="newsBtn" @click="handleGoNew">{{ $t('message.gengduoxinwen') }}</div>
 			</div>
 		</div>
+		<div v-else>
+			<div class="contactContainer1">
+                    <div class="contactContent">
+                        <div>{{ $t("message.ywjs") }}</div>
+                        <div class="fw">{{ $t('message.ywjs1') }}</div>
+                    </div>
+                    <div class="contactContent">
+                        <div>{{ $t('message.ywzx') }}</div>
+
+                        <div class="cardContent">
+                            <div>
+                                <img src="../assets/images/call.png" alt="">
+                                <div>
+                                    +852XXXXXXXX
+                                </div>
+                                <div>
+                                    xxxx@xxx.com
+                                </div>
+                                <div>
+                                    <div>{{ $t('message.ywzx2') }}</div>
+                                </div>
+                            </div>
+                            <div>
+                                <img src="../assets/images/call.png" alt="">
+                                <div>
+                                    +852XXXXXXXX
+                                </div>
+                                <div>
+                                    xxxx@xxx.com
+                                </div>
+                                <div>
+                                    <div>{{ $t('message.ywzx1') }}</div>
+                                </div>
+                            </div>
+                            <div>
+                                <img src="../assets/images/call.png" alt="">
+                                <div>
+                                    +852-26206055
+                                </div>
+                                <div>
+                                    yangy@cti-group.com.hk
+                                </div>
+                                <div>
+                                    <div>{{ $t('message.ywzx3') }}</div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+		</div>
 		<div class="group-section">
 			<div class="group-title">{{ $t('message.suoshuqiye') }}</div>
 			<div class="group-line"></div>
 			<div class="group-list">
-				<div v-for="(item, index) in groupList" class="group-item" :key="index" @click="handleClick(item)">
+				<div v-for="(item, index) in companyList" class="group-item" :key="index" @click="handleClick(item)">
 					<div>{{ item.name }}</div>
 					<div></div>
 					<!-- <div>{{ item.nameEnglish }}</div> -->
@@ -417,14 +360,14 @@ onBeforeUnmount(() => {
 		.swiper-pagination-bullet {
 			background: rgba(255, 255, 255, 0.9);
 			opacity: 1;
-			width: 0.8rem;
-			height: 0.8rem;
+			width: 0.6rem;
+			height: 0.6rem;
 			margin: 0 0.4rem;
 			transition: all 0.3s ease;
 
 			&.swiper-pagination-bullet-active {
 				background: #F7B334;
-				width: 3rem;
+				width: 1.5rem;
 				/* 激活状态下的横线更长 */
 				height: 0.6rem;
 				transform: scale(1.1);
@@ -1015,41 +958,53 @@ onBeforeUnmount(() => {
 	margin-top: 0.8rem;
 	display: flex;
 	flex-wrap: wrap;
-	justify-content: flex-start; /* 改为从左开始排列 */
+	justify-content: flex-start;
+	/* 改为从左开始排列 */
 	text-align: center;
-	gap: 1.5rem; /* 减小间距以适应更多元素 */
+	gap: 1.5rem;
+	/* 减小间距以适应更多元素 */
 
-	@media screen and (min-width: 768px) and (max-width: 1024px){
+	@media screen and (min-width: 768px) and (max-width: 1024px) {
 		margin-top: 0.8rem;
 		display: flex;
 		flex-wrap: wrap;
-		justify-content: flex-start; /* 桌面端也从左开始排列 */
+		justify-content: flex-start;
+		/* 桌面端也从左开始排列 */
 		text-align: center;
-		gap: 2.2rem; /* 桌面端减小间距 */
+		gap: 2.2rem;
+		/* 桌面端减小间距 */
 	}
-	@media screen and (min-width: 1024px){
+
+	@media screen and (min-width: 1024px) {
 		margin-top: 0.8rem;
 		display: flex;
 		flex-wrap: wrap;
-		justify-content: flex-start; /* 桌面端也从左开始排列 */
+		justify-content: flex-start;
+		/* 桌面端也从左开始排列 */
 		text-align: center;
-		gap: 1.4rem; /* 桌面端减小间距 */
+		gap: 1.4rem;
+		/* 桌面端减小间距 */
 	}
+
 	@media screen and (max-width: 768px) {
 		margin-top: 0.8rem;
 		display: flex;
 		flex-wrap: wrap;
-		justify-content: flex-start; /* 桌面端也从左开始排列 */
+		justify-content: flex-start;
+		/* 桌面端也从左开始排列 */
 		text-align: center;
-		gap: 0rem; /* 桌面端减小间距 */
+		gap: 0rem;
+		/* 桌面端减小间距 */
 	}
-	
-	
+
+
 }
 
 .group-item {
-	width: calc(18% - 0.4rem); /* 桌面端每行5个,更精确的计算 */
-	padding: 0.5rem 0.3rem; /* 减小内边距以适应更多元素 */
+	width: calc(18% - 0.4rem);
+	/* 桌面端每行5个,更精确的计算 */
+	padding: 0.5rem 0.3rem;
+	/* 减小内边距以适应更多元素 */
 	border: 1px solid #e9e9e9;
 	border-radius: 8px;
 	background-color: white;
@@ -1078,10 +1033,10 @@ onBeforeUnmount(() => {
 	}
 
 	@media screen and (min-width: 768px) and (max-width: 1024px) {
-		width: calc(28% - 0.6rem); 
+		width: calc(28% - 0.6rem);
 		padding: 0.6rem 0.35rem;
 		font-size: 1.0rem;
-		margin:1rem;
+		margin: 1rem;
 	}
 
 	>div:nth-child(1) {
@@ -1139,9 +1094,163 @@ onBeforeUnmount(() => {
 	}
 }
 
+.news-section {
+	.swiper {
+		width: 100%;
+		height: 30rem;
+
+		@media screen and (max-width: 767px) {
+			height: 25rem;
+		}
+	}
+}
+
 .swiper-slide {
 	position: relative;
 	background-color: #fafafa;
 	width: 100%;
 }
+.age-modal {
+  position: fixed;
+  z-index: 99999;
+  left: 0; top: 0; right: 0; bottom: 0;
+  background: rgba(0,0,0,0.55);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.age-modal-content {
+  background: #fff;
+  border-radius: 12px;
+  box-shadow: 0 4px 32px rgba(0,0,0,0.18);
+  padding: 2.5rem 2rem 2rem;
+  max-width: 350px;
+  width: 90%;
+  text-align: center;
+}
+.age-modal-title {
+  font-size: 1.3rem;
+  font-weight: bold;
+  margin-bottom: 1.2rem;
+  color: #c9082c;
+}
+.age-modal-desc {
+  font-size: 1.05rem;
+  margin-bottom: 2rem;
+  color: #333;
+}
+.age-modal-actions {
+  display: flex;
+  justify-content: space-between;
+  gap: 1.2rem;
+}
+.age-btn {
+  flex: 1;
+  padding: 0.7rem 0.2rem;
+  border-radius: 6px;
+  border: none;
+  font-size: 1rem;
+  cursor: pointer;
+  font-weight: bold;
+  transition: background 0.2s;
+}
+.age-btn.deny {
+  background: #eee;
+  color: #c9082c;
+}
+.age-btn.confirm {
+  background: #F7B334;
+  color: #fff;
+}
+.age-btn:hover {
+  opacity: 0.85;
+}
+.contactContainer1 {
+    width: 100%;
+    height: 100%;
+    background-color: #f7f7f7;
+    padding-bottom: 5rem;
+}
+
+.contact {
+    width: 100%;
+
+}
+
+.fw {
+    // font-weight: 550;
+    color: #444;
+}
+
+.bgImg {
+    width: 100%;
+
+    >img {
+        width: 100%;
+        height: 100%;
+    }
+}
+
+.contactContent {
+    width: 65%;
+    margin: 0px auto 20px;
+    font-size: 1.3rem;
+    padding-top: 3rem;
+
+    >div:nth-child(1) {
+        font-size: 1.5rem;
+        color: #F7B334;
+        font-weight: bold;
+        margin-bottom: 1.7rem;
+    }
+
+}
+
+.cardContent {
+    display: flex;
+    justify-content: space-between;
+
+    >div {
+        width: 30%;
+        // height: 15rem;
+        background: #fff;
+        padding: 1rem;
+        text-align: center;
+        font-size: 1.6rem;
+        font-weight: 550;
+        color: #444;
+
+        >img {
+            width: 3rem;
+            height: 3rem;
+            margin: 2rem 0rem 0rem 0rem
+        }
+
+        >div:nth-child(2) {
+            font-size: 2.2rem;
+            color: #F7B334;
+        }
+
+        >div:nth-child(3),
+        >div:nth-child(4) {
+            font-size: 0.9rem;
+            color: #333;
+            margin-top: 0.5rem;
+        }
+    }
+
+    @media screen and (max-width: 767px) {
+        width: 100%;
+        display: block;
+
+        >div {
+            padding: 0rem;
+            width: 100%;
+            margin-bottom: 2rem;
+            padding-bottom: 2rem;
+            padding-top: 1rem;
+        }
+
+    }
+}
 </style>

+ 2 - 2
src/views/JoinUs.vue

@@ -32,11 +32,11 @@ const handleGoBack = (val) => {
                 <div class="index-page">
                     <div class="page-header-sub">
                         <!-- <img src="../assets/images/zp.png" alt=""> -->
-                         <img src="../assets/images/jtgk.jpg" alt="" srcset="">
+                         <img src="../assets/images/banner.png" alt="" srcset="">
                     </div>
                 </div>
                 <div class="join-content" v-if="!isShowDetail">
-                    <div class="joinTitle">招聘信息</div>
+                    <div class="joinTitle">{{ $t("message.t7") }}</div>
                     <div v-for="(item, index) in list" :key="item.number" class="joinContentItem" @click="handleClick">
                         <div>{{ item.title }}</div>
                         <div>{{ item.date }}</div>

+ 35 - 15
src/views/MainBusiness.vue

@@ -9,7 +9,7 @@ import Layout from '../components/common/Layout.vue';
                 <div class="index-page" style="width: 100%">
                     <div class="page-header-sub">
                         <!-- <img src="../assets/images/business.png" alt=""> -->
-                         <img src="../assets/images/jtgk.jpg" alt="">
+                        <img src="../assets/images/banner.png" alt="">
                     </div>
                 </div>
                 <div class="contactContainer1">
@@ -24,7 +24,10 @@ import Layout from '../components/common/Layout.vue';
                             <div>
                                 <img src="../assets/images/call.png" alt="">
                                 <div>
-                                    +852 XXXX XXXX
+                                    +852XXXXXXXX
+                                </div>
+                                <div>
+                                    xxxx@xxx.com
                                 </div>
                                 <div>
                                     <div>{{ $t('message.ywzx2') }}</div>
@@ -33,12 +36,27 @@ import Layout from '../components/common/Layout.vue';
                             <div>
                                 <img src="../assets/images/call.png" alt="">
                                 <div>
-                                    +852 XXXX XXXX
+                                    +852XXXXXXXX
+                                </div>
+                                <div>
+                                    xxxx@xxx.com
                                 </div>
                                 <div>
                                     <div>{{ $t('message.ywzx1') }}</div>
                                 </div>
                             </div>
+                            <div>
+                                <img src="../assets/images/call.png" alt="">
+                                <div>
+                                    +852-26206055
+                                </div>
+                                <div>
+                                    yangy@cti-group.com.hk
+                                </div>
+                                <div>
+                                    <div>{{ $t('message.ywzx3') }}</div>
+                                </div>
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -87,7 +105,7 @@ import Layout from '../components/common/Layout.vue';
     width: 65%;
     margin: 0px auto 20px;
     font-size: 1.3rem;
-    padding-top:3rem;
+    padding-top: 3rem;
 
     >div:nth-child(1) {
         font-size: 1.5rem;
@@ -100,12 +118,13 @@ import Layout from '../components/common/Layout.vue';
 
 .cardContent {
     display: flex;
+    justify-content: space-between;
 
     >div {
-        width: 45%;
+        width: 30%;
         // height: 15rem;
         background: #fff;
-        padding: 1.3rem;
+        padding: 1rem;
         text-align: center;
         font-size: 1.6rem;
         font-weight: 550;
@@ -121,26 +140,27 @@ import Layout from '../components/common/Layout.vue';
             font-size: 2.2rem;
             color: #F7B334;
         }
-        >div:nth-child(3) {
-            font-size: 1rem;
+
+        >div:nth-child(3),
+        >div:nth-child(4) {
+            font-size: 0.9rem;
             color: #333;
+            margin-top: 0.5rem;
         }
     }
 
-    >div:nth-child(1) {
-        margin-right: 5rem;
-    }
     @media screen and (max-width: 767px) {
         width: 100%;
         display: block;
+
         >div {
-            padding:0rem;
+            padding: 0rem;
             width: 100%;
             margin-bottom: 2rem;
-            padding-bottom:2rem;
-            padding-top:1rem;
+            padding-bottom: 2rem;
+            padding-top: 1rem;
         }
-        
+
     }
 }
 </style>

+ 1 - 1
src/views/Solution.vue

@@ -19,7 +19,7 @@ onUpdated(() => {
     <div class="index-page" style="width: 100%">
       <div class="page-header-sub">
         <!-- <img src="../assets/images/gaikuang.png" alt=""> -->
-         <img src="../assets/images/jtgk.jpg" alt="" srcset="">
+         <img src="../assets/images/banner.png" alt="" srcset="">
       </div>
     </div>
 

+ 39 - 19
src/views/SubGroup.vue

@@ -1,12 +1,14 @@
 <script setup>
-import { ref, onMounted } from 'vue';
+import { ref, onMounted, computed, onBeforeUnmount } from 'vue';
 import { useRouter, useRoute } from 'vue-router';
 import { useI18n } from 'vue-i18n';
 import Layout from '../components/common/Layout.vue';
 
 const { t } = useI18n();
+// 获取当前语言并订阅变化(使页面可随语言切换实时响应)
+import { getCurrentLanguage, onLanguageChange } from '@/utils/language.js';
 const route = useRoute();
-const object = ref({});
+// 使用 computed 动态获取基于当前语言的字段,避免语言切换后不更新的问题
 const router = useRouter();
 const goBack = () => {
     router.push({ path: '/index' });
@@ -60,22 +62,39 @@ const companyData = {
         key: 'zyou'
     }
 };
-const companyId = ref(''); // 默认公司ID为1
+const companyId = ref(''); // 默认公司ID为空,mounted 时填充
+
+// 当前语言(可在模板中直接使用)
+const currentLanguage = ref(getCurrentLanguage());
+let offLanguage = null;
+
+// dataKey 动态计算,基于 companyId
+const dataKey = computed(() => {
+    const company = companyData[companyId.value];
+    return company ? company.key : 'zyxg';
+});
+
+// 使用 computed 让 t(...) 在语言切换时重新计算,实时更新
+const title = computed(() => t(`message.${dataKey.value}.title`));
+const content = computed(() => t(`message.${dataKey.value}.content`));
+const phone = computed(() => t(`message.${dataKey.value}.phone`));
+const website = computed(() => t(`message.${dataKey.value}.website`));
+const isEnglish = computed(() => currentLanguage.value === 'en');
+console.log('isEnglish:', isEnglish.value);
+
 onMounted(() => {
     // 从路由参数获取公司ID
     console.log('当前路由参数:', route.params);
     companyId.value = route.params.id || route.query.id;
     console.log('接收到的路由参数 ID:', companyId.value);
+    // 订阅语言变化以便 currentLanguage 实时更新
+    offLanguage = onLanguageChange((lang) => {
+        currentLanguage.value = lang;
+    });
+});
 
-    // 根据ID获取对应的公司信息
-    const company = companyData[companyId.value];
-    const dataKey = company ? company.key : 'zyxg'; // 默认使用中烟国际(香港)
-    object.value = {
-        title: t(`message.${dataKey}.title`),
-        content: t(`message.${dataKey}.content`),
-        phone: t(`message.${dataKey}.phone`),
-        website: t(`message.${dataKey}.website`)
-    };
+onBeforeUnmount(() => {
+    if (offLanguage) offLanguage();
 });
 </script>
 <template>
@@ -84,21 +103,22 @@ onMounted(() => {
             <div class="subGroupBox">
                 <div class="subGroupContainer">
                     <div class="page-header-sub">
-                        <img src="../assets/images/jtgk.jpg" alt="">
+                        <img src="../assets/images/banner.png" alt="">
                     </div>
                     <div class="back" @click="goBack">
                         <img src="../assets/images/back.png" alt="">
                     </div>
                     <div class="groupContent">
-                        <div class="side">
+                        <!-- 根据语言切换字体大小;注意这里要设置 fontSize,而不是把 fontSize 字符串赋给 display -->
+                        <div class="side" :style="{ fontSize: isEnglish ? '1.3rem' : '2rem' }">
                             <div>{{ $t('message.jt') }}</div>
                             <div>{{ $t('message.ssqy') }}</div>
                         </div>
                         <div class="contentItem">
-                            <div class="title">{{ object.title }}</div>
-                            <div class="content">{{ object.content }}</div>
-                            <div class="phone">联系方式:{{ object.phone }}</div>
-                            <div class="website" v-if="companyId == 1">企业网站:{{ object.website }}</div>
+                            <div class="title">{{ title }}</div>
+                            <div class="content">{{ content }}</div>
+                            <div class="phone">{{$t('message.t6') }} : {{ phone }}</div>
+                            <div class="website" v-if="companyId == 1">{{$t("message.t8")}}:{{ website }}</div>
                         </div>
                     </div>
                 </div>
@@ -163,7 +183,7 @@ onMounted(() => {
 }
 
 .side {
-    min-width: 14%;
+    width: 16%;
     height: 19rem;
     font-size: 2rem;
     font-weight: 550;

+ 58 - 37
src/views/components/myNavigation.vue

@@ -1,23 +1,21 @@
 <script setup>
-import { ref, nextTick } from 'vue';
+import { ref, nextTick, onMounted, onBeforeUnmount,computed} from 'vue';
 import { useRouter } from 'vue-router';
+import { onLanguageChange, getCurrentLanguage } from '@/utils/language.js';
 
 const showNav = ref(false);
 const router = useRouter();
 const navBtnRef = ref(null);
 const navPopupRef = ref(null);
 
-// 分组导航项
-const consumerNav = [
-  { label: '集团概况', path: '/solution' },
-  { label: '联系方式', path: '/ContactInformation' },
-];
-const partnerNav = [
-  { label: '主营业务', path: '/MainBusiness' },
-  { label: '人才招聘', path: '/JoinUs' },
-];
-
+// 当前语言
+const currentLanguage = ref(getCurrentLanguage());
+const offLangListener = ref(null);
+const isNews = computed(() => {
+  return currentLanguage.value !== 'en';
+})  
 const toggleNav = () => {
+  console.log('toggleNav11111');
   showNav.value = !showNav.value;
   if (showNav.value) {
     nextTick(() => {
@@ -48,6 +46,20 @@ const handleClickOutside = (e) => {
   showNav.value = false;
   document.removeEventListener('click', handleClickOutside);
 };
+
+onMounted(() => {
+  offLangListener.value = onLanguageChange((lang) => {
+    currentLanguage.value = lang;
+    console.log('myNavigation detected language change:', lang);
+  });
+});
+
+onBeforeUnmount(() => {
+  if (offLangListener.value) {
+    offLangListener.value();
+    offLangListener.value = null;
+  }
+});
 </script>
 
 <template>
@@ -58,28 +70,25 @@ const handleClickOutside = (e) => {
         </div>
     </div>
     <transition name="fade">
-      <div v-if="showNav" class="quick-nav-popup" ref="navPopupRef">
-         <div class="guide-body">
-            <div class="guide-section">
-              <!-- <h4>消费者</h4> -->
-              <div class="guide-links">
-                <div class="guide-link" @click="navigateTo('/overview')">集团概况</div>
-                <!-- <div class="guide-link" @click="navigateTo('/ContactInformation')">联系方式</div> -->
-                 <div class="guide-link" @click="navigateTo('/news')">新闻动态</div>
-                <div class="guide-link" @click="navigateTo('/MainBusiness')">主营业务</div>
+        <teleport to="body">
+          <div v-if="showNav" class="quick-nav-popup" ref="navPopupRef" style="position:fixed;left:80vw;top:6rem;transform:translateX(-50%);z-index:20000;min-width:25rem;background:#fff;box-shadow:0 0.3rem 1rem rgba(0,0,0,0.12);border-radius:0.6rem;display:flex;flex-direction:column;">
+            <div class="guide-body">
+              <div class="guide-section">
+                <div class="guide-links">
+                  <div class="guide-link" @click="navigateTo('/overview')">{{ $t("message.t2") }}</div>
+                  <div v-if="isNews" class="guide-link" @click="navigateTo('/news')">{{ $t("message.t3") }}</div>
+                  <div class="guide-link" @click="navigateTo('/MainBusiness')">{{ $t("message.t4")}}</div>
+                </div>
               </div>
-            </div>
-            <div class="guide-section">
-              <!-- <h4>合作者</h4> -->
-              <div class="guide-links">
-                <!-- <div class="guide-link" @click="navigateTo('/MainBusiness')">主营业务</div> -->
-                  <div class="guide-link" @click="navigateTo('/JoinUs')">人才招聘</div>
-                 <div class="guide-link" @click="navigateTo('/ContactInformation')">联系方式</div> 
-               
+              <div class="guide-section">
+                <div class="guide-links">
+                  <div class="guide-link" @click="navigateTo('/JoinUs')">{{ $t("message.t5")}}</div>
+                  <div class="guide-link" @click="navigateTo('/ContactInformation')">{{ $t("message.t6")}}</div> 
+                </div>
               </div>
             </div>
           </div>
-      </div>
+        </teleport>
     </transition>
   </div>
 </template>
@@ -92,7 +101,7 @@ const handleClickOutside = (e) => {
   cursor: pointer;
 }
 
-.quick-nav-popup {
+/* .quick-nav-popup {
   position: absolute;
   left: 50%;
   top: 100%;
@@ -100,12 +109,24 @@ const handleClickOutside = (e) => {
   min-width: 25rem;
   background: #fff;
   box-shadow: 0 0.3rem 1rem rgba(0, 0, 0, 0.12);
-  border-radius: 0.6rem;
+  border-radius: 0.6rem; */
   /* padding: 1.5rem 0 1rem 0; */
+  /* display: flex; */
+  /* flex-direction: column; */
+  /* animation: popupIn 0.18s; */
+  /* margin-top: 0.7rem; */
+/* } */
+.quick-nav-popup {
+  position: fixed; /* fixed 更可靠,已挂到 body */
+  /* left/top 由行内样式计算注入 */
+  min-width: 25rem;
+  background: #fff;
+  box-shadow: 0 0.3rem 1rem rgba(0, 0, 0, 0.12);
+  border-radius: 0.6rem;
   display: flex;
   flex-direction: column;
-  /* animation: popupIn 0.18s; */
-  margin-top: 0.7rem;
+  margin-top: 0; /* 位置由 top 控制 */
+  z-index: 20000; /* 提高到比页面 fixed 元素更高 */
 }
 
 @keyframes popupIn {
@@ -218,7 +239,7 @@ const handleClickOutside = (e) => {
   box-shadow: 0 0.15rem 0.5rem rgba(247, 179, 52, 0.3);
 }
 .guide-body {
-  padding: 1.5rem;
+  padding: 1.2rem;
   background: linear-gradient(135deg, #fefefe 0%, #f8f9fa 100%);
   >div:nth-child(2) {
     border-top:0.1rem solid #F7B334;
@@ -265,11 +286,11 @@ const handleClickOutside = (e) => {
 .guide-link {
   cursor: pointer;
   color: #495057;
-  font-size: 0.95rem;
+  font-size: 0.85rem;
   font-weight: 500;
-  padding: 0.8rem 1.1rem;
+  padding: 0.6rem 0.9rem;
   border: 2px solid #e9ecef;
-  border-radius: 1rem;
+  border-radius: 0.5rem;
   background: white;
   transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
   white-space: nowrap;

+ 7 - 7
src/views/news.vue

@@ -47,12 +47,12 @@ const list = ref([
         title: '国际集团参加香港中企协保龄球邀请赛',
         desc: '为进一步加强与驻港中资企业交流,丰富员工文体生活,国际集团积极响应香港中企协的号召,组队参与3月29日在香港启德体育园举办的“‘龄’动精彩,球艺飞扬”中企保龄球邀请赛。国际集团代表队队员们全程投入,奋力拼搏,经过近半天的激烈',
     },
-    {
-        id: 4,
-        date: '2025-03-10',
-        title: '国际集团举办《哪吒2》主题观影活动',
-        desc: '2025年2月26日,国际集团组织员工及家属集体观看国产动画《哪吒2》。影片以传统神话为根基,通过前沿数字技术与东方美学叙事的深度融合,以哪吒“逆天改命”的成长史诗,生动诠释了中华文明“自强不息”的精神内核。多名员工表示,这场视听盛宴不仅让传统文化“活起来”,更让文化自信“强起来”——既为中华文明“守正创新”的基因所震撼,也为身为文化传承者深感自豪。',
-    },
+    // {
+    //     id: 4,
+    //     date: '2025-03-10',
+    //     title: '国际集团举办《哪吒2》主题观影活动',
+    //     desc: '2025年2月26日,国际集团组织员工及家属集体观看国产动画《哪吒2》。影片以传统神话为根基,通过前沿数字技术与东方美学叙事的深度融合,以哪吒“逆天改命”的成长史诗,生动诠释了中华文明“自强不息”的精神内核。多名员工表示,这场视听盛宴不仅让传统文化“活起来”,更让文化自信“强起来”——既为中华文明“守正创新”的基因所震撼,也为身为文化传承者深感自豪。',
+    // },
     // {
     //     id: 5,
     //     date: '2025-02-13',
@@ -103,7 +103,7 @@ onMounted(() => {
             <div class="index-page">
                 <div class="page-header-sub">
                     <!-- <img src="../assets/images/news.png" alt="news banner" class="responsive-img" /> -->
-                     <img src="../assets/images/jtgk.jpg" alt="" srcset="">
+                     <img src="../assets/images/banner.png" alt="" srcset="">
                 </div>
             </div>
 

+ 61 - 17
src/views/newsDetail.vue

@@ -27,6 +27,34 @@ onMounted(() => {
     id.value = route.params.id || route.query.id;
     console.log('接收到的路由参数 ID:', id.value);
 })
+function openLowRes(src, maxWidth = 1200) {
+    if (!src) return;
+    const img = new Image();
+    img.crossOrigin = 'anonymous';
+    img.onload = () => {
+        const ratio = Math.min(1, maxWidth / img.width);
+        const w = Math.max(1, Math.round(img.width * ratio));
+        const h = Math.max(1, Math.round(img.height * ratio));
+        const canvas = document.createElement('canvas');
+        canvas.width = w;
+        canvas.height = h;
+        const ctx = canvas.getContext('2d');
+        ctx.drawImage(img, 0, 0, w, h);
+        // 输出为 jpeg,质量 0.85,可根据需要调低以进一步减小文件大小
+        canvas.toBlob((blob) => {
+            if (!blob) return;
+            const url = URL.createObjectURL(blob);
+            window.open(url, '_blank');
+            // 延迟 revoke,确保新窗口加载完成
+            setTimeout(() => URL.revokeObjectURL(url), 10000);
+        }, 'image/jpeg', 0.85);
+    };
+    img.onerror = () => {
+        // 失败时直接打开原图(备用)
+        window.open(src, '_blank');
+    };
+    img.src = src;
+}
 </script>
 <template>
     <div>
@@ -104,7 +132,7 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 1">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/jnt.png" alt="">
+                            <img src="../assets/images/newsPic/jnt.png" alt="" @dblclick="openLowRes($event.target.src, 900)" oncontextmenu="return false" >
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -115,7 +143,8 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 2">
                          <div class="newspic">
-                            <img src="../assets/images/newIndex/80zhounian.jpg" alt="">
+                             <img src="../assets/images/newIndex/80zhounian.jpg" oncontextmenu="return false"   alt="" style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -135,8 +164,10 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 3">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/ball1.png" alt="">
-                            <img src="../assets/images/newsPic/ball2.png" alt="">
+                            <img src="../assets/images/newsPic/ball1.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
+                            <img src="../assets/images/newsPic/ball2.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -147,8 +178,10 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 4">
                         <div class="detailImg">
-                            <img src="../assets/images/newsPic/ez.png" alt="">
-                            <img src="../assets/images/newsPic/ez1.png" alt="">
+                            <img src="../assets/images/newsPic/ez.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
+                            <img src="../assets/images/newsPic/ez1.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -165,7 +198,8 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 5">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/kaigong.png" alt="">
+                            <img src="../assets/images/newsPic/kaigong.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -182,7 +216,8 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 6">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/yigong.png" alt="">
+                            <img src="../assets/images/newsPic/yigong.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -191,7 +226,8 @@ onMounted(() => {
                             </div>
                         </div>
                         <div class="newspic1">
-                            <img src="../assets/images/newsPic/yigong1.png" alt="">
+                            <img src="../assets/images/newsPic/yigong1.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -202,7 +238,8 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 7">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/jingshen.png" alt="">
+                            <img src="../assets/images/newsPic/jingshen.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -237,7 +274,8 @@ onMounted(() => {
                             </div>
                         </div>
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/guanaishequ.png" alt="">
+                            <img src="../assets/images/newsPic/guanaishequ.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -246,7 +284,8 @@ onMounted(() => {
                             </div>
                         </div>
                         <div class="newspic1">
-                            <img src="../assets/images/newsPic/guanaishequ1.png" alt="">
+                            <img src="../assets/images/newsPic/guanaishequ1.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -257,7 +296,8 @@ onMounted(() => {
                     </div>
                      <div v-if="id == 10">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/lifa.png" alt="">
+                            <img src="../assets/images/newsPic/lifa.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -271,13 +311,15 @@ onMounted(() => {
                     </div>
                     <div v-if="id == 11">
                         <div class="newspic" style="margin-bottom: 0.5rem;">
-                            <img src="../assets/images/newsPic/jiang.png" alt="">
+                            <img src="../assets/images/newsPic/jiang.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div style="font-size: 0.9rem; text-align: center; ">
                             香港个人资料私隐专员公署专员钟丽玲(左一)、香港物业管理业监管局主席黄江天(右一)为中烟国际集团有限公司颁奖
                         </div>
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/jiang1.png" alt="">
+                            <img src="../assets/images/newsPic/jiang1.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -291,7 +333,8 @@ onMounted(() => {
                     </div>
                      <div v-if="id == 12">
                         <div class="newspic">
-                            <img src="../assets/images/newsPic/fadian.png" alt="">
+                            <img src="../assets/images/newsPic/fadian.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                         <div class="detailContent"
                             :style="{ fontSize: fontSizeMap[fontSizeLevel], lineHeight: lineHeightMap[fontSizeLevel] }">
@@ -318,7 +361,8 @@ onMounted(() => {
                             </div>
                         </div>
                          <div class="newspic">
-                            <img src="../assets/images/newsPic/yundonghui.png" alt="">
+                            <img src="../assets/images/newsPic/yundonghui.png" alt="" oncontextmenu="return false"  style="cursor:pointer;"
+                              @dblclick="openLowRes($event.target.src, 900)">
                         </div>
                     </div>
                 </div>