Hệ thống pháp luật

BỘ CÔNG THƯƠNG
BAN CHỈ ĐẠO 389
-------

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------

Số: 2015/KH-BCĐ389

Hà Nội, ngày 27 tháng 3 năm 2019

 

KẾ HOẠCH

CÔNG TÁC ĐẤU TRANH CHỐNG BUÔN LẬU, GIAN LẬN THƯƠNG MẠI VÀ HÀNG GIẢ NĂM 2019

Căn cứ Kế hoạch số 05/KH-BCĐ389 ngày 31/01/2019 của Ban Chỉ đạo quốc gia chống buôn lậu, gian lận thương mại và hàng giả (Ban Chỉ đạo 389 quốc gia) về công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả năm 2019, Ban Chỉ đạo 389 Bộ Công Thương xây dựng Kế hoạch công tác trọng tâm năm 2019 như sau:

I. MỤC ĐÍCH, YÊU CẦU

1. Mục đích

a) Tiếp tục thực hiện nghiêm túc, có hiệu quả Nghị quyết số 41/NQ-CP ngày 09/6/2015 của Chính phủ về việc đẩy mạnh công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả trong tình hình mới; góp phần thực hiện Nghị quyết số 01/NQ-CP ngày 01/01/2019 của Chính phủ về nhiệm vụ và giải pháp chỉ đạo điều hành thực hiện kế hoạch phát triển kinh tế - xã hội năm 2019:

b) Nâng cao sự chủ động của các đơn vị, công chức ngành Công Thương trong công tác phối hợp, chỉ đạo phòng ngừa, phát hiện, xử lý buôn lậu, gian lận thương mại và hàng giả;

c) Tăng cường kỷ cương, kỷ luật thực thi công vụ trong công tác chống buôn lậu, gian lận thương mại và hàng giả.

2. Yêu cầu

a) Tập trung nguồn lực triển khai quyết liệt, đồng bộ các giải pháp để thực hiện nhiệm vụ được giao; gắn trách nhiệm của người đứng đầu cơ quan, đơn vị với kết quả thực hiện nhiệm vụ;

b) Hoàn thiện cơ chế, chính sách, pháp luật về quản lý nhà nước và hệ thống văn bản quy phạm pháp luật về công tác phòng, chống buôn lậu, gian lận thương mại và hàng giả;

c) Nắm vững tình hình tại các địa bàn, tuyến trọng điểm; Triển khai nghiêm túc các kế hoạch chuyên đề để kịp thời phát hiện, xử lý nghiêm các hành vi buôn lậu, gian lận thương mại và hàng giả;

đ) Triển khai kịp thời các Đoàn công tác liên ngành để thực hiện chỉ đạo của Chính phủ, Ban Chỉ đạo 389 quốc gia;

đ) Chú trọng công tác chỉ đạo, tổ chức kiểm tra, thanh tra công vụ để kịp thời xử lý nghiêm các hành vi tiêu cực, bao che, tiếp tay cho vi phạm.

II. CÁC NHIỆM VỤ TRỌNG TÂM

1. Thực hiện nghiêm túc, có hiệu quả các chỉ đạo của Chính phủ, Thủ tướng Chính phủ, Ban Chỉ đạo 389 quốc gia và Bộ Công Thương về công tác phòng, chống buôn lậu, gian lận thương mại và hàng giả

Tiếp tục tổ chức thực hiện nghiêm túc, có hiệu quả các chỉ đạo của Chính phủ, Thủ tướng Chính phủ, Ban Chỉ đạo 389 quốc gia và Bộ Công Thương về công tác phòng, chống buôn lậu, gian lận thương mại và hàng giả:

- Nghị quyết số 41/NQ-CP ngày 09/6/2015 của Chính phủ về việc đẩy mạnh công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả trong tình hình mới; Quyết định số 05/QĐ-BCĐ389 ngày 23/9/2015 của Ban Chỉ đạo 389 quốc gia về việc ban hành Kế hoạch triển khai Nghị quyết số 41/NQ-CP của Chính phủ; Kế hoạch số 05/KH-BCĐ389 ngày 31/01/2019 của Ban Chỉ đạo 389 Quốc gia chống buôn lậu, gian lận thương mại và hàng giả về công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả năm 2019;

- Kế hoạch số 410/KH-BCĐ389 ngày 14/6/2017 của Ban Chỉ đạo 389 Quốc gia về tăng cường công tác thanh tra, kiểm tra, kiểm soát, đấu tranh chống buôn lậu, gian lận thương mại trong kinh doanh xăng dầu; Chỉ thị số 13/2017/CT-BCT ngày 04/10/2017 của Bộ trưởng Bộ Công Thương về việc tăng cường kiểm tra, xử lý vi phạm pháp luật trong kinh doanh khí dầu mỏ hoá lỏng;

- Chỉ thị số 30/CT-TTg ngày 30/9/2014 của Thủ tướng Chính phủ về tăng cường công tác đấu tranh chống buôn lậu thuốc lá; Văn bản số 12/CQTT-TH ngày 18/9/2017 của Cơ quan Thường trực Ban Chỉ đạo 389 Bộ Công Thương về việc tăng cường công tác chống buôn lậu thuốc lá;

- Chỉ thị số 13/CT-TTg ngày 09/5/2016 về việc tăng cường trách nhiệm quản lý nhà nước về an toàn thực phẩm; Quyết định 2650/QĐ-BCT ngày 28/6/2016 của Bộ Công Thương về việc ban hành Kế hoạch của Bộ Công Thương thực hiện Chỉ thị 13/CT-TTg; Công điện số 371/CĐ-TTg ngày 10/3/2017 của Thủ tướng Chính phủ về việc khắc phục hậu quả vụ ngộ độc rượu và tăng cường quản lý an toàn vệ sinh thực phẩm đối với sản phẩm rượu; Chỉ thị số 02/CT-BCT ngày 14/3/2017 của Bộ Công Thương về việc tăng cường quản lý an toàn thực phẩm đối với sản xuất, kinh doanh rượu;

- Chỉ thị số 15/CT-TTg ngày 24/4/2017 của Thủ tướng Chính phủ về một số nhiệm vụ, giải pháp cấp bách trong quản lý chất lượng vật tư nông nghiệp; Kế hoạch 1239/KH-BCĐ389 ngày 13/12/2017 của Ban Chỉ đạo 389 quốc gia về việc tăng cường công tác phòng, chống buôn lậu, sản xuất, kinh doanh phân bón, thuốc bảo vệ thực vật giả, kém chất lượng; Kế hoạch số 216/KH-BCĐ389 ngày 10/01/2018 của Ban Chỉ đạo 389 Bộ Công Thương về tăng cường công tác phòng, chống buôn lậu, kinh doanh phân bón, thuốc bảo vệ thực vật giả, kém chất lượng;

- Văn bản số 02/BCĐ389-VPTT ngày 28/01/2019 của Ban chỉ đạo Quốc gia chống buôn lậu, gian lận thương mại và hàng giả về việc tăng cường phòng, chống buôn lậu, vận chuyển trái phép pháo nổ qua biên giới, của khẩu, vùng biển;

- Chỉ thị số 17/CT-TTg ngày 19/6/2018 của Thủ tướng Chính phủ về tăng cường đấu tranh chống buôn lậu, gian lận thương mại, sản xuất, kinh doanh hàng giả, hàng kém chất lượng thuộc nhóm hàng dược phẩm, mỹ phẩm, thực phẩm chức năng, dược liệu và vị thuốc y học cổ truyền; Văn bản số 5172/BCT-QLTT ngày 29/6/2018 của Bộ trưởng Bộ Công Thương về việc khẩn trương triển khai Chỉ thị số 17/CT-TTg ngày 19/6/2018 của Thủ tướng Chính phủ;

