Hệ thống pháp luật

ỦY BAN NHÂN DÂN
TỈNH QUẢNG NINH
-------

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

Số: 233/KH-UBND

Quảng Ninh, ngày 12 tháng 9 năm 2023

 

KẾ HOẠCH

SẢN XUẤT CÂY VỤ ĐÔNG NĂM 2023

Vụ Đông là vụ sản xuất hàng hóa quan trọng đối với sản xuất trồng trọt, sản phẩm cây vụ Đông rất đa dạng, thị trường tiêu thụ rộng, ổn định và mang lại thu nhập cao cho người dân. Kết quả trong sản xuất vụ Đông có ý nghĩa quan trọng đối với sự tăng trưởng lĩnh vực Trồng trọt. Với mục tiêu đẩy mạnh sản xuất vụ Đông theo hướng hàng hóa, nâng cao giá trị sản phẩm trên một đơn vị diện tích đất canh tác, tăng hệ số sử dụng đất và từng bước đưa vụ Đông trở thành một trong các vụ sản xuất chính trong năm, góp phần tăng tỷ trọng lĩnh vực trồng trọt trong cơ cấu ngành Nông nghiệp của tỉnh. Theo đề nghị của Sở Nông nghiệp và Phát triển nông thôn tại Tờ trình số 3877/TTr-SNNPTNT ngày 23/8/2023; Ủy ban nhân dân tỉnh ban hành Kế hoạch sản xuất vụ Đông năm 2023 với các nội dung sau:

I. ĐÁNH GIÁ KẾT QUẢ SẢN XUẤT VỤ ĐÔNG NĂM 2022

1. Thuận lợi

- Các chính sách hỗ trợ phát triển sản xuất của Trung ương, của Tỉnh tiếp tục được triển khai thực hiện trên địa bàn tỉnh- Từ tỉnh đến địa phương đã xác định sản xuất vụ Đông là vụ sản xuất chính, có giá trị kinh tế cao với nhiều lợi thế do cơ cấu cây trồng đa dạng phong phú và điều kiện khí hậu phù hợp;

- Điều kiện thời tiết giữa và cuối vụ thuận lợi cho các cây trồng vụ Đông sinh trưởng phát triển cho năng suất và chất lượng cao. Thị trường tiêu thụ cây trồng vụ Đông thuận lợi, giá một số sản phẩm vụ Đông đều tăng cao có lợi cho người sản xuất.

2. Khó khăn

- Thời tiết diễn biến phức tạp trong tháng 9, tháng 10 còn xuất hiện mưa lớn diện rộng ảnh hưởng đến thu hoạch lúa mùa, khó khăn cho việc làm đất phục vụ sản xuất cây vụ Đông sớm, cây ưa ấm ngô, lạc;

- Vụ Đông năm 2022, tiếp tục bị ảnh hưởng bởi thiếu hụt lực lượng lao động, nhất là lao động trẻ do chuyển sang làm các Khu công nghiệp hoặc các lĩnh vực khác phi nông nghiệp có thu nhập cao hơn. Việc ứng dụng cơ giới hóa trong sản xuất vụ Đông còn hạn chế, doanh nghiệp bao tiêu sản phẩm trồng trọt vẫn thiếu, chưa có nhiều thị trường tiêu thụ sản phẩm hàng hóa vụ Đông.

3. Kết quả sản xuất

- Diện tích gieo trồng cây vụ Đông năm 2022 đạt 7.167 ha, năng suất hầu hết các cây trồng đều đạt định mức, cây trồng có giá trị cao được mở rộng diện tích; giá trị sản xuất vụ Đông năm 2022 ước đạt trên 1.400 tỷ đồng. Những cây trồng có giá trị cao được các địa phương đưa vào sản xuất như khoai tây, củ đậu đạt giá trị từ 160 - 200 triệu đồng/ha; rau cao cấp 110 - 150 triệu đồng/ha; hoa cây cảnh từ 300 - 500 triệu đồng/ha;

- Diện tích tích tụ ruộng đất để sản xuất rau màu, khoai tây, hoa đạt khoảng 450 ha; việc tích tụ ruộng đất đã tạo thuận lợi cho phát triển cơ giới hóa và ứng dụng khoa học công nghệ vào sản xuất.

