From 07dcd13877201d17ce3829eed77f0f05c3f9960f Mon Sep 17 00:00:00 2001
From: shaoyongjun <mylomen.shao@freebrio.com>
Date: Sun, 10 Nov 2024 22:57:28 +0800
Subject: [PATCH] to:sync

---
 static/css/myEdit.css                         | 248 ++++++++++++++----
 static/css/my_drop.css                        | 134 ++++++++++
 static/css/reset.css                          | 201 ++++++++++++++
 static/js/common/ctx.js                       |  21 +-
 static/js/common/utils.js                     |  26 ++
 static/js/event/MyEventListener.js            |  16 +-
 .../event/impl/AdjustMyFontSizeEventImpl.js   |  53 ----
 .../impl/DropDownStyleSelectEventImpl.js      | 153 +++++++++++
 static/js/event/impl/MutationObserverImpl.js  |  20 +-
 static/js/event/impl/RSizeEventImpl.js        |  59 +++--
 static/js/index.js                            |   9 +
 static/yanxuelu.html                          | 194 +++++++++-----
 12 files changed, 905 insertions(+), 229 deletions(-)
 create mode 100644 static/css/my_drop.css
 create mode 100644 static/css/reset.css
 delete mode 100644 static/js/event/impl/AdjustMyFontSizeEventImpl.js
 create mode 100644 static/js/event/impl/DropDownStyleSelectEventImpl.js

