|
|
@@ -28,6 +28,54 @@ $(document).ready(function () {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ function debounce(fn, wait) {
|
|
|
+ var t = null;
|
|
|
+ return function () {
|
|
|
+ var args = arguments;
|
|
|
+ clearTimeout(t);
|
|
|
+ t = setTimeout(function () { fn.apply(null, args); }, wait);
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ $('textarea[id]').each(function () {
|
|
|
+ var $el = $(this);
|
|
|
+ var el = $el[0];
|
|
|
+ var id = $el.attr('id');
|
|
|
+ var key = 'textarea_height_' + id;
|
|
|
+
|
|
|
+ // 1. 页面加载恢复高度
|
|
|
+ var saved = getLocalCache(key);
|
|
|
+ if (saved) {
|
|
|
+ $el.css('height', saved + 'px');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存函数(使用 clientHeight)
|
|
|
+ var save = debounce(function () {
|
|
|
+ try {
|
|
|
+ var h = el.getBoundingClientRect().height; // 真实渲染高度
|
|
|
+ h = Math.round(h); // 防止小数
|
|
|
+ setLocalCache(key, h);
|
|
|
+ } catch (e) {
|
|
|
+ console.warn('保存高度失败', e);
|
|
|
+ }
|
|
|
+ }, 150); // 150ms 防抖
|
|
|
+
|
|
|
+ // 2. 实时监听拖拽高度
|
|
|
+ if (window.ResizeObserver) {
|
|
|
+ var ro = new ResizeObserver(function () {
|
|
|
+ save();
|
|
|
+ });
|
|
|
+ ro.observe(el);
|
|
|
+ } else {
|
|
|
+ // 兼容方案
|
|
|
+ $(window).on('mouseup', function () {
|
|
|
+ save();
|
|
|
+ });
|
|
|
+ // 也监听 blur(防止通过键盘或脚本改变尺寸)
|
|
|
+ $el.on('blur', function () { save(); });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
// 展开历史审核记录
|
|
|
$('td #fold-btn').click(function () {
|
|
|
const type = $(this).data('target')
|