II. KẾ HOẠCH SẢN XUẤT VỤ ĐÔNG NĂM 2023

1. Nhận định tình hình

1.1. Thuận lợi

- Các địa phương chuẩn bị sớm các điều kiện, giải pháp phát triển sản xuất vụ Đông như tăng trà lúa mùa sớm, tăng giống ngắn ngày... để bố trí thời vụ cây vụ Đông, nhất là vụ Đông sớm; tăng diện tích sản xuất an toàn, theo quy trình VietGAP, hữu cơ; tăng cường tích tụ ruộng đất sản xuất quy mô lớn;

- Các cơ chế, chính sách hỗ trợ tái cơ cấu ngành nông nghiệp của tỉnh tiếp tục là động lực khuyến khích, thúc đẩy sản xuất phát triển cây vụ đông;

- Phát triển sản xuất theo hướng hàng hóa tập trung, quy mô lớn, sản xuất theo chuỗi giá trị và nhu cầu thị trường đang được nhân rộng.

1.2. Khó khăn

- Thời tiết vụ Đông năm 2023 dự báo sẽ diễn biến phức tạp. Đầu vụ Đông thường xảy ra mưa úng làm chậm tiến độ gieo trồng cây vụ Đông;

- Sản xuất manh mún, nhỏ lẻ vẫn chiếm tỷ lệ cao, ảnh hưởng đến việc đầu tư, áp dụng cơ giới hóa, nhất là khâu sơ chế, bảo quản sản phẩm sau thu hoạch;

- Giá vật tư đầu vào cho sản xuất vẫn ở mức cao, chi phí sản xuất lớn; nhân lực lao động sản xuất nông nghiệp thiếu và yếu do tuổi cao;

- Hoạt động xúc tiến thương mại, quảng bá, tiêu thụ sản phẩm chưa đáp ứng được nhu cầu tiêu thụ sản phẩm; chưa xây dựng mạng lưới tiêu thụ nông sản rộng khắp, đa dạng loại hình và quy mô, khuyến khích các thành phần kinh tế tham gia.

2. Định hướng sản xuất

- Kết quả sản xuất vụ Đông năm 2023 hết sức quan trọng với việc ổn định an sinh xã hội, xây dựng Nông thôn mới, nâng cao đời sống nhân dân, góp phần tăng trưởng ngành Nông nghiệp trong năm 2023 giúp người nông dân ổn định sinh kế;

- Tập trung thu hoạch nhanh lúa Mùa sớm để có quỹ đất trồng cây vụ Đông ưa ấm. Tận dụng tối đa phế phụ phẩm trong trồng trọt để sản xuất phân bón hữu cơ, thay thế phân bón vô cơ theo tỷ lệ phù hợp nhằm sử dụng phân bón tiết kiệm, cân đối và hiệu quả, giảm chi phí sản xuất và gia tăng giá trị;

- Khuyến khích các hình thức tích tụ ruộng đất liên kết với doanh nghiệp, sản xuất thành vùng tập trung với quy mô lớn có hợp đồng liên kết sản xuất và bao tiêu sản phẩm theo chuỗi giá trị. Áp dụng cơ giới hóa đồng bộ nhằm giảm công lao động, kiểm soát tốt sinh vật gây hại góp phần tăng năng suất, chất lượng sản phẩm, nâng cao giá trị sản xuất;

- Mở rộng diện tích và phát triển một số cây màu vụ Đông có giá trị kinh tế cao, có lợi thế về thị trường để tăng thu nhập cho nông dân.

3. Muc tiêu

- Toàn tỉnh phấn đấu gieo trồng 7.685,8 ha, trong đó diện tích cây ngô 972,3 ha, rau màu 4.705,4 ha, cây hoa 254 ha...; giá trị sản xuất trên 1.000 tỷ đồng.

(Có phụ lục chi tiết kèm theo)

- Các huyện, thị xã, thành phố triển khai xây dựng tối thiểu 01 mô hình điển hình sản xuất trong vụ Đông năm 2023.

4. Các giải pháp sản xuất vụ Đông năm 2023

4.1. Bố trí quỹ đất để tổ chức sản xuất

