该项目是使用混合代码的PHP项目,用了VUE,使用了sortable对数据进行手动排序,存在的问题是html更新排序后,需要对VUE的数据进行更新,如下是JS片段:

                //排序功能
                let sortable = new Sortable(this.$refs.sortTable, {
                    animation: 150,
                    handle: '.sort-handler',
                    filter: '.sort-filter',
                    draggable: '.sort-item',
                    onUpdate: function (evt) {
                        // console.log(evt);
                        // console.log(evt.newIndex , evt.oldIndex)
                        const {groups} = vm
                        if (evt.newIndex > evt.oldIndex) {
                            groups.splice(evt.newIndex, 0, groups[evt.oldIndex - 1])
                            groups.splice(evt.oldIndex - 1, 1)
                        } else {
                            groups.splice(evt.newIndex - 1, 0, groups[evt.oldIndex - 1])
                            groups.splice(evt.oldIndex, 1)
                        }
                        vm.saved = false
                    }
                });

VS设置

设置双击选择变更的时候选中$字符
第一步:
文件->首选项->设置

第二步:
设置里面搜索 word separators
把图视处的字符中的$字符去掉

设置文件换行符:
第一步:
文件->首选项->设置

第二步:
设置里面搜索 eol
设置成:\n

GIT设置禁用自动换行、禁用文件模式

git config --global core.autocrlf false
git config --global core.filemode false
git config --global core.safecrlf true

这条命令的解读如下:

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"

1.bash:启动一个新的 Bash shell 进程来执行命令。
2.-c:告诉 Bash 执行后跟的字符串命令,而不是执行文件。
3.$(...):命令替换(Command Substitution),表示将括号中的命令执行后返回的结果作为文本插入到外部命令中。在这个例子中,括号中的命令 curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh 会被执行,并且它的输出(即 manager.sh 文件的内容)会被传递给 bash -c 来执行。

命令 curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh 解释如下:

4.curl:用于下载数据的命令行工具,常用来从网络上获取资源。
5.-f:如果 HTTP 请求失败(例如返回 404 错误),curl 会“安静地”退出,不会显示错误信息。
6.-s:使 curl 以“安静模式”运行,不显示进度条和错误信息。
7.-S:与 -s 配合使用,启用在出现错误时显示错误信息。
8.-L:如果服务器返回重定向响应,curl 会跟随重定向。
9.-k:忽略 SSL/TLS 证书验证警告(即使证书不受信任,curl 也会继续进行)。

最后,https://waf-ce.chaitin.cn/release/latest/manager.sh 是指要从该 URL 下载的脚本文件 manager.sh。

总结:
此命令的作用是:

10.使用 curl 从指定 URL (https://waf-ce.chaitin.cn/release/latest/manager.sh) 下载 manager.sh 脚本文件。
11.忽略 SSL/TLS 证书错误(如果有)。
12.将下载的内容传递给 bash,并通过 bash 执行该脚本。

这通常用于自动化安装或更新某个软件,前提是下载的脚本内容是安全且可信的。在执行这类命令时,要确保来源的可信性,避免潜在的安全风险。

        //图片列表预览功能
        $('.j-image-viewer').each(function () {
            let $this = $(this)
            $this.data('viewer', new Viewer(this, {
                url: $this.data('original') || 'data-original',
                title: false
            }))
            //新增删除节点时重新刷新viewer
            const config = {childList: true, subtree: true}
            const observer = new MutationObserver(function (mutations) {
                mutations.forEach(function (mutation) {
                    if (mutation.type === 'childList') {
                        $(mutation.target).data('viewer').destroy();
                        $(mutation.target).data('viewer', new Viewer(mutation.target, {
                            url: $(mutation.target).data('original') || 'data-original',
                            title: false
                        }))
                    }
                });
            })
            observer.observe($this[0], config)
        });

MutationObserver
https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver
MutationObserver 接口提供了监视对 DOM 树所做更改的能力。它被设计为旧的 Mutation Events 功能的替代品,该功能是 DOM3 Events 规范的一部分。

构造函数
MutationObserver()
创建并返回一个新的 MutationObserver 它会在指定的 DOM 发生变化时被调用。

方法
disconnect()
阻止 MutationObserver 实例继续接收的通知,直到再次调用其 observe() 方法,该观察者对象包含的回调函数都不会再被调用。

observe()
配置 MutationObserver 在 DOM 更改匹配给定选项时,通过其回调函数开始接收通知。

takeRecords()
从 MutationObserver 的通知队列中删除所有待处理的通知,并将它们返回到 MutationRecord 对象的新 Array 中。

// 选择需要观察变动的节点
const targetNode = document.getElementById("some-id");

// 观察器的配置(需要观察什么变动)
const config = { attributes: true, childList: true, subtree: true };

// 当观察到变动时执行的回调函数
const callback = function (mutationsList, observer) {
  // Use traditional 'for loops' for IE 11
  for (let mutation of mutationsList) {
    if (mutation.type === "childList") {
      console.log("A child node has been added or removed.");
    } else if (mutation.type === "attributes") {
      console.log("The " + mutation.attributeName + " attribute was modified.");
    }
  }
};

// 创建一个观察器实例并传入回调函数
const observer = new MutationObserver(callback);

// 以上述配置开始观察目标节点
observer.observe(targetNode, config);

// 之后,可停止观察
observer.disconnect();