Hệ thống pháp luật

ỦY BAN NHÂN DÂN
TỈNH AN GIANG
-------

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

Số: 1011/KH-UBND

An Giang, ngày 03 tháng 11 năm 2023

 

KẾ HOẠCH

TRIỂN KHAI THỰC HIỆN NHIỆM VỤ NÂNG CAO CHẤT LƯỢNG, HIỆU QUẢ DỊCH VỤ CÔNG TRỰC TUYẾN NĂM 2023 TRÊN ĐỊA BÀN TỈNH AN GIANG

Căn cứ Quyết định số 17/QĐ-UBQGCĐS ngày 04/4/2023 của Ủy ban Quốc gia về chuyển đổi số ban hành Kế hoạch hoạt động của Ủy ban Quốc gia về chuyển đổi số năm 2023.

Thực hiện Công văn số 3109/BTTTT-CĐSQG ngày 01/8/2023 của Bộ Thông tin và Truyền thông về nâng cao chất lượng, hiệu quả DVCTT.

Ủy ban nhân dân (UBND) tỉnh xây dựng Kế hoạch triển khai thực hiện nhiệm vụ nâng cao chất lượng, hiệu quả dịch vụ công trực tuyến năm 2023 trên địa bàn tỉnh An Giang, với những nội dung thực hiện cụ thể như sau:

I. MỤC ĐÍCH

- Triển khai có hiệu quả các nhiệm vụ nhằm nâng cao chất lượng, hiệu quả dịch vụ công trực tuyến năm 2023 và những năm tiếp theo trên địa bàn tỉnh An Giang.

- Hỗ trợ, phục vụ người dân, doanh nghiệp trong tiếp nhận, giải quyết hồ sơ, kết quả giải quyết TTHC, dịch vụ công trực tuyến, nâng cao sự hài lòng của người dân, doanh nghiệp đối với cơ quan nhà nước.

- Đẩy mạnh công tác thông tin, tuyên truyền thúc đẩy cá nhân, tổ chức sử dụng DVCTT đạt hiệu quả cao; tiết kiệm được thời gian, công sức, chi phí phát sinh; công khai, minh bạch thông tin, nội dung giải quyết từng TTHC của các đơn vị.

II. NHIỆM VỤ VÀ GIẢI PHÁP

1. Thực hiện rà soát, cập nhật, bổ sung hoặc ban hành kế hoạch hành động năm 2023 để nâng cao chất lượng cung cấp dịch vụ công trực tuyến, trong đó giao rõ nhiệm vụ, đầu mối chủ trì, nguồn lực và thời hạn hoàn thành cụ thể.

2. Khẩn trương hoàn thành triển khai Hệ thống thông tin giải quyết thủ tục hành chính cấp bộ, cấp tỉnh trên cơ sở hợp nhất Cổng dịch vụ công và Hệ thống một cửa điện tử; đồng thời, đề nghị doanh nghiệp cung cấp giải pháp công nghệ thực hiện nâng cấp, cập nhật lên phiên bản mới nhất.

3. Thực hiện rà soát và lựa chọn các thủ tục hành chính đủ điều kiện trong phạm vi bộ, ngành, địa phương đảm bảo triển khai dịch vụ công trực tuyến toàn trình và một phần theo đúng quy định tại Nghị định số 42/2022/NĐ-CP ngày 24/6/2022 của Chính phủ quy định về việc cung cấp thông tin và dịch vụ công trực tuyến của cơ quan nhà nước trên môi trường mạng. Ủy ban nhân dân tỉnh, thành phố bảo đảm tối thiểu 80% thủ tục hành chính được cung cấp dưới dạng dịch vụ công trực tuyến, tối thiểu 80% dịch vụ công trực tuyến được cung cấp dưới dạng dịch vụ công trực tuyến toàn trình đối với các thủ tục hành chính đủ điều kiện theo quy định của Thông tư 01/2023/TT-VPCP.

4. Ban hành văn bản giao chỉ tiêu tỷ lệ hồ sơ trực tuyến tới người đứng đầu từng cơ quan, đơn vị, địa phương năm 2023.

5. Xem xét, có chính sách giảm phí, lệ phí để khuyến khích người dân sử dụng dịch vụ công trực tuyến.

6. Ban hành chính sách giảm thời gian xử lý hồ sơ trực tuyến để khuyến khích người dân sử dụng dịch vụ công trực tuyến.

7. Triển khai thí điểm một số dịch vụ không tiếp nhận bản giấy, một số ngày không tiếp nhận bản giấy.