- Tăng cơ cấu giống cây trồng chất lượng cao phải phù hợp với quỹ đất hiện có của từng địa phương, các vùng có tầng canh tác dày, giầu dinh dưỡng, chủ động tưới tiêu và cần xác định rõ quỹ đất này sẽ bố trí trồng cây vụ Đông ưa ấm;

- Bố trí quỹ đất dành cho nhân dân địa phương thuê, mượn sản xuất, được chủ động ngay từ cơ sở thôn, trên cơ sở rà soát các hộ gia đình không có nhu cầu trồng cây vụ Đông cho các hộ có nhu cầu sản xuất thuê, mượn để mở rộng diện tích sản xuất, hạn chế việc bỏ ruộng không canh tác.

4.2. Giải pháp về chỉ đạo

- Tăng cường lực lượng cán bộ kỹ thuật ngành Nông nghiệp và Phát triển nông thôn xuống cơ sở tuyên truyền, tập huấn và chỉ đạo sản xuất về cơ cấu giống, lịch thời vụ, quy trình canh tác và công tác bảo vệ thực vật. Chủ động xử lý và có kế hoạch ứng phó với các tình huống bất lợi trong sản xuất ở vụ Đông năm 2023 như hạn, rét đậm, rét hại; chuột hại cây trồng;

- Huy động sự tham gia của hệ thống chính trị từ tỉnh, huyện đến xã, phường, thị trấn để chỉ đạo và tổ chức sản xuất với phương châm bảo đảm an ninh lương thực, tăng cường tiêu thụ nông sản, nâng cao đời sống của nhân dân; đổi mới sản xuất để xây dựng thương hiệu nông sản, mở rộng các cây trông có lợi thế;

- Tăng cường công tác quản lý nhà nước về vật tư nông nghiệp: công tác thanh tra kiểm tra các cơ sở sản xuất, kinh doanh vật tư nông nghiệp. Phát hiện xử lý kịp thời có hiệu quả các đối tượng vi phạm; đảm bảo hàng hóa phục vụ sản xuất, lưu thông trên thị trường có chất lượng tốt, giá cả hợp lý phục vụ sản xuất; tăng cường công tác quản lý chất lượng nông sản.

4.3. Giải pháp về kỹ thuật

a. Đối với nhóm cây ưa ấm

- Cây ngô: Mở rộng diện tích ngô sinh khối, ngô thực phẩm, ngô ăn tươi: Ngô nếp (giống HN 88, giống HN 68, TBM18... ) ngô đường năng suất cao, chất lượng tốt; các giống ngô có sinh khối lớn, chất lượng cao để làm thức ăn chăn nuôi: giống ngô lai NK66, NK6654, giống có khả năng chịu hạn tốt, giống ngô Biosed06, C919; thời gian gieo hạt từ 20/9 - 25/9/2023, đặt bầu trước ngày 10/10/2023. Đối với ngô nếp, ngô đường, ngô rau có thời gian sinh trưởng ngắn, sử dụng bắp tươi; ngô làm thức ăn xanh cho chăn nuôi, thời vụ gieo trồng có thể kéo dài đến 20/10/2023; sử dụng các biện pháp kỹ thuật như làm bầu ngô, làm đất tối thiểu, tăng mật độ ngô 6-7 vạn cây/ha đối với đất màu, 5,7-6 vạn cây/ha đối với đất 2 lúa; bón phân sớm, đủ lượng và cân đối;

- Cây bí xanh, bí ngô, dưa chuột, ớt: Khuyến cáo nông dân và các địa phương nên sử dụng các giống lai F1 như: Bí xanh HN999, Dưa chuột Thái Lan Chiatai 336, Bí đỏ Gotal 999, Bí đỏ Gotal 998...); áp dụng kỹ thuật làm bầu (nhóm dưa, bí), ươm cây con (ớt...) và chăm sóc cây con. Đối với bầu bí, dưa chuột có thể áp dụng kỹ thuật trồng gối bằng cách rạch lúa đặt bầu trước khi thu hoạch lúa để tranh thủ thời vụ.

b. Đối với nhóm cây ưa lạnh

