From e34442d2f1fee9bebc3490cafdc0f01280eb8b1e Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 05 十二月 2025 17:10:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
fzzy-igdss-web/src/main/resources/static/snapRecord/snapRecord.js | 278 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 278 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-web/src/main/resources/static/snapRecord/snapRecord.js b/fzzy-igdss-web/src/main/resources/static/snapRecord/snapRecord.js
new file mode 100644
index 0000000..01668a6
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/snapRecord/snapRecord.js
@@ -0,0 +1,278 @@
+var layer;
+var laypage;
+
+$(function () {
+ // 鍒濆鍖栧垎椤�
+ layui.use(['laypage', 'layer'], function () {
+ layer = layui.layer;
+ laypage = layui.laypage;
+
+ // 鍒濆鍖栧垎椤电粍浠�
+ initPagination();
+ });
+
+ // 鍒濆鍖栧浘鐗囬瑙堝姛鑳�
+ initImagePreview();
+});
+
+/**
+ * 鍒濆鍖栧垎椤电粍浠�
+ */
+function initPagination() {
+ laypage.render({
+ elem: 'pagination',
+ count: typeof totalItems !== 'undefined' ? totalItems : 0,
+ limit: typeof pageSize !== 'undefined' ? pageSize : 6,
+ curr: typeof currentPage !== 'undefined' ? currentPage : 1,
+ layout: ['count', 'prev', 'page', 'next', 'refresh', 'skip'],
+ jump: function (obj, first) {
+ if (!first) {
+ searchRecord(obj.curr, obj.limit)
+ }
+ }
+ });
+}
+
+/**
+ * 閲嶆柊鍒濆鍖栧垎椤电粍浠�
+ * @param {number} totalCount - 鎬昏褰曟暟
+ * @param {number} pageSize - 姣忛〉澶у皬
+ * @param {number} currentPage - 褰撳墠椤电爜
+ */
+function reinitPagination(totalCount, pageSize, currentPage) {
+ laypage.render({
+ elem: 'pagination',
+ count: totalCount,
+ limit: pageSize,
+ curr: currentPage,
+ layout: ['count', 'prev', 'page', 'next', 'refresh', 'skip'],
+ jump: function (obj, first) {
+ if (!first) {
+ searchRecord(obj.curr, obj.limit)
+ }
+ }
+ });
+}
+
+/**
+ * 鑾峰彇鎶撴媿璁板綍鏁版嵁
+ * @param {Object} params - 鏌ヨ鍙傛暟瀵硅薄
+ * @param {Function} callback - 鍥炶皟鍑芥暟
+ */
+function fetchSnapRecordData(params, callback) {
+ $.ajax({
+ url: '../../snapRecord/pageData',
+ type: 'POST',
+ dataType: "json",
+ contentType: "application/json;charset=UTF-8",
+ data: JSON.stringify(params),
+ success: function (response) {
+ if (response.code === '0000') {
+ callback(null, response.data);
+ } else {
+ callback(new Error(response.msg || '鏁版嵁鍔犺浇澶辫触'), null);
+ }
+ },
+ error: function (xhr, status, error) {
+ callback(new Error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯'), null);
+ }
+ });
+}
+
+/**
+ * 鏋勫缓鏌ヨ鍙傛暟
+ * @param {number} page - 椤电爜
+ * @param {number} size - 姣忛〉澶у皬
+ * @returns {Object} 鏌ヨ鍙傛暟瀵硅薄
+ */
+function buildQueryParams(page, size) {
+ var params = {
+ page: page,
+ limit: size
+ };
+
+ // 娣诲姞琛ㄥ崟鏌ヨ鏉′欢
+ var form = document.getElementById('snapRecord-form');
+ if (form) {
+ var inputs = form.querySelectorAll('input[name], select[name]');
+ inputs.forEach(function(input) {
+ if (input.value) { // 鍙坊鍔犻潪绌哄��
+ params[input.name] = input.value;
+ }
+ });
+ }
+
+ return params;
+}
+
+/**
+ * 鏇存柊鍥剧墖鐢诲粖鍐呭
+ * @param {Array} records - 鎶撴媿璁板綍鏁版嵁
+ */
+function updateGallery(records) {
+ var container = document.getElementById('gallery-container');
+ if (!container) return;
+
+ // 娓呯┖鐜版湁鍐呭
+ container.innerHTML = '';
+
+ if (!records || records.length === 0) {
+ // 鏄剧ず绌虹姸鎬�
+ container.innerHTML = `
+ <div class="empty-state">
+ <i class="fa-solid fa-camera-slash"></i>
+ <h3>鏆傛棤鎶撴媿璁板綍</h3>
+ <p>褰撳墠娌℃湁鍙睍绀虹殑鎶撴媿璁板綍鏁版嵁</p>
+ </div>
+ `;
+ // 闅愯棌鍒嗛〉
+ $('.pagination-container').hide();
+ return;
+ }
+
+ // 鏄剧ず鍒嗛〉
+ $('.pagination-container').show();
+
+ // 鐢熸垚鍥剧墖鍗$墖
+ var html = '';
+ records.forEach(function(record) {
+ html += `
+ <div class="gallery-item">
+ <img src="/logo-sm.png" alt="${record.id}"
+ data-url="/logo-sm.png" data-id="${record.id}"
+ class="gallery-img" onclick="showSnapRecordPreview(this.getAttribute('data-url'))">
+ <div class="gallery-info">
+ <div class="gallery-header">
+ <h3 class="gallery-title">${record.id}</h3>
+ </div>
+ <div class="gallery-meta">
+ <div class="meta-item">
+ <i class="layui-icon layui-icon-home"></i>
+ <span>${record.deptId || ''}</span>
+ </div>
+ <div class="meta-item">
+ <i class="layui-icon layui-icon-video"></i>
+ <span>${record.cameraId || ''}</span>
+ </div>
+ <div class="meta-item">
+ <i class="layui-icon layui-icon-date"></i>
+ <span>${formatDate(record.snapTime)}</span>
+ </div>
+ </div>
+ <div class="gallery-tags">
+ <span class="tag-person">
+ <i class="layui-icon layui-icon-face-smile"></i>
+ <span>娴嬭瘯鏍囩</span>
+ </span>
+ </div>
+ </div>
+ </div>
+ `;
+ });
+
+ container.innerHTML = html;
+}
+
+/**
+ * 鏍煎紡鍖栨棩鏈�
+ * @param {string|number} date - 鏃ユ湡瀛楃涓叉垨鏃堕棿鎴�
+ */
+function formatDate(date) {
+ if (!date) return '';
+ var d = new Date(date);
+ return d.getFullYear() + '-' +
+ String(d.getMonth() + 1).padStart(2, '0') + '-' +
+ String(d.getDate()).padStart(2, '0') + ' ' +
+ String(d.getHours()).padStart(2, '0') + ':' +
+ String(d.getMinutes()).padStart(2, '0') + ':' +
+ String(d.getSeconds()).padStart(2, '0');
+}
+
+/**
+ * 鍒濆鍖栧浘鐗囬瑙堝姛鑳�
+ */
+function initImagePreview() {
+ var preview = document.getElementById('imgPreview');
+ var previewImg = document.getElementById('previewImg');
+ var closeBtn = document.getElementById('closePreview');
+
+ // 濡傛灉棰勮鍏冪礌涓嶅瓨鍦紝鍒欎笉鍒濆鍖�
+ if (!preview || !previewImg) {
+ return;
+ }
+
+ // 鍏抽棴鎸夐挳鐐瑰嚮浜嬩欢
+ if (closeBtn) {
+ closeBtn.addEventListener('click', closePreview);
+ }
+
+ // 鐐瑰嚮棰勮鍖哄煙澶栧叧闂�
+ preview.addEventListener('click', function (e) {
+ if (e.target === preview) {
+ closePreview();
+ }
+ });
+
+ // 閿洏浜嬩欢鐩戝惉
+ document.addEventListener('keydown', function (e) {
+ if (e.key === 'Escape' && preview.style.display === 'flex') {
+ closePreview();
+ }
+ });
+
+ // 鍏抽棴棰勮鍑芥暟
+ function closePreview() {
+ preview.style.display = 'none';
+ previewImg.src = '';
+ }
+}
+
+/**
+ * 鏄剧ず鍥剧墖棰勮
+ * @param {string} imgUrl 鍥剧墖URL
+ */
+function showSnapRecordPreview(imgUrl) {
+ var preview = document.getElementById('imgPreview');
+ var previewImg = document.getElementById('previewImg');
+
+ if (preview && previewImg) {
+ previewImg.src = imgUrl;
+ preview.style.display = 'flex';
+ }
+}
+
+/**
+ * 璇诲彇杞︾墝鍙�
+ */
+function searchRecord(page , size) {
+ var pageNumber = 1;
+ var sizeNumber = 6;
+ if (pageSize && pageSize > 0){
+ size = pageSize;
+ }
+
+ if (size && size > 0){
+ sizeNumber = size;
+ }
+ if (page && page > 0){
+ pageNumber = page;
+ }
+ // 鏋勯�犳煡璇㈠弬鏁帮紝浠庣涓�椤靛紑濮�
+ var queryParams = buildQueryParams(pageNumber, sizeNumber);
+ // 鏄剧ずloading
+ var loadingIndex = layer.load(1, {shade: [0.1, '#fff']});
+ // 璋冪敤鏁版嵁璇锋眰鏂规硶
+ fetchSnapRecordData(queryParams, function(error, data) {
+ // 鍏抽棴loading
+ layer.close(loadingIndex);
+ if (error) {
+ layer.msg(error.message);
+ return;
+ }
+
+ // 鏇存柊椤甸潰鏁版嵁
+ updateGallery(data.records);
+ // 閲嶆柊鍒濆鍖栧垎椤电粍浠�
+ reinitPagination(data.total, data.size, data.current);
+ });
+}
--
Gitblit v1.9.3