????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/sohoa/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/sohoa/duyethoso.eta |
<% layout('../layouts/userLayout.eta') %> <style> #fileTable .dropdown.show .btn { background-color: #467fcf !important; } #fileTable .dropdown.show .caret { transform: rotate(-90deg); } </style> <div class="content"> <div class="page-inner"> <div class="page-header"> <h4 class="page-title">Duyệt hồ sơ</h4> <ul class="breadcrumbs"> <li class="nav-home"><a href="/"><i class="flaticon-home"></i></a></li> <li class="separator"><i class="flaticon-right-arrow"></i></li> <li class="nav-item"><a href="/main">Giao diện chính</a></li> <li class="separator"><i class="flaticon-right-arrow"></i></li> <li class="nav-item">Duyệt hồ sơ</a></li> </ul> </div> <div class="row"> <div class="col"> <div class="card"> <div class="card-body table-responsive"> <table id="fileTable" role="table" class="table table-bordered table-striped table-sm w-100"> <thead role="rowgroup"> <tr role="row"> <!-- <th style="width: 10px"></th> --> <th style="max-width: 150px">Phông</th> <th style="width: 10px">Mục lục</th> <th style="width: 10px">Hộp</th> <th style="width: 20px">Hồ sơ</th> <th style="min-width: 250px">Tiêu đề</th> <th style="max-width: 100px">Thời gian</th> <th style="width: 10px">Số trang</th> <th style="width: 10px">Số tờ</th> <th style="max-width: 100px">Người nộp</th> <th class="control" style="max-width: 50px"></th> </tr> </thead> </table> </div> </div> </div> </div> </div> </div> <!--Modal sửa hồ sơ--> <%~ includeFile('../partials/editFile.eta') %> <!-- Modal sửa văn bản --> <%~ includeFile('../partials/editDoc.eta') %> <!--Modal xem chi tiết văn bản trong hồ sơ--> <div id="detail-win"> <table id="detailTable" class="table table-bordered table-striped w-100"> <thead> <tr> <!-- <th style="width: 10px"></th> --> <th style="width: 10px">STT</th> <th>Số và ký hiệu</th> <th style="min-width: 300px">Trích yếu</th> <th>Ngày ban hành</th> <th style="width: 10px">Số trang</th> <th style="width: 10px">Số tờ</th> <th style="width: 10px">Tờ số</th> <th>Chức năng</th> </tr> </thead> </table> </div> <!-- Popup lịch sử văn bản --> <div id="history-popup" class="p-3"> <h4 class="text-primary">Lịch sử số hóa hồ sơ</h4> <div class="detail"></div> </div> <script type="text/javascript" src="/js/sohoa/suahoso.js"></script> <script type="text/javascript" src="/js/sign/base64.js"></script> <script type="text/javascript" src="/js/sign/vgcaplugin.js"></script> <script type="text/javascript" src="/js/sign/sign.js"></script> <script type="text/javascript"> $(function () { //Danh sách hồ sơ var fileTable = $("#fileTable").DataTable({ ajax: { url: "?list=true", dataType: "json", data: function (data) { delete data.columns; } }, // select: { style: 'single' }, processing: true, serverSide: true, ordering: false, language: { url: "/js/plugin/datatables/Vietnamese.json" }, columns: [ { data: "FondCode", className: 'text-justify', render: function (data, type, row) { return `${row.FondName}`; } }, { data: "FileCatalog", className: 'text-center', render: function (data, type, row) { return `${data.toString().padStart(2, '0')}`; } }, { data: "BoxNumber", width: "10px", render: function (data, type, row) { return `${data.toString().padStart(2, '0')}`; } }, { data: "FileNumber", width: "10px" }, { data: "Title" }, { data: "StartDate", className: 'text-center', render: function (data, type, row) { var date = []; if (data) date.push(moment(data).format("DD/MM/YYYY")); if (row.EndDate) date.push(moment(row.EndDate).format("DD/MM/YYYY")); return date.join('\n'); } }, { data: "PageNumber" }, { data: "SheetNumber" }, { data: 'nameEdit' }, { data: 'countPerform', orderable: false, className: 'text-center', render: function (data, type, row) { return `<div class="dropdown"> <button class="btn btn-xs btn-default" data-toggle="dropdown"> <span class="btn-label"><i class="fas fa-bars"></i></span> <span class="caret"></span> </button> <div class="dropdown-menu border border-dark" style="background-color: #f9fbfd"> <a href="javascript:void(0)" class="dropdown-item edit-btn"><i class="fas fa-edit fa-lg mr-3 text-warning"></i> Sửa hồ sơ</a> <a href="javascript:void(0)" class="dropdown-item delete-btn"><i class="fas fa-trash-alt fa-lg mr-3 text-danger"></i> Xóa hồ sơ</a> <a href="javascript:void(0)" class="dropdown-item list-btn"><i class="fas fa-list-alt fa-lg mr-3 text-primary"></i> Xem danh sách văn bản</a> <div class="dropdown-divider"></div> <a href="javascript:void(0)" class="dropdown-item note-btn"><i class="fas fa-history fa-lg mr-3 text-dark"></i> Lịch sử số hóa</a> <a href="javascript:void(0)" class="dropdown-item accept-btn"><i class="fas fa-thumbs-up fa-lg mr-3 text-success"></i> Duyệt hồ sơ</a> <a href="javascript:void(0)" class="dropdown-item sendback-btn"><i class="fas fa-reply fa-lg mr-3 text-danger"></i> Trả lại hồ sơ</a> </div> </div>`; } } ] }); $('#detail-win').kendoWindow({ width: '90%', position: { top: 0, left: '5%' }, title: 'Danh sách văn bản trong hồ sơ', animation: { open: { duration: 500 }, close: { duration: 500 } }, modal: true, visible: false, actions: ['Pin', 'Minimize', 'Maximize', 'Close'], close: function (e) { fileTable.ajax.reload(null, false); } }); $('#detailTable').on('xhr.dt', function (e, settings, json, xhr) { if (json['data'] && json['data'].length) $('#detail-win').data('kendoWindow').open(); }); var detailTable = $('#detailTable').DataTable({ ajax: { url: "/sohoa/vanban", dataType: "json", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }, language: { url: "/js/plugin/datatables/Vietnamese.json" }, ordering: false, columns: [ { data: "DocOrdinal" }, { data: null, render: function (data, type, row) { var code = []; if (row.CodeNumber) code.push(row.CodeNumber); if (row.CodeNotation) code.push(row.CodeNotation); return code.join("/"); } }, { data: "Subject" }, { data: "IssuedDate", render: function (data, type, row) { return data ? moment(data).format("DD/MM/YYYY") : ""; } }, { data: "PageAmount" }, { data: "SheetAmount" }, { data: "SheetIndex" }, { data: "UUID", className: 'text-center', orderable: false, render: function (data, type, row) { return `<div class="dropdown"> <button class="btn btn-xs btn-default" data-toggle="dropdown"> <span class="btn-label"><i class="fas fa-bars"></i></span> <span class="caret"></span> </button> <div class="dropdown-menu border border-dark" style="background-color: #f9fbfd"> <a href="javascript:void(0)" class="dropdown-item edit-btn"><i class="fas fa-edit fa-lg mr-3 text-warning"></i> Sửa văn bản</a> <a href="javascript:void(0)" class="dropdown-item delete-btn"><i class="fas fa-trash-alt fa-lg mr-3 text-danger"></i> Xóa văn bản</a> <a href="javascript:void(0)" class="dropdown-item preview-btn"><i class="fas fa-eye fa-lg mr-3 text-success"></i> Xem trước</a> <a href="javascript:void(0)" class="dropdown-item sign-btn"><i class="fas fa-file-signature fa-lg mr-3 text-secondary"></i> Ký số</a> <a href="/sohoa/vanban/${data}?download=true" class="dropdown-item"><i class="fas fa-download fa-lg mr-3 text-primary"></i> Tải xuống</a> </div> </div>` } } ] }); $("#fileTable").on("click", ".list-btn", function (e) { var $tr = $(this).closest('tr'); var fileId = fileTable.row($tr).data().UUID; detailTable.ajax.url(`/sohoa/vanban?fileId=${fileId}`).load(); }); //Bảng chi tiết văn bản $("#detailTable").on("click", ".preview-btn", function (e) { var docId = $("#detailTable").DataTable().row($(this).closest("tr")).data().UUID; $("<div/>").kendoDialog({ width: '70%', height: '100%', title: 'Xem trước nội dung văn bản', content: `<iframe class="w-100 h-100" src="/viewer/${window.encodePath(`/sohoa/vanban/${docId}`)}"></iframe>`, modal: true, closable: true, buttonLayout: 'normal', animation: { open: { duration: 500 }, close: { duration: 500 } }, actions: [{ text: 'Đóng lại', primary: true }], open: function () { $('#detail-win').data('kendoWindow').close() }, close: function (e) { $('#detail-win').data('kendoWindow').open(); e.sender.destroy() } }).data('kendoDialog').open(); }); $("#detailTable").on("click", ".delete-btn", function (e) { var data = $("#detailTable").DataTable().row($(this).closest("tr")).data(); $("<div/>").kendoDialog({ title: 'Xác nhận', content: 'Bạn có chắc muốn xóa văn bản trên?', modal: true, closable: true, buttonLayout: 'normal', animation: { open: { duration: 500 }, close: { duration: 500 } }, actions: [ { text: 'Đồng ý xóa', primary: true, action: function (e) { $.ajax({ url: "/sohoa/vanban", type: "DELETE", data: { id: data.UUID }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (data, textStatus, jqXHR) { $('<span/>').kendoNotification({ position: { top: 0, left: '50%' } }).data('kendoNotification').show("Đã xóa thành công văn bản", 'info'); $("#detailTable").DataTable().ajax.reload(null, false); }, error: function (jqXHR, textStatus, err) { $('<span/>').kendoNotification({ position: { top: 20, left: '50%' } }).data('kendoNotification').show(jqXHR.responseText, 'error'); } }); } }, { text: 'Không xóa' } ], open: function () { $('#detail-win').data('kendoWindow').close() }, close: function (e) { $('#detail-win').data('kendoWindow').open(); e.sender.destroy() } }).data('kendoDialog').open(); }); $('#edit-doc-modal').on('show.bs.modal', function (e) { if (this == e.target) $('#detail-win').data('kendoWindow').close(); }); $('#edit-doc-modal').on('hide.bs.modal', function (e) { if (this == e.target) $('#detail-win').data('kendoWindow').open(); }); // Xem lịch sử số hóa var historyPopup = $('#history-popup').kendoPopup().data('kendoPopup'); $("#fileTable").on("click", ".note-btn", function (e) { var $tr = $(this).closest("tr"); var fileId = fileTable.row($tr).data().UUID; $.ajax({ url: '/sohoa/hoso/note/' + fileId, method: 'GET', dataType: 'json', success: function (data, text, jqXHR) { var content = ''; for (var i = 0; i < data.length; i++) { var job = ''; if (data[i].Job == 0) job = 'nộp'; else if (data[i].Job == 1 && data[i].State == 0) job = 'trả lại'; else if (data[i].Job == 1 && data[i].State == 2) job = 'duyệt'; if (job) content += `<span class="text-muted">+ Ngày ${moment(data[i].Date).format("DD/MM/YYYY")}: [${data[i].FullName} ${job}] ${data[i]['Note'] ? ' - ' + data[i]['Note'] : ""}</p>`; } $('#history-popup .detail').html(content); historyPopup.setOptions({ anchor: $tr.find('.dropdown') }); historyPopup.open(); }, error: function (jqXHR, text, err) { } }) }) //Duyệt hồ sơ $("#fileTable").on("click", ".accept-btn", function (e) { var fileId = fileTable.row($(this).closest("tr")).data().UUID; Swal.fire({ title: 'Duyệt hồ sơ', text: 'Ghi chú duyệt hồ sơ', input: 'text', inputPlaceholder: 'Ghi chú', showCancelButton: true, confirmButtonColor: '#467fcf', cancelButtonColor: '#cd201f', confirmButtonText: 'Duyệt', cancelButtonText: 'Hủy' }).then(function (result) { if (typeof result['value'] != 'undefined') { $.ajax({ url: '', method: "POST", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { UUID: fileId, kind: 2, error: result['value'] }, success: function (data, text, jqXHR) { fileTable.ajax.reload(null, false) }, error: function (jqXHR, text, err) { Swal.fire('Lỗi', jqXHR.responseText, 'error') } }) } }) }); //Trả hồ sơ $("#fileTable").on("click", ".sendback-btn", function (e) { var fileId = fileTable.row($(this).closest("tr")).data().UUID; Swal.fire({ title: 'Trả lại hồ sơ', text: 'Lý do trả lại hồ sơ', input: 'text', inputPlaceholder: 'Lý do trả hồ sơ', showCancelButton: true, confirmButtonColor: '#4b9500', cancelButtonColor: '#cd201f', confirmButtonText: 'Trả lại', cancelButtonText: 'Hủy', preConfirm: function (input) { if (input) { $.ajax({ url: '', method: "POST", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { UUID: fileId, kind: 0, error: input }, success: function (data, text, jqXHR) { return data }, error: function (jqXHR, text, err) { Swal.fire('Lỗi', jqXHR.responseText, 'error') } }) } else { Swal.showValidationMessage('Vui lòng nhập lý do trả lại') } } }).then(function (result) { if (result['value']) fileTable.ajax.reload(null, false) }) }); // Ký số $('#detailTable').on('click', '.sign-btn', function (e) { var docId = $("#detailTable").DataTable().row($(this).closest("tr")).data().UUID; var sessionId = $('meta[name="sid"]').attr('content'); var filename = `${location.origin}/kyso/${docId}`; var metadata = [ { Key: '_csrf', Value: $('meta[name="csrf-token"]').attr('content') }, { Key: 'docId', Value: docId } ]; exc_sign_file('', filename, metadata); }); }); </script>