Hệ thống pháp luật

ỦY BAN NHÂN DÂN
TỈNH KON TUM
-------

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

Số: 4205/KH-UBND

Kon Tum, ngày 01 tháng 12 năm 2023

 

KẾ HOẠCH

CỦNG CỐ, KIỆN TOÀN, PHÁT TRIỂN CÁC HỢP TÁC XÃ NÔNG NGHIỆP TRÊN ĐỊA BÀN TỈNH KON TUM GIAI ĐOẠN 2023 - 2025

Căn cứ Nghị quyết số 20-NQ/TW ngày 16 tháng 6 năm 2022 của Ban Chấp hành Trung ương Đảng khóa XIII “về tiếp tục đổi mới, phát triển và nâng cao hiệu quả kinh tế tập thể trong giai đoạn mới”;

Căn cứ Nghị quyết số 09/NQ-CP ngày 02 tháng 02 năm 2023 của Chính phủ và Chương trình số 41-CTr/TU ngày 07 tháng 10 năm 2022 của Ban Chấp hành Đảng bộ tỉnh khóa XVI thực hiện Nghị quyết số 20-NQ/TW ngày 16 tháng 6 năm 2022 của Ban Chấp hành Trung ương Đảng khóa XIII “về tiếp tục đổi mới, phát triển và nâng cao hiệu quả kinh tế tập thể trong giai đoạn mới”;

Căn cứ Quyết định số 340/QĐ-TTg ngày 12 tháng 03 năm 2021 của Thủ tướng Chính phủ về phê duyệt Chiến lược phát triển kinh tế tập thể, hợp tác xã giai đoạn 2021-2030;

Căn cứ Nghị định số 193/2013/NĐ-CP ngày 21 tháng 11 năm 2013 của Chính phủ quy định chi tiết thi hành một số điều của Luật Hợp tác xã năm 2012. Nghị định số 107/2017/NĐ-CP ngày 15 tháng 9 năm 2017 của Chính phủ sửa đổi, bổ sung một số điều của Nghị định số 193/2013/NĐ-CP ngày 21 tháng 11 năm 2013 của Chính phủ quy định chi tiết một số điều của Luật Hợp tác xã;

Căn cứ Nghị định số 98/2018/NĐ-CP ngày 05/7/2018 của Chính phủ chính sách hỗ trợ liên kết sản xuất và tiêu thụ sản phẩm nông nghiệp;

Căn cứ Quyết định số 1804/QĐ-TTg ngày 13 tháng 11 năm 2020 của Thủ tướng Chính phủ phê duyệt Chương trình hỗ trợ phát triển hợp tác xã giai đoạn 2021 - 2025;

Căn cứ Chương trình hành động số 41-CTr/TU ngày 07 tháng 10 năm 2022 của Ban Chấp hành Đảng bộ tỉnh về thực hiện Nghị quyết số 20-NQ/TW, ngày 16 tháng 6 năm 2022 của Ban Chấp hành Trung ương Đảng khóa XIII “về tiếp tục đổi mới, phát triển và nâng cao hiệu quả Kinh tế tập thể trong giai đoạn mới”.

Ủy ban nhân dân tỉnh ban hành kế hoạch củng cố, kiện toàn, phát triển các hợp tác xã nông nghiệp trên địa bàn tỉnh Kon Tum giai đoạn 2023 - 2025, cụ thể như sauI. Mục tiêu

1. Mục tiêu chung: Tiếp tục củng cố, đổi mới, phát triển, nâng cao hiệu quả hoạt động của kinh tế tập thể, hợp tác xã. Chú trọng phát triển hợp tác xã trong lĩnh vực nông nghiệp, xây dựng hợp tác xã gắn với xây dựng nông thôn mới và tái cơ cấu nông nghiệp; tăng cường thực hiện sự liên kết hợp tác giữa hợp tác xã, doanh nghiệp và các thành phần kinh tế khác. Không ngừng ứng dụng các tiến bộ khoa học và công nghệ vào hoạt động sản xuất kinh doanh nhằm xây dựng và phát triển sản phẩm hàng hóa. Thu hút ngày càng nhiều nông dân, hộ kinh tế cá thể và tổ chức tham gia vào kinh tế tập thể (KTTT), hợp tác xã (HTX) góp phần tạo việc làm, nâng cao thu nhập, góp phần cải thiện đời sống Nhân dân, cải thiện công bằng xã hội. Nâng cao hình ảnh và vị thế của khu vực KTTT trong xã hội.