- Khoai tây: Thời vụ tập trung từ ngày 15/10 - 5/11/2023, trên chân đất trồng lúa nên trồng trong tháng 10; giống khoai tây sử dụng các giống Marabel, Solara, Atlantic, Diamant... được lựa chọn từ những ruộng giống có nguồn gốc rõ ràng, sạch bệnh và được bảo quản trong kho lạnh.

- Rau, đậu: Lựa chọn các giống chất lượng, chống chịu thời tiết tốt, vụ sớm chọn giống chịu nhiệt. Giống cải bắp như KK cross, Sakata No70 chịu nhiệt, Hoa sen 570, N075, NS cross; su hào như B40 chịu nhiệt; súp lơ như Sakata 1502, súp lơ xanh F1 Marathone, White Corona, Nông Hữu.

Thời vụ: Gieo trồng từ 15/9 - 31/12.

Quy hoạch và xây dựng các vùng sản xuất hàng hóa tập trung ổn định theo quy trình sản xuất rau an toàn, áp dụng các biện pháp tưới nước tiết kiệm, sử dụng màng phủ nông nghiệp trong trồng rau, dưa, bí, lạc..., tăng cường sử dụng phân hữu cơ, phân vi sinh... Tận dụng tốt điều kiện đất đai, nhân lực, thời vụ, mở rộng tối đa diện tích gieo trồng, chủ động trồng rải vụ, trồng các loại rau đậu có giá trị và thị trường tiêu thụ tốt;

- Hoa cây cảnh: Chú trọng mở rộng diện tích trồng các loại hoa phục vụ Tết tại một số vùng trọng điểm của thành phố Hạ Long, thị xã Đông Triều, thị xã Quảng Yên.... Sử dụng đa dạng những giống hoa có chất lượng: Hoa Lily, Hoa cúc, Đồng tiền, các loại Hoa lan, Hoa hồng...

Thời vụ: Trồng tập trung trong tháng 10, tốt nhất từ 05/10 - 20/10/2023 để thu hoạch phục vụ tết Nguyên Đán Giáp Thìn (2024).

- Phân bón: Khuyến cáo nông dân sử dụng các chế phẩm sinh học để xử lý rơm rạ sau thu hoạch lúa mùa (khuyến cáo nghiêm cấm đốt rơm rạ); tăng cường sử dụng phân bón hữu cơ giúp cây trồng phát triển khỏe chống chịu tốt với điều kiện bất thuận của ngoại cảnh. Bón đúng, bón đủ đối tượng cây trong và phù hợp với giai đoạn sinh trưởng và phát triển của cây trồng, kết hợp biện pháp tưới tiêu hợp lý;

- Ứng dụng chương trình quản lý dịch hại tổng hợp (IPM) cho rau màu để hạn chế tối đa việc dùng thuốc bảo vệ thực vật đảm bảo an toàn vệ sinh thực phẩm, không ô nhiễm môi trường tạo cho cây khoẻ, tăng sức đề kháng của cây; tăng cường áp dụng các tiến bộ khoa học kỹ thuật mới trong sản xuất, điều tiết nước hợp lý; thường xuyên theo dõi đồng ruộng, hạn chế sâu bệnh phát sinh tăng hiệu quả sản xuất;

- Hướng dẫn nông dân sử dụng các loại thuốc bảo vệ thực vật có nguồn gốc sinh học trong phòng trừ sâu bệnh, sử dụng thuốc bảo vệ thực vật theo nguyên tắc 4 đúng (đúng thuốc, đúng lúc, đúng liều lượng và nồng độ, đúng cách); thực hiện tốt công tác dự tính, dự báo sớm các đối tượng sâu, bệnh gây hại cây trồng; hướng dẫn nông dân các biện pháp phòng chống chuột ngay từ đầu vụ;

- Ứng dụng tưới tiết kiệm, làm tốt công tác khơi thông dòng chảy trên các trục chính và hệ thống kênh mương nội đồng thuận lợi cho công tác tiêu úng.

4.4. Tổ chức sản xuất

- Hình thành các tổ chức là chủ thể sản xuất, liên kết sản xuất và tiêu thụ sản phẩm;

- Tập trung đất đai để sản xuất cây vụ Đông trên quy mô lớn, trên cơ sở người dân địa phương thuê, mượn ruộng để sản xuất;