8. Chỉ đạo Tổ công nghệ số cộng đồng tích cực triển khai đi từng ngõ, gõ từng nhà, hướng dẫn từng người sử dụng dịch vụ công trực tuyến.

9. Thực hiện các giải pháp tập huấn cho đội ngũ cán bộ, công chức, viên chức kiến thức, kỹ năng chuyên môn để bảo đảm phục vụ hoạt động cung cấp dịch vụ công trực tuyến.

10. Đẩy mạnh triển khai việc tiếp nhận hồ sơ, trả kết quả giải quyết thủ tục hành chính qua dịch vụ bưu chính công ích để hỗ trợ triển khai dịch vụ công trực tuyến, bảo đảm cá nhân, tổ chức không phải hiện diện tại cơ quan nhà nước nếu pháp luật không quy định.

11. Rà soát lại các thủ tục hành chính, dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng để thực hiện đơn giản hóa, tái cấu trúc lại quy trình thực hiện, lược bỏ các bước trung gian không cần thiết, lược bỏ các thành phần hồ sơ đã có trong cơ sở dữ liệu để tạo điều kiện thuận lợi hơn cho người dân khi tiếp cận, thực hiện.

12. Thiết kế, thiết kế lại giao diện, trải nghiệm người dùng đối với các dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng. Đặc biệt chú trọng tới việc cung cấp thông tin hướng dẫn một đơn giản, trực quan, dễ hiểu, dễ làm, giúp người dân có thể tự hiểu và tự thực hiện một cách dễ dàng, thuận tiện.

13. Bảo đảm sẵn sàng chức năng ký số từ xa trên cổng dịch vụ công và thúc đẩy người dân sử dụng để thực hiện dịch vụ công trực tuyến.

14. Kết nối Hệ thống thông tin giải quyết thủ tục hành chính cấp bộ, cấp tỉnh với Hệ thống thông tin của Kho bạc Nhà nước, Thuế để thực hiện thanh toán trực tuyến dịch vụ công theo quy định.

15. Triển khai Kho dữ liệu điện tử của cá nhân, tổ chức trên Hệ thống thông tin giải quyết thủ tục hành chính cấp bộ, cấp tỉnh để lưu giữ dữ liệu giải quyết dịch vụ công, phục vụ chia sẻ, tái sử dụng dữ liệu trong thực hiện dịch vụ công.

16. Cung cấp đầy đủ, đa dạng và nâng cao chất lượng các kênh tương tác, hỗ trợ người dân. Ví dụ như thông tin hướng dẫn thủ tục hành chính, Hỏi-Đáp, câu hỏi thường gặp, Phản ánh, kiến nghị, Khảo sát, đánh giá sự hài lòng và Trợ lý ảo… Trong đó, cần thiết lập ngay đường dây nóng, tổng đài hỗ trợ kỹ thuật và đảm bảo luôn có người trực đường dây nóng, tổng đài hỗ trợ kỹ thuật tối thiểu trong thời gian hành chính để hỗ trợ, giải đáp các câu hỏi của người dùng.

17. Khai thác Nền tảng khảo sát, thu thập ý kiến của người dân (VNForm) do Bộ Thông tin và Truyền thông triển khai để khảo sát, thu thập ý kiến của người dân và doanh nghiệp trong quá trình trải nghiệm thủ tục hành chính trên môi trường mạng. Nền tảng VNForm là kênh độc lập để khảo sát, thu thập ý kiến người dân, doanh nghiệp. Các hệ thống thông tin giải quyết thủ tục hành chính cấp bộ, cấp tỉnh cần tích hợp và khai thác các biểu khảo sát từ VNForm, thường xuyên nắm bắt ý kiến của người dân, doanh nghiệp để có những biện pháp cải thiện chất lượng phục vụ và cung cấp dịch vụ công.

18. Triển khai Hệ thống thông tin giải quyết thủ tục hành chính cấp bộ, cấp tỉnh bảo đảm tối thiểu 3 phương thức trao đổi thông tin, trạng thái về hồ sơ điện tử giữa người dân và Cổng dịch vụ công: email, SMS và thông báo trên Cổng dịch vụ công. Xem xét bổ sung phương thức trao đổi thông tin, trạng thái hồ sơ qua các ứng dụng OTT (như Zalo).

19. Triển khai cung cấp DVCTT trên thiết bị di động bảo đảm cho thuận tiện cho người dân truy cập, sử dụng.