2. Mục tiêu cụ thể đến năm 2025

- Phấn đấu củng cố, kiện toàn các hợp tác xã hiện có, thành lập mới các hợp tác xã nông nghiệp và nâng tổng số lên 250 hợp tác xã (hiện có 200 hợp tác xã). Các hợp tác xã nông nghiệp mới thành lập hoạt động ổn định, hiệu quả, đúng quy định.

- Bảo đảm trên 60% tổ chức kinh tế tập thể đạt loại tốt, khá; trong đó, có ít nhất 50% tổ chức kinh tế tập thể tham gia liên kết theo chuỗi giá trị.

- Có trên 12% hợp tác xã ứng dụng công nghệ cao vào sản xuất và tiêu thụ nông sản; phát triển các chuỗi giá trị nông sản hàng hóa gắn với liên kết sản xuất, cung cấp dịch vụ chế biến và tiêu thụ sản phẩm nông nghiệp.

- Phát triển hệ thống truy xuất nguồn gốc nông sản trên địa bàn tỉnh, đảm bảo 100% sản phẩm truy xuất nguồn gốc sản phẩm nông sản lên hệ thống đủ tiêu chuẩn về an toàn thực phẩm.

- Tăng cường liên kết theo chuỗi giá trị giữa doanh nghiệp và hợp tác xã, phấn đấu có khoảng 50% hợp tác xã nông nghiệp liên kết với doanh nghiệp theo chuỗi giá trị. Ưu tiên hỗ trợ các hợp tác xã ở vùng đặc biệt khó khăn, có người đồng bào dân tộc thiểu số chiếm trên 80%, vùng sản xuất các sản phẩm chủ lực của tỉnh.

II. Nội dung, nhiệm vụ

1. Củng cố, nâng cao chất lượng hoạt động của các HTXNN

- Hướng dẫn các hợp tác xã nông nghiệp rà soát, xây dựng phương án sản xuất kinh doanh có hiệu quả, trong đó chú trọng hoạt động dịch vụ đầu vào, quy trình sản xuất, đưa giống mới có năng suất, chất lượng tốt vào sản xuất, ứng dụng tiến bộ kỹ thuật vào sản xuất để tạo ra sản phẩm hàng hóa đồng đều, chất lượng, đảm bảo tiêu chuẩn an toàn và kết nối với tiêu thụ sản phẩm ổn định.

- Tích cực giải quyết khó khăn để giúp các hợp tác xã nông nghiệp tiếp cận được với các nguồn vốn hỗ trợ của Nhà nước và nguồn vốn vay tín dụng.

- Đẩy mạnh việc đào tạo, bồi dưỡng nâng cao năng lực, trình độ quản trị, sản xuất cho cán bộ quản lý hợp tác xã và thành viên thông qua đào tạo, bồi dưỡng ngắn hạn, đào tạo nghề (trong đó đưa cán bộ về làm việc tại hợp tác xã).

- Tập huấn, đào tạo nâng cao năng lực sản xuất, kinh doanh, khả năng áp dụng tiến bộ kỹ thuật, các quy trình sản xuất an toàn cho hợp tác xã tham gia mô hình thí điểm liên kết sản xuất, trong đó đẩy mạnh thực hiện liên kết với doanh nghiệp. Tổ chức thăm quan học tập kinh nghiệm các mô hình hợp tác xã trong và ngoài tỉnh hoạt động có hiệu quả để áp dụng.