- Từng bước khôi phục và mở rộng diện tích một số cây vụ Đông có lợi thế về thị trường và thổ nhưỡng đất đai để nâng cao thu nhập cho nông dân.

4.5. Giải pháp về tuyên truyền

- Đẩy mạnh tuyên truyền nâng cao nhận thức để triển khai, thực hiện Kế hoạch sản xuất cây vụ Đông năm 2023; tuyên truyền nâng cao nhận thức của người sản xuất đối với việc đổi mới tổ chức sản xuất tạo giá trị bền vững xây dựng thương hiệu tạo sản phẩm đủ sức cạnh tranh trong thị trường;

- Xây dựng các mô hình tập trung sản xuất có hiệu quả kinh tế cao, bền vững; chuyển đổi cơ cấu cây trồng từ trồng lúa sang trồng, cây dược liệu, hoa, cây cảnh và cây hàng năm khác mang lại hiệu quả kinh tế cao cho người nông dân;

- Mở rộng hình thức liên kết sản xuất, cho thuê ruộng, áp dụng cơ giới hóa trong khâu làm đất, chăm sóc cây rau màu, giúp giải phóng sức lao động trong bối cảnh lao động nông nghiệp ngày càng thiếu và yêu; ứng dụng các tiến bộ khoa học kỹ thuật, biện pháp quản lý dịch hại tổng hợp trên cây trồng.

4.6. Cơ chế, chính sách phát triển sản xuất

- Áp dụng các cơ chế, chính sách hiện có để hỗ trợ xây dựng các mô hình sản xuất trồng trọt có hiệu quả kinh tế bền vững, hướng tới việc xây dựng chỉ dẫn địa lý, nhãn hiệu hàng hóa nông sản của tỉnh;

- Ngoài chính sách hỗ trợ của tỉnh, các huyện, thị xã, thành phố căn cứ vào yêu cầu và điều kiện cụ thể có chính sách hỗ trợ riêng tập trung cho hỗ trợ giống mới, hỗ trợ tổ chức diệt chuột, sử dụng phân bón hữu cơ, hữu cơ vi sinh, tiến bộ khoa học kỹ thuật sản xuất cây vụ Đông... để phát triển, bảo vệ sản xuất nông nghiệp của địa phương đảm bảo tính hiệu quả và bền vững;

- Tiếp tục triển khai chính sách hỗ trợ xây dựng và duy trì các mô hình ứng dụng tiến bộ kỹ thuật mới, ứng dụng công nghệ cao, cơ giới hóa, sản xuất theo hướng hàng hóa; các mô hình có hợp đồng bao tiêu sản phẩm cho các tổ chức cá nhân tham gia sản xuất khuyến khích phát triển cây vụ Đông.

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

1. Ủy ban nhân dân huyện, thị xã, thành phố

Căn cứ Kế hoạch sản xuất cây vụ Đông năm 2023 của tỉnh, xây dựng hoặc điều chỉnh Kế hoạch sản xuất cây vụ Đông năm 2023 của địa phương; triển khai Kế hoạch sản xuất đến các cơ quan, đơn vị, Ủy ban nhân dân các xã, phường, thị trấn và các Hợp tác xã dịch vụ Nông nghiệp; phân công các phòng, ban, đoàn thể chính trị - xã hội xuống cơ sở chỉ đạo, kiểm tra việc thực hiện Kế hoạch; chỉ đạo Ủy ban nhân dân các xã, phường, thị trấn phối hợp với cơ quan chuyên môn của ngành nông nghiệp chỉ đạo thực hiện tốt Kế hoạch sản xuất cây vụ Đông năm 2023; chỉ đạo tốt công tác thủy lợi nội đồng, nhất là việc khơi thông dòng chảy trong mùa mưa, lũ;

- Quản lý tốt việc cung ứng giống cây trồng, phân bón vật tư nông nghiệp; tổ chức kết nối giữa doanh nghiệp và người sản xuất có sự tham gia của chính quyền cấp xã, Hợp tác xã dịch vụ nông nghiệp để khuyến khích các doanh nghiệp vào đầu tư sản xuất và bao tiêu sản phẩm cho nhân dân, giám sát việc thực hiện hợp đồng.

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