- Quyết định số 1059/QĐ-BCT ngày 28/3/2017 của Bộ trưởng Bộ Công Thương phê duyệt Đề án Phòng, chống buôn lậu, gian lận thương mại và hàng giả tại các địa bàn, lĩnh vực trọng điểm đến năm 2020; Quyết định 334/QĐ-BCT của Bộ Công Thương ngày 24/01/2018 về Kế hoạch đấu tranh phòng, chống các hành vi vi phạm trong sản xuất, kinh doanh hàng hóa giả mạo xuất xứ tại các địa bàn đến năm 2020; Quyết định số 3304/QĐ-BCT ngày 12/9/2018 của Bộ trưởng Bộ Công Thương ban hành Kế hoạch tăng cường công tác chống hàng giả, hàng không rõ nguồn gốc xuất xứ và hàng hóa xâm phạm quyền sở hữu trí tuệ trong thương mại điện tử giai đoạn 2018 - 2020…

2. Nghiên cứu, đề xuất trình cấp có thẩm quyền sửa đổi, bổ sung, ban hành mới cơ chế chính sách pháp luật liên quan đến công tác chống buôn lậu, gian lận thương mại và hàng giảHoàn thiện cơ chế, chính sách, pháp luật về công tác phòng, chống buôn lậu, gian lận thương mại và hàng giả; hệ thống văn bản quy phạm pháp luật quản lý nhà nước trong lĩnh vực công thương có liên quan.

2.1 Trình Chính phủ, Thủ tướng Chính phủ xem xét, ban hành:

- Nghị định thay thế Nghị định số 185/2013/NĐ-CP ngày 15/11/2013 của Chính phủ quy định xử phạt vi phạm hành chính trong hoạt động thương mại, sản xuất, buôn bán hàng giả, hàng câm và bảo vệ quyền lợi người tiêu dùng (Tổng cục Quản lý thị trường chủ trì);

- Nghị định thay thế Nghị định số 67/2017/NĐ-CP quy định xử phạt vi phạm hành chính trong lĩnh vực dầu khí, xăng dầu và khí (Tổng cục Quản lý thị trường chủ trì);

- Nghị định sửa đổi, bổ sung một số điều của Nghị định số 148/2016/NĐ-CP ngày 04/11/2016 của Chính phủ quy định chi tiết thi hành một số điều của Pháp lệnh Quản lý thị trường (Tổng cục Quản lý thị trường chủ trì);

- Nghị định xử phạt vi phạm hành chính trong lĩnh vực hóa chất, vật liệu nổ công nghiệp (Cục Hoá chất chủ trì);

- Nghị định quy định chi tiết Luật Cạnh tranh về xử lý vi phạm pháp luật trong lĩnh vực cạnh tranh (Cục Cạnh tranh và Bảo vệ người tiêu dùng chủ trì);

- Nghị định sửa đổi, bổ sung một số điều của Nghị định số 127/2015/NĐ-CP ngày 14/12/2015 về tổ chức và hoạt động thanh tra ngành Công Thương (Thanh tra Bộ chủ trì);

- Nghị định sửa đổi, bổ sung các Nghị định liên quan đến điều kiện đầu tư kinh doanh thuộc lĩnh vực quản lý nhà nước của Bộ Công Thương (Vụ Pháp chế chủ trì);

- Quyết định của Thủ tướng Chính phủ sửa đổi Quyết định số 35/2015/QĐ-TTg ngày 28/08/2015 sửa đổi, bổ sung QĐ số 02/2012/QĐ-TTg về Danh mục hàng hóa, dịch vụ thiết yếu phải đăng ký hợp đồng mẫu, điều kiện giao dịch chung (Cục Cạnh tranh và Bảo vệ người tiêu dùng chủ trì).

2.2 Trình Bộ trưởng xem xét, ban hành:

- Thông tư của Bộ trưởng Bộ Công Thương quy định phụ cấp chức vụ lãnh đạo đối với chức danh Đội trưởng, Phó Đội trưởng Đội Quản lý thị trường thuộc Cục Quản lý thị trường cấp tỉnh thuộc Tổng cục Quản lý thị trường thuộc Bộ Công Thương (Tổng cục Quản lý thị trường chủ trì);

- Thông tư của Bộ trưởng Bộ Công Thương quy định về hoạt động công vụ của công chức Quản lý thị trường (Tổng cục Quản lý thị trường chủ trì);

- Thông tư của Bộ trưởng Bộ Công Thương quy định kiểm tra nội bộ việc chấp hành pháp luật trong hoạt động kiểm tra và xử lý vi phạm hành chính của lực lượng Quản lý thị trường (Tổng cục Quản lý thị trường chủ trì);

- Thông tư thay thế Thông tư số 15/2016/TT-BCT ngày 10/8/2016 của Bộ Công Thương hướng dẫn một số quy định về thanh tra chuyên ngành công thương (Thanh tra Bộ chủ trì);

- Thông tư ban hành Quy chuẩn kỹ thuật quốc gia về an toàn thực phẩm đối với các sản phẩm bánh, mứt, kẹo, bột và tinh bột (Vụ Khoa học và Công nghệ chủ trì);

- Thông tư ban hành Quy chuẩn kỹ thuật quốc gia về an toàn thực phẩm đối với dầu thực vật và sản phẩm trong quá trình chế biến dầu thực vật (Vụ Khoa học và Công nghệ chủ trì);

- Thông tư ban hành Quy chuẩn kỹ thuật quốc gia về an toàn thực phẩm đối với các sản phẩm đồ uống có cồn và đồ uống không cồn (Vụ Khoa học và Công nghệ chủ trì);

- Thông tư thay thế Thông tư số 48/2011/TT-BCT ngày 30/12/2011 của Bộ Công Thương quy định quản lý chất lượng các sản phẩm, hàng hóa nhóm 2 thuộc phạm vi quản lý của Bộ Công Thương (Vụ Khoa học và Công nghệ chủ trì);

- Thông tư ban hành Quy chuẩn kỹ thuật quốc gia về an toàn thực phẩm đối với các sản phẩm sữa (sữa dạng lỏng, sữa dạng bột và sữa lên men) và các sản phẩm chế biến từ sữa (sản phẩm phomat, các sản phẩm chất béo từ sữa) (Vụ Khoa học và Công nghệ chủ trì);

- Rà soát, xây dựng trình Bộ trưởng ban hành các quy chuẩn kỹ thuật quốc gia (QCVN) phục vụ hoạt động kiểm tra liên ngành, công tác quản lý, theo lộ trình (năm 2019) đã được Bộ trưởng phê duyệt2.3 Công tác rà soát hệ thống văn bản quy phạm pháp luật

Thường xuyên thực hiện công tác rà soát, đề xuất sửa đổi, bổ sung, hoàn thiện hệ thống các văn bản quy phạm pháp luật liên quan đến công tác chống buôn lậu, gian lận thương mại và hàng giả (Vụ Pháp chế chủ trì).

3. Tăng cường công tác kiểm tra, thanh tra, xử lý vi phạm

3.1 Lực lượng Quản lý thị trường

Tổng cục Quản lý thị trường chỉ đạo, giám sát, đôn đốc lực lượng Quản lý thị trường tăng cường triển khai đồng bộ các kế hoạch chuyên đề trọng điểm về: chống buôn lậu thuốc lá; chống buôn lậu, gian lận thương mại xăng dầu; phòng, chống buôn lậu, sản xuất, kinh doanh các mặt hàng giả, hàng kém chất lượng là dược phẩm, mỹ phẩm, thực phẩm chức năng, vật tư nông nghiệp... và các mặt hàng khác theo phương thức thương mại truyền thống và trên môi trường mạng điện tử; quản lý an toàn thực phẩm đối vớì sản xuất, kinh doanh rượu và quản lý hóa chất độc hại bị lạm dụng trong bảo quản, chế biến thực phẩm; kiểm tra, xử lý vi phạm pháp luật trong kinh doanh khí; đấu tranh phòng, chống các hành vi vi phạm trong sản xuất, kinh doanh hàng hóa giả mạo xuất xứ; chủ trì, phối hợp với các lực lượng chức năng thực hiện kiểm tra, xử lý các vụ việc, quy mô lớn, phức tạp, liên ngành và xảy ra trên nhiêu địa bàn.

Các Cục Quản lý thị trường cấp tỉnh và Cục Nghiệp vụ Quản lý thị trường chủ động thực hiện kế hoạch kiểm tra định kỳ, kế hoạch thanh tra chuyên ngành đã được Bộ trưởng phê duyệt* Nhiệm vụ Cơ quan Thường trực BCĐ 389 Bộ Công Thương (Tổng cục Quản lý thị trường)

Chủ động tham mưu Ban Chỉ đạo 389 Bộ Công Thương các giải pháp nâng cao hiệu quả chỉ đạo điều hành; Chủ trì, phối hợp với các đơn vị thực hiện các chuyên đề, kế hoạch của Ban Chỉ đạo 389 quốc gia giao.

Tham mưu, đề xuất triển khai các đoàn công tác, kiểm tra chống buôn lậu, hàng giả và gian lận thương mại của lực lượng Quản lý thị trường tại địa bàn trọng điểm dịp Lễ, Tết; các đoàn kiểm tra của Ban Chỉ đạo 389 Bộ Công Thương; các đoàn công kiểm tra đôn đốc thực hiện Đề án Phòng, chống buôn lậu, gian lận thương mại và hàng giả tại các địa bàn, lĩnh vực trọng điểm đến năm 2020.

Nghiên cứu, trao đổi với các cơ quan liên quan để thảo luận, đánh giá tồn tại, khó khăn, đề xuất, kiến nghị để tham mưu, báo cáo cơ quan có thẩm quyền giải quyết.

3.2 Các đơn vị thành viên Ban Chỉ đạo 389 Bộ Công Thương

Chủ động thực hiện các kế hoạch kiểm tra, thanh tra đã được Bộ trưởng phê duyệta) Thanh tra Bộ

Thực hiện thanh tra việc chấp hành pháp luật chuyên ngành của cơ quan, tổ chức, cá nhân thuộc phạm vi quản lý nhà nước của Bộ; hướng dẫn nghiệp vụ thanh tra chuyên ngành đối với các cơ quan được giao thực hiện chức năng thanh tra chuyên ngành thuộc Bộ; tổ chức tập huấn, bồi dưỡng nghiệp vụ thanh tra chuyên ngành đối với công chức thuộc Bộ làm công tác thanh tra chuyên ngành; chủ trì giám sát, đôn đốc và phối hợp với các đơn vị thuộc Bộ thực hiện kế hoạch kiểm tra, thanh tra đã được Bộ trưởng phê duyệt.

b) Cục Hoá chất

Thực hiện kiểm tra, xử lý theo thẩm quyền các hành vi vi phạm pháp luật trong hoạt động hoá chất, xuất khẩu, nhập khẩu vật liệu nổ công nghiệp, tiền chất thuốc nổ; thực hiện kế hoạch kiểm tra, kế hoạch thanh tra chuyên ngành năm 2019 đã được Bộ trưởng phê duyệt; phối hợp với lực lượng Quản lý thị trường kiểm tra, xử lý vi phạm hành chính trong lĩnh vực quản lý hoặc lĩnh vực có liên quan.

c) Cục Xuất nhập khẩu

Kiểm tra việc thực hiện các quy định pháp luật liên quan đến hoạt động xuất khẩu, nhập khẩu hàng hóa, thương mại biên giới thuộc phạm vi quản lý của Bộ; chủ trì, phối hợp với các cơ quan liên quan thực hiện rà soát hoạt động kinh doanh tạm nhập, tái xuất, kiểm tra thực thi pháp luật của các doanh nghiệp trong việc duy trì điều kiện kinh doanh theo quy định của pháp luật; phối hợp với lực lượng Quản lý thị trường kiểm tra, xử lý vi phạm hành chính trong lĩnh vực quản lý hoặc lĩnh vực có liên quan.

d) Cục Cạnh tranh và Bảo vệ người tiêu dùng

Tổ chức thanh tra chuyên ngành, kiểm tra việc thực hiện các quy định pháp luật liên quan đến hoạt động quản lý cạnh tranh và bảo vệ quyền lợi người tiêu dùng; thực hiện kế hoạch kiểm tra, kế hoạch thanh tra chuyên ngành năm 2019 đã được Bộ trưởng phê duyệt; phối hợp với lực lượng Quản lý thị trường kiểm tra, xử lý vi phạm pháp luật trong lĩnh vực quản lý hoặc lĩnh vực có liên quan.

đ) Cục Thương mại điện tử và Kinh tế số

Kiểm tra, xử lý theo thẩm quyền và đề xuất xử lý các hành vi vi phạm pháp luật trong lĩnh vực thương mại điện tử và kinh tế số; thực hiện kế hoạch kiểm tra, kế hoạch thanh tra chuyên ngành năm 2019 đã được Bộ trưởng phê duyệt và tiếp tục triển khai Kế hoạch tăng cường công tác chống hàng giả, hàng không rõ nguồn gốc xuất xứ và hàng hóa xâm phạm quyền sở hữu trí tuệ trong thương mại điện tử giai đoạn 2018 - 2020e) Vụ Thị trường trong nước

Thực hiện việc kiểm tra theo chức năng, nhiệm vụ và theo kế hoạch đã được Bộ trưởng phê duyệt; phối hợp, hỗ trợ lực lượng Quản lý thị trường trong công tác kiểm tra, xử lý vi phạm hành chính đối với hành vi vi phạm kinh doanh các nhóm, mặt hàng, đặc biệt là nhóm hàng hóa, dịch vụ cấm kinh doanh, hạn chế kinh doanh; ngành hàng kinh doanh có điều kiện.

g) Vụ Khoa học và Công nghệ

Thực hiện việc kiểm tra theo chức năng, nhiệm vụ và theo kế hoạch đã được Bộ trưởng phê duyệt; phối hợp, hỗ trợ lực lượng Quản lý thị trường trong thực hiện các biện pháp nghiệp vụ, dữ liệu quản lý nhà nước về đo lường, chất lượng, an toàn thực phẩm, sở hữu công nghiệp đối với sản phẩm hàng hóa ngành Công Thương để phục vụ công tác kiểm tra, xử lý vi phạm hành chính.

4. Nâng cao hiệu quả công tác phối hợp

Tổng cục Quản lý thị trường tiếp tục chỉ đạo lực lượng Quản lý thị trường chủ động đẩy mạnh công tác phối hợp, chia sẻ thông tin để triển khai có hiệu quả công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả. Trong đó chú trọng:

- Tăng cường phối hợp với các lực lượng chức năng như: Hải quan, Biên phòng, Công an, Cảnh sát biển và các cơ quan Thanh tra chuyên ngành để xây dựng các phương án cụ thể kiểm tra, xử lý các đường dây, ổ nhóm, các đối tượng chủ mưu, cầm đầu; kịp thời ngăn chặn việc sản xuất, vận chuyển, buôn bán hàng cấm, hàng nhập lậu, hàng giả, hàng kém chất lượng trên thị trường nội địa, đặc biệt là địa bàn Thành phố Hà Nội, Thành phố Hồ Chí Minh;

- Tăng cường các hoạt động phối hợp với các Hiệp hội, doanh nghiệp trong trao đổi thông tin, hỗ trợ chống buôn lậu, chống hàng giả, hàng kém chất lượng, bảo vệ quyền sở hữu trí tuệ;

- Thúc đẩy hợp tác quốc tế và xã hội hóa công tác chống buôn lậu, gian lận thương mại và hàng giả thông qua các hoạt động phối hợp, hỗ trợ từ phía các hiệp hội, tổ chức, cộng đồng doanh nghiệp trong và ngoài nước.

5. Công tác tổ chức, biên chế, tài chính, truyền thông

5.1 Vụ Tổ chức cán bộ

Chủ trì, phối hợp với các đơn vị thuộc Bộ trình cấp có thẩm quyền kiện toàn công tác tổ chức, biên chế, công tác cán bộ các đơn vị, đặc biệt đối với Tổng cục Quản lý thị trường, Ủy ban Cạnh tranh Quốc gia; chủ trì, phối hợp với các đơn vị thực hiện công tác đào tạo, bồi dưỡng đối với công chức thuộc Bộ; tham mưu, thực hiện các biện pháp tăng cường kỷ luật, kỷ cương hành chính đối với công chức trong hoạt động công vụ.

5.2 Vụ Tài chính và Đổi mới doanh nghiệp

Chủ trì, phối hợp, hướng dẫn, giám sát các đơn vị trong công tác tài chính, ngân sách, quản lý tài sản công, đầu tư xây dựng và các điều kiện bảo đảm để công chức thực thi công vụ trong công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả.

5.3 Văn phòng Bộ

Phối hợp, hướng dẫn, theo dõi, đôn đốc việc thực hiện công tác cải cách hành chính, sự chỉ đạo điều hành của Lãnh đạo Bộ; công tác truyền thông, báo chí; công tác thi đua, khen thưởng đối với các đơn vị thuộc Bộ trong công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả.

6. Nâng cao năng lực thực thi công vụ

Tổng cục Quản lý thị trường và các đơn vị thành viên Ban Chỉ đạo đẩy mạnh giáo dục chính trị, tư tưởng; tiếp tục quan tâm công tác đào tạo, bồi dưỡng kiến thức cho công chức, người lao động để đáp ứng tốt nhiệm vụ được giao; đặc biệt tăng cường công tác kiểm tra nội bộ để chấn chỉnh kịp thời những sai sót nghiệp vụ trong quá trình kiểm tra, xử lý vi phạm hành chính của cơ quan Quản lý thị trường và các đơn vị liên quan thuộc Bộ; khen thưởng, động viên kịp thời đối với các tập thể, cá nhân có thành tích, kiên quyết xử lý nghiêm công chức có dấu hiệu tiêu cực, bao che, tiếp tay cho buôn lậu, tham nhũng trong thực thi công vụ.

7. Đẩy mạnh ứng dụng công nghệ thông tin

Các đơn vị tổ chức thực hiện Kế hoạch ứng dụng công nghệ thông tin trong hoạt động của Bộ ban hành kèm theo Quyết định số 5046/QĐ-BCT ngày 27/12/2018 của Bộ trưởng Bộ Công Thương.

Tổng cục Quản lý thị trường triển xây dựng các cơ sở dữ liệu điện tử chuyên ngành, phục vụ công tác quản lý, điều hành và kiểm tra, xử lý vi phạm hành chính của lực lượng Quản lý thị trường trên toàn quốc.

8. Công tác tuyên truyền, phổ biến chính sách pháp luật

Tổng cục Quản lý thị trường chỉ đạo lực lượng Quản lý thị trường cả nước tiếp tục thực hiện tốt công tác tuyên truyền, phổ biến pháp luật góp phần nâng cao hiệu quả đấu tranh phòng, chống buôn lậu, gian lận thương, mại, hàng giả, đồng thời tạo sự chuyển biến mạnh mẽ trong nhận thức của quần chúng nhân dân để cùng tham gia công tác đấu tranh chống buôn lậu, gian lận thương mại và hàng giả, kiên quyết không tham gia, không tiếp tay cho vi phạm.

Vụ Pháp chế, các đơn vị thuộc Bộ đẩy mạnh công tác theo dõi thi hành pháp luật, công tác phổ biến văn bản quy phạm pháp luật, nhất là các văn bản mới về quản lý nhà nước và văn bản về xử lý vi phạm hành chính được cấp có thẩm quyền ban hành nhằm nâng cao hiệu quả thực thi của hệ thống văn bản quy phạm pháp luật ngành Công Thương.

III. TỔ CHỨC THỰC HIỆN

- Các Thành viên Ban Chỉ đạo 389 Bộ Công Thương, Thủ trưởng các cơ quan liên quan triển khai thực hiện đầy đủ, kịp thời; Cơ quan Thường trực Ban Chỉ đạo 389 Bộ Công Thương (Tổng cục Quản lý thị trường) có trách nhiệm đôn đốc, tổng hợp kết quả thực hiện Kế hoạch này.

- Cơ quan Thường trực Ban Chỉ đạo 389 Bộ Công Thương (Tổng cục Quản lý thị trường) chủ trì xây dựng báo cáo, các đơn vị thành viên phối hợp cung cấp thông tin theo nhiệm vụ. Chế độ báo cáo thực hiện theo Quyết định số 01/QĐ-BCĐ389 ngày 04/01/2018 của Trưởng Ban Chỉ đạo quốc gia chống buôn lậu, gian lận thương mại và hàng giả.

Trong quá trình tổ chức thực hiện, nếu có vấn đề cần sửa đổi, bổ sung, các đơn vị chủ động đề xuất gửi Cơ quan Thường trực Ban Chỉ đạo 389 Bộ Công Thương (Tổng cục Quản lý thị trường) để tổng hợp và báo cáo Lãnh đạo Bộ xem xét, quyết định./.

 


Nơi nhận:
- Bộ trưởng Bộ Công Thương (để b/c);
- Các đ/c Thứ trưởng Bộ Công Thương;
- Các đ/c Thành viên BCĐ389 BCT;
- Văn phòng Thường trực BCĐ389 QG;
- BCĐ 389 các tỉnh, TP trực thuộc Trung ương;
- Cục QLTT các tỉnh, TP trực thuộc Trung ương;
- Lưu: VT, TCCQLTT(15).

TRƯỞNG BAN




THỨ TRƯỞNG BỘ CÔNG THƯƠNG
Đặng Hoàng An

 



lồng nhau (bên trong) hay không const memberID = 0; const vbID = '3efcd9d7056b3c3c82a9f5a50f308a8e'; // State management cho phân tích let isAnalyzing = false; // Có đang phân tích không let currentAnalyzingAddress = null; // Address đang được phân tích let currentAnalyzingElement = null; // Element đang được phân tích let currentAnalyzingBadge = null; // Badge của element đang phân tích let isPanelOpen = false; // Panel phân tích có đang mở không console.log('Tiện ích loaded - memberID:', memberID, 'vbID:', vbID); function isInViewportAndTabNoiDung(element) { const rect = element.getBoundingClientRect(); const buffer = 1500; // Buffer to preload content below the viewport (approx. 50+ lines) const viewHeight = window.innerHeight || document.documentElement.clientHeight; const isInViewport = rect.top < viewHeight + buffer && rect.bottom >= 0; const isInTabNoiDung = $(element).closest('#tab_noi_dung_vb').length > 0; return isInViewport && isInTabNoiDung; } function getAddress(element) { const validTags = ['trichyeu', 'cancu', 'phan', 'chuong', 'muc', 'tieumuc', 'dieu', 'khoan', 'diem']; const $parent = $(element).closest(validTags.join(',')); if (!$parent.length) { return null; } let addr = $parent.attr('address'); if (!addr && $parent.prop('tagName').toLowerCase() === 'trichyeu') { addr = 'trichyeu'; $parent.attr('address', addr); } return addr || null; } function processTnplClasses($element) { const tnplKeysInLine = new Set(); // key = slug hoặc text (thường là slug) $element.find('tnpl').each(function () { const $tnpl = $(this); const tnplSlug = ($tnpl.attr('slug') || '').trim().toLowerCase(); const tnplKey = tnplSlug || $tnpl.text().trim().toLowerCase(); // Đã xử lý trong cùng dòng => bỏ if (tnplKeysInLine.has(tnplKey)) { return; } tnplKeysInLine.add(tnplKey); let tnplExists = false; // Chỉ duyệt các tnpl đã được tô màu (class on) $('tnpl.on').each(function () { const $existingTnpl = $(this); const existingSlug = ($existingTnpl.attr('slug') || '').trim().toLowerCase(); const existingKey = existingSlug || $existingTnpl.text().trim().toLowerCase(); if ( existingKey === tnplKey && isInViewportAndTabNoiDung($existingTnpl[0]) ) { tnplExists = true; return false; // break each } }); if (!tnplExists) { $tnpl.addClass('on'); } }); } function processQueue() { while (pendingRequests < maxConcurrentRequests && requestQueue.length > 0) { const task = requestQueue.shift(); pendingRequests++; task() .always(() => { pendingRequests--; processQueue(); }); } } function processVisibleParagraphs() { try { $('#tab_noi_dung_vb p:not([is-posted="1"])').each(function () { let $element = $(this); if (isInViewportAndTabNoiDung(this)) { $element.attr('is-posted', '1'); $element.addClass('loading-content'); let p_innerHTML = $element.html(); let address = null; if (cac_cau_hinh.loai_noi_dung.includes('docs')) { address = getAddress($element); } const isSubP = $element.parents('p').length > 0; if (isSubP && !allow_sub_p) { $element.removeClass('loading-content'); return; // Không gửi nếu không cho phép } const postData = { p_content: p_innerHTML, cac_cau_hinh, address }; if (isSubP && allow_sub_p) { postData.sub_p = 1; } requestQueue.push(() => $.ajax({ url: '//tnpl' + (Math.floor(Math.random() * 10) + 1) + '.hethongphapluat.com/tien-ich/tim.tien.ich.php', type: 'POST', data: postData, success: function(response) { $element.html(response); processTnplClasses($element); // Đợi CTTD và các tiện ích load xong rồi mới attach badge if (memberID === 4 && typeof attachPhanTichBadge === 'function') { setTimeout(function() { // $element chính là thẻ p, kiểm tra và attach badge trực tiếp const $parent = $element.closest('phan, chuong, muc, tieumuc, dieu, khoan, diem'); if ($parent.length > 0 && $parent.find('.badge-phan-tich[data-for="' + $parent.attr('address') + '"]').length === 0) { const address = $parent.attr('address'); $element.attr('data-address', address); // Lấy tên loại thẻ cho tooltip const parentType = getParentTypeName($parent.prop('tagName').toLowerCase()); // Append badge VÀO PARENT (dieu, khoan,...) thay vì vào

để tránh xung đột CTTD const $badge = $('Phân tích'); $parent.append($badge); // Thêm class để CSS set position: relative CHỈ cho element có badge $parent.addClass('has-phan-tich-badge'); } // Xử lý các p con (nếu có sub-p) attachPhanTichBadge($element); }, 300); // Đợi 300ms để CTTD render xong } }, complete: function() { $element.removeClass('loading-content'); } }) ); processQueue(); } }); } catch(e) { console.error('Lỗi processVisibleParagraphs:', e); } } $(window).on('scroll resize', function () { processVisibleParagraphs(); }); console.log('Bắt đầu processVisibleParagraphs lần đầu...'); processVisibleParagraphs(); console.log('processVisibleParagraphs lần đầu hoàn thành'); // Chức năng phân tích điều luật (chỉ cho member_id = 4) if (memberID === 4) { // Modal cảnh báo function showWarningModal(message) { // Tạo modal nếu chưa có if ($('#warningModal').length === 0) { const modalHTML = `

`; $('body').append(modalHTML); } $('#warningModalBody').html('

' + message + '

'); $('#warningModal').modal('show'); } // Hàm lấy tên tiếng Việt của thẻ function getParentTypeName(tagName) { const typeNames = { 'phan': 'Phần', 'chuong': 'Chương', 'muc': 'Mục', 'tieumuc': 'Tiểu mục', 'dieu': 'Điều', 'khoan': 'Khoản', 'diem': 'Điểm' }; return typeNames[tagName] || 'Nội dung'; } function attachPhanTichBadge($container) { const validTags = 'phan, chuong, muc, tieumuc, dieu, khoan, diem'; $container.find('p').each(function() { const $p = $(this); const $parent = $p.closest(validTags); if ($parent.length > 0) { const address = $parent.attr('address'); // Kiểm tra đã có badge cho parent này chưa if ($parent.find('.badge-phan-tich[data-for="' + address + '"]').length === 0) { // Lưu address vào data attribute $p.attr('data-address', address); // Lấy tên loại thẻ cho tooltip const parentType = getParentTypeName($parent.prop('tagName').toLowerCase()); // Append badge vào PARENT, không vào

const $badge = $('Phân tích'); $parent.append($badge); // Thêm class để CSS set position: relative CHỈ cho element có badge $parent.addClass('has-phan-tich-badge'); } } }); } // Helper: Escape HTML entities function escapeHtml(text) { const map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return String(text).replace(/[&<>"']/g, function(m) { return map[m]; }); } // Helper: Convert Markdown to HTML (đơn giản) function markdownToHtml(markdown) { if (!markdown) return ''; let html = markdown; // Headers html = html.replace(/^### (.*$)/gim, '

$1
'); html = html.replace(/^## (.*$)/gim, '

$1

'); html = html.replace(/^# (.*$)/gim, '

$1

'); // Bold html = html.replace(/\*\*(.*?)\*\*/g, '$1'); // Italic html = html.replace(/\*(.*?)\*/g, '$1'); // Blockquote html = html.replace(/^> (.*$)/gim, '
$1
'); html = html.replace(/^> (.*$)/gim, '
$1
'); // Lists (unordered) html = html.replace(/^\- (.*$)/gim, '
  • $1
  • '); html = html.replace(/(
  • .*<\/li>)/s, '
      $1
    '); // Lists (ordered) html = html.replace(/^\d+\. (.*$)/gim, '
  • $1
  • '); // Line breaks và paragraphs html = html.split('\n\n').map(para => { para = para.trim(); if (para.startsWith('')) { return para; } if (para) { return '

    ' + para.replace(/\n/g, '
    ') + '

    '; } return ''; }).join('\n'); // Clean up multiple line breaks html = html.replace(/\n{3,}/g, '\n\n'); return html; } // Panel fixed position function closePhanTichPanel() { const $panel = $('#phanTichPanel'); if ($panel.length) { $panel.removeClass('show'); setTimeout(() => { $panel.remove(); }, 300); } // Reset highlight và badge khi đóng panel if (currentAnalyzingElement) { currentAnalyzingElement.removeClass('highlight-border-persistent'); } if (currentAnalyzingBadge) { currentAnalyzingBadge.text('Phân tích').removeClass('analyzing'); currentAnalyzingBadge.data('analyzing', false); currentAnalyzingBadge.data('hovering', false); currentAnalyzingBadge.css({display: 'none'}); // Ẩn badge khi đóng } // Reset tất cả các element khác (trong trường hợp có nhiều) $('#tab_noi_dung_vb .highlight-border-persistent').removeClass('highlight-border-persistent'); $('#tab_noi_dung_vb .badge-phan-tich-container.analyzing').each(function() { $(this).text('Phân tích').removeClass('analyzing').data('analyzing', false); }); // Check: có CTTD pointer đang mở không? const $visiblePointers = $('.pointer:visible'); const hadCTTDOpen = $visiblePointers.length > 0; if (hadCTTDOpen) { // CÓ CTTD đang mở → giữ rightdocinfo ẩn console.log('ℹ️ CTTD pointer is visible, keeping rightdocinfo hidden'); } else { // KHÔNG có CTTD → SHOW lại rightdocinfo const $rightdocinfo = $('#rightdocinfo'); if ($rightdocinfo.length > 0) { $rightdocinfo.show(); console.log('✅ Showing rightdocinfo back (no CTTD pointer)'); } } // Reset state isAnalyzing = false; currentAnalyzingAddress = null; currentAnalyzingElement = null; currentAnalyzingBadge = null; isPanelOpen = false; // Đánh dấu panel đã đóng console.log('✅ Panel closed, state reset, isPanelOpen = false'); } // Panel đã song song với rightdocinfo → không cần MutationObserver nữa console.log('✅ Panel running in standalone mode (parallel to rightdocinfo)'); // Resize event để update panel dimensions khi browser resize let resizeTimer; $(window).on('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(function() { if (isPanelOpen && $('#phanTichPanel').length > 0) { updatePanelDimensions(); console.log('✅ Panel dimensions updated on window resize'); } }, 250); // Debounce 250ms }); // Function để detect và áp dụng dimensions từ rightdocinfo function updatePanelDimensions() { const $panel = $('#phanTichPanel'); const $rightdocinfo = $('#rightdocinfo'); const $docRightCol = $('#doc-right-col'); if ($panel.length === 0) return; // Ưu tiên: doc-right-col > rightdocinfo let $reference = $docRightCol.length > 0 ? $docRightCol : $rightdocinfo; // Nếu reference bị ẩn (display:none), tạm show để get dimensions let wasHidden = false; if ($reference.length > 0 && !$reference.is(':visible')) { wasHidden = true; $reference.css('visibility', 'hidden').show(); } if ($reference.length > 0) { const refWidth = $reference.outerWidth(); const refOffset = $reference.offset(); if (refWidth && refOffset) { // Tính vị trí right từ edge màn hình const windowWidth = $(window).width(); const rightPosition = windowWidth - (refOffset.left + refWidth); $panel.css({ 'width': refWidth + 'px', 'right': rightPosition + 'px' }); console.log('✅ Panel dimensions updated:', { width: refWidth + 'px', right: rightPosition + 'px', reference: $reference.attr('id') }); } else { console.warn('⚠️ Could not get dimensions from reference element'); } // Restore trạng thái hidden nếu cần if (wasHidden) { $reference.hide().css('visibility', ''); } } else { console.warn('⚠️ No reference element found for panel dimensions'); } } function openPhanTichPanel(address, vbID) { console.log('openPhanTichPanel called with address:', address); console.log('Current state - isAnalyzing:', isAnalyzing, 'currentAnalyzingAddress:', currentAnalyzingAddress); // Kiểm tra nếu đang phân tích element khác if (isAnalyzing && currentAnalyzingAddress && currentAnalyzingAddress !== address) { const currentName = getElementDisplayName(currentAnalyzingAddress); console.warn('Already analyzing:', currentAnalyzingAddress, 'Cannot analyze:', address); showWarningModal('Vui lòng chờ phân tích ' + currentName + ' hoàn tất...'); return; } // Nếu đang phân tích cùng element → không làm gì if (isAnalyzing && currentAnalyzingAddress === address) { console.log('Already analyzing this element, ignoring duplicate request'); return; } // Panel sẽ fixed position append vào body const $rightdocinfo = $('#rightdocinfo'); // KHÔNG ẨN CTTD pointer - cho phép CTTD và panel cùng tồn tại console.log('Panel opening, CTTD pointer can stay visible'); // ẨN rightdocinfo để tiết kiệm không gian if ($rightdocinfo.length > 0) { $rightdocinfo.hide(); console.log('Hidden rightdocinfo to save space'); } // XÓA highlight persistent của TẤT CẢ elements cũ trước $('#tab_noi_dung_vb .highlight-border-persistent').removeClass('highlight-border-persistent'); console.log('Removed all previous highlight-border-persistent'); // Tìm element đang được phân tích và badge của nó const $element = $('[address="' + address + '"]'); const $badge = $element.find('.badge-phan-tich-container[data-for="' + address + '"]').first(); // Set state isAnalyzing = true; currentAnalyzingAddress = address; currentAnalyzingElement = $element; currentAnalyzingBadge = $badge; console.log('State set:', { isAnalyzing: isAnalyzing, currentAnalyzingAddress: currentAnalyzingAddress, elementFound: $element.length > 0, badgeFound: $badge.length > 0 }); // Thêm highlight persistent cho element MỚI này $element.addClass('highlight-border-persistent'); // Thay đổi badge thành "Đang phân tích..." và giữ hiển thị if ($badge.length > 0) { $badge.text('Đang phân tích...').addClass('analyzing'); // Giữ badge hiển thị và ở đúng vị trí $badge.data('analyzing', true); $badge.data('hovering', true); // Prevent auto-hide console.log('Badge set to analyzing state'); // Đảm bảo badge hiển thị ở đúng vị trí (vì dùng position: fixed) showPhanTichBadgeForParent($element); } // Tạo panel nếu chưa có - fixed position append vào body if ($('#phanTichPanel').length === 0) { const panelHTML = `
    Phân tích điều luật
    Đang phân tích...

    Đang phân tích...

    `; // Append vào body (fixed position không cần container cụ thể) $('body').append(panelHTML); // Detect width từ rightdocinfo và áp dụng cho panel updatePanelDimensions(); // Trigger show và set flag setTimeout(() => { $('#phanTichPanel').addClass('show'); isPanelOpen = true; console.log('✅ Panel opened (fixed position), isPanelOpen = true'); }, 10); } else { $('#phanTichPanelBody').html(`
    Đang phân tích...

    Đang phân tích...

    `); // Update dimensions khi re-open updatePanelDimensions(); $('#phanTichPanel').addClass('show'); isPanelOpen = true; console.log('✅ Panel re-opened (fixed position), isPanelOpen = true'); } // Bind nút đóng và ESC $(document).off('click.closePhanTich').on('click.closePhanTich', '.close-phan-tich', function() { closePhanTichPanel(); }); $(document).off('keyup.closePhanTich').on('keyup.closePhanTich', function(e) { if (e.key === 'Escape') closePhanTichPanel(); }); // Bind nút refresh - phân tích lại $(document).off('click.refreshPhanTich').on('click.refreshPhanTich', '.btn-refresh-phan-tich', function(e) { e.preventDefault(); e.stopPropagation(); const $btn = $(this); const $icon = $btn.find('i'); // Disable button và thêm animation $btn.prop('disabled', true); $icon.addClass('fa-spin'); console.log('🔄 Refresh: Phân tích lại address:', address); // Show loading trong panel $('#phanTichPanelBody').html(`
    Đang phân tích lại...

    Đang xóa cache và phân tích lại...

    `); // Gọi API xóa cache trước deletePhanTichCache(address, vbID, function(deleteSuccess) { if (deleteSuccess) { console.log('✅ Cache deleted, now re-analyzing...'); // Sau khi xóa cache, gọi lại API phân tích callPhanTichAPI(address, vbID, function() { // Enable lại button $btn.prop('disabled', false); $icon.removeClass('fa-spin'); }); } else { console.error('❌ Failed to delete cache'); $('#phanTichPanelBody').html(` `); $btn.prop('disabled', false); $icon.removeClass('fa-spin'); } }); }); // Gọi API phân tích (dùng function helper) callPhanTichAPI(address, vbID); } // Helper: Gọi API phân tích (tách riêng để dùng lại) function callPhanTichAPI(address, vbID, callback) { const randomServer = Math.floor(Math.random() * 10) + 1; $.ajax({ url: '//tnpl' + randomServer + '.hethongphapluat.com/tien-ich/phan.tich.dieu.luat.php', type: 'POST', contentType: 'application/json', timeout: 300000, // 5 phút data: JSON.stringify({ address: address, vb_id: vbID }), success: function(response) { console.log('Analysis complete for:', address, response); // Reset badge về trạng thái bình thường (nhưng vẫn hiển thị) if (currentAnalyzingBadge) { currentAnalyzingBadge.text('Phân tích').removeClass('analyzing'); currentAnalyzingBadge.data('analyzing', false); console.log('Badge reset to normal state'); } // Reset state analyzing để có thể phân tích element khác isAnalyzing = false; console.log('State reset: isAnalyzing = false, can analyze other elements now'); if (response.ok) { // Render kết quả phân tích let html = ''; html += '
    '; html += '
    ' + escapeHtml(response.ten_van_ban) + '
    '; if (response.so_hieu) { html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
    '; } html += 'Điều khoản: ' + escapeHtml(response.address) + ''; if (response.from_cache) { html += ' Cache'; } html += '
    '; html += '
    ' + markdownToHtml(response.phan_tich) + '
    '; if (response.usage) { html += '
    '; html += 'Thống kê: '; html += 'Input tokens: ' + (response.usage.promptTokenCount || 0) + ', '; html += 'Output tokens: ' + (response.usage.candidatesTokenCount || 0); html += '
    '; } $('#phanTichPanelBody').html(html); } else { $('#phanTichPanelBody').html(` `); } if (callback) callback(); }, error: function(xhr, status, error) { console.error('Analysis error:', error); // Reset badge về trạng thái bình thường if (currentAnalyzingBadge) { currentAnalyzingBadge.text('Phân tích').removeClass('analyzing'); currentAnalyzingBadge.data('analyzing', false); } // Reset state analyzing isAnalyzing = false; let errorMsg = error; if (xhr.responseJSON && xhr.responseJSON.error) { errorMsg = xhr.responseJSON.error; } $('#phanTichPanelBody').html(` `); if (callback) callback(); } }); } // Helper: Xóa cache phân tích function deletePhanTichCache(address, vbID, callback) { const randomServer = Math.floor(Math.random() * 10) + 1; $.ajax({ url: '//tnpl' + randomServer + '.hethongphapluat.com/tien-ich/delete.phan.tich.cache.php', type: 'POST', contentType: 'application/json', timeout: 10000, data: JSON.stringify({ address: address, vb_id: vbID }), success: function(response) { console.log('Delete cache response:', response); if (callback) callback(response.ok || false); }, error: function(xhr, status, error) { console.error('Delete cache error:', error); if (callback) callback(false); } }); } // Helper: Lấy tên hiển thị của element từ address function getElementDisplayName(address) { if (!address) return 'nội dung'; const $element = $('[address="' + address + '"]'); if ($element.length === 0) return address; // Parse address: vd "dieu_3_khoan_29" -> "Khoản 29 Điều 3" // Address format: lớn đến nhỏ (phan > chuong > muc > dieu > khoan > diem) const parts = address.split('_'); const displayParts = []; for (let i = 0; i < parts.length; i += 2) { if (i + 1 < parts.length) { const type = getParentTypeName(parts[i]); const num = parts[i + 1]; displayParts.push(type + ' ' + num); } } // Reverse để hiển thị từ nhỏ đến lớn: "Khoản 29 Điều 3" (thay vì "Điều 3 Khoản 29") return displayParts.reverse().join(' '); } function openPhanTichModal(address, vbID) { // Tạo modal nếu chưa có if ($('#modalPhanTich').length === 0) { const modalHTML = ` `; $('body').append(modalHTML); } // Reset và hiển thị modal với loading $('#modalPhanTichBody').html(`
    Đang phân tích...

    Đang phân tích...

    `); $('#modalPhanTich').modal('show'); // AJAX request const randomServer = Math.floor(Math.random() * 10) + 1; $.ajax({ url: '//tnpl' + randomServer + '.hethongphapluat.com/tien-ich/phan.tich.dieu.luat.php', type: 'POST', contentType: 'application/json', data: JSON.stringify({ address: address, vb_id: vbID }), success: function(response) { if (response.ok) { // Render kết quả phân tích let html = ''; // Header thông tin văn bản html += '
    '; html += '
    ' + escapeHtml(response.ten_van_ban) + '
    '; if (response.so_hieu) { html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
    '; } html += 'Điều khoản: ' + escapeHtml(response.address) + ''; html += '
    '; // Nội dung phân tích (Markdown -> HTML) html += '
    '; html += markdownToHtml(response.phan_tich); html += '
    '; // Thông tin usage (nếu có) if (response.usage) { html += '
    '; html += 'Thống kê: '; html += 'Input tokens: ' + (response.usage.promptTokenCount || 0) + ', '; html += 'Output tokens: ' + (response.usage.candidatesTokenCount || 0); html += '
    '; } $('#modalPhanTichBody').html(html); } else { $('#modalPhanTichBody').html(` `); } }, error: function(xhr, status, error) { let errorMsg = error; if (xhr.responseJSON && xhr.responseJSON.error) { errorMsg = xhr.responseJSON.error; } $('#modalPhanTichBody').html(` `); } }); } // Helpers: show/hide badge cho parent element (dieu, khoan,...) với position: fixed function showPhanTichBadgeForParent($parent) { // Lấy badge CỦA CHÍNH parent này (match data-for với address của parent) const parentAddress = $parent.attr('address'); const $badge = $parent.find('.badge-phan-tich-container[data-for="' + parentAddress + '"]').first(); if ($badge.length === 0) { console.warn('No badge found for parent:', parentAddress); return; } // Ẩn TẤT CẢ các badge khác để tránh overlap $('.badge-phan-tich-container').not($badge).each(function() { const $otherBadge = $(this); // Chỉ ẩn badge KHÔNG đang analyzing if (!$otherBadge.data('analyzing')) { $otherBadge.css({display: 'none'}); } }); // Show badge tạm để tính width $badge.css({display: 'inline-block', opacity: 0, visibility: 'hidden'}); const badgeWidth = $badge.outerWidth(); // Tính toán vị trí fixed dựa trên offset của parent const offset = $parent.offset(); const scrollTop = $(window).scrollTop(); const scrollLeft = $(window).scrollLeft(); // Position badge top-right của parent và show $badge.css({ display: 'inline-block', visibility: 'visible', opacity: 1, top: (offset.top - scrollTop) + 'px', left: (offset.left + $parent.outerWidth() - badgeWidth - scrollLeft - 5) + 'px' // -5px padding }); console.log('Showing badge for:', parentAddress, 'at position:', $badge.css('top'), $badge.css('left')); $parent.addClass('highlight-border'); } function hidePhanTichBadgeForParent($parent) { const $badge = $parent.find('.badge-phan-tich-container').first(); if ($badge.length === 0) return; $badge.css({display: 'none', opacity: 0}); $parent.removeClass('highlight-border'); } // Biến lưu element đang hover let currentHoveredElement = null; let hoverDebounceTimer = null; // Dùng mousemove để track chính xác element nào đang được hover $(document).on('mousemove', '#tab_noi_dung_vb', function(e) { // Tìm element gần nhất (phan, chuong, muc, dieu, khoan, diem) tại vị trí chuột const $target = $(e.target).closest('phan, chuong, muc, tieumuc, dieu, khoan, diem'); if ($target.length === 0) { // Không hover vào element nào return; } const address = $target.attr('address'); // Nếu đang hover vào cùng element → skip if (currentHoveredElement && currentHoveredElement[0] === $target[0]) { return; } // Clear debounce timer cũ if (hoverDebounceTimer) { clearTimeout(hoverDebounceTimer); } // Debounce để tránh trigger quá nhiều hoverDebounceTimer = setTimeout(function() { // Element thay đổi console.log('Hover changed to:', address); // Set flag hovering cho element mới $target.data('hovering', true); // Cancel timeout nếu có const timeoutId = $target.data('hideTimeout'); if (timeoutId) { clearTimeout(timeoutId); } // Ẩn badge của TẤT CẢ elements khác $('#tab_noi_dung_vb phan, #tab_noi_dung_vb chuong, #tab_noi_dung_vb muc, #tab_noi_dung_vb tieumuc, #tab_noi_dung_vb dieu, #tab_noi_dung_vb khoan, #tab_noi_dung_vb diem') .not($target) .each(function() { const $el = $(this); // Chỉ xóa highlight-border, KHÔNG xóa highlight-border-persistent $el.removeClass('highlight-border'); // Ẩn badge nếu KHÔNG đang analyzing const $badge = $el.find('.badge-phan-tich-container'); if ($badge.length && !$badge.data('analyzing')) { $badge.css({display: 'none'}); } }); // Attach badge nếu chưa có if (address && $target.find('.badge-phan-tich-container[data-for="' + address + '"]').length === 0) { const parentType = getParentTypeName($target.prop('tagName').toLowerCase()); const $badge = $('Phân tích'); console.log('Creating badge for address:', address, 'parentType:', parentType); $target.append($badge); $target.addClass('has-phan-tich-badge'); } // Show badge cho element này if ($target.find('.badge-phan-tich-container').length > 0) { showPhanTichBadgeForParent($target); } // Update current hovered element currentHoveredElement = $target; }, 50); // Debounce 50ms }); // Event delegation cho hover ra khỏi #tab_noi_dung_vb $(document).on('mouseleave', '#tab_noi_dung_vb', function(e) { // Clear current hovered element currentHoveredElement = null; // Ẩn tất cả badge không đang analyzing sau một khoảng thời gian setTimeout(function() { if (currentHoveredElement === null) { // Chỉ ẩn nếu thực sự không hover vào element nào $('#tab_noi_dung_vb phan, #tab_noi_dung_vb chuong, #tab_noi_dung_vb muc, #tab_noi_dung_vb tieumuc, #tab_noi_dung_vb dieu, #tab_noi_dung_vb khoan, #tab_noi_dung_vb diem') .each(function() { const $el = $(this); const $badge = $el.find('.badge-phan-tich-container'); if ($badge.length && !$badge.data('analyzing')) { $badge.css({display: 'none'}); } }); console.log('Mouse left tab_noi_dung_vb, hiding all badges'); } }, 300); }); // Event delegation cho hover ra khỏi parent (giữ lại cho badge behavior) $(document).on('mouseleave', '#tab_noi_dung_vb phan, #tab_noi_dung_vb chuong, #tab_noi_dung_vb muc, #tab_noi_dung_vb tieumuc, #tab_noi_dung_vb dieu, #tab_noi_dung_vb khoan, #tab_noi_dung_vb diem', function(e) { const $parent = $(this); const parentAddress = $parent.attr('address'); const $badge = $parent.find('.badge-phan-tich-container[data-for="' + parentAddress + '"]').first(); // Set flag parent not hovering $parent.data('hovering', false); // Nếu badge đang analyzing thì KHÔNG ẩn, GIỮ hiển thị if ($badge.length > 0 && $badge.data('analyzing')) { console.log('Badge is analyzing, keep visible'); return; } // Delay để có thời gian di chuột vào badge const timeoutId = setTimeout(() => { // Chỉ ẩn nếu cả parent và badge đều không hover và không analyzing if ($badge.length > 0 && !$parent.data('hovering') && !$badge.data('hovering') && !$badge.data('analyzing')) { hidePhanTichBadgeForParent($parent); } }, 300); // Tăng lên 300ms $parent.data('hideTimeout', timeoutId); }); // Hover vào badge → giữ hiển thị $(document).on('mouseenter', '.badge-phan-tich-container', function(e) { e.stopPropagation(); const $badge = $(this); const $parent = $badge.parent(); $badge.data('hovering', true); // Cancel timeout của parent const timeoutId = $parent.data('hideTimeout'); if (timeoutId) { clearTimeout(timeoutId); } }); // Hover ra khỏi badge → ẩn nếu không hover parent $(document).on('mouseleave', '.badge-phan-tich-container', function(e) { const $badge = $(this); $badge.data('hovering', false); const $parent = $badge.parent(); // Nếu badge đang analyzing thì KHÔNG ẩn, GIỮ hiển thị if ($badge.data('analyzing') || $badge.hasClass('analyzing')) { console.log('Badge is analyzing on mouseleave, keep visible'); return; } setTimeout(() => { // Chỉ ẩn nếu cả parent và badge đều không hover và không analyzing if (!$parent.data('hovering') && !$badge.data('hovering') && !$badge.data('analyzing') && !$badge.hasClass('analyzing')) { hidePhanTichBadgeForParent($parent); } }, 300); }); // Event delegation cho hover vào badge → hiện tooltip $(document).on('mouseenter', '.badge-phan-tich, .badge-phan-tich-container, .badge-phan-tich-fixed', function() { const $badge = $(this); const parentType = $badge.attr('data-parent-type') || 'Nội dung'; if ($badge.find('.badge-tooltip').length === 0) { const $tooltip = $('Phân tích chi tiết nội dung ' + parentType + ' này'); $badge.append($tooltip); setTimeout(() => $tooltip.addClass('show'), 10); } }); // Event delegation cho hover ra khỏi badge → ẩn tooltip $(document).on('mouseleave', '.badge-phan-tich, .badge-phan-tich-container, .badge-phan-tich-fixed', function() { const $tooltip = $(this).find('.badge-tooltip'); if ($tooltip.length > 0) { $tooltip.removeClass('show'); setTimeout(() => $tooltip.remove(), 300); } }); // Event delegation cho click badge → mở panel $(document).on('click', '.badge-phan-tich, .badge-phan-tich-container, .badge-phan-tich-fixed', function(e) { e.preventDefault(); e.stopPropagation(); const $badge = $(this); console.log('Badge clicked! Element:', $badge[0]); console.log('Badge parent:', $badge.parent().prop('tagName'), $badge.parent().attr('address')); console.log('Badge data-for:', $badge.attr('data-for')); console.log('Badge data-parent-type:', $badge.attr('data-parent-type')); // Nếu badge đang analyzing thì không cho click if ($badge.hasClass('analyzing') || $badge.data('analyzing')) { console.log('Badge is analyzing, click ignored'); return; } // Lấy address từ data-for attribute const address = $badge.attr('data-for'); console.log('Will analyze address:', address, 'vbID:', vbID); if (address && vbID) { openPhanTichPanel(address, vbID); } else { console.error('Missing address or vbID', {address, vbID}); showWarningModal('Không tìm thấy địa chỉ điều luật hoặc ID văn bản!'); } }); // Ẩn badge khi click vào CTTD $(document).on('click', 'cttd.chuthichtudong span, dctk span, dctd span', function(e) { console.log('CTTD clicked'); // Ẩn TẤT CẢ badge KHÔNG đang analyzing $('.badge-phan-tich-container').each(function() { const $badge = $(this); if (!$badge.data('analyzing') && !$badge.hasClass('analyzing')) { $badge.css({display: 'none'}); console.log('Hiding badge:', $badge.attr('data-for')); } }); }); // Update badge position khi scroll hoặc resize (vì dùng position: fixed) function updateBadgePositions() { $('.badge-phan-tich-container:visible').each(function() { const $badge = $(this); const $parent = $badge.parent(); // Cập nhật position nếu parent đang hover HOẶC badge đang analyzing if ($parent.length && ($parent.is(':hover') || $badge.data('analyzing'))) { // Re-calculate position const offset = $parent.offset(); const scrollTop = $(window).scrollTop(); const scrollLeft = $(window).scrollLeft(); const badgeWidth = $badge.outerWidth(); $badge.css({ top: (offset.top - scrollTop) + 'px', left: (offset.left + $parent.outerWidth() - badgeWidth - scrollLeft - 5) + 'px' }); } }); } $(window).on('scroll', updateBadgePositions); $(window).on('resize', updateBadgePositions); } });