diff --git a/static/css/myEdit.css b/static/css/myEdit.css
index e075a59..7e6266a 100644
--- a/static/css/myEdit.css
+++ b/static/css/myEdit.css
@@ -15,6 +15,186 @@ body, html {
 
     /*选中可编辑框是 外层隐藏黑线*/
     outline: none;
+
+    margin: 0;
+    padding: 0
+}
+
+ol,
+ul {
+    list-style: none
+}
+
+a {
+    color: #000;
+    text-decoration: none
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    font-size: 100%;
+    font-weight: 400
+}
+
+.fontsize24,
+h1 {
+    font-size: 24px;
+    font-weight: 400;
+}
+
+.fontsize20,
+h2 {
+    font-size: 20px;
+    font-weight: 400;
+}
+
+.fontsize18,
+h3 {
+    font-size: 18px;
+    font-weight: 400;
+}
+
+.fontsize16,
+h4 {
+    font-size: 16px;
+    font-weight: 400;
+}
+
+.fontsize14,
+h5 {
+    font-size: 14px;
+    font-weight: 400;
+}
+
+.fontsize12,
+h6 {
+    font-size: 12px;
+    font-weight: 400;
+}
+
+.fllil li {
+    float: left
+}
+
+.fllir li {
+    float: right
+}
+
+.fl {
+    float: left
+}
+
+.fr {
+    float: right
+}
+
+.radius {
+    border-radius: 100%
+}
+
+.positionCenterLeft {
+    left: 0;
+    right: 0;
+    margin: auto
+}
+
+.positionCenterTop {
+    top: 0;
+    bottom: 0;
+    margin: auto
+}
+
+.positionCenter {
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    margin: auto
+}
+
+.distable {
+    display: table
+}
+
+.distablecell {
+    display: table-cell;
+    vertical-align: middle
+}
+
+.textels {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis
+}
+
+.marginCenter {
+    margin: 0 auto
+}
+
+.t_l {
+    text-align: left
+}
+
+.t_c {
+    text-align: center
+}
+
+.t_r {
+    text-align: right
+}
+
+.unLine {
+    text-decoration: underline
+}
+
+.fiexd {
+    position: fixed
+}
+
+.absolute {
+    position: absolute
+}
+
+.relative {
+    position: relative
+}
+
+.wrapper {
+    clear: both;
+    overflow: hidden
+}
+
+.o-hidden {
+    overflow: hidden
+}
+
+.hidden {
+    display: none
+}
+
+.block {
+    display: block
+}
+
+.lblock {
+    display: inline-block
+}
+
+.clear {
+    clear: both
+}
+
+.pointer {
+    cursor: pointer
+}
+
+img {
+    border: 0;
+    vertical-align: middle
 }
 
 html {
@@ -39,6 +219,7 @@ body {
     /*line-height: 1.5715;*/
     background-color: #fff;
     font-feature-settings: "tnum", "tnum";
+    font-weight: normal;
 
     display: flex;
     flex-direction: column;
@@ -76,7 +257,7 @@ header {
     left: 0;
     /*right: 0;*/
     width: 100%;
-    min-height: 58rem;
+    /*min-height: 58rem;*/
 
     /*background-color: #ffebc3;*/
     /*background-color: deepskyblue;*/
@@ -88,20 +269,6 @@ header {
     /*flex-wrap: nowrap;*/
 }
 
-/*#head_top {*/
-/*    width: 100%;*/
-/*    height: 32rem;*/
-
-/*    border: 1px #f5f5f5 solid;*/
-/*    !*box-shadow: 0 40rem 80rem rgba(31, 35, 41, 0.1);*!*/
-/*    background-color: rgb(255, 255, 255);*/
-/*    !*background-color: blue;*!*/
-
-/*    font-size: 16rem;*/
-/*    display: flex;*/
-/*    justify-content: space-around;*/
-/*    align-items: center;*/
-/*}*/
 
 .fixStylePosition {
     display: block;
@@ -123,33 +290,20 @@ header {
     /*height: 130rem;*/
     padding: 5rem 5rem;
 
+    font-size: 16rem;
+
     display: flex;
     justify-content: center;
     align-items: center;
     /*align-content: center;*/
+    /*flex-direction: column;*/
+    /*align-items: center;*/
+    /*justify-content: center;*/
+    /*align-content: center;*/
 }
 
 .fixStyleInnerSpan {
-    margin: 0 3rem;
-}
-
-#_position_more {
-    position: fixed;
-    z-index: 99;
-}
-
-#_show_more {
-    margin: 1rem 0;
-    font-size: 12rem;
-    position: relative;
-    top: 1em;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-
-    /*border: 1px red solid;*/
-    min-width: 5em;
+    margin: 0 1rem;
 }
 
 main {
@@ -158,7 +312,7 @@ main {
     flex-direction: column;
     align-items: center;
 
-    margin-top: 20rem;
+    margin-top: 30rem;
     /*min-height: 80%;*/
 
     /*border: 1px greenyellow solid;*/
@@ -204,26 +358,6 @@ main {
     /*flex: 1 1 100%;*/
 }
 
-/*#yxl_note p span[data-flag="span_pre"] {*/
-/*    !*border: 1px red solid;*!*/
-/*    !*min-width: 2em;*!*/
-/*    width: fit-content;*/
-/*    height: fit-content;*/
-/*    margin: 0 0;*/
-/*    text-indent: 0;*/
-/*    padding: 0 0;*/
-
-/*    display: inline;*/
-
-/*    justify-content: flex-end;*/
-/*    -moz-user-select: none;*/
-/*    user-select: none;*/
-/*    -webkit-user-select: none;*/
-
-/*    box-sizing: border-box;*/
-/*    white-space: nowrap;*/
-/*}*/
-
 #yxl_note p span[data-flag="span_content"] {
     /*border: 1px deepskyblue solid;*/
     margin: 0 0;
@@ -280,7 +414,7 @@ main {
     background-color: #e9e9eb;
     width: 1px;
     height: 18rem;
-    margin: 0 6rem;
+    margin: 0 3rem;
 }
 
 footer {
diff --git a/static/css/my_drop.css b/static/css/my_drop.css
new file mode 100644
index 0000000..0c43469
--- /dev/null
+++ b/static/css/my_drop.css
@@ -0,0 +1,134 @@
+/*隐藏滑动黑条*/
+::-webkit-scrollbar {
+    display: none;
+}
+
+.my_style_nav {
+    font-size: 14rem;
+
+    display: flex;
+    flex-direction: column;
+    align-items: flex-end;
+
+    padding: 0 0;
+    min-width: 10rem;
+
+    /*border: 1px blue solid;*/
+}
+
+
+.my_style_nav ul {
+    position: fixed;
+    z-index: 99;
+    /*left: 0;*/
+    top: 26rem;
+
+    /*height: 0;*/
+    /*width: 60rem;*/
+    transform: translate(1em, 0rem);
+
+
+    display: none;
+    flex-direction: column;
+    align-items: flex-end;
+    /*justify-content: center;*/
+    /*align-content: center;*/
+
+    /*opacity: 0;*/
+    /*min-height: 70rem;*/
+    max-height: 120rem;
+    /*overflow: hidden;*/
+    overflow: auto;
+
+    padding: 5rem 0;
+    border-radius: 5rem;
+    box-shadow: 0 40rem 80rem rgba(31, 35, 41, 0.1);
+    background-color: rgb(255, 255, 255);
+    border: 1px #f5f5f5 solid;
+}
+
+
+.my_style_nav ul li {
+    float: none;
+    /*过渡代码*/
+    transition: all .3s;
+    background-color: rgb(255, 255, 255);
+    /*opacity: 0;*/
+
+    font-size: 16px;
+    line-height: 1.2;
+    padding: 2rem 5rem;
+    min-width: 55rem;
+    /*border-radius: 5rem;*/
+    /*min-width: 45rem;*/
+
+    /*border: 1px blue solid;*/
+
+    display: flex;
+    /*flex-direction: column;*/
+    /*align-items: center;*/
+    justify-content: flex-end;
+    /*align-content: center;*/
+
+}
+
+.my_style_nav ul li span {
+    min-width: 20rem;
+}
+
+/*.my_style_nav ul li.done::before{*/
+/*    */
+/*}*/
+
+.my_style_nav ul li[data-my-select="true"]::before {
+    content: attr(data-my-select-v);
+    width: 1.2em;
+    transform: rotate(-3deg);
+
+
+    /*content: "";*/
+    /*border-color: black;*/
+    /*border-style: solid;*/
+    /*border-width: 0 0.1em 0.1em 0;*/
+    /*height: 1em;*/
+    /*width: 0.5em;*/
+    /*transform: rotate(50deg);*/
+    /*top: 1em;*/
+    margin-right: 1em;
+}
+
+/*!*奇数项初始往右边偏移100%*!*/
+/*.my_style_nav ul li:nth-of-type(1n) {*/
+/*    transform: translate3d(100%, 0, 0);*/
+/*}*/
+/*!*偶数项初始往左边偏移100%*!*/
+/*.my_style_nav ul li:nth-of-type(2n) {*/
+/*    transform: translate3d(-100%, 0, 0);*/
+/*}*/
+
+/*.my_style_nav:focus ul {*/
+/*    overflow: visible;*/
+/*}*/
+
+
+.my_style_nav span {
+    min-width: 14rem;
+    min-height: 20rem;
+    padding: 0 1rem;
+    /*border: 1px red solid;*/
+}
+
+/*透明度和互动同时进行*/
+.my_style_nav span:hover {
+    /*background: whitesmoke;*/
+    border-radius: 5rem;
+}
+
+/*兄弟 ul*/
+.my_style_nav span:hover + ul {
+    display: flex;
+}
+
+.my_style_nav ul:hover {
+    display: flex;
+}
\ No newline at end of file
diff --git a/static/css/reset.css b/static/css/reset.css
new file mode 100644
index 0000000..c8b09a0
--- /dev/null
+++ b/static/css/reset.css
@@ -0,0 +1,201 @@
+* {
+    margin: 0;
+    padding: 0
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    font-size: 100%;
+    font-weight: 400
+}
+
+ol,
+ul {
+    list-style: none
+}
+
+address,
+caption,
+cite,
+code,
+dfn,
+em,
+strong,
+th,
+var {
+    font-style: normal;
+    font-weight: 400
+}
+
+fieldset,
+img {
+    border: 0
+}
+
+textarea {
+    resize: none
+}
+
+a {
+    color: #000;
+    text-decoration: none
+}
+
+.fontsize24,
+h1 {
+    font-size: 24px
+}
+
+.fontsize20,
+h2 {
+    font-size: 20px
+}
+
+.fontsize18,
+h3 {
+    font-size: 18px
+}
+
+.fontsize16,
+h4 {
+    font-size: 16px
+}
+
+.fontsize14,
+h5 {
+    font-size: 14px
+}
+
+.fontsize12,
+h6 {
+    font-size: 12px
+}
+
+.bold {
+    font-weight: 700
+}
+
+.fllil li {
+    float: left
+}
+
+.fllir li {
+    float: right
+}
+
+.fl {
+    float: left
+}
+
+.fr {
+    float: right
+}
+
+.radius {
+    border-radius: 100%
+}
+
+.positionCenterLeft {
+    left: 0;
+    right: 0;
+    margin: auto
+}
+
+.positionCenterTop {
+    top: 0;
+    bottom: 0;
+    margin: auto
+}
+
+.positionCenter {
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    margin: auto
+}
+
+.distable {
+    display: table
+}
+
+.distablecell {
+    display: table-cell;
+    vertical-align: middle
+}
+
+.textels {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis
+}
+
+.marginCenter {
+    margin: 0 auto
+}
+
+.t_l {
+    text-align: left
+}
+
+.t_c {
+    text-align: center
+}
+
+.t_r {
+    text-align: right
+}
+
+.unLine {
+    text-decoration: underline
+}
+
+.fiexd {
+    position: fixed
+}
+
+.absolute {
+    position: absolute
+}
+
+.relative {
+    position: relative
+}
+
+.wrapper {
+    clear: both;
+    overflow: hidden
+}
+
+.o-hidden {
+    overflow: hidden
+}
+
+.hidden {
+    display: none
+}
+
+.block {
+    display: block
+}
+
+.lblock {
+    display: inline-block
+}
+
+.clear {
+    clear: both
+}
+
+.pointer {
+    cursor: pointer
+}
+
+img {
+    border: 0;
+    vertical-align: middle
+}
\ No newline at end of file
diff --git a/static/js/common/ctx.js b/static/js/common/ctx.js
index f65530a..4ce9233 100644
--- a/static/js/common/ctx.js
+++ b/static/js/common/ctx.js
@@ -9,13 +9,32 @@ define(function (require, exports, module) {
             console.log(("ctx init"));
 
             //可以修改的
-            let editFrontSize = localStorage.getItem('editFrontSize');
+            let editFrontSize = localStorage.getItem('refreshEditFrontSize');
             if (editFrontSize !== undefined && editFrontSize !== null) {
                 this.editFrontSize = editFrontSize;
             } else {
                 this.editFrontSize = 14;
             }
 
+            //refreshPFontSize
+            let refreshPFontSize = localStorage.getItem('refreshPFontSize');
+            if (refreshPFontSize !== undefined && refreshPFontSize !== null) {
+                this.refreshPFontSize = refreshPFontSize;
+            } else {
+                this.refreshPFontSize = {
+                    "font-weight": "normal",
+                    "font-size": "defaultFontSize",
+                };
+            }
+
+            //refreshEditBgColor
+            let refreshEditBgColor = localStorage.getItem('refreshEditBgColor');
+            if (refreshEditBgColor !== undefined && refreshEditBgColor !== null) {
+                this.refreshEditBgColor = refreshEditBgColor;
+            } else {
+                this.refreshEditBgColor = null;
+            }
+
             this.usn = "syjSyj";
             this.docType = 0;
 
diff --git a/static/js/common/utils.js b/static/js/common/utils.js
index b4f8ff9..f5cc22f 100644
--- a/static/js/common/utils.js
+++ b/static/js/common/utils.js
@@ -168,7 +168,33 @@ define(function (require, exports, module) {
             }
             //textContent 性能 准确性更好
             return element.textContent || element.innerText;
+        },
+
+        GetDpr() {
+            //获取屏幕像素密度
+            let dpr = window.devicePixelRatio || 1;//当前设置下 物理像素和虚拟像素的比值
+            if (!dpr) {
+                //devicePixelRatio这个属性是可以获取到设备的dpr
+                let devicePixelRatio = window?.devicePixelRatio;
+                //判断dpr是否为整数
+                let isRegularDpr = devicePixelRatio.toString().match(/^[1-9]\d*$/g)
+                if (isRegularDpr) {
+                    // 对于是整数的dpr,对dpr进行操作
+                    if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
+                        dpr = 3;
+                    } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {
+                        dpr = 2;
+                    } else {
+                        dpr = 1;
+                    }
+                } else {
+                    // 其他设备下,仍旧使用1倍的方案
+                    dpr = 1;
+                }
+            }
+            return dpr;
         }
 
+
     }
 });
\ No newline at end of file
diff --git a/static/js/event/MyEventListener.js b/static/js/event/MyEventListener.js
index 47febf6..ed52374 100644
--- a/static/js/event/MyEventListener.js
+++ b/static/js/event/MyEventListener.js
@@ -74,10 +74,6 @@ define(function (require, exports, module) {
             }
 
 
-            //+/-
-            document.getElementById("my_fontSize+").addEventListener("click", this.AdjustMyFontSize, true)
-            document.getElementById("my_fontSize-").addEventListener("click", this.AdjustMyFontSize, true)
-            // document.getElementById("my_fontSize0").addEventListener("click", this.AdjustMyFontSize, true)
 
             //::before
             //样式事件监听
@@ -88,13 +84,19 @@ define(function (require, exports, module) {
                     myBeforeStyleList[i].addEventListener('click', this.ApplyMyBeforeStyleListener, false);
                 }
             }
+
+            //监听下拉事件
+            let dropStyleList = document.querySelectorAll(".my_style_nav ul");
+            for (let i = 0; i < dropStyleList.length; i++) {
+                dropStyleList[i].addEventListener("click", this.DropDownStyleSelectListener, false);
+            }
         }
 
-        AdjustMyFontSize(e) {
-            const handle = require('./impl/AdjustMyFontSizeEventImpl');
-            handle.handle(e);
+        DropDownStyleSelectListener(e) {
+            require('./impl/DropDownStyleSelectEventImpl').handle(e);
         }
 
+
         Mousedown(e) {
             const handle = require('./impl/MouseDownEventImpl');
             handle.handle(e);
diff --git a/static/js/event/impl/AdjustMyFontSizeEventImpl.js b/static/js/event/impl/AdjustMyFontSizeEventImpl.js
deleted file mode 100644
index 079fa2e..0000000
--- a/static/js/event/impl/AdjustMyFontSizeEventImpl.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-/**
- * 使用样式事件
- */
-define(function (require, exports, module) {
-
-    function handle(e) {
-        const ctx = require("../../common/ctx");
-        const utils = require("../../common/utils");
-
-        let event = utils.ParseEvent(e);
-        let curEl = utils.GetEventTarget(event);
-        let curId = curEl.getAttribute("id");
-        if (curId === "my_fontSize0") {
-            localStorage.clear();
-            location.reload();
-            return
-        }
-
-        console.log("curId : ", curId, " target: ", curEl)
-        if (curId === null) { //防止点击到 path
-            let tmpSvg = curEl.parentElement.closest("span");
-            if (tmpSvg !== undefined && tmpSvg !== null) {
-                curId = tmpSvg.getAttribute("id");
-            }
-        }
-        if (curId === "my_fontSize+") {
-            if (ctx.editFrontSize >= 72) {
-                ctx.editFrontSize = 72;
-            } else {
-                ctx.editFrontSize++;
-            }
-        } else {
-            if (ctx.editFrontSize <= 12) {
-                ctx.editFrontSize = 12
-            } else {
-                ctx.editFrontSize--;
-            }
-        }
-
-        //触发resize
-        let resizeImp = require("./RSizeEventImpl");
-        resizeImp.refreshEditFrontSize();
-
-        //保存在本地
-        localStorage.setItem('editFrontSize', ctx.editFrontSize);
-        //show
-        document.getElementById("cur_my_font_size").textContent = ctx.editFrontSize + "px"
-    }
-
-    //导出
-    exports.handle = handle;
-});
\ No newline at end of file
diff --git a/static/js/event/impl/DropDownStyleSelectEventImpl.js b/static/js/event/impl/DropDownStyleSelectEventImpl.js
new file mode 100644
index 0000000..6098b38
--- /dev/null
+++ b/static/js/event/impl/DropDownStyleSelectEventImpl.js
@@ -0,0 +1,153 @@
+"use strict";
+/**
+ * 拷贝事件
+ */
+define(function (require, exports, module) {
+
+    function handle(e) {
+        const utils = require("../../common/utils");
+        let event = utils.ParseEvent(e);
+        let target = utils.GetEventTarget(event);
+        console.log("target: ", target, target.tagName)
+        if (target.tagName === "SPAN") {
+            target = target.parentElement;
+            console.log("cur_target: ", target, target.tagName)
+        }
+        if (target.tagName === "LI") {
+            let curLi = target;
+            //处理 下拉选择/取消选择
+            let myParent = curLi.parentElement;
+            let dataMySelectV = myParent.getAttribute("data-my-select-v");
+            let liList = myParent.querySelectorAll("li");
+            for (let i = 0; i < liList.length; i++) {
+                let tmpLi = liList[i];
+                if (tmpLi.textContent === curLi.textContent) {
+                    tmpLi.setAttribute("data-my-select", "true");
+                    tmpLi.setAttribute("data-my-select-v", dataMySelectV);
+                    tmpLi.style.setProperty("background-color", "#f0f0f0");
+                    continue;
+                }
+
+                tmpLi.setAttribute("data-my-select", "false");
+                tmpLi.removeAttribute("data-my-select-v");
+                tmpLi.style.removeProperty("background-color");
+            }
+
+
+            //refreshPFontSize ; refreshEditFrontSize ; refreshEditColor ; refreshEditBgColor; other
+            let dataMyStyleType = myParent.getAttribute("data-my-style-type");
+            switch (dataMyStyleType) {
+                case "refreshPFontSize":
+                    refreshPFontSize(target);
+                    break;
+                case "refreshEditFrontSize":
+                    refreshEditFrontSize(target);
+                    break;
+                case "refreshEditColor":
+                    refreshEditColor(target);
+                    break
+                case "refreshEditBgColor":
+                    refreshEditBgColor(target);
+                    break
+                default :
+                    console.log("暂时不支持")
+                    break
+            }
+        }
+    }
+
+    function refreshEditColor(curLi) {
+        const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
+        let select = utils.GetSelection();
+        let curP = select.anchorNode.parentElement.closest("p");
+        let dataMySelectK = curLi.getAttribute("data-my-style-k");
+        let dataMySelectV = curLi.getAttribute("data-my-style-v");
+
+        let tSpan = curLi.parentElement.parentElement.previousElementSibling;
+        console.log("refreshEditColor ", dataMySelectK, dataMySelectV, tSpan, tSpan.getAttribute("data-v"))
+
+        tSpan.setAttribute("data-v", dataMySelectV)
+
+    }
+
+    function refreshEditBgColor(curLi) {
+        const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
+        let select = utils.GetSelection();
+        let curP = select.anchorNode.parentElement.closest("p");
+        let dataMySelectK = curLi.getAttribute("data-my-style-k");
+        let dataMySelectV = curLi.getAttribute("data-my-style-v");
+
+        let tSpan = curLi.parentElement.parentElement.previousElementSibling;
+        console.log("refreshEditBgColor ", dataMySelectK, dataMySelectV, tSpan, tSpan.getAttribute("data-v"))
+
+        tSpan.setAttribute("data-v", dataMySelectV)
+    }
+
+    function refreshPFontSize(curLi) {
+        const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
+        let select = utils.GetSelection();
+        let curP = select.anchorNode.parentElement.closest("p");
+        let dataMySelectK = curLi.getAttribute("data-my-style-k");
+        let dataMySelectV = curLi.getAttribute("data-my-style-v");
+
+        let kList = dataMySelectK.toString().split(",");
+        let vList = dataMySelectV.toString().split(",");
+        let total = kList.length;
+        let num = 0;
+        for (let i = 0; i < kList.length; i++) {
+            if (curP.style.getPropertyValue(kList[i]) === vList[i]) {
+                num++;
+            }
+
+            if (vList[i] === "defaultFontSize") {
+                let myEditFrontSize = document.getElementById("myEdit_main");
+                curP.style.setProperty(kList[i], myEditFrontSize.style.fontSize);
+            } else {
+                curP.style.setProperty(kList[i], vList[i]);
+            }
+
+        }
+
+        //移除
+        if (total === num) {
+            for (let j = 0; j < kList.length; j++) {
+                curP.style.removeProperty(kList[j]);
+            }
+        }
+    }
+
+    function refreshEditFrontSize(curLi) {
+        const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
+        let curStyleV = curLi.getAttribute("data-my-style-v");
+        //设置当前的尺寸
+        ctx.editFrontSize = curStyleV;
+        let curClientW = ctx.getScreenWidth();
+        if (!curClientW) {
+            return
+        }
+        //字体尺寸 https://www.shejidaren.com/zihao-daxiao-sheji-bilv.html
+        //12~72 px 建议最大字体是48px
+        let dpr = utils.GetDpr();
+        let myEditFrontSize = document.getElementById("myEdit_main");
+        if (ctx.isTablet) {
+            myEditFrontSize.style.fontSize = ctx.editFrontSize * dpr + 'px';
+        } else {
+            myEditFrontSize.style.fontSize = ctx.editFrontSize + 'px';
+        }
+
+        console.log("refreshEditFrontSize ", curLi, curStyleV,
+            "\nctx.editFrontSize: ", ctx.editFrontSize)
+
+        //保存在本地 refreshEditFrontSize
+        localStorage.setItem('refreshEditFrontSize', ctx.editFrontSize);
+        //show
+        document.getElementById("cur_my_font_size").textContent = ctx.editFrontSize + "px"
+    }
+
+    //导出
+    exports.handle = handle;
+});
\ No newline at end of file
diff --git a/static/js/event/impl/MutationObserverImpl.js b/static/js/event/impl/MutationObserverImpl.js
index ad0ba2e..6c96eba 100644
--- a/static/js/event/impl/MutationObserverImpl.js
+++ b/static/js/event/impl/MutationObserverImpl.js
@@ -26,7 +26,7 @@ define(function (require, exports, module) {
     }
 
     function other(mutation) {
-        console.log("other ", mutation)
+        // console.log("other ", mutation)
         // console.log("other -> mutation : ", mutation,
         //     // 观察的变动类型(attributes、characterData或者childList)。
         //     "\ntype", mutation.type,
@@ -55,14 +55,14 @@ define(function (require, exports, module) {
         // target.clone()
         if (target.nodeName === "DIV" && mutation.previousSibling !== null) {
             let newParagraph = mutation.previousSibling.nextSibling;
-            console.log(
-                "addNewP target: ", target,
-                "\nnodeType: ", target.nodeType,
-                "\nnodeName: ", target.nodeName,
-                "\ndata: ", target.value,
-                "\n next: ", newParagraph,
-                "\ncurRowNo: ", ctx.getCurRowNo()
-            )
+            // console.log(
+            //     "addNewP target: ", target,
+            //     "\nnodeType: ", target.nodeType,
+            //     "\nnodeName: ", target.nodeName,
+            //     "\ndata: ", target.value,
+            //     "\n next: ", newParagraph,
+            //     "\ncurRowNo: ", ctx.getCurRowNo()
+            // )
             if (newParagraph !== undefined && newParagraph !== null) {
                 newParagraph.id = utils.Uuid(ctx.usn, ctx.docType);
                 let curNo = ctx.incrementNumThenReturn();
@@ -165,7 +165,7 @@ define(function (require, exports, module) {
                         lastSpan = tmpSpan;
                     }
                     //选区调整
-                    console.log("lastSpan : ", lastSpan)
+                    // console.log("lastSpan : ", lastSpan)
                     utils.GetSelection().setPosition(lastSpan, 1);
                 } else {
                     console.log("TODO 暂时不支持")
diff --git a/static/js/event/impl/RSizeEventImpl.js b/static/js/event/impl/RSizeEventImpl.js
index d63b80b..74ca1bc 100644
--- a/static/js/event/impl/RSizeEventImpl.js
+++ b/static/js/event/impl/RSizeEventImpl.js
@@ -24,6 +24,7 @@ define(function (require, exports, module) {
      */
     function refreshRootFrontSize() {
         const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
         let designWidth = ctx.designWith;
         let curDoc = document.documentElement;//当前文档的 root 元素
         let curClientW = ctx.getScreenWidth();
@@ -38,7 +39,7 @@ define(function (require, exports, module) {
             ctx.MyRoot().style.width = "100%";
         }
 
-        let dpr = getDpr();
+        let dpr = utils.GetDpr();
         //set 1rem = curClientW / designWidth (支持响应式)
         let nowFrontSize = '1px';
         if (ctx.isTablet || ctx.isMobile || ctx.isIOS || ctx.isAndroid) {
@@ -47,10 +48,21 @@ define(function (require, exports, module) {
             nowFrontSize = (curClientW / designWidth) + 'px';
         }
 
+        console.log(
+            "\nuserAgent: ", window.navigator.userAgent,
+            "\nisTablet: ", ctx.isTablet,
+            "\nisMobile: ", ctx.isMobile,
+            "\nisIOS: ", ctx.isIOS,
+            "\nisAndroid: ", ctx.isAndroid,
+            "\nwindow.innerWidth: ", window.innerWidth,
+            "\ngetScreenWidth: ", ctx.getScreenWidth(),
+            "curClientW : ", curClientW,
+            "\ndesignWidth: ", designWidth,
+            "\n1rem =  ", nowFrontSize,
+            "\nnowFrontSize: ", nowFrontSize);
         // curDoc.style.fontSize = dpr * nowFrontSize;
-        curDoc.style.fontSize = nowFrontSize;
 
-        console.log("curClientW :", curClientW, "designWidth: ", designWidth, "-> ", nowFrontSize);
+        curDoc.style.fontSize = nowFrontSize;
         // let testDiv = document.getElementById("testDevice");
         // testDiv.innerText += "\ncurClientW: " + curClientW;
         // testDiv.innerText += "\ndesignWith: " + designWidth;
@@ -69,33 +81,10 @@ define(function (require, exports, module) {
 
     }
 
-    function getDpr() {
-        //获取屏幕像素密度
-        let dpr = window.devicePixelRatio || 1;//当前设置下 物理像素和虚拟像素的比值
-        if (!dpr) {
-            //devicePixelRatio这个属性是可以获取到设备的dpr
-            let devicePixelRatio = window?.devicePixelRatio;
-            //判断dpr是否为整数
-            let isRegularDpr = devicePixelRatio.toString().match(/^[1-9]\d*$/g)
-            if (isRegularDpr) {
-                // 对于是整数的dpr,对dpr进行操作
-                if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
-                    dpr = 3;
-                } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {
-                    dpr = 2;
-                } else {
-                    dpr = 1;
-                }
-            } else {
-                // 其他设备下,仍旧使用1倍的方案
-                dpr = 1;
-            }
-        }
-        return dpr;
-    }
 
     function refreshEditFrontSize() {
         const ctx = require("../../common/ctx");
+        const utils = require("../../common/utils");
         let curClientW = ctx.getScreenWidth();
         if (!curClientW) {
             return
@@ -103,7 +92,7 @@ define(function (require, exports, module) {
         //字体尺寸 https://www.shejidaren.com/zihao-daxiao-sheji-bilv.html
         //12~72 px 建议最大字体是48px
 
-        let dpr = getDpr();
+        let dpr = utils.GetDpr();
 
         let myEditFrontSize = document.getElementById("myEdit_main");
         if (ctx.isTablet) {
@@ -113,7 +102,19 @@ define(function (require, exports, module) {
         }
 
         //show
-        document.getElementById("cur_my_font_size").textContent = ctx.editFrontSize + "px"
+        let curMyFontSizeEl = document.getElementById("cur_my_font_size");
+        curMyFontSizeEl.textContent = ctx.editFrontSize + "px";
+        //更新默认值
+        let liList = curMyFontSizeEl.parentElement.nextElementSibling.querySelectorAll("ul li");
+        for (let i = 0; i < liList.length; i++) {
+            let tmpLi = liList[i];
+            if (tmpLi.getAttribute("data-my-style-v") === ctx.editFrontSize) {
+                tmpLi.setAttribute("data-my-select", "true");
+                tmpLi.setAttribute("data-my-select-v", tmpLi.parentElement.getAttribute("data-my-select-v"));
+            } else {
+                tmpLi.removeAttribute("data-my-select");
+            }
+        }
     }
 
 
diff --git a/static/js/index.js b/static/js/index.js
index 8fd3bc5..ec33028 100644
--- a/static/js/index.js
+++ b/static/js/index.js
@@ -1,5 +1,14 @@
 "use strict";
 define(function (require) {
+    const isDebug = false;  // 控制是否屏蔽全局console.log 日志;isDebug设为false即可屏蔽
+    console.log = (function (oldLogFunc) {
+        return function () {
+            if (isDebug) {
+                oldLogFunc.apply(this, arguments);
+            }
+        }
+    })(console.log);
+
     const ctx = require('./common/ctx');
     const eventListener = require('./event/MyEventListener')
     const utils = require('./common/utils')
diff --git a/static/yanxuelu.html b/static/yanxuelu.html
index 6216068..7cedc79 100644
--- a/static/yanxuelu.html
+++ b/static/yanxuelu.html
@@ -11,7 +11,9 @@
     <!--          content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">-->
     <link rel="stylesheet" type="text/css" href="./css/normalize.css">
     <link rel="stylesheet" type="text/css" href="./css/myEdit.css">
-    <script src="./js/lib/sea.js"></script>
+    <link rel="stylesheet" type="text/css" href="./css/my_drop.css">
+    <!--    <script src="./js/lib/sea.js"></script>-->
+    <script src="https://www.mylomen.com/js/lib/sea.js"></script>
     <script>
         seajs.config({
             // base:'path',
@@ -32,56 +34,43 @@
 <body>
 
     <header>
-        <!--  顶部  -->
-        <!--    <div id="head_top" style="font-size: 12rem">-->
-        <!--        <div>测试</div>-->
-        <!--        <div></div>-->
-        <!--        <div>-->
-        <!--            <span><button id="my_fontSize0">cls</button></span>-->
-        <!--            <span>|</span>-->
-        <!--            <span><button id="my_fontSize+">+</button></span>-->
-        <!--            <span>|</span>-->
-        <!--            <span><button id="my_fontSize-">-</button></span>-->
-        <!--        </div>-->
-        <!--    </div>-->
         <div class="fixStylePosition" id="_style_utils">
             <div class="fixStyleOut">
-                <div style="display: flex;margin: 0 0; ">
-                    <div style="display: flex; margin: 0 0;  align-items: center">
-                        <!--                    <div>-->
-                        <!--                        <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none"-->
-                        <!--                             xmlns="http://www.w3.org/2000/svg" data-icon="TextOutlined">-->
-                        <!--                            <path-->
-                        <!--                                    d="M2 3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0V4h-7v16h3a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h3V4H4v3a1 1 0 1 1-2 0V3Z"-->
-                        <!--                                    fill="currentColor"></path>-->
-                        <!--                        </svg>-->
-                        <!--                    </div>-->
-                        <span id="my_fontSize-" style=" transform: rotate(90deg); align-content: center;
-                            border-radius: 3rem;
-                            background-color:lightgrey;">
-                            <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none"
-                                xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">
-                                <path
-                                    d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"
-                                    fill="currentColor"></path>
-                            </svg>
-                        </span>
-                        <div style="margin: 0 2rem">
-                            <span id="cur_my_font_size" style="font-size: 14px">14px</span>
-                        </div>
-                        <span id="my_fontSize+" style=" transform: rotate(-90deg); align-content: center;
-                            margin-left: 2rem;
-                            border-radius: 3rem;
-                            background-color: lightgrey;">
-                            <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none"
+
+                <!--       字体        -->
+                <div style="display: flex;">
+                    <span>
+                        <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none"
+                            xmlns="http://www.w3.org/2000/svg" data-icon="TextOutlined">
+                            <path
+                                d="M2 3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0V4h-7v16h3a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h3V4H4v3a1 1 0 1 1-2 0V3Z"
+                                fill="currentColor"></path>
+                        </svg>
+                    </span>
+                    <div class="my_style_nav">
+                        <span>
+                            <svg width="8rem" height="8rem" viewBox="0 0 24 24" fill="none"
                                 xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">
                                 <path
                                     d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"
                                     fill="currentColor"></path>
                             </svg>
                         </span>
+                        <ul class="menu fllil" data-my-select-v="✔" data-my-style-type="refreshPFontSize">
+                            <li data-my-select="true" data-my-select-v="✔" data-my-style-k="font-weight,font-size"
+                                data-my-style-v="normal,defaultFontSize"><span>正文</span>
+                            </li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,24px"><span>H1</span></li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,20px"><span>H2</span></li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,18px"><span>H3</span></li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,16px"><span>H4</span></li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,14px"><span>H5</span></li>
+                            <li data-my-style-k="font-weight,font-size" data-my-style-v="500,12px"><span>H6</span></li>
+                        </ul>
                     </div>
                 </div>
+
+
                 <div class="my-divider-item"></div>
 
                 <div style="display: flex;">
@@ -93,14 +82,6 @@
                                 fill="currentColor"></path>
                         </svg>
                     </span>
-                    <!--                <div>-->
-                    <!--                    <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none"-->
-                    <!--                         xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">-->
-                    <!--                        <path-->
-                    <!--                                d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"-->
-                    <!--                                fill="currentColor"></path>-->
-                    <!--                    </svg>-->
-                    <!--                </div>-->
                 </div>
                 <div style="width: 10rem"></div>
                 <div>
@@ -152,7 +133,8 @@
                 </div>
 
                 <div class="my-divider-item"></div>
-                <div>
+
+                <div style="display: flex; ">
                     <span class="fixStyleInnerSpan" data-k="color" data-v="blue">
                         <svg width="10rem" height="10rem" viewBox="0 0 240 240" version="1.1"
                             xmlns="http://www.w3.org/2000/svg">
@@ -173,6 +155,34 @@
                             </g>
                         </svg>
                     </span>
+
+                    <span class="my_style_nav">
+                        <span>
+                            <svg width="8rem" height="8rem" viewBox="0 0 24 24" fill="none"
+                                xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">
+                                <path
+                                    d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"
+                                    fill="currentColor">
+                                </path>
+                            </svg>
+                        </span>
+                        <ul class="menu fllil" data-my-select-v="✔" data-my-style-type="refreshEditColor">
+                            <li data-my-select="true" data-my-select-v="✔" data-my-style-k="color"
+                                data-my-style-v="white">
+                                <span>无色</span>
+                            </li>
+                            <li data-my-style-k="color" data-my-style-v="red"><span style="color: red">红色</span></li>
+                            <li data-my-style-k="color" data-my-style-v="#edce02"><span style="color: #edce02">黄色</span>
+                            </li>
+                            <li data-my-style-k="color" data-my-style-v="blue"><span style="color: blue">蓝色</span></li>
+                            <li data-my-style-k="color" data-my-style-v="black"><span style="color: black">黑色</span>
+                            </li>
+                            <li data-my-style-k="color" data-my-style-v="gray"><span style="color: gray">灰色</span></li>
+                        </ul>
+                    </span>
+                </div>
+
+                <div style="display: flex;">
                     <span class="fixStyleInnerSpan" data-k="background-color" data-v="yellow">
                         <svg width="10rem" height="10rem" viewBox="0 0 256 256" version="1.1"
                             xmlns="http://www.w3.org/2000/svg">
@@ -199,10 +209,64 @@
                             </g>
                         </svg>
                     </span>
+
+                    <span class="my_style_nav">
+                        <span>
+                            <svg width="8rem" height="8rem" viewBox="0 0 24 24" fill="none"
+                                xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">
+                                <path
+                                    d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"
+                                    fill="currentColor"></path>
+                            </svg>
+                        </span>
+                        <ul class="menu fllil" data-my-select-v="✔" data-my-style-type="refreshEditBgColor">
+                            <li data-my-select="true" data-my-select-v="✔" data-my-style-k="background-color"
+                                data-my-style-v="transparent">
+                                <span>空白</span>
+                            </li>
+                            <li data-my-style-k="background-color" data-my-style-v="lightcoral"><span
+                                    style="color: lightcoral">浅红</span></li>
+                            <li data-my-style-k="background-color" data-my-style-v="#fff897"><span
+                                    style="color: #fff897">浅黄</span>
+                            </li>
+                            <li data-my-style-k="background-color" data-my-style-v="lightblue"><span
+                                    style="color: lightblue">浅蓝</span></li>
+                        </ul>
+                    </span>
                 </div>
 
                 <div class="my-divider-item"></div>
-                <div style="display: flex; flex-direction:column; align-items: flex-end">
+                <div style="display: flex;margin: 0 0; ">
+                    <span>
+                        <span id="cur_my_font_size" style="font-size: 14px">14px</span>
+                    </span>
+
+                    <div class="my_style_nav">
+                        <span>
+                            <svg width="8rem" height="8rem" viewBox="0 0 24 24" fill="none"
+                                xmlns="http://www.w3.org/2000/svg" data-icon="DownBoldOutlined">
+                                <path
+                                    d="m3.414 7.086-.707.707a1 1 0 0 0 0 1.414l7.778 7.778a2 2 0 0 0 2.829 0l7.778-7.778a1 1 0 0 0 0-1.414l-.707-.707a1 1 0 0 0-1.415 0l-7.07 7.07-7.072-7.07a1 1 0 0 0-1.414 0Z"
+                                    fill="currentColor"></path>
+                            </svg>
+                        </span>
+
+                        <ul class="menu fllil" data-my-select-v="✔" data-my-style-type="refreshEditFrontSize">
+                            <li data-my-style-k="font-size" data-my-style-v="12"><span>12px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="14"><span>14px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="16"><span>16px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="18"><span>18px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="20"><span>21px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="24"><span>24px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="36"><span>36px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="48"><span>48px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="60"><span>60px</span></li>
+                            <li data-my-style-k="font-size" data-my-style-v="72"><span>72px</span></li>
+                        </ul>
+                    </div>
+                </div>
+
+                <div>
                     <span>
                         <svg width="10rem" height="10rem" viewBox="0 0 18 18" fill="none"
                             xmlns="http://www.w3.org/2000/svg">
@@ -210,28 +274,14 @@
                                 d="M4.2 10.4A1.19 1.19 0 013 9.2 1.19 1.19 0 014.2 8c.23 0 .43.06.6.17.2.1.33.24.44.43.11.18.17.38.17.6 0 .23-.06.43-.17.6-.1.2-.25.34-.43.45-.18.1-.38.16-.6.16zm4.72 0a1.19 1.19 0 01-1.2-1.2A1.19 1.19 0 018.92 8c.22 0 .42.06.6.17.19.1.33.24.44.43.1.18.16.38.16.6a1.22 1.22 0 01-.6 1.04c-.18.11-.38.17-.6.17zm4.72 0a1.19 1.19 0 01-1.2-1.2 1.19 1.19 0 011.2-1.2c.22 0 .42.06.6.17.18.1.33.24.44.43.11.18.16.38.16.6 0 .23-.05.43-.16.6a1.18 1.18 0 01-1.04.6z"
                                 fill="#535353"></path>
                         </svg>
-
-
+                        <!--                        <ul class="menu fllil" data-my-select-v="✔" data-my-style-type="other">-->
+                        <!--                            <li data-my-select="true" data-my-select-v="✔">h1</li>-->
+                        <!--                            <li>h2</li>-->
+                        <!--                            <li>h3</li>-->
+                        <!--                            <li>h4</li>-->
+                        <!--                            <li>h5</li>-->
+                        <!--                        </ul>-->
                     </span>
-
-                    <div id="_position_more">
-                        <div id="_show_more">
-                            <!--                        <div id="my_fontSize0">-->
-                            <!--                            cls-->
-                            <!--                        </div>-->
-                            <!--                        <div>-->
-                            <!--                            <span id="my_fontSize-" style="border: 1px red solid; min-width: 2em">-</span>-->
-                            <!--                            <span style="border: 1px red solid;">14px</span>-->
-                            <!--                            <span id="my_fontSize+"  style="border: 1px red solid; min-width: 6rem">+</span>-->
-                            <!--                        </div>-->
-                            <!--                        <div style="display: flex;align-content:space-between;">-->
-                            <!--                            <span>-->
-                            <!--                             <svg width="10rem" height="10rem" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="PrinterOutlined"><path d="M18.788 10.74a.97.97 0 1 1-1.94 0 .97.97 0 0 1 1.94 0Z" fill="currentColor"></path><path d="M6.5 1.333h11c1.15 0 1.97.967 1.967 1.967v3.367h.29a2.91 2.91 0 0 1 2.91 2.909v5.814c0 1.11-.976 1.943-1.937 1.943h-1.942v3.394c0 1.07-.956 1.94-1.94 1.94H7.153c-1.063 0-1.94-.942-1.94-1.94v-3.394h-1.94c-.932 0-1.942-.833-1.938-1.94V9.577a2.91 2.91 0 0 1 2.909-2.91h.29V3.3c0-1.05.867-1.97 1.967-1.967Zm11.027 5.334V3.273H6.473v3.394h11.054ZM5.212 15.394v-.485c0-1.088.945-1.94 1.94-1.94h9.697c1.077 0 1.94.973 1.94 1.94v.485h1.938V9.576a.97.97 0 0 0-.97-.97H4.244a.97.97 0 0 0-.97.97v5.818h1.94Zm1.94-.485v5.818h9.697V14.91H7.152Z" fill="currentColor"></path></svg>-->
-                            <!--                            </span>-->
-                            <!--                            <span>打印</span>-->
-                            <!--                        </div>-->
-                        </div>
-                    </div>
                 </div>
             </div>
         </div>