- Theo dõi, hướng dẫn, kiểm tra, đánh giá kết quả sản xuất của các địa phương, tham mưu và đề xuất kịp thời với Ủy ban nhân dân tỉnh xử lý các vấn đề phát sinh trong quá trình tổ chức, thực hiện Kế hoạch; chỉ đạo các đơn vị chuyên môn trong ngành phối hợp với các địa phương chuẩn bị tốt mọi điều kiện phục vụ sản xuất cây vụ Đông năm 2023;

- Tăng cường cán bộ kỹ thuật xuống cơ sở, phối hợp với Ủy ban nhân dân huyện, thị xã, thành phố để chỉ đạo, tập huấn, hướng dẫn kỹ thuật, tuyên truyền, vận động nông dân thực hiện nghiêm chủ trương của tỉnh, huyện, thị xã, thành phố đã đề ra trong Kế hoạch, đảm bảo có hiệu quả;

- Chỉ đạo các đơn vị chuyên môn thuộc sở phối hợp chặt chẽ với các địa phương chủ động tổ chức thực hiện nghiêm Kế hoạch sản xuất cây vụ Đông của tỉnh; Trung tâm Khuyến nông xây dựng và khuyến cáo các mô hình khuyến nông, hướng dẫn tập huấn kỹ thuật cho nông dân tập trung vào những nội dung thiết thực, khuyến cáo các mô hình sản xuất tiên tiến, hiệu quả cao vào sản xuất; phối hợp với Trung tâm truyền thông tỉnh xây dựng băng hình khoa giáo, chú trọng tới các biện pháp kỹ thuật sản xuất luân canh, xen canh, gối vụ để tăng vụ để nông dân tiếp thu thực hiện. Chi cục Trồng trọt và Bảo vệ thực vật phối hợp chặt chẽ với các cơ quan truyền thông, các cấp các ngành tăng cường tuyên truyền chủ trương, giải pháp để thực hiện tốt Kế hoạch sản xuất cây vụ Đông của tỉnh; theo dõi chặt chẽ diễn biến của thời tiết mưa úng để có biện pháp phòng chống kịp thời, hiệu quả; phối hợp với các địa phương đề xuất các biện pháp khắc phục kịp thời thiệt hại ảnh hưởng đến sản xuất vụ Đông; phát hiện sớm, dự tính dự báo chính xác, tham mưu kịp thời và hướng dẫn nông dân phòng trừ dịch hại theo nguyên tắc phòng trừ dịch hại tổng hợp;

- Làm tốt công tác thanh tra, kiểm tra việc sản xuất, kinh doanh, buôn bán vật tư nông nghiệp; ngăn chặn và xử lý kịp thời các hoạt động kinh doanh hàng giả, hàng kém chất lượng, trái với các quy định của Nhà nước, tăng cường công tác quản lý thuốc diệt cỏ trên địa bàn tỉnh.

3. Các sở, ban, ngành liên quan

Căn cứ chức năng, nhiệm vụ, lĩnh vực quản lý phối hợp với Sở Nông nghiệp và Phát triển nông thôn, Ủy ban nhân dân các huyện, thị xã, thành phố triển khai thực hiện Kế hoạch; tuyên truyền vận động và tạo mọi điều kiện thuận lợi để sản xuất vụ Đông năm 2023 đạt kết quả.

4. Trung tâm Truyền thông tỉnh

Tăng cường thời lượng thông tin, phổ biến chủ trương sản xuất cây vụ Đông 2023; tuyên truyền sâu rộng tới nhân dân trong tỉnh để người dân nhận thức đầy đủ về giá trị của sản xuất cây vụ Đông; biện pháp kỹ thuật thâm canh, phòng trừ các đối tượng sinh vật gây hại; các mô hình sản xuất có hiệu quả cao trong sản xuất vụ Đông để nhân rộng.

5. Đề nghị Ủy ban Mặt trận Tổ quốc và các tổ chức chính trị - xã hội

Đề nghị Ủy ban Mặt trận Tổ quốc tỉnh, các tổ chức chính trị - xã hội tỉnh, phối hợp với Sở Nông nghiệp và Phát triển nông thôn, Ủy ban nhân dân huyện, thị xã, thành phố đẩy mạnh công tác tuyên truyền, vận động, hướng dẫn để hộ nông dân hiểu và nắm vững chủ trương sản xuất cây vụ Đông, thực hiện tốt các mục tiêu phát triển sản xuất nông nghiệp năm 2023 và những năm tiếp theo.

Ủy ban nhân dân tỉnh yêu cầu Sở Nông nghiệp và Phát triển nông thôn, các sở, ngành liên quan; Ủy ban nhân dân các huyện, thị xã, thành phố triển khai thực hiện./.

 


Nơi nhận:
- Bộ Nông nghiệp và PTNT (b/c);
- Q.CT, P4 UBND tỉnh (b/c);
- UBMTTQ tỉnh, các tổ chức CT-XH tỉnh;
- Các sở: NNPTNT, TC, CT, TNMT;
- Trung tâm Truyền thông tỉnh;
- UBND các huyện, tx, tp;
- V0, V1, V2, NLN1,3;
- Lưu: VP, NLN3 (03b, KH19).

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




Vũ Văn Diện

 

PHỤ LỤC:

KẾ HOẠCH SẢN XUẤT CÂY VỤ ĐÔNG NĂM 2023
(Kèm theo Kế hoạch số: 233/KH-UBND ngày 12 tháng 9 năm 2023 của UBND tỉnh Quảng Ninh)

Chỉ tiêu

 

ĐVT

Tổng

Đông Triều

Uông Bí

Quảng Yên

Hạ Long

Cẩm Phả

Vân Đồn

Ba Chẽ

Tiên Yên

Bình Liêu

Đầm Hà

Hải Hà

Móng Cái

Cô Tô

Tổng diện tích gieo trồng

 

 

7.685,8

1369

175

1.960

523,8

57

85

198

550

386

905

790

672

15

Sản lượng lương thực

 

 

4.178,9

717,7

148

330,4

540,5

0

16,5

0

630

49,4

1.025

546,3

175

0

Trong đó

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cây ngô

DT

ha

972,3

130,5

40

59

163,8

 

5

 

140

16

250

118

50

 

 

NS

Tạ/ha

42,9

55

37

56

33

 

33

 

45

30,9

41

46.3

35

 

 

SL

Tấn

4.178,9

717,7

148

330,4

540,5

 

16,5

 

630

49,4

1.025

546,3

175

 

Khoai lang

DT

ha

970,2

55

20

23

43,2

15

20

 

95

130

180

99

290

 

 

NS

Tạ/ha

57

 

66,5

66,5

63,2

72

64

 

68

46,4

55

55,9

67,2

 

 

SL

Tấn

5.537

 

133

152,9

273

108

128

 

646

603,2

990

553,4

1.950

 

Khoai tây

DT

ha

302,4

208

3

10

8,4

5

 

 

48

 

 

 

20

 

 

NS

Tạ/ha

122

119

86

88

121

180

 

 

143.5

 

 

 

110

 

 

SL

Tấn

3.689

2.475,2

25.8

88

101,6

90

 

 

688,8

 

 

 

220

 

Đỗ tương

DT

ha

14,2

 

 

 

0,2

 

 

 

14

 

 

 

 

 

 

NS

Tạ/ha

15,9

 

 

 

14,1

 

 

 

16

 

 

 

 

 

 

SL

Tấn

22.682

 

 

 

0,2

 

 

 

22,4

 

 

 

 

 

Lạc

DT

ha

25.9

 

 

 

9,9

 

 

 

16

 

 

 

 

 

 

NS

Tạ/ha

18

 

 

 

19,9

 

 

 

17

 

 

 

 

 

 

SL

Tấn

46,9

 

 

 

19,7

 

 

 

27.2

 

 

 

 

 

Rau

DT

ha

4.705,4

425

110

1.815

285,4

37

60

198

237

240

410

573

300

15

 

NS

Tạ/ha

124,6

 

138

164

155,5

190

125

202,7

141

113,3

111

108

164,6

105

 

SL

Tấn

58.648

 

1518

29,7

 

703

750

4.013,4

3.341,7

2719,2

4.551

6.188,4

4.940

157,5

Hoa

DT

ha

254

229

 

25

 

 

 

 

 

 

 

 

 

 

Cây khác

DT

ha

441,4

321,5

2

28

12,9

 

 

 

 

 

65

 

12

 

 



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