20. Đẩy mạnh hoàn thiện việc kết nối Hệ thống thông tin giải quyết thủ tục hành cấp bộ, cấp tỉnh với Hệ thống giám sát, đo lường mức độ cung cấp và sử dụng dịch vụ Chính phủ số của Bộ Thông tin và Truyền thông để tăng cường giám sát, đo lường một cách hiệu quả; thường xuyên đánh giá, kiểm tra, đối soát thông tin và số liệu cho chính xác; liên hệ đầu mối của Cục Chuyển đổi số quốc gia - Bộ Thông tin và Truyền thông mỗi khi việc kết nối gặp sự cố hoặc có vấn đề bất thường xảy ra.

(Chi tiết nhiệm vụ, giải pháp và phân công thực hiện tại phụ lục kèm theo)

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

1. Thủ trưởng các Sở, ban, ngành tỉnh, Chủ tịch UBND các huyện, thị xã, thành phố

- Giao Thủ trưởng các Sở, ban, ngành tỉnh, Chủ tịch UBND các huyện, thị xã, thành phố theo dõi, chỉ đạo và tổ chức thực hiện nghiêm túc, có hiệu quả các nhiệm vụ và giải pháp được phân công theo Kế hoạch này và chịu trách nhiệm trước UBND tỉnh về kết quả triển khai tại cơ quan, đơn vị, địa phương mình.

- Thông tin, tuyên truyền, quán triệt cho đội ngũ cán bộ, công chức, viên chức và người lao động tại cơ quan, đơn vị, địa phương trong các buổi hội, họp, sinh hoạt chi bộ,… nhằm tạo sự chuyển biến về nhận thức, nắm bắt thông tin kịp thời và tạo quyết tâm cao thực hiện nâng cao chất lượng, hiệu quả dịch vụ công trực tuyến năm 2023 trên địa bàn tỉnh An Giang.

- Nghiên cứu, lồng ghép các nhiệm vụ, giải pháp thực hiện Kế hoạch này vào kế hoạch của cơ quan, đơn vị, địa phương để triển khai thực hiện có hiệu quả.

2. Sở Thông tin và Truyền thông

- Chủ trì, phối hợp Văn phòng UBND tỉnh, đôn đốc các cơ quan, địa phương thực hiện các nhiệm vụ, giải pháp được giao tại Kế hoạch này.

- Phối hợp các cơ quan, địa phương báo cáo kết quả thực hiện nhiệm vụ, tổng hợp khó khăn, vướng mắc, đề xuất, kiến nghị báo cáo UBND tỉnh giải quyết.

Ủy ban nhân dân tỉnh đề nghị các cơ quan, địa phương chủ động phối hợp thực hiện nhiệm vụ, giải pháp được giao, đảm bảo hoàn thành đúng thời hạn quy định. Trong quá trình triển khai thực hiện các cơ quan, đơn vị nếu có khó khăn, vướng mắc kịp thời phản ánh về Sở Thông tin và Truyền thông để tổng hợp báo cáo Ủy ban nhân dân tỉnh xem xét, chỉ đạo./.

 


Nơi nhận:
- Bộ TT&TT (để b/c);
- Chủ tịch, các PCT UBND tỉnh;
- Sở, ban, ngành tỉnh;
- Kho bạc nhà nước An Giang;
- Cục thuế tỉnh An Giang;
- UBND huyện, thị xã, thành phố;
- Báo An Giang, Đài PT&TH An Giang;
- Viễn thông An Giang;
- VPUB: CVP, PCVP, TH, KGVX;
- Lưu: VT.

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





Nguyễn Thanh Bình

 


PHỤ LỤC

NHIỆM VỤ VÀ GIẢI PHÁP THỰC HIỆN NÂNG CAO CHẤT LƯỢNG, HIỆU QUẢ DỊCH VỤ CÔNG TRỰC TUYẾN NĂM 2023 TRÊN ĐỊA BÀN TỈNH AN GIANG
(Kèm theo Kế hoạch số 1011/KH-UBND ngày 03 tháng 11 năm 2023 của UBND tỉnh An Giang)

 

STT

Nhiệm vụ

Giải pháp

Chương trình/Kế hoạch thực hiện

Cơ quan thực hiện

Thời gian hoàn thành

Sản phẩm dự kiến/Kết quả đạt được

Ghi chú

Chủ trì

phối hợp

1

Thực hiện rà soát, cập nhật, bổ sung hoặc ban hành kế hoạch hành động năm 2023 để nâng cao chất lượng cung cấp dịch vụ công trực tuyến

Đẩy mạnh triển khai thực hiện Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh về Nâng cao chất lượng và hiệu quả cung cấp dịch vụ công trực tuyến năm 2023 trên địa bàn tỉnh An Giang

Kế hoạch triển khai thực hiện Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh

Sở, ban, ngành tỉnh; Công an tỉnh; UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh; Sở Thông tin và Truyền thông