- Mỗi huyện, thành phố xây dựng kế hoạch và tổ chức thực hiện việc lựa chọn thí điểm ít nhất 02 hợp tác xã liên kết sản xuất, tiêu thụ sản phẩm giữa hợp tác xã với người dân và doanh nghiệp cung ứng đầu vào phục vụ sản xuất và bao tiêu sản phẩm đầu ra như: Cà phê, mía đường, sản phẩm dược liệu, rau hoa,... để hỗ trợ củng cố, kiện toàn, thành lập mới. Hằng năm tổ chức đánh giá, trao dồi kinh nghiệm và nhân rộng mô hình liên kết sản xuất, tiêu thụ sản phẩm giữa hợp tác xã với người dân và doanh nghiệp.

- Xây dựng thí điểm một số mô hình hợp tác xã ứng dụng công nghệ cao trong sản xuất nông nghiệp (trong canh tác, chăn nuôi bảo quản các sản phẩm nông nghiệp từ cơ giới hóa đồng bộ, bán tự động hóa trong sản xuất, thu hoạch, chế biến và bảo quản sau thu hoạch) để nhân rộng trên địa bàn tỉnh.

- Tạo điều kiện cho hợp tác xã nông nghiệp tham gia hoạt động một số dịch vụ phục vụ sản xuất và xây dựng nông thôn mới (như: quản lý, khai thác công trình thủy lợi: nước sinh hoạt nông thôn; bảo vệ môi trường; chợ nông thôn...) để các hợp tác xã tăng thêm việc làm và thu nhập cho thành viên.

2. Hỗ trợ hợp tác xã nông nghiệp mới thành lập

- Lựa chọn các ngành hàng, sản phẩm chủ lực của các huyện, thành phố để thúc đẩy việc thành lập hợp tác xã và tạo điều kiện cho các hợp tác xã nông nghiệp hoạt động có hiệu quả nhằm tổ chức lại sản xuất trong từng ngành hàng, sản phẩm chủ lực.

- Vận động các chủ trang trại có quy mô sản xuất lớn để tuyên truyền vận động cùng nhau thành lập hợp tác xã, nâng cao giá trị sản phẩm, sản xuất theo hướng hàng hóa.

- Phát triển hợp tác xã với sản phẩm đặc trưng làng, xã theo lợi thế của các địa phương (như: lâm sản, dược liệu, các sản phẩm trồng trọt, chăn nuôi chất lượng cao; các loại rau, quả gắn kết thực hiện Chương trình mỗi xã một sản phẩm tỉnh Kon Tum).

III. NHIỆM VỤ, GIẢI PHÁP

1. Hỗ trợ đào tạo, tập huấn, bồi dưỡng nâng cao nhận thức, năng lực quản trị cho cán bộ quản lý, thành viên hợp tác xã nông nghiệp.

- Nâng cao chất lượng đào tạo, tập huấn, bồi dưỡng trình độ, kỹ năng quản lý hợp tác xã nông nghiệp thông qua các chương trình đào tạo, huấn luyện nghề nông nghiệp cho lao động nông thôn; bồi dưỡng kiến thức sản xuất nông nghiệp an toàn, kinh tế xanh, kinh tế tuần hoàn, kinh tế tri thức; nâng cao năng lực thích ứng với biến đổi khí hậu cho cán bộ quản lý và thành viên HTX nông nghiệp.

- Đơn vị thực hiện: Sở Nông nghiệp và Phát triển nông thôn, Liên minh Hợp tác xã tỉnh và Ủy ban nhân dân các huyện, thành phố

- Thời gian thực hiện: Từ năm 2023 - 2025.

- Nguồn kinh phí: Từ nguồn Chương trình mục tiêu quốc gia xây dựng nông thôn mới.

- Tổng vốn thực hiện giai đoạn 2023 - 2025: Khoảng 1.200 triệu đồng, trong đó năm 2023 được bố trí 400 triệu đồng và được bố trí hàng năm theo Chương trình mục tiêu quốc gia xây dựng nông thôn mới giai đoạn 2023-2025.

2. Hỗ trợ vay vốn ưu đãi từ Quỹ hỗ trợ phát triển hợp tác xã tỉnh.

- Tạo điều kiện thuận lợi để HTX nông nghiệp tiếp cận vốn vay ưu đãi; tăng cường tư vấn, hỗ trợ hợp tác xã nông nghiệp vay vốn, tiếp cận vốn đối với hợp tác xã nông nghiệp có phương án sản xuất, kinh doanh theo chuỗi giá trị sản phẩm nông nghiệp chủ lực của tỉnh.

- Cơ quan chủ trì: Liên minh Hợp tác xã tỉnh.

- Thời gian thực hiện: Thường xuyên.

- Nguồn kinh phí: Ngân sách địa phương giao cho Liên minh Hợp tác xã tỉnh tổ chức triển khai thực hiện, hỗ trợ cho các hợp tác xã vay vốn ưu đãi theo quy định.

3. Hỗ trợ xây dựng sản phẩm OCOP, tham gia hội chợ, xúc tiến thương mại trong và ngoài tỉnh

- Triển khai chính sách hỗ trợ, phát triển sản phẩm OCOP là động lực thúc đẩy các chủ thể tham gia Chương trình OCOP; khơi dậy tiềm năng, lợi thế của các địa phương để phát triển kinh tế nông thôn.

- Cơ quan chủ trì: Sở Nông nghiệp và Phát triển nông thôn, Sở Công Thương và các sở, ngành, Ủy ban nhân dân các huyện, thành phố.

- Thời gian thực hiện: Từ năm 2023 - 2025

- Nguồn kinh phí: Từ nguồn Chương trình mục tiêu quốc gia xây dựng nông thôn mới, vốn ngân sách địa phương.

- Tổng vốn thực hiện giai đoạn 2023 - 2025: Khoảng 15 tỷ đồng, trong đó năm 2023 được bố trí 5,7 tỷ đồng, nguồn vốn Chương trình mục tiêu quốc gia xây dựng nông thôn mới được bố trí hàng năm cho giai đoạn 2023 - 2025.

4. Hỗ trợ xây dựng các chuỗi liên kết sản xuất, chế biến tiêu thụ sản phẩm trên địa bàn tỉnh.

- Hỗ trợ cụ thể trực tiếp cho các hợp tác xã nông nghiệp thực hiện chuyển đổi số, xây dựng mô hình nông nghiệp xanh, kinh tế tuần hoàn, các mô hình ứng dụng tiến bộ kỹ thuật thích ứng với biến đổi khí hậu nhằm nâng cao năng lực hoạt động hợp tác xã để thực hiện tốt liên kết tiêu thụ theo chuỗi giá trị trong sản xuất, chế biến tiêu thụ sản phẩm.

- Đơn vị thực hiện: Sở Nông nghiệp và Phát triển nông thôn, Sở Công Thương và các sở, ngành, Ủy ban nhân dân các huyện, thành phố.

- Thời gian thực hiện: Từ năm 2023 - 2025

- Nguồn kinh phí: Từ nguồn Chương trình mục tiêu quốc gia xây dựng nông thôn mới và hợp phần hỗ trợ phát triển sản xuất thuộc Chương trình mục tiêu quốc gia giảm nghèo bền vững, Chương trình mục tiêu quốc gia phát triển kinh tế - xã hội vùng đồng bào dân tộc thiểu số và miền núi giai đoạn 2021 - 2030, giai đoạn I: từ năm 2021 đến năm 2025.

- Tổng vốn thực hiện giai đoạn 2023 - 2025: Khoảng 09 tỷ đồng, trong đó năm 2023 được bố trí 3,5 tỷ đồng, nguồn vốn Chương trình mục tiêu quốc gia phát triển kinh tế - xã hội vùng đồng bào dân tộc thiểu số và miền núi giai đoạn 2021-2030, giai đoạn I: từ năm 2021 đến năm 2025.

5. Hỗ trợ đầu tư kết cấu hạ tầng và chế biến sản phẩm

- Hỗ trợ đầu tư kết cấu hạ tầng phục vụ sản xuất, chế biến và thương mại sản phẩm, mua sắm trang thiết bị, máy móc phục vụ hoạt động sản xuất kinh doanh của HTX nông nghiệp.

- Đơn vị thực hiện: Các sở, ngành và Ủy ban nhân dân các huyện, thành phố.

- Thời gian thực hiện: Từ năm 2023 - 2025

- Tổng vốn thực hiện giai đoạn 2023 - 2025: Khoảng 33 tỷ đồng, trong đó: Ngân sách Trung ương đầu tư cơ sở hạ tầng hợp tác xã: Khoảng 17,3 tỷ đồng; Vốn đối ứng của hợp tác xã đầu tư cơ sở hạ tầng hợp tác xã: Khoảng 700 triệu đồng[3].

6. Kinh phí thực hiện kế hoạch.

- Tổng nhu cầu kinh phí thực hiện kế hoạch: Dự kiến khoảng 63,2 tỷ đồng

Trong đó:

- Vốn Ngân sách Nhà nước hỗ trợ:

+ Vốn đầu tư phát triển (hỗ trợ đầu tư cơ sở hạ tầng hợp tác xã): Khoảng 33.000 triệu đồng (Ngân sách Trung ương hỗ trợ hạ tầng thực hiện Đề án vùng nguyên liệu cà phê Đak Hà: Khoản 17,3 tỷ đồng, vốn ngân sách địa phương: Khoảng 15 tỷ đồng; Vốn đối ứng của hợp tác xã: Khoảng 700 triệu đồng).

+ Vốn sự nghiệp: Lồng ghép các Chương trình mục tiêu quốc gia giai đoạn 2021 - 2025: Khoảng 25,2 tỷ đồng.

- Vốn vay ưu đãi HTX: 05 tỷ đồng.

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

1. Sở Nông nghiệp và Phát triển nông thôn

- Theo dõi, đôn đốc, kiểm tra việc thực hiện Kế hoạch. Định kỳ hằng quý (trước ngày 25 tháng cuối quý), 6 tháng (trước ngày 15 tháng 6) và năm (trước ngày 15 tháng 12) tổng hợp, báo cáo Ủy ban nhân dân tỉnh tình hình, kết quả thực hiện Kế hoạch.

- Hướng dẫn các địa phương thực hiện các nội dung của Kế hoạch; chuyên môn nghiệp vụ để đánh giá hợp tác xã nông nghiệp hoạt động hiệu quả.

- Phối hợp với các địa phương lựa chọn một số ngành hàng chủ lực để chỉ đạo xây dựng các chuỗi liên kết giữa các doanh nghiệp với các hợp tác xã. Xây dựng kế hoạch đào tạo, nâng cao trình độ cho cán bộ quản lý nhà nước các cấp về hợp tác xã nông nghiệp và đào tạo bồi dưỡng cán bộ hợp tác xã nông nghiệp.

- Hướng dẫn các địa phương về hình thành và phát triển hợp tác xã ứng dụng công nghệ cao trong sản xuất và tiêu thụ nông sản; liên kết sản xuất và tiêu thụ giữa hợp tác xã, liên hiệp hợp tác xã nông nghiệp với các doanh nghiệp.

- Rà soát, lựa chọn 01 đến 02 hợp tác xã nông nghiệp để Ủy ban nhân dân tỉnh ban hành Kế hoạch chỉ đạo điểm việc củng cố, kiện toàn, phát triển hợp tác xã hoạt động có hiệu quả. Hoàn thành trước ngày 15 tháng 12 năm 2023.

2. Sở Tài chính: chủ trì, phối hợp Liên minh Hợp tác xã tỉnh, Sở Nông nghiệp và Phát triển nông thôn và các đơn vị, địa phương có liên quan tham mưu cấp có thẩm quyền bố trí kinh phí sự nghiệp (ngân sách Trung ương hỗ trợ, ngân sách địa phương) triển khai Kế hoạch này theo quy định của Luật ngân sách nhà nước và các quy định pháp luật khác có liên quan, phù hợp với khả năng cân đối ngân sách địa phương hàng năm theo phân cấp ngân sách nhà nước hiện hành.

3. Sở Kế hoạch và Đầu tư: Hướng dẫn triển khai thực hiện Luật Hợp tác xã; đề xuất cơ chế huy động nguồn lực xã hội để hỗ trợ phát triển hợp tác xã nông nghiệp; chủ trì, phối hợp với Sở Tài chính cân đối ngân sách địa phương, bố trí, hướng dẫn quản lý, sử dụng kinh phí tổ chức thực hiện Kế hoạch theo đúng quy định hiện hành.

4. Sở Công Thương: Thực hiện các nhiệm vụ hỗ trợ xúc tiến thương mại, mở rộng thị trường theo thẩm quyền để hỗ trợ hợp tác xã tiêu thụ sản phẩm. Đầu mối về các chính sách xúc tiến thương mại, mở rộng thị trường được quy định tại Nghị định số 5. Chi nhánh Ngân hàng Nhà nước tỉnh: Tập trung tháo gỡ khó khăn trong việc tiếp cận vốn cho các hợp tác xã nông nghiệp nhằm tạo điều kiện thuận lợi cho các hợp tác xã nông nghiệp tiếp cận được các nguồn vốn tín dụng từ các ngân hàng và các nguồn quỹ tín dụng khác. Đề xuất cơ chế định giá tài sản khi vay vốn và cho phép hợp tác xã được dùng tài sản hình thành trên đất sau khi định giá để thế chấp vay vốn tín dụng.

6. Liên minh Hợp tác xã tỉnh

- Thực hiện tuyên truyền, vận động, tư vấn, hỗ trợ hợp tác xã; tư vấn, hỗ trợ và cung cấp dịch vụ, đào tạo, bồi dưỡng nguồn nhân lực phục vụ cho việc hình thành và phát triển của hợp tác xã; thực hiện các Chương trình, dự án, dịch vụ công được giao và nhiệm vụ ủy thác hỗ trợ phát triển hợp tác xã từ cơ quan quản lý nhà nước. Vận động hợp tác xã tổ chức sản xuất theo chuỗi giá trị, nâng cao chất lượng và tăng giá trị sản phẩm nông nghiệp. Ưu tiên nguồn kinh phí cho hợp tác xã nông nghiệp vay từ Quỹ hỗ trợ phát triển hợp tác xã, đặc biệt là các hợp tác xã tham gia ứng dụng công nghệ cao. Trực tiếp xây dựng và tổ chức thực hiện các dự án, kế hoạch ưu tiên về tổ chức lại, tái cơ cấu các hợp tác xã nông nghiệp.

- Phối hợp với Sở Nông nghiệp và Phát triển nông thôn đôn đốc, kiểm tra, đánh giá việc thực hiện Kế hoạch; phát hiện, tổng hợp các vấn đề vướng mắc, kiến nghị của các địa phương trong quá trình thực hiện để kiến nghị Liên minh Hợp tác xã Việt Nam hướng dẫn tháo gỡ.

7. Ủy ban nhân dân các huyện, thành phố

- Chỉ đạo, hướng dẫn tổ chức thực hiện Kế hoạch có hiệu quả trên địa bàn. Tập trung nâng cao năng lực và kiện toàn tổ chức bộ máy, tăng cường lực lượng cán bộ đủ mạnh để thực hiện có hiệu quả nhiệm vụ quản lý nhà nước về hợp tác xã trên địa bàn.

- Tuyên truyền, vận động thành lập mới hợp tác xã nông nghiệp, Liên hiệp hợp tác xã nông nghiệp theo mục tiêu tại Kế hoạch này, phấn đấu mỗi xã có ít nhất 01 hợp tác xã nông nghiệp; đồng thời khuyến khích thành lập Liên hiệp hợp tác xã nông nghiệp.

- Lồng ghép các nguồn vốn để triển khai các mô hình kinh tế hợp tác trong sản xuất nông nghiệp, đặc biệt là mô hình liên kết gắn sản xuất với chế biến và tiêu thụ nông sản thông qua hợp đồng kinh tế.

- Rà soát quy hoạch, dành quỹ đất cho các hợp tác xã để xây dựng trụ sở, mặt bằng sản xuất kinh doanh. Trên cơ sở các chính sách, pháp luật của Nhà nước về phát triển kinh tế tập thể và yêu cầu phát triển nông nghiệp, nông thôn trên địa bàn, chủ động bổ sung các chính sách, quy định của địa phương nhằm khuyến khích thành lập và phát triển các hợp tác xã.

- Chỉ đạo các xã, phường, thị trấn tổ chức phổ biến, tuyên truyền, nâng cao nhận thức cho người dân về chủ trương, chính sách, pháp luật đối với phát triển kinh tế tập thể;

- Chỉ đạo các phòng, ban chuyên môn thực hiện chức năng quản lý nhà nước về kinh tế hợp tác, kiểm tra, giám sát việc thực hiện quản lý nhà nước của cơ quan quản lý nhà nước về hợp tác xã trên địa bàn;

8. Đề nghị các tổ chức đoàn thể chính trị, xã hội tỉnh

- Hỗ trợ trong việc quảng bá và tiếp thị sản phẩm và dịch vụ của hợp tác xã để nâng cao hiệu suất và thị trường tiêu thụ.

- Hỗ trợ thúc đẩy hợp tác và liên kết giữa hợp tác xã, liên minh và các đối tác khác trong cộng đồng và các ngành khác.

- Hỗ trợ đào tạo và phát triển năng lực: Cung cấp các chương trình đào tạo và phát triển năng lực để tăng cường kỹ năng quản lý và chuyên môn của các thành viên trong hợp tác xã.

- Tuyên truyền vận động, phát huy tính chủ động, sáng tạo của hội viên, đoàn viên và các tầng lớp Nhân dân tự nguyện tham gia phát triển kinh tế tập thể, Hợp tác xã.

9. Định kỳ hằng quý (trước ngày 25 tháng cuối quý), 6 tháng (trước ngày 15 tháng 6) và năm (trước ngày 15/12), các sở, ngành, Ủy ban nhân dân các huyện, thành phố Kon Tum và các cơ quan có liên quan báo cáo kết quả thực hiện gửi Sở Nông nghiệp và Phát triển nông thôn để tổng hợp, báo cáo Ủy ban nhân dân tỉnh và Bộ Nông nghiệp và Phát triển nông thôn.

Trên đây là Kế hoạch củng cố, kiện toàn, phát triển các hợp tác xã nông nghiệp trên địa bàn tỉnh Kon Tum giai đoạn 2023 - 2025. Trong quá trình triển khai thực hiện Kế hoạch này, trường hợp gặp khó khăn, vướng mắc phát sinh, đề nghị các đơn vị, địa phương phản ánh về Sở Nông nghiệp và Phát triển nông thôn để kịp thời giải quyết theo thẩm quyền, trường hợp vượt thẩm quyền tham mưu Ủy ban nhân dân tỉnh xem xét, chỉ đạo./.

 


Nơi nhận:
- Bộ Kế hoạch và Đầu tư (b/c);
- Bộ Nông nghiệp và PTNT (b/c);
- Liên minh HTX Việt Nam:
- Thường trực Tỉnh ủy (b/c);
- Thường trực Hội đồng nhân dân tỉnh (B/c);
- Chủ tịch, các PCT UBND tỉnh;
- BCĐ phát triển kinh tế tập thể tỉnh;
- Các sở, ban ngành thuộc tỉnh;
- UBND các huyện, thành phố;
- VP UBND tỉnh: CVP, các PCVP;
- Lưu: VT, KTTH, NNTN.NLTA.

TM. ỦY BAN NHÂN DÂN
KT. CHỦ TỊCH
PHÓ CHỦ TỊCH




Nguyễn Hữu Tháp

 



lồng nhau (bên trong) hay không const memberID = 0; const vbID = '07e2c207ca017867920b5d96e7f9922f'; // 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); } });