Năm 2023

Hoàn thành mục tiêu được giao tại Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh

 

2

Hoàn thành triển khai Hệ thống thông tin giải quyết thủ tục hành chính tỉnh trên cơ sở hợp nhất Cổng dịch vụ công và Hệ thống một cửa điện tử. Đồng thời đề nghị doanh nghiệp cung cấp giải pháp công nghệ thực hiện nâng cấp, cập nhật lên phiên bản mới nhất

Thực hiện thuê dịch vụ CNTT cung cấp, triển khai tập huấn, vận hành sử dụng Cổng Dịch vụ công và Hệ thống thông tin một cửa điện tử cấp tỉnh giai đoạn 2023 - 2029

Kế hoạch thuê dịch vụ CNTT cung cấp, triển khai tập huấn, vận hành sử dụng Cổng Dịch vụ công và Hệ thống thông tin một cửa điện tử cấp tỉnh giai đoạn 2023 - 2029

Sở Thông tin và Truyền thông

Văn phòng UBND tỉnh, Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Năm 2023

Kế hoạch thuê dịch vụ CNTT cung cấp, triển khai tập huấn, vận hành sử dụng Cổng Dịch vụ công và Hệ thống thông tin một cửa điện tử cấp tỉnh giai đoạn 2023 - 2029

 

Đề nghị doanh nghiệp cung cấp giải pháp công nghệ thực hiện nâng cấp, cập nhật lên phiên bản mới nhất

Văn bản gửi doanh nghiệp cung cấp dịch vụ Hệ thống thông tin giải quyết thủ tục hành chính tỉnh thực hiện cập nhật hệ thống lê phiên bản mới nhất

Sở Thông tin và Truyền thông

Viễn thông An Giang

Tháng 11/2023

Hệ thống thông tin giải quyết thủ tục hành chính tỉnh thực hiện cập nhật hệ thống lê phiên bản mới nhất

 

3

Thực hiện rà soát và lựa chọn các thủ tục hành chính đủ điều kiện trong phạm vi quản lý, đảm bảo triển khai dịch vụ công trực tuyến toàn trình và một phần. Bảo đảm tối thiểu 80% thủ tục hành chính được cung cấp dưới dạng dịch vụ công trực tuyến, tối thiểu 80% dịch vụ công trực tuyến được cung cấp dạng dịch vụ công trực tuyến toàn trình đối với các thủ tục hành chính đủ điều kiện theo quy định của Thông tư 01/2023/TT-VPCP

Thực hiện rà soát và lựa chọn các thủ tục hành chính đủ điều kiện trong phạm vi quản lý, đảm bảo triển khai dịch vụ công trực tuyến toàn trình và một phần

Thực hiện rà soát, đánh giá, tái cấu trúc quy trình thủ tục hành chính để cung cấp dịch vụ công trực tuyến theo quy định tại Nghị định số 42/2022/NĐ-CP và hướng dẫn tại Thông tư số 01/2023/TT-VPCP

Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND Các huyện, thị xã, thành phố

Tháng 11/2023

Quyết định ban hành danh mục dịch vụ công trực tuyến toàn trình và một phần

 

Bảo đảm tối thiểu 80% thủ tục hành chính được cung cấp dưới dạng dịch vụ công trực tuyến, tối thiểu 80% dịch vụ công trực tuyến được cung cấp dạng dịch vụ công trực tuyến toàn trình đối với các thủ tục hành chính đủ điều kiện theo quy định của Thông tư 01/2023/TT-VPCP

Thực hiện rà soát danh mục TTHC tỉnh đủ điều kiện cung cấp dưới dạng trực tuyến và dịch vụ công trực tuyến đủ điều kiện cung cấp mức độ toàn trình

Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Tháng 11/2023

Quyết định ban hành danh mục dịch vụ công trực tuyến toàn trình và một phần

 

4

Ban hành văn bản giao chỉ tiêu tỷ lệ hồ sơ trực tuyến tới người đứng đầu từng cơ quan, địa phương năm 2023

Hoàn thành các chỉ tiêu được giao về sử dụng DVCTT tại Phụ lục I kèm theo Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh về Nâng cao chất lượng và hiệu quả cung cấp dịch vụ công trực tuyến năm 2023 trên địa bàn tỉnh An Giang

Kế hoạch triển khai thực hiện Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh

Sở, ban, ngành tỉnh; Công an tỉnh; UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh; Sở Thông tin và Truyền thông

Tháng 11/2023

Hoàn thành các chỉ tiêu được giao về sử dụng DVCTT tại Phụ lục I kèm theo Kế hoạch số 483/KH-UBND ngày 12/6/2023 của UBND tỉnh

 

5

Xem xét, có chính sách giảm phí, lệ phí để khuyến khích người dân sử dụng dịch vụ công trực tuyến

Rà soát các khoản phí, lệ phí hiện hành thuộc ngành, lĩnh vực quản lý và đề xuất mức thu phí, lệ phí hợp lý để thông qua tại kỳ họp Hội đồng nhân dân tỉnh cuối năm 2023 quy định mức thu phí, lệ phí để khuyến khích người dân, doanh nghiệp tham gia sử dụng dịch vụ công trực tuyến, thanh toán trực tuyến

Văn bản rà soát, đề xuất gửi Sở Tài chính

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Sở Tài chính

Năm 2023

Văn bản đề xuất

Nhiệm vụ được giao tại Công văn số 851/UBND-KTTH ngày 13/7/2023; Chỉ đạo của UBND tỉnh tại Văn bản số 6014/VPUBND-KTTH ngày 30/10/2023.

Tổng hợp đề xuất của các cơ quan, địa phương. Tham mưu UBND tỉnh trình Hội đồng nhân dân tỉnh ban hành chính sách giảm phí, lệ phí để khuyến khích người dân sử dụng dịch vụ công trực tuyến

Văn bản tham mưu UBND tỉnh trình Hội đồng nhân dân tỉnh ban hành chính sách giảm phí, lệ phí để khuyến khích người dân sử dụng dịch vụ công trực tuyến

Sở Tài chính

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Năm 2023

Hội đồng nhân dân tỉnh ban hành chính sách giảm phí, lệ phí để khuyến khích người dân sử dụng dịch vụ công trực tuyến

Nhiệm vụ được giao tại Công văn số 851/UBND-KTTH ngày 13/7/2023

6

Ban hành chính sách giảm thời gian xử lý hồ sơ trực tuyến để khuyến khích người dân sử dụng dịch vụ công trực tuyến

Các cơ quan, địa phương rà soát danh mục DVC trực tuyến, đề xuất rút ngắn thời gian xử lý hồ sơ trực tuyến so với xử lý hồ sơ giấy

Văn bản đề xuất danh mục DVC trực tuyến rút ngắn thời gian xử lý hồ sơ trực tuyến so với xử lý hồ sơ giấy gửi Văn phòng UBND tỉnh gửi Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh

Năm 2023

Văn bản đề xuất

 

Tổng hợp đề xuất của các cơ quan, địa phương. Tham mưu UBND tỉnh ban hành danh mục DVC trực tuyến, đề xuất rút ngắn thời gian xử lý hồ sơ trực tuyến so với xử lý hồ sơ giấy

Tham mưu UBND tỉnh ban hành danh mục DVC trực tuyến, đề xuất rút ngắn thời gian xử lý hồ sơ trực tuyến so với xử lý hồ sơ giấy

Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Năm 2023

Quyết định ban hành danh mục DVC trực tuyến rút ngắn thời gian xử lý hồ sơ trực tuyến so với xử lý hồ sơ giấy

 

7

Triển khai thí điểm một số dịch vụ không tiếp nhận bản giấy, một số ngày không tiếp nhận bản giấy

Rà soát, lựa chọn tối thiểu từ 02 đến 05 TTHC (là DVC trực tuyến toàn trình) có thành phần hồ sơ ít, dễ thực hiện

Văn bản đề nghị rà soát

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh

Tháng 11/2023

02 đến 05 TTHC (là DVC trực tuyến toàn trình) có thành phần hồ sơ ít, dễ thực hiện

 

Tổ công nghệ số cộng đồng tại địa phương, lực lượng đoàn viên thanh niên hỗ trợ, hướng dẫn người dân thực hiện dịch vụ công trực tuyến, thanh toán trực tuyến

Văn bản chỉ đạo

Trung tâm Phục vụ Hành chính công tỉnh; UBND các huyện, thị xã, thành phố

Sở Thông tin và Truyền thông

Tháng 11/2023

 

 

Triển khai thí điểm một số ngày không tiếp nhận bản giấy

 

Trung tâm Phục vụ Hành chính công tỉnh;

UBND các huyện, thị xã, thành phố; UBND xã, phường, thị trấn

Sở Thông tin và Truyền thông

Tháng 11/2023

Báo cáo kết quả triển khai

 

8

Chỉ đạo Tổ công nghệ số cộng đồng tích cực triển khai đi từng ngõ, gõ từng nhà, hướng dẫn từng người sử dụng dịch vụ công trực tuyến

UBND huyện, thị xã, thành phố đẩy mạnh phát huy vai trò Tổ công nghệ số cộng đồng tại địa phương hỗ trợ hướng dẫn người dân thực hiện DVC trực tuyến, thanh toán trực tuyến, đăng ký tài khoản công dân trên cổng dịch vụ công, hỗ trợ chuẩn hóa thông tin thuê bao,…

Văn bản chỉ đạo Tổ công nghệ số cộng đồng trên địa bàn hỗ trợ hướng dẫn người dân thực hiện DVC trực tuyến, thanh toán trực tuyến, đăng ký tài khoản công dân trên cổng dịch vụ công, hỗ trợ chuẩn hóa thông tin thuê bao,…

UBND huyện, thị xã, thành phố

Sở Thông tin và Truyền thông

Tháng 11/2023

Văn bản chỉ đạo và báo cáo kết quả

 

9

Thực hiện các giải pháp tập huấn cho đội ngũ cán bộ, công chức, viên chức kiến thức, kỹ năng chuyên môn để bảo đảm phục vụ hoạt động cung cấp dịch vụ công trực tuyến

Cơ quan, địa phương lồng ghép nội dung hướng dẫn thực hiện dịch vụ công trực tuyến tại buổi sinh hoạt ngày pháp luật, sinh hoạt chuyên đề định kỳ hàng tháng tại cơ quan, địa phương

 

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Sở Thông tin và Truyền thông

Thường xuyên

Lồng ghép nội dung hướng dẫn thực hiện dịch vụ công trực tuyến tại buổi sinh hoạt ngày pháp luật, sinh hoạt chuyên đề

 

Tổ chức buổi tập huấn, tuyên truyền nâng cao nhận thức về chuyển đổi số, kỹ năng số, kỹ năng chuyên môn bảo đảm phục vụ hoạt động cung cấp dịch vụ công trực tuyến

 

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Sở Thông tin và Truyền thông

Thường xuyên

Tổ chức tập huấn

 

Đăng ký, tham dự đầy đủ các lớp đào tạo bồi dưỡng, tập huấn về chuyển đổi số do Bộ TTTT tổ chức; các lớp bồi dưỡng tập huấn kỹ năng số, an toàn thông tin do Sở TTTT tổ chức

 

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Sở Thông tin và Truyền thông

Thường xuyên

Tham dự đầy đủ các lớp đào tạo bồi dưỡng, tập huấn về chuyển đổi số

 

10

Triển khai việc tiếp nhận hồ sơ, trả kết quả giải quyết thủ tục hành chính qua dịch vụ bưu chính công ích để hỗ trợ triển khai dịch vụ công trực tuyến, bảo đảm cá nhân, tổ chức không phải hiện diện tại cơ quan nhà nước nếu pháp luật không quy định

Đẩy mạnh triển khai việc tiếp nhận, trả kết quả giải quyết TTHC qua dịch vụ bưu chính công ích theo chỉ đạo của UBND tỉnh tại Công văn số 809/UBND-TH ngày 05/7/2023 của UBND tỉnh

Rà soát, đề xuất bổ sung các thủ tục hành chính không yêu cầu cá nhân, tổ chức phải có mặt trực tiếp, để bổ sung vào danh mục các thủ tục hành chính thực hiện tiếp nhận hồ sơ, trả kết quả giải quyết thủ tục hành chính qua dịch vụ bưu chính công ích gửi Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh

Thường xuyên

Văn bản rà soát và đề xuất

 

Tham mưu UBND tỉnh ban hành, cập nhật, sửa đổi, bổ sung danh mục TTHC tiếp nhận và không tiếp nhận qua dịch vụ bưu chính công ích

Văn phòng UBND tỉnh

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Thường xuyên

Quyết định cập nhật, sửa đổi, bổ sung danh mục TTHC tiếp nhận và không tiếp nhận qua dịch vụ bưu chính công ích

 

11

Rà soát lại các thủ tục hành chính, dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng để thực hiện đơn giản hóa, tái cấu trúc lại quy trình thực hiện, lược bỏ các bước trung gian không cần thiết, lược bỏ các thành phần hồ sơ đã có trong cơ sở dữ liệu để tạo điều kiện thuận lợi hơn cho người dân khi tiếp cận, thực hiện

Rà soát lại các thủ tục hành chính, dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng.

 

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh

Tháng 11/2023

Danh mục thủ tục hành chính, dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng

 

Thực hiện đơn giản hóa, tái cấu trúc lại quy trình thực hiện, lược bỏ các bước trung gian không cần thiết, lược bỏ các thành phần hồ sơ đã có trong cơ sở dữ liệu để tạo điều kiện thuận lợi hơn cho người dân khi tiếp cận, thực hiện

 

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Văn phòng UBND tỉnh

Tháng 11/2023

Thực hiện đơn giản hóa, tái cấu trúc lại quy trình thực hiện thủ tục hành chính, dịch vụ công trực tuyến

 

12

Thiết kế, thiết kế lại giao diện, trải nghiệm người dùng đối với các dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng. Đặc biệt chú trọng tới việc cung cấp thông tin hướng dẫn một đơn giản, trực quan, dễ hiểu, dễ làm, giúp người dân có thể tự hiểu và tự thực hiện một cách dễ dàng, thuận tiện

Thiết kế, thiết kế lại giao diện, trải nghiệm người dùng đối với các dịch vụ công trực tuyến, ưu tiên 25 dịch vụ công thiết yếu, có nhiều người sử dụng. Đặc biệt chú trọng tới việc cung cấp thông tin hướng dẫn một đơn giản, trực quan, dễ hiểu, dễ làm, giúp người dân có thể tự hiểu và tự thực hiện một cách dễ dàng, thuận tiện

 

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Tháng 11/2023

Thiết kế, thiết kế lại giao diện, trải nghiệm người dùng đối với các dịch vụ công trực tuyến

 

13

Bảo đảm sẵn sàng chức năng ký số từ xa trên cổng dịch vụ công và thúc đẩy người dân sử dụng để thực hiện dịch vụ công trực tuyến

Tích hợp chức năng ký số từ xa trên Hệ thống thông tin giải quyết thủ tục hành chính tỉnh

 

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Tháng 12/2023

Hoàn thành tích hợp chức năng ký số từ xa trên

 

Phối hợp các doanh nghiệp cung cấp dịch vụ chữ ký số công cộng thực hiện cung cấp chữ ký số miễn phí cho người dân khi thực hiện dịch vụ công trực tuyến

 

Sở Thông tin và Truyền thông

Các doanh nghiệp cung cấp giải pháp ký số công cộng

Tháng 12/2023

Tổ chức các gian hàng cấp chữ ký số miễn phí cho người dân

 

14

Kết nối Hệ thống thông tin giải quyết thủ tục hành chính tỉnh với Hệ thống thông tin của Kho bạc Nhà nước, Thuế để thực hiện thanh toán trực tuyến dịch vụ công theo quy định

Có văn bản gửi Bộ Thông tin và Truyền thông đề nghị hỗ trợ hướng dẫn kết nối

 

Sở Thông tin và Truyền thông

 

Tháng 11/2023

Văn bản gửi Bộ Thông tin và Truyền thông

 

Triển khai thực hiện kết nối theo hướng dẫn của Bộ Thông tin và Truyền thông

 

Sở Thông tin và Truyền thông

Kho bạc nhà nước tỉnh An Giang; Cục Thuế tỉnh An Giang; Cục Chuyển đổi số quốc gia

Tháng 12/2023

Hoàn thành kết nối

 

15

Triển khai Kho dữ liệu điện tử của cá nhân, tổ chức trên Hệ thống thông tin giải quyết thủ tục hành chính tỉnh để lưu giữ dữ liệu giải quyết dịch vụ công, phục vụ chia sẻ, tái sử dụng dữ liệu trong thực hiện dịch vụ công

Thực hiện Kế hoạch thuê Hệ thống thông tin giải quyết thủ tục hành chính tỉnh (giai đoạn 2023 - 2029) theo đúng tiến độ tại Công văn số 2459/VPUBND-KGVX ngày 15/5/2023 của Văn phòng UBND tỉnh. Trong đó, phải đảm bảo Kho dữ liệu điện tử của cá nhân, tổ chức trên Hệ thống thông tin giải quyết thủ tục hành chính tỉnh đáp ứng theo quy định tại Thông tư 01/2023/TT-VPCP ngày 05/4/2023 của Văn phòng Chính phủ

 

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Tháng 12/2023

Kế hoạch thuê Hệ thống thông tin giải quyết thủ tục hành chính tỉnh (giai đoạn 2023 - 2029)

 

16

Cung cấp đầy đủ, đa dạng và nâng cao chất lượng các kênh tương tác, hỗ trợ người dân

Thiết lập đường dây nóng, tổng đài hỗ trợ kỹ thuật và đảm bảo luôn có người trực đường dây nóng, tổng đài hỗ trợ kỹ thuật tối thiểu trong thời gian hành chính để hỗ trợ, giải đáp các câu hỏi của người dùng hoặc hỗ trợ tư vấn trực tuyến tự động (chatbot)

 

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Tháng 11/2023

Thiết lập đường dây nóng, tổng đài hỗ trợ kỹ thuật, hỗ trợ tư vấn trực tuyến tự động (chatbot)

 

17

Khai thác Nền tảng khảo sát, thu thập ý kiến của người dân (VNForm) do Bộ Thông tin và Truyền thông triển khai để khảo sát, thu thập ý kiến của người dân và doanh nghiệp trong quá trình trải nghiệm thủ tục hành chính trên môi trường mạng

Triển khai Nền tảng khảo sát, thu thập ý kiến của người dân (VNForm) do Bộ Thông tin và Truyền thông triển khai để khảo sát, thu thập ý kiến của người dân và doanh nghiệp trong quá trình trải nghiệm thủ tục hành chính trên môi trường mạng

Văn bản triển khai Triển khai Nền tảng khảo sát, thu thập ý kiến của người dân (VNForm) để khảo sát, thu thập ý kiến của người dân và doanh nghiệp trong quá trình trải nghiệm thủ tục hành chính trên môi trường mạng

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Thường xuyên

Văn bản triển khai

 

Hệ thống thông tin giải quyết thủ tục hành chính tỉnh tích hợp và khai thác các biểu khảo sát từ VNForm, thường xuyên nắm bắt ý kiến của người dân, doanh nghiệp để có những biện pháp cải thiện chất lượng phục vụ và cung cấp dịch vụ công

 

Sở Thông tin và Truyền thông

Sở, ban, ngành tỉnh, UBND các huyện, thị xã, thành phố

Thường xuyên

Hệ thống thông tin giải quyết thủ tục hành chính tỉnh tích hợp và khai thác các biểu khảo sát từ VNForm

 

18

Triển khai Hệ thống thông tin giải quyết thủ tục hành chính tỉnh bảo đảm tối thiểu 3 phương thức trao đổi thông tin, trạng thái về hồ sơ điện tử giữa người dân và Cổng dịch vụ công: email, SMS và thông báo trên Cổng dịch vụ công. Xem xét bổ sung phương thức trao đổi thông tin, trạng thái hồ sơ qua các ứng dụng OTT (như Zalo)

Hệ thống thông tin giải quyết thủ tục hành chính tỉnh bảo đảm tối thiểu phương thức trao đổi thông tin, trạng thái về hồ sơ điện tử giữa người dân và Cổng dịch vụ công: email, SMS, Zalo và thông báo trên Cổng dịch vụ công

Văn bản gửi Viễn thông An Giang triển khai bảo đảm tối thiểu phương thức trao đổi thông tin, trạng thái về hồ sơ điện tử giữa người dân và Cổng dịch vụ công: email, SMS, Zalo và thông báo trên Cổng dịch vụ công

Sở Thông tin và Truyền thông

Viễn thông An Giang

Tháng 11/2023

Văn bản triển khai

 

19

Triển khai cung cấp DVCTT trên thiết bị di động bảo đảm thuận tiện cho người dân truy cập, sử dụng

Triển khai cung cấp DVCTT trên thiết bị di động bảo đảm thuận tiện cho người dân truy cập, sử dụng

Văn bản gửi Viễn thông An Giang triển khai cung cấp DVCTT trên thiết bị di động bảo đảm thuận tiện cho người dân truy cập, sử dụng

Sở Thông tin và Truyền thông

Viễn thông An Giang

Tháng 11/2023

Văn bản triển khai

 

20

Hoàn thiện việc kết nối Hệ thống thông tin giải quyết thủ tục hành tỉnh với Hệ thống giám sát, đo lường mức độ cung cấp và sử dụng dịch vụ Chính phủ số của Bộ Thông tin và Truyền thông để tăng cường giám sát, đo lường một cách hiệu quả; thường xuyên đánh giá, kiểm tra, đối soát thông tin và số liệu cho chính xác

Duy trì kết nối Hệ thống thông tin giải quyết thủ tục hành tỉnh với Hệ thống giám sát, đo lường mức độ cung cấp và sử dụng dịch vụ Chính phủ số của Bộ Thông tin và Truyền thông để tăng cường giám sát, đo lường một cách hiệu quả; thường xuyên đánh giá, kiểm tra, đối soát thông tin và số liệu cho chính xác

 

Sở Thông tin và Truyền thông

Viễn thông An Giang

Tháng 11/2023

Duy trì kết nối Hệ thống thông tin giải quyết thủ tục hành tỉnh với Hệ thống giám sát, đo lường mức độ cung cấp và sử dụng dịch vụ Chính phủ số của Bộ Thông tin và Truyền thông

 

Danh mục gồm: 20 nhiệm vụ./.



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