From 5c8d603fc41e9c214cb3dca84a147b39f2f6ce06 Mon Sep 17 00:00:00 2001 From: lrz <1414556676@qq.com> Date: Wed, 23 Sep 2020 17:49:06 +0800 Subject: [PATCH] feat(new style): new style change icon, toolbar /sheetbar change style --- README-zh.md | 6 +- README.md | 6 +- docs/guide/README.md | 8 +- docs/guide/config.md | 6 + docs/zh/guide/README.md | 8 +- docs/zh/guide/api.md | 25 +- docs/zh/guide/config.md | 7 + gulpfile.js | 11 +- src/assets/iconfont/demo.css | 539 +++++++ src/assets/iconfont/demo_index.html | 2148 +++++++++++++++++++++++++++ src/assets/iconfont/iconfont.css | 361 +++++ src/assets/iconfont/iconfont.eot | Bin 0 -> 17856 bytes src/assets/iconfont/iconfont.js | 1 + src/assets/iconfont/iconfont.json | 611 ++++++++ src/assets/iconfont/iconfont.svg | 284 ++++ src/assets/iconfont/iconfont.ttf | Bin 0 -> 17688 bytes src/assets/iconfont/iconfont.woff | Bin 0 -> 8968 bytes src/assets/iconfont/iconfont.woff2 | Bin 0 -> 7312 bytes src/controllers/constant.js | 392 +++-- src/controllers/freezen.js | 73 +- src/controllers/handler.js | 19 +- src/controllers/menuButton.js | 134 +- src/controllers/resize.js | 197 ++- src/css/iconCustom.css | 66 + src/css/luckysheet-core.css | 186 ++- src/global/api.js | 30 + src/global/createdom.js | 4 + src/index.html | 1 + src/locale/en.js | 3 +- src/locale/zh.js | 1 + src/store/index.js | 10 +- src/utils/util.js | 8 +- 32 files changed, 4838 insertions(+), 307 deletions(-) create mode 100644 src/assets/iconfont/demo.css create mode 100644 src/assets/iconfont/demo_index.html create mode 100644 src/assets/iconfont/iconfont.css create mode 100644 src/assets/iconfont/iconfont.eot create mode 100644 src/assets/iconfont/iconfont.js create mode 100644 src/assets/iconfont/iconfont.json create mode 100644 src/assets/iconfont/iconfont.svg create mode 100644 src/assets/iconfont/iconfont.ttf create mode 100644 src/assets/iconfont/iconfont.woff create mode 100644 src/assets/iconfont/iconfont.woff2 create mode 100644 src/css/iconCustom.css diff --git a/README-zh.md b/README-zh.md index 4803cc8..02f4c65 100644 --- a/README-zh.md +++ b/README-zh.md @@ -91,12 +91,12 @@ + **截图** (把选区的内容进行截图展示) + **复制到其他格式** (右键菜单的"复制为", 支持复制为json、array、对角线数据、去重等) + **EXCEL,CSV,TXT 导入及导出** (专为Luckysheet打造的导入导出插件,支持密码、水印、公式等的本地导入导出) ++ **插入图片和svg形状** (支持JPG,PNG,SVG,Pen tool的插入、修改和删除,并且随表格的变动而产生变化) ++ **数据验证(表单功能)** (支持Checkbox, drop-down list, datePicker) ++ **单元格内多样式** (Alt+Enter单元格内换行、上标、下标、单元格内科定义每个文字的不同样式) ### ⏱️未来开发计划 -+ **插入图表和svg形状** (支持JPG,PNG,SVG,Pen tool的插入、修改和删除,并且随表格的变动而产生变化) -+ **数据验证(表单功能)** (支持Checkbox, drop-down list, datePicker) + **打印及设置** (像excel一样进行打印设置,并导出为图片或者PDF) -+ **单元格内多样式** (Alt+Enter单元格内换行、上标、下标、单元格内科定义每个文字的不同样式) + **树形菜单** (类似excel中的分级显示(分组)) + **表格新功能** (类似excel中表格的筛选器和切片器) + **文档** (完善文档和API) diff --git a/README.md b/README.md index fb19666..3be4bae 100644 --- a/README.md +++ b/README.md @@ -97,12 +97,12 @@ English| [简体中文](./README-zh.md) + **Screenshot** (Take a screenshot with selection) + **Copy to** (In the right-click menu, copy selection to json, array etc.) + **EXCEL,CSV,TXT import/export** (Specially adapted to Luckysheet) - -### ⏱️Coming soon + **Insert picture and Shapes** (JPG,PNG,SVG,Pen tool and so on) + **Data validation** (Checkbox, drop-down list, datePicker) -+ **Print** (Like excel print option, save to PDF) + **Cell segmentation style** (Alt+Enter line break, sub,super, in-cell style) + +### ⏱️Coming soon ++ **Print** (Like excel print option, save to PDF) + **Tree menu** (Just like the outline (group) function of excel) + **Table new Features** (filter, slicer) + **Documentation** (Improve documentation and API) diff --git a/docs/guide/README.md b/docs/guide/README.md index 054acd4..d44261f 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -77,15 +77,15 @@ Luckysheet is an online spreadsheet like excel that is powerful, simple to confi + **Matrix operation** (Operate selection through the right-click menu: transpose, rotate, numerical calculation) + **Screenshot** (Take a screenshot with selection) + **Copy to** (In the right-click menu, copy selection to json, array etc.) - -### Coming soon ++ **EXCEL,CSV,TXT import/export** (Specially adapted to luckysheet) + **Insert picture and Shapes** (JPG,PNG,SVG,Pen tool and so on) + **Data validation** (Checkbox, drop-down list, datePicker) -+ **Print** (Like excel print option, save to PDF) + **Cell segmentation style** (Alt+Enter line break, sub,super, in-cell style) + +### Coming soon ++ **Print** (Like excel print option, save to PDF) + **Tree menu** (Just like the outline (group) function of excel) + **Table new Features** (filter, slicer) -+ **EXCEL,CSV,TXT import/export** (Specially adapted to luckysheet) + **Documentation** (Improve documentation and API) + **More...** (Please advise us) diff --git a/docs/guide/config.md b/docs/guide/config.md index 0fa6c7b..e50abcc 100644 --- a/docs/guide/config.md +++ b/docs/guide/config.md @@ -71,6 +71,12 @@ - Default: true - Usage: Whether to allow copying +------------ +## showGridLines +- Type: Number +- Default: 1 +- Usage: Whether to show grid lines, `1` means show,`0` means hide + ------------ ## showtoolbar - Type: Boolean diff --git a/docs/zh/guide/README.md b/docs/zh/guide/README.md index 93bd0e2..315eca3 100644 --- a/docs/zh/guide/README.md +++ b/docs/zh/guide/README.md @@ -77,15 +77,15 @@ Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置 + **矩阵计算** (通过右键菜单进行支持:对选区内的数据进行转置、旋转、数值计算) + **截图** (把选区的内容进行截图展示) + **复制到其他格式** (右键菜单的"复制为", 支持复制为json、array、对角线数据、去重等) ++ **EXCEL,CSV,TXT 导入及导出** (专为luckysheet打造的导入导出插件,支持密码、水印、公式等的本地导入导出) ++ **插入图片和svg形状** (支持JPG,PNG,SVG,Pen tool的插入、修改和删除,并且随表格的变动而产生变化) ++ **数据验证(表单功能)** (支持Checkbox, drop-down list, datePicker) ++ **单元格内多样式** (Alt+Enter单元格内换行、上标、下标、单元格内科定义每个文字的不同样式) ### 未来开发计划 -+ **插入图表和svg形状** (支持JPG,PNG,SVG,Pen tool的插入、修改和删除,并且随表格的变动而产生变化) -+ **数据验证(表单功能)** (支持Checkbox, drop-down list, datePicker) + **打印及设置** (像excel一样进行打印设置,并导出为图片或者PDF) -+ **单元格内多样式** (Alt+Enter单元格内换行、上标、下标、单元格内科定义每个文字的不同样式) + **树形菜单** (类似excel中的分级显示(分组)) + **表格新功能** (类似excel中表格的筛选器和切片器) -+ **EXCEL,CSV,TXT 导入及导出** (专为luckysheet打造的导入导出插件,支持密码、水印、公式等的本地导入导出) + **文档** (完善文档和API) + **敬请期待...** (可以提出好的建议给我们) diff --git a/docs/zh/guide/api.md b/docs/zh/guide/api.md index f667f9d..a0ad62e 100644 --- a/docs/zh/guide/api.md +++ b/docs/zh/guide/api.md @@ -1683,12 +1683,11 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 [todo] - - **说明**: - - 返回所有工作表配置,格式同[工作表配置](/zh/guide/sheet.html),得到的结果可用于表格初始化时作为`options.data`使用。 - 所以此API适用于,手动操作配置完一个表格后,将所有工作表信息取出来自行保存,再用于其他地方的表格创建。 + 返回所有工作表配置,格式同工作表配置,得到的结果可用于表格初始化时作为options.data使用。 + + 所以此API适用于,手动操作配置完一个表格后,将所有工作表信息取出来自行保存,再用于其他地方的表格创建。如果想得到包括工作簿配置在内的所有工作簿数据,可以使用 [toJson](#toJson()) - **示例**: @@ -1701,7 +1700,6 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 [todo] - - **参数**: - {PlainObject} [setting]: 可选参数 @@ -1718,6 +1716,23 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 ------------ +### getSheet([setting]) + +[todo] + +- **参数**: + + - {PlainObject} [setting]: 可选参数 + + {Number} [index]: 工作表索引;默认值为当前工作表索引 + + {Number} [order]: 工作表顺序;默认值为当前工作表顺序 + + {Number} [name]: 工作表名称;默认值为当前工作表名称 + +- **说明**: + + 根据index/order/name,快捷返回指定工作表的配置,同 `luckysheetfile[i]`。如果设置多个参数,优先级为:index > order > name。 + +------------ + ### getSheetData([setting]) [todo] diff --git a/docs/zh/guide/config.md b/docs/zh/guide/config.md index 0b0e1be..2d7fbb8 100644 --- a/docs/zh/guide/config.md +++ b/docs/zh/guide/config.md @@ -53,6 +53,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 - 亿万格式 [autoFormatw](#autoFormatw) - 精度 [accuracy](#accuracy) - 允许复制 [allowCopy](#allowCopy) +- 网格线 [showGridLines](#showGridLines) - 工具栏 [showtoolbar](#showtoolbar) - 自定义工具栏[showtoolbarConfig](#showtoolbarConfig) - 名称栏 [showinfobar](#showinfobar) @@ -171,6 +172,12 @@ Luckysheet开放了更细致的自定义配置选项,分别有 - 默认值:true - 作用:是否允许拷贝 +------------ +### showGridLines +- 类型:Number +- 默认值:1 +- 作用:是否显示网格线,`1`表示显示,`0`表示隐藏 + ------------ ### showtoolbar - 类型:Boolean diff --git a/gulpfile.js b/gulpfile.js index 2ac9305..ae08e0e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -52,6 +52,7 @@ const paths = { // static resources,contains index.html, fonts and images,and extension plugins dependency staticHtml: ['src/*.html'], staticFonts: ['src/fonts/**'], + staticAssets: ['src/assets/**'], staticImages: ['src/plugins/images/*.png'], staticExpendPlugins: ['src/expendPlugins/**', '!src/expendPlugins/**/plugin.js'], staticDemoData: ['src/demoData/*.js'], @@ -60,6 +61,7 @@ const paths = { // static resources dest destStaticHtml: ['dist'], destStaticFonts: ['dist/fonts'], + destStaticAssets: ['dist/assets'], destStaticImages: ['dist/plugins/images'], destStaticExpendPlugins: ['dist/expendPlugins'], destStaticDemoData: ['dist/demoData'], @@ -133,6 +135,7 @@ function watcher(done) { // watch static watch(paths.staticHtml,{ delay: 500 }, series(copyStaticHtml, reloadBrowser)); watch(paths.staticFonts,{ delay: 500 }, series(copyStaticFonts, reloadBrowser)); + watch(paths.staticAssets,{ delay: 500 }, series(copyStaticAssets, reloadBrowser)); watch(paths.staticImages,{ delay: 500 }, series(copyStaticImages, reloadBrowser)); watch(paths.staticExpendPlugins,{ delay: 500 }, series(copyStaticExpendPlugins, reloadBrowser)); watch(paths.staticDemoData,{ delay: 500 }, series(copyStaticDemoData, reloadBrowser)); @@ -222,6 +225,10 @@ function copyStaticFonts(){ return src(paths.staticFonts) .pipe(dest(paths.destStaticFonts)); } +function copyStaticAssets(){ + return src(paths.staticAssets) + .pipe(dest(paths.destStaticAssets)); +} function copyStaticImages(){ return src(paths.staticImages) .pipe(dest(paths.destStaticImages)); @@ -239,8 +246,8 @@ function copyStaticCssImages(){ .pipe(dest(paths.destStaticCssImages)); } -const dev = series(clean, parallel(pluginsCss, plugins, css, pluginsJs, copyStaticHtml, copyStaticFonts, copyStaticImages, copyStaticExpendPlugins, copyStaticDemoData, copyStaticCssImages, core), watcher, serve); -const build = series(clean, parallel(pluginsCss, plugins, css, pluginsJs, copyStaticHtml, copyStaticFonts, copyStaticImages, copyStaticExpendPlugins, copyStaticDemoData, copyStaticCssImages, core)); +const dev = series(clean, parallel(pluginsCss, plugins, css, pluginsJs, copyStaticHtml, copyStaticFonts, copyStaticAssets, copyStaticImages, copyStaticExpendPlugins, copyStaticDemoData, copyStaticCssImages, core), watcher, serve); +const build = series(clean, parallel(pluginsCss, plugins, css, pluginsJs, copyStaticHtml, copyStaticFonts, copyStaticAssets, copyStaticImages, copyStaticExpendPlugins, copyStaticDemoData, copyStaticCssImages, core)); exports.dev = dev; exports.build = build; diff --git a/src/assets/iconfont/demo.css b/src/assets/iconfont/demo.css new file mode 100644 index 0000000..a67054a --- /dev/null +++ b/src/assets/iconfont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/assets/iconfont/demo_index.html b/src/assets/iconfont/demo_index.html new file mode 100644 index 0000000..eda98e9 --- /dev/null +++ b/src/assets/iconfont/demo_index.html @@ -0,0 +1,2148 @@ + + + + + IconFont Demo + + + + + + + + + + + +
+

+ +
+
+
    + +
  • + +
    logo2
    +
    &#xe7df;
    +
  • + +
  • + +
    logo
    +
    &#xe7e0;
    +
  • + +
  • + +
    文本倾斜
    +
    &#xe7de;
    +
  • + +
  • + +
    加粗
    +
    &#xe7d9;
    +
  • + +
  • + +
    搜索
    +
    &#xe78a;
    +
  • + +
  • + +
    关闭
    +
    &#xe78b;
    +
  • + +
  • + +
    下一个
    +
    &#xe78c;
    +
  • + +
  • + +
    下拉
    +
    &#xe78d;
    +
  • + +
  • + +
    文本颜色
    +
    &#xe78e;
    +
  • + +
  • + +
    上一个
    +
    &#xe78f;
    +
  • + +
  • + +
    数据透视
    +
    &#xe790;
    +
  • + +
  • + +
    填充
    +
    &#xe791;
    +
  • + +
  • + +
    增加小数位
    +
    &#xe792;
    +
  • + +
  • + +
    编辑2
    +
    &#xe793;
    +
  • + +
  • + +
    截屏
    +
    &#xe794;
    +
  • + +
  • + +
    减小小数位
    +
    &#xe796;
    +
  • + +
  • + +
    菜单
    +
    &#xe797;
    +
  • + +
  • + +
    数据库
    +
    &#xe798;
    +
  • + +
  • + +
    无边框
    +
    &#xe799;
    +
  • + +
  • + +
    编辑
    +
    &#xe79a;
    +
  • + +
  • + +
    清除样式
    +
    &#xe79b;
    +
  • + +
  • + +
    删除
    +
    &#xe79c;
    +
  • + +
  • + +
    文本居中对齐
    +
    &#xe79d;
    +
  • + +
  • + +
    打印
    +
    &#xe79e;
    +
  • + +
  • + +
    文本分割
    +
    &#xe79f;
    +
  • + +
  • + +
    函数‘
    +
    &#xe7a0;
    +
  • + +
  • + +
    降序
    +
    &#xe7a1;
    +
  • + +
  • + +
    顶部对齐
    +
    &#xe7a2;
    +
  • + +
  • + +
    图片
    +
    &#xe7a3;
    +
  • + +
  • + +
    向下90
    +
    &#xe7a4;
    +
  • + +
  • + +
    竖排文字
    +
    &#xe7a5;
    +
  • + +
  • + +
    全加边框
    +
    &#xe7a6;
    +
  • + +
  • + +
    升序
    +
    &#xe7a7;
    +
  • + +
  • + +
    裁剪
    +
    &#xe7a8;
    +
  • + +
  • + +
    金额
    +
    &#xe7a9;
    +
  • + +
  • + +
    菜单1
    +
    &#xe7aa;
    +
  • + +
  • + +
    取消合并
    +
    &#xe7ab;
    +
  • + +
  • + +
    文本下划线
    +
    &#xe7ac;
    +
  • + +
  • + +
    上边框
    +
    &#xe7ad;
    +
  • + +
  • + +
    定位
    +
    &#xe7ae;
    +
  • + +
  • + +
    四周加边框
    +
    &#xe7af;
    +
  • + +
  • + +
    侧边栏收起
    +
    &#xe7b0;
    +
  • + +
  • + +
    合并
    +
    &#xe7b1;
    +
  • + +
  • + +
    向上倾斜
    +
    &#xe7b2;
    +
  • + +
  • + +
    水平对齐
    +
    &#xe7b3;
    +
  • + +
  • + +
    文本删除线
    +
    &#xe7b4;
    +
  • + +
  • + +
    文本右对齐
    +
    &#xe7b5;
    +
  • + +
  • + +
    前进
    +
    &#xe7b6;
    +
  • + +
  • + +
    图表
    +
    &#xe7b7;
    +
  • + +
  • + +
    右边框
    +
    &#xe7b8;
    +
  • + +
  • + +
    百分号
    +
    &#xe7b9;
    +
  • + +
  • + +
    格式刷
    +
    &#xe7ba;
    +
  • + +
  • + +
    保存
    +
    &#xe7bb;
    +
  • + +
  • + +
    数据验证
    +
    &#xe7bc;
    +
  • + +
  • + +
    截断
    +
    &#xe7bd;
    +
  • + +
  • + +
    格式条件
    +
    &#xe7be;
    +
  • + +
  • + +
    自动换行
    +
    &#xe7bf;
    +
  • + +
  • + +
    侧边栏展开
    +
    &#xe7c0;
    +
  • + +
  • + +
    筛选2
    +
    &#xe7c1;
    +
  • + +
  • + +
    向下倾斜
    +
    &#xe7c2;
    +
  • + +
  • + +
    溢出
    +
    &#xe7c3;
    +
  • + +
  • + +
    垂直合并
    +
    &#xe7c4;
    +
  • + +
  • + +
    文本分散对齐
    +
    &#xe7c5;
    +
  • + +
  • + +
    左边框
    +
    &#xe7c6;
    +
  • + +
  • + +
    分页查看
    +
    &#xe7c7;
    +
  • + +
  • + +
    运行
    +
    &#xe7c8;
    +
  • + +
  • + +
    +
    &#xe7c9;
    +
  • + +
  • + +
    全屏
    +
    &#xe7ca;
    +
  • + +
  • + +
    筛选
    +
    &#xe7cb;
    +
  • + +
  • + +
    更新
    +
    &#xe7cc;
    +
  • + +
  • + +
    清除
    +
    &#xe7cd;
    +
  • + +
  • + +
    +
    &#xe7ce;
    +
  • + +
  • + +
    注释
    +
    &#xe7cf;
    +
  • + +
  • + +
    +
    &#xe7d0;
    +
  • + +
  • + +
    计算
    +
    &#xe7d1;
    +
  • + +
  • + +
    +
    &#xe7d2;
    +
  • + +
  • + +
    底部对齐
    +
    &#xe7d3;
    +
  • + +
  • + +
    向上90
    +
    &#xe7d4;
    +
  • + +
  • + +
    无选装
    +
    &#xe7d5;
    +
  • + +
  • + +
    显示隐藏网格
    +
    &#xe7d6;
    +
  • + +
  • + +
    冻结
    +
    &#xe7d7;
    +
  • + +
  • + +
    文本左对齐
    +
    &#xe7d8;
    +
  • + +
  • + +
    后退
    +
    &#xe7da;
    +
  • + +
  • + +
    水平合并
    +
    &#xe7db;
    +
  • + +
  • + +
    下边框
    +
    &#xe7dc;
    +
  • + +
  • + +
    设置
    +
    &#xe7dd;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 兼容性最好,支持 IE6+,及所有现代浏览器。
  • +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • +
+
+

注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+      url('iconfont.woff2') format('woff2'),
+      url('iconfont.woff') format('woff'),
+      url('iconfont.ttf') format('truetype'),
+      url('iconfont.svg#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + logo2 +
    +
    .icon-logo2 +
    +
  • + +
  • + +
    + logo +
    +
    .icon-logo +
    +
  • + +
  • + +
    + 文本倾斜 +
    +
    .icon-wenbenqingxie1 +
    +
  • + +
  • + +
    + 加粗 +
    +
    .icon-jiacu +
    +
  • + +
  • + +
    + 搜索 +
    +
    .icon-sousuo +
    +
  • + +
  • + +
    + 关闭 +
    +
    .icon-guanbi +
    +
  • + +
  • + +
    + 下一个 +
    +
    .icon-xiayige +
    +
  • + +
  • + +
    + 下拉 +
    +
    .icon-xiala +
    +
  • + +
  • + +
    + 文本颜色 +
    +
    .icon-wenbenyanse +
    +
  • + +
  • + +
    + 上一个 +
    +
    .icon-shangyige +
    +
  • + +
  • + +
    + 数据透视 +
    +
    .icon-shujutoushi +
    +
  • + +
  • + +
    + 填充 +
    +
    .icon-tianchong +
    +
  • + +
  • + +
    + 增加小数位 +
    +
    .icon-zengjiaxiaoshuwei +
    +
  • + +
  • + +
    + 编辑2 +
    +
    .icon-bianji2 +
    +
  • + +
  • + +
    + 截屏 +
    +
    .icon-jieping +
    +
  • + +
  • + +
    + 减小小数位 +
    +
    .icon-jianxiaoxiaoshuwei +
    +
  • + +
  • + +
    + 菜单 +
    +
    .icon-caidan +
    +
  • + +
  • + +
    + 数据库 +
    +
    .icon-shujuku +
    +
  • + +
  • + +
    + 无边框 +
    +
    .icon-wubiankuang +
    +
  • + +
  • + +
    + 编辑 +
    +
    .icon-bianji +
    +
  • + +
  • + +
    + 清除样式 +
    +
    .icon-qingchuyangshi +
    +
  • + +
  • + +
    + 删除 +
    +
    .icon-shanchu +
    +
  • + +
  • + +
    + 文本居中对齐 +
    +
    .icon-wenbenjuzhongduiqi +
    +
  • + +
  • + +
    + 打印 +
    +
    .icon-dayin +
    +
  • + +
  • + +
    + 文本分割 +
    +
    .icon-wenbenfenge +
    +
  • + +
  • + +
    + 函数‘ +
    +
    .icon-hanshu +
    +
  • + +
  • + +
    + 降序 +
    +
    .icon-jiangxu +
    +
  • + +
  • + +
    + 顶部对齐 +
    +
    .icon-dingbuduiqi +
    +
  • + +
  • + +
    + 图片 +
    +
    .icon-tupian +
    +
  • + +
  • + +
    + 向下90 +
    +
    .icon-xiangxia90 +
    +
  • + +
  • + +
    + 竖排文字 +
    +
    .icon-shupaiwenzi +
    +
  • + +
  • + +
    + 全加边框 +
    +
    .icon-quanjiabiankuang +
    +
  • + +
  • + +
    + 升序 +
    +
    .icon-shengxu +
    +
  • + +
  • + +
    + 裁剪 +
    +
    .icon-caijian +
    +
  • + +
  • + +
    + 金额 +
    +
    .icon-jine +
    +
  • + +
  • + +
    + 菜单1 +
    +
    .icon-caidan1 +
    +
  • + +
  • + +
    + 取消合并 +
    +
    .icon-quxiaohebing +
    +
  • + +
  • + +
    + 文本下划线 +
    +
    .icon-wenbenxiahuaxian +
    +
  • + +
  • + +
    + 上边框 +
    +
    .icon-shangbiankuang +
    +
  • + +
  • + +
    + 定位 +
    +
    .icon-dingwei +
    +
  • + +
  • + +
    + 四周加边框 +
    +
    .icon-sizhoujiabiankuang +
    +
  • + +
  • + +
    + 侧边栏收起 +
    +
    .icon-cebianlanshouqi +
    +
  • + +
  • + +
    + 合并 +
    +
    .icon-hebing +
    +
  • + +
  • + +
    + 向上倾斜 +
    +
    .icon-xiangshangqingxie +
    +
  • + +
  • + +
    + 水平对齐 +
    +
    .icon-shuipingduiqi +
    +
  • + +
  • + +
    + 文本删除线 +
    +
    .icon-wenbenshanchuxian +
    +
  • + +
  • + +
    + 文本右对齐 +
    +
    .icon-wenbenyouduiqi +
    +
  • + +
  • + +
    + 前进 +
    +
    .icon-qianjin +
    +
  • + +
  • + +
    + 图表 +
    +
    .icon-tubiao +
    +
  • + +
  • + +
    + 右边框 +
    +
    .icon-youbiankuang +
    +
  • + +
  • + +
    + 百分号 +
    +
    .icon-baifenhao +
    +
  • + +
  • + +
    + 格式刷 +
    +
    .icon-geshishua +
    +
  • + +
  • + +
    + 保存 +
    +
    .icon-baocun +
    +
  • + +
  • + +
    + 数据验证 +
    +
    .icon-shujuyanzheng +
    +
  • + +
  • + +
    + 截断 +
    +
    .icon-jieduan +
    +
  • + +
  • + +
    + 格式条件 +
    +
    .icon-geshitiaojian +
    +
  • + +
  • + +
    + 自动换行 +
    +
    .icon-zidonghuanhang +
    +
  • + +
  • + +
    + 侧边栏展开 +
    +
    .icon-cebianlanzhankai +
    +
  • + +
  • + +
    + 筛选2 +
    +
    .icon-shaixuan2 +
    +
  • + +
  • + +
    + 向下倾斜 +
    +
    .icon-xiangxiaqingxie +
    +
  • + +
  • + +
    + 溢出 +
    +
    .icon-yichu +
    +
  • + +
  • + +
    + 垂直合并 +
    +
    .icon-chuizhihebing +
    +
  • + +
  • + +
    + 文本分散对齐 +
    +
    .icon-wenbenfensanduiqi +
    +
  • + +
  • + +
    + 左边框 +
    +
    .icon-zuobiankuang +
    +
  • + +
  • + +
    + 分页查看 +
    +
    .icon-fenyechakan +
    +
  • + +
  • + +
    + 运行 +
    +
    .icon-yunhang +
    +
  • + +
  • + +
    + 列 +
    +
    .icon-lie +
    +
  • + +
  • + +
    + 全屏 +
    +
    .icon-quanping +
    +
  • + +
  • + +
    + 筛选 +
    +
    .icon-shaixuan +
    +
  • + +
  • + +
    + 更新 +
    +
    .icon-gengxin +
    +
  • + +
  • + +
    + 清除 +
    +
    .icon-qingchu +
    +
  • + +
  • + +
    + 行 +
    +
    .icon-hang +
    +
  • + +
  • + +
    + 注释 +
    +
    .icon-zhushi +
    +
  • + +
  • + +
    + 剪 +
    +
    .icon-jian +
    +
  • + +
  • + +
    + 计算 +
    +
    .icon-jisuan +
    +
  • + +
  • + +
    + 加 +
    +
    .icon-jia +
    +
  • + +
  • + +
    + 底部对齐 +
    +
    .icon-dibuduiqi +
    +
  • + +
  • + +
    + 向上90 +
    +
    .icon-xiangshang90 +
    +
  • + +
  • + +
    + 无选装 +
    +
    .icon-wuxuanzhuang +
    +
  • + +
  • + +
    + 显示隐藏网格 +
    +
    .icon-xianshiyincangwangge +
    +
  • + +
  • + +
    + 冻结 +
    +
    .icon-dongjie +
    +
  • + +
  • + +
    + 文本左对齐 +
    +
    .icon-wenbenzuoduiqi +
    +
  • + +
  • + +
    + 后退 +
    +
    .icon-houtui +
    +
  • + +
  • + +
    + 水平合并 +
    +
    .icon-shuipinghebing +
    +
  • + +
  • + +
    + 下边框 +
    +
    .icon-xiabiankuang +
    +
  • + +
  • + +
    + 设置 +
    +
    .icon-shezhi +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 兼容性良好,支持 IE8+,及所有现代浏览器。
  • +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
  • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    logo2
    +
    #icon-logo2
    +
  • + +
  • + +
    logo
    +
    #icon-logo
    +
  • + +
  • + +
    文本倾斜
    +
    #icon-wenbenqingxie1
    +
  • + +
  • + +
    加粗
    +
    #icon-jiacu
    +
  • + +
  • + +
    搜索
    +
    #icon-sousuo
    +
  • + +
  • + +
    关闭
    +
    #icon-guanbi
    +
  • + +
  • + +
    下一个
    +
    #icon-xiayige
    +
  • + +
  • + +
    下拉
    +
    #icon-xiala
    +
  • + +
  • + +
    文本颜色
    +
    #icon-wenbenyanse
    +
  • + +
  • + +
    上一个
    +
    #icon-shangyige
    +
  • + +
  • + +
    数据透视
    +
    #icon-shujutoushi
    +
  • + +
  • + +
    填充
    +
    #icon-tianchong
    +
  • + +
  • + +
    增加小数位
    +
    #icon-zengjiaxiaoshuwei
    +
  • + +
  • + +
    编辑2
    +
    #icon-bianji2
    +
  • + +
  • + +
    截屏
    +
    #icon-jieping
    +
  • + +
  • + +
    减小小数位
    +
    #icon-jianxiaoxiaoshuwei
    +
  • + +
  • + +
    菜单
    +
    #icon-caidan
    +
  • + +
  • + +
    数据库
    +
    #icon-shujuku
    +
  • + +
  • + +
    无边框
    +
    #icon-wubiankuang
    +
  • + +
  • + +
    编辑
    +
    #icon-bianji
    +
  • + +
  • + +
    清除样式
    +
    #icon-qingchuyangshi
    +
  • + +
  • + +
    删除
    +
    #icon-shanchu
    +
  • + +
  • + +
    文本居中对齐
    +
    #icon-wenbenjuzhongduiqi
    +
  • + +
  • + +
    打印
    +
    #icon-dayin
    +
  • + +
  • + +
    文本分割
    +
    #icon-wenbenfenge
    +
  • + +
  • + +
    函数‘
    +
    #icon-hanshu
    +
  • + +
  • + +
    降序
    +
    #icon-jiangxu
    +
  • + +
  • + +
    顶部对齐
    +
    #icon-dingbuduiqi
    +
  • + +
  • + +
    图片
    +
    #icon-tupian
    +
  • + +
  • + +
    向下90
    +
    #icon-xiangxia90
    +
  • + +
  • + +
    竖排文字
    +
    #icon-shupaiwenzi
    +
  • + +
  • + +
    全加边框
    +
    #icon-quanjiabiankuang
    +
  • + +
  • + +
    升序
    +
    #icon-shengxu
    +
  • + +
  • + +
    裁剪
    +
    #icon-caijian
    +
  • + +
  • + +
    金额
    +
    #icon-jine
    +
  • + +
  • + +
    菜单1
    +
    #icon-caidan1
    +
  • + +
  • + +
    取消合并
    +
    #icon-quxiaohebing
    +
  • + +
  • + +
    文本下划线
    +
    #icon-wenbenxiahuaxian
    +
  • + +
  • + +
    上边框
    +
    #icon-shangbiankuang
    +
  • + +
  • + +
    定位
    +
    #icon-dingwei
    +
  • + +
  • + +
    四周加边框
    +
    #icon-sizhoujiabiankuang
    +
  • + +
  • + +
    侧边栏收起
    +
    #icon-cebianlanshouqi
    +
  • + +
  • + +
    合并
    +
    #icon-hebing
    +
  • + +
  • + +
    向上倾斜
    +
    #icon-xiangshangqingxie
    +
  • + +
  • + +
    水平对齐
    +
    #icon-shuipingduiqi
    +
  • + +
  • + +
    文本删除线
    +
    #icon-wenbenshanchuxian
    +
  • + +
  • + +
    文本右对齐
    +
    #icon-wenbenyouduiqi
    +
  • + +
  • + +
    前进
    +
    #icon-qianjin
    +
  • + +
  • + +
    图表
    +
    #icon-tubiao
    +
  • + +
  • + +
    右边框
    +
    #icon-youbiankuang
    +
  • + +
  • + +
    百分号
    +
    #icon-baifenhao
    +
  • + +
  • + +
    格式刷
    +
    #icon-geshishua
    +
  • + +
  • + +
    保存
    +
    #icon-baocun
    +
  • + +
  • + +
    数据验证
    +
    #icon-shujuyanzheng
    +
  • + +
  • + +
    截断
    +
    #icon-jieduan
    +
  • + +
  • + +
    格式条件
    +
    #icon-geshitiaojian
    +
  • + +
  • + +
    自动换行
    +
    #icon-zidonghuanhang
    +
  • + +
  • + +
    侧边栏展开
    +
    #icon-cebianlanzhankai
    +
  • + +
  • + +
    筛选2
    +
    #icon-shaixuan2
    +
  • + +
  • + +
    向下倾斜
    +
    #icon-xiangxiaqingxie
    +
  • + +
  • + +
    溢出
    +
    #icon-yichu
    +
  • + +
  • + +
    垂直合并
    +
    #icon-chuizhihebing
    +
  • + +
  • + +
    文本分散对齐
    +
    #icon-wenbenfensanduiqi
    +
  • + +
  • + +
    左边框
    +
    #icon-zuobiankuang
    +
  • + +
  • + +
    分页查看
    +
    #icon-fenyechakan
    +
  • + +
  • + +
    运行
    +
    #icon-yunhang
    +
  • + +
  • + +
    +
    #icon-lie
    +
  • + +
  • + +
    全屏
    +
    #icon-quanping
    +
  • + +
  • + +
    筛选
    +
    #icon-shaixuan
    +
  • + +
  • + +
    更新
    +
    #icon-gengxin
    +
  • + +
  • + +
    清除
    +
    #icon-qingchu
    +
  • + +
  • + +
    +
    #icon-hang
    +
  • + +
  • + +
    注释
    +
    #icon-zhushi
    +
  • + +
  • + +
    +
    #icon-jian
    +
  • + +
  • + +
    计算
    +
    #icon-jisuan
    +
  • + +
  • + +
    +
    #icon-jia
    +
  • + +
  • + +
    底部对齐
    +
    #icon-dibuduiqi
    +
  • + +
  • + +
    向上90
    +
    #icon-xiangshang90
    +
  • + +
  • + +
    无选装
    +
    #icon-wuxuanzhuang
    +
  • + +
  • + +
    显示隐藏网格
    +
    #icon-xianshiyincangwangge
    +
  • + +
  • + +
    冻结
    +
    #icon-dongjie
    +
  • + +
  • + +
    文本左对齐
    +
    #icon-wenbenzuoduiqi
    +
  • + +
  • + +
    后退
    +
    #icon-houtui
    +
  • + +
  • + +
    水平合并
    +
    #icon-shuipinghebing
    +
  • + +
  • + +
    下边框
    +
    #icon-xiabiankuang
    +
  • + +
  • + +
    设置
    +
    #icon-shezhi
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css new file mode 100644 index 0000000..c491041 --- /dev/null +++ b/src/assets/iconfont/iconfont.css @@ -0,0 +1,361 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1600168545018'); /* IE9 */ + src: url('iconfont.eot?t=1600168545018#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1600168545018') format('woff'), + url('iconfont.ttf?t=1600168545018') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1600168545018#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-logo2:before { + content: "\e7df"; +} + +.icon-logo:before { + content: "\e7e0"; +} + +.icon-wenbenqingxie1:before { + content: "\e7de"; +} + +.icon-jiacu:before { + content: "\e7d9"; +} + +.icon-sousuo:before { + content: "\e78a"; +} + +.icon-guanbi:before { + content: "\e78b"; +} + +.icon-xiayige:before { + content: "\e78c"; +} + +.icon-xiala:before { + content: "\e78d"; +} + +.icon-wenbenyanse:before { + content: "\e78e"; +} + +.icon-shangyige:before { + content: "\e78f"; +} + +.icon-shujutoushi:before { + content: "\e790"; +} + +.icon-tianchong:before { + content: "\e791"; +} + +.icon-zengjiaxiaoshuwei:before { + content: "\e792"; +} + +.icon-bianji2:before { + content: "\e793"; +} + +.icon-jieping:before { + content: "\e794"; +} + +.icon-jianxiaoxiaoshuwei:before { + content: "\e796"; +} + +.icon-caidan:before { + content: "\e797"; +} + +.icon-shujuku:before { + content: "\e798"; +} + +.icon-wubiankuang:before { + content: "\e799"; +} + +.icon-bianji:before { + content: "\e79a"; +} + +.icon-qingchuyangshi:before { + content: "\e79b"; +} + +.icon-shanchu:before { + content: "\e79c"; +} + +.icon-wenbenjuzhongduiqi:before { + content: "\e79d"; +} + +.icon-dayin:before { + content: "\e79e"; +} + +.icon-wenbenfenge:before { + content: "\e79f"; +} + +.icon-hanshu:before { + content: "\e7a0"; +} + +.icon-jiangxu:before { + content: "\e7a1"; +} + +.icon-dingbuduiqi:before { + content: "\e7a2"; +} + +.icon-tupian:before { + content: "\e7a3"; +} + +.icon-xiangxia90:before { + content: "\e7a4"; +} + +.icon-shupaiwenzi:before { + content: "\e7a5"; +} + +.icon-quanjiabiankuang:before { + content: "\e7a6"; +} + +.icon-shengxu:before { + content: "\e7a7"; +} + +.icon-caijian:before { + content: "\e7a8"; +} + +.icon-jine:before { + content: "\e7a9"; +} + +.icon-caidan1:before { + content: "\e7aa"; +} + +.icon-quxiaohebing:before { + content: "\e7ab"; +} + +.icon-wenbenxiahuaxian:before { + content: "\e7ac"; +} + +.icon-shangbiankuang:before { + content: "\e7ad"; +} + +.icon-dingwei:before { + content: "\e7ae"; +} + +.icon-sizhoujiabiankuang:before { + content: "\e7af"; +} + +.icon-cebianlanshouqi:before { + content: "\e7b0"; +} + +.icon-hebing:before { + content: "\e7b1"; +} + +.icon-xiangshangqingxie:before { + content: "\e7b2"; +} + +.icon-shuipingduiqi:before { + content: "\e7b3"; +} + +.icon-wenbenshanchuxian:before { + content: "\e7b4"; +} + +.icon-wenbenyouduiqi:before { + content: "\e7b5"; +} + +.icon-qianjin:before { + content: "\e7b6"; +} + +.icon-tubiao:before { + content: "\e7b7"; +} + +.icon-youbiankuang:before { + content: "\e7b8"; +} + +.icon-baifenhao:before { + content: "\e7b9"; +} + +.icon-geshishua:before { + content: "\e7ba"; +} + +.icon-baocun:before { + content: "\e7bb"; +} + +.icon-shujuyanzheng:before { + content: "\e7bc"; +} + +.icon-jieduan:before { + content: "\e7bd"; +} + +.icon-geshitiaojian:before { + content: "\e7be"; +} + +.icon-zidonghuanhang:before { + content: "\e7bf"; +} + +.icon-cebianlanzhankai:before { + content: "\e7c0"; +} + +.icon-shaixuan2:before { + content: "\e7c1"; +} + +.icon-xiangxiaqingxie:before { + content: "\e7c2"; +} + +.icon-yichu:before { + content: "\e7c3"; +} + +.icon-chuizhihebing:before { + content: "\e7c4"; +} + +.icon-wenbenfensanduiqi:before { + content: "\e7c5"; +} + +.icon-zuobiankuang:before { + content: "\e7c6"; +} + +.icon-fenyechakan:before { + content: "\e7c7"; +} + +.icon-yunhang:before { + content: "\e7c8"; +} + +.icon-lie:before { + content: "\e7c9"; +} + +.icon-quanping:before { + content: "\e7ca"; +} + +.icon-shaixuan:before { + content: "\e7cb"; +} + +.icon-gengxin:before { + content: "\e7cc"; +} + +.icon-qingchu:before { + content: "\e7cd"; +} + +.icon-hang:before { + content: "\e7ce"; +} + +.icon-zhushi:before { + content: "\e7cf"; +} + +.icon-jian:before { + content: "\e7d0"; +} + +.icon-jisuan:before { + content: "\e7d1"; +} + +.icon-jia:before { + content: "\e7d2"; +} + +.icon-dibuduiqi:before { + content: "\e7d3"; +} + +.icon-xiangshang90:before { + content: "\e7d4"; +} + +.icon-wuxuanzhuang:before { + content: "\e7d5"; +} + +.icon-xianshiyincangwangge:before { + content: "\e7d6"; +} + +.icon-dongjie:before { + content: "\e7d7"; +} + +.icon-wenbenzuoduiqi:before { + content: "\e7d8"; +} + +.icon-houtui:before { + content: "\e7da"; +} + +.icon-shuipinghebing:before { + content: "\e7db"; +} + +.icon-xiabiankuang:before { + content: "\e7dc"; +} + +.icon-shezhi:before { + content: "\e7dd"; +} + diff --git a/src/assets/iconfont/iconfont.eot b/src/assets/iconfont/iconfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..161d37f5e69b41fc3a7d26972e8438d2ad1eb461 GIT binary patch literal 17856 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.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(h){console&&console.log(h)}}function m(){t||(t=!0,i())}l=function(){var h,a,l,v,i,z=document.createElement("div");z.innerHTML=M,M=null,(h=z.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",a=h,(l=document.body).firstChild?(v=a,(i=l.firstChild).parentNode.insertBefore(v,i)):l.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),l()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(i=l,z=h.document,t=!1,(o=function(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}m()})(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/src/assets/iconfont/iconfont.json b/src/assets/iconfont/iconfont.json new file mode 100644 index 0000000..5be4a10 --- /dev/null +++ b/src/assets/iconfont/iconfont.json @@ -0,0 +1,611 @@ +{ + "id": "1990368", + "name": "lucksheet", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "16746498", + "name": "logo2", + "font_class": "logo2", + "unicode": "e7df", + "unicode_decimal": 59359 + }, + { + "icon_id": "16746532", + "name": "logo", + "font_class": "logo", + "unicode": "e7e0", + "unicode_decimal": 59360 + }, + { + "icon_id": "16730159", + "name": "文本倾斜", + "font_class": "wenbenqingxie1", + "unicode": "e7de", + "unicode_decimal": 59358 + }, + { + "icon_id": "16728412", + "name": "加粗", + "font_class": "jiacu", + "unicode": "e7d9", + "unicode_decimal": 59353 + }, + { + "icon_id": "16728080", + "name": "搜索", + "font_class": "sousuo", + "unicode": "e78a", + "unicode_decimal": 59274 + }, + { + "icon_id": "16728081", + "name": "关闭", + "font_class": "guanbi", + "unicode": "e78b", + "unicode_decimal": 59275 + }, + { + "icon_id": "16728082", + "name": "下一个", + "font_class": "xiayige", + "unicode": "e78c", + "unicode_decimal": 59276 + }, + { + "icon_id": "16728083", + "name": "下拉", + "font_class": "xiala", + "unicode": "e78d", + "unicode_decimal": 59277 + }, + { + "icon_id": "16728084", + "name": "文本颜色", + "font_class": "wenbenyanse", + "unicode": "e78e", + "unicode_decimal": 59278 + }, + { + "icon_id": "16728085", + "name": "上一个", + "font_class": "shangyige", + "unicode": "e78f", + "unicode_decimal": 59279 + }, + { + "icon_id": "16728086", + "name": "数据透视", + "font_class": "shujutoushi", + "unicode": "e790", + "unicode_decimal": 59280 + }, + { + "icon_id": "16728087", + "name": "填充", + "font_class": "tianchong", + "unicode": "e791", + "unicode_decimal": 59281 + }, + { + "icon_id": "16728088", + "name": "增加小数位", + "font_class": "zengjiaxiaoshuwei", + "unicode": "e792", + "unicode_decimal": 59282 + }, + { + "icon_id": "16728089", + "name": "编辑2", + "font_class": "bianji2", + "unicode": "e793", + "unicode_decimal": 59283 + }, + { + "icon_id": "16728090", + "name": "截屏", + "font_class": "jieping", + "unicode": "e794", + "unicode_decimal": 59284 + }, + { + "icon_id": "16728092", + "name": "减小小数位", + "font_class": "jianxiaoxiaoshuwei", + "unicode": "e796", + "unicode_decimal": 59286 + }, + { + "icon_id": "16728093", + "name": "菜单", + "font_class": "caidan", + "unicode": "e797", + "unicode_decimal": 59287 + }, + { + "icon_id": "16728094", + "name": "数据库", + "font_class": "shujuku", + "unicode": "e798", + "unicode_decimal": 59288 + }, + { + "icon_id": "16728095", + "name": "无边框", + "font_class": "wubiankuang", + "unicode": "e799", + "unicode_decimal": 59289 + }, + { + "icon_id": "16728096", + "name": "编辑", + "font_class": "bianji", + "unicode": "e79a", + "unicode_decimal": 59290 + }, + { + "icon_id": "16728097", + "name": "清除样式", + "font_class": "qingchuyangshi", + "unicode": "e79b", + "unicode_decimal": 59291 + }, + { + "icon_id": "16728099", + "name": "删除", + "font_class": "shanchu", + "unicode": "e79c", + "unicode_decimal": 59292 + }, + { + "icon_id": "16728100", + "name": "文本居中对齐", + "font_class": "wenbenjuzhongduiqi", + "unicode": "e79d", + "unicode_decimal": 59293 + }, + { + "icon_id": "16728101", + "name": "打印", + "font_class": "dayin", + "unicode": "e79e", + "unicode_decimal": 59294 + }, + { + "icon_id": "16728102", + "name": "文本分割", + "font_class": "wenbenfenge", + "unicode": "e79f", + "unicode_decimal": 59295 + }, + { + "icon_id": "16728103", + "name": "函数‘", + "font_class": "hanshu", + "unicode": "e7a0", + "unicode_decimal": 59296 + }, + { + "icon_id": "16728104", + "name": "降序", + "font_class": "jiangxu", + "unicode": "e7a1", + "unicode_decimal": 59297 + }, + { + "icon_id": "16728105", + "name": "顶部对齐", + "font_class": "dingbuduiqi", + "unicode": "e7a2", + "unicode_decimal": 59298 + }, + { + "icon_id": "16728106", + "name": "图片", + "font_class": "tupian", + "unicode": "e7a3", + "unicode_decimal": 59299 + }, + { + "icon_id": "16728107", + "name": "向下90", + "font_class": "xiangxia90", + "unicode": "e7a4", + "unicode_decimal": 59300 + }, + { + "icon_id": "16728108", + "name": "竖排文字", + "font_class": "shupaiwenzi", + "unicode": "e7a5", + "unicode_decimal": 59301 + }, + { + "icon_id": "16728109", + "name": "全加边框", + "font_class": "quanjiabiankuang", + "unicode": "e7a6", + "unicode_decimal": 59302 + }, + { + "icon_id": "16728110", + "name": "升序", + "font_class": "shengxu", + "unicode": "e7a7", + "unicode_decimal": 59303 + }, + { + "icon_id": "16728111", + "name": "裁剪", + "font_class": "caijian", + "unicode": "e7a8", + "unicode_decimal": 59304 + }, + { + "icon_id": "16728112", + "name": "金额", + "font_class": "jine", + "unicode": "e7a9", + "unicode_decimal": 59305 + }, + { + "icon_id": "16728113", + "name": "菜单1", + "font_class": "caidan1", + "unicode": "e7aa", + "unicode_decimal": 59306 + }, + { + "icon_id": "16728114", + "name": "取消合并", + "font_class": "quxiaohebing", + "unicode": "e7ab", + "unicode_decimal": 59307 + }, + { + "icon_id": "16728115", + "name": "文本下划线", + "font_class": "wenbenxiahuaxian", + "unicode": "e7ac", + "unicode_decimal": 59308 + }, + { + "icon_id": "16728116", + "name": "上边框", + "font_class": "shangbiankuang", + "unicode": "e7ad", + "unicode_decimal": 59309 + }, + { + "icon_id": "16728117", + "name": "定位", + "font_class": "dingwei", + "unicode": "e7ae", + "unicode_decimal": 59310 + }, + { + "icon_id": "16728118", + "name": "四周加边框", + "font_class": "sizhoujiabiankuang", + "unicode": "e7af", + "unicode_decimal": 59311 + }, + { + "icon_id": "16728119", + "name": "侧边栏收起", + "font_class": "cebianlanshouqi", + "unicode": "e7b0", + "unicode_decimal": 59312 + }, + { + "icon_id": "16728120", + "name": "合并", + "font_class": "hebing", + "unicode": "e7b1", + "unicode_decimal": 59313 + }, + { + "icon_id": "16728121", + "name": "向上倾斜", + "font_class": "xiangshangqingxie", + "unicode": "e7b2", + "unicode_decimal": 59314 + }, + { + "icon_id": "16728122", + "name": "水平对齐", + "font_class": "shuipingduiqi", + "unicode": "e7b3", + "unicode_decimal": 59315 + }, + { + "icon_id": "16728123", + "name": "文本删除线", + "font_class": "wenbenshanchuxian", + "unicode": "e7b4", + "unicode_decimal": 59316 + }, + { + "icon_id": "16728124", + "name": "文本右对齐", + "font_class": "wenbenyouduiqi", + "unicode": "e7b5", + "unicode_decimal": 59317 + }, + { + "icon_id": "16728125", + "name": "前进", + "font_class": "qianjin", + "unicode": "e7b6", + "unicode_decimal": 59318 + }, + { + "icon_id": "16728126", + "name": "图表", + "font_class": "tubiao", + "unicode": "e7b7", + "unicode_decimal": 59319 + }, + { + "icon_id": "16728127", + "name": "右边框", + "font_class": "youbiankuang", + "unicode": "e7b8", + "unicode_decimal": 59320 + }, + { + "icon_id": "16728128", + "name": "百分号", + "font_class": "baifenhao", + "unicode": "e7b9", + "unicode_decimal": 59321 + }, + { + "icon_id": "16728129", + "name": "格式刷", + "font_class": "geshishua", + "unicode": "e7ba", + "unicode_decimal": 59322 + }, + { + "icon_id": "16728130", + "name": "保存", + "font_class": "baocun", + "unicode": "e7bb", + "unicode_decimal": 59323 + }, + { + "icon_id": "16728131", + "name": "数据验证", + "font_class": "shujuyanzheng", + "unicode": "e7bc", + "unicode_decimal": 59324 + }, + { + "icon_id": "16728132", + "name": "截断", + "font_class": "jieduan", + "unicode": "e7bd", + "unicode_decimal": 59325 + }, + { + "icon_id": "16728133", + "name": "格式条件", + "font_class": "geshitiaojian", + "unicode": "e7be", + "unicode_decimal": 59326 + }, + { + "icon_id": "16728134", + "name": "自动换行", + "font_class": "zidonghuanhang", + "unicode": "e7bf", + "unicode_decimal": 59327 + }, + { + "icon_id": "16728135", + "name": "侧边栏展开", + "font_class": "cebianlanzhankai", + "unicode": "e7c0", + "unicode_decimal": 59328 + }, + { + "icon_id": "16728136", + "name": "筛选2", + "font_class": "shaixuan2", + "unicode": "e7c1", + "unicode_decimal": 59329 + }, + { + "icon_id": "16728137", + "name": "向下倾斜", + "font_class": "xiangxiaqingxie", + "unicode": "e7c2", + "unicode_decimal": 59330 + }, + { + "icon_id": "16728138", + "name": "溢出", + "font_class": "yichu", + "unicode": "e7c3", + "unicode_decimal": 59331 + }, + { + "icon_id": "16728139", + "name": "垂直合并", + "font_class": "chuizhihebing", + "unicode": "e7c4", + "unicode_decimal": 59332 + }, + { + "icon_id": "16728140", + "name": "文本分散对齐", + "font_class": "wenbenfensanduiqi", + "unicode": "e7c5", + "unicode_decimal": 59333 + }, + { + "icon_id": "16728141", + "name": "左边框", + "font_class": "zuobiankuang", + "unicode": "e7c6", + "unicode_decimal": 59334 + }, + { + "icon_id": "16728142", + "name": "分页查看", + "font_class": "fenyechakan", + "unicode": "e7c7", + "unicode_decimal": 59335 + }, + { + "icon_id": "16728143", + "name": "运行", + "font_class": "yunhang", + "unicode": "e7c8", + "unicode_decimal": 59336 + }, + { + "icon_id": "16728144", + "name": "列", + "font_class": "lie", + "unicode": "e7c9", + "unicode_decimal": 59337 + }, + { + "icon_id": "16728145", + "name": "全屏", + "font_class": "quanping", + "unicode": "e7ca", + "unicode_decimal": 59338 + }, + { + "icon_id": "16728146", + "name": "筛选", + "font_class": "shaixuan", + "unicode": "e7cb", + "unicode_decimal": 59339 + }, + { + "icon_id": "16728147", + "name": "更新", + "font_class": "gengxin", + "unicode": "e7cc", + "unicode_decimal": 59340 + }, + { + "icon_id": "16728148", + "name": "清除", + "font_class": "qingchu", + "unicode": "e7cd", + "unicode_decimal": 59341 + }, + { + "icon_id": "16728149", + "name": "行", + "font_class": "hang", + "unicode": "e7ce", + "unicode_decimal": 59342 + }, + { + "icon_id": "16728150", + "name": "注释", + "font_class": "zhushi", + "unicode": "e7cf", + "unicode_decimal": 59343 + }, + { + "icon_id": "16728151", + "name": "剪", + "font_class": "jian", + "unicode": "e7d0", + "unicode_decimal": 59344 + }, + { + "icon_id": "16728152", + "name": "计算", + "font_class": "jisuan", + "unicode": "e7d1", + "unicode_decimal": 59345 + }, + { + "icon_id": "16728153", + "name": "加", + "font_class": "jia", + "unicode": "e7d2", + "unicode_decimal": 59346 + }, + { + "icon_id": "16728154", + "name": "底部对齐", + "font_class": "dibuduiqi", + "unicode": "e7d3", + "unicode_decimal": 59347 + }, + { + "icon_id": "16728155", + "name": "向上90", + "font_class": "xiangshang90", + "unicode": "e7d4", + "unicode_decimal": 59348 + }, + { + "icon_id": "16728156", + "name": "无选装", + "font_class": "wuxuanzhuang", + "unicode": "e7d5", + "unicode_decimal": 59349 + }, + { + "icon_id": "16728157", + "name": "显示隐藏网格", + "font_class": "xianshiyincangwangge", + "unicode": "e7d6", + "unicode_decimal": 59350 + }, + { + "icon_id": "16728158", + "name": "冻结", + "font_class": "dongjie", + "unicode": "e7d7", + "unicode_decimal": 59351 + }, + { + "icon_id": "16728159", + "name": "文本左对齐", + "font_class": "wenbenzuoduiqi", + "unicode": "e7d8", + "unicode_decimal": 59352 + }, + { + "icon_id": "16728161", + "name": "后退", + "font_class": "houtui", + "unicode": "e7da", + "unicode_decimal": 59354 + }, + { + "icon_id": "16728162", + "name": "水平合并", + "font_class": "shuipinghebing", + "unicode": "e7db", + "unicode_decimal": 59355 + }, + { + "icon_id": "16728163", + "name": "下边框", + "font_class": "xiabiankuang", + "unicode": "e7dc", + "unicode_decimal": 59356 + }, + { + "icon_id": "16728164", + "name": "设置", + "font_class": "shezhi", + "unicode": "e7dd", + "unicode_decimal": 59357 + } + ] +} diff --git a/src/assets/iconfont/iconfont.svg b/src/assets/iconfont/iconfont.svg new file mode 100644 index 0000000..0fb078f --- /dev/null +++ b/src/assets/iconfont/iconfont.svg @@ -0,0 +1,284 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/iconfont/iconfont.ttf b/src/assets/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2600647a957a41c62e14460a2d21d79dde397889 GIT binary patch literal 17688 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 literal 0 HcmV?d00001 diff --git a/src/controllers/constant.js b/src/controllers/constant.js index 52c8528..e79f2f9 100644 --- a/src/controllers/constant.js +++ b/src/controllers/constant.js @@ -21,7 +21,7 @@ const gridHTML = function(){
${locale_info.wait}
\${functionButton}
-
\${menu}
+
\${menu}
@@ -190,8 +190,8 @@ const gridHTML = function(){
-
-
+
+
-
-
+
+
@@ -601,7 +601,38 @@ function sheetconfigHTML(){ const luckysheetPivotTableHTML = function(){ const _locale = locale(); const locale_pivotTable = _locale.pivotTable; - return '
'+locale_pivotTable.title+'
'+locale_pivotTable.editRange+'
'+locale_pivotTable.tipPivotFieldSelected+' '+locale_pivotTable.btnClearSelectedField+'
'+locale_pivotTable.btnFilter+'
'+locale_pivotTable.titleRow+'
'+locale_pivotTable.titleColumn+'
'+locale_pivotTable.titleValue+'
'; + // return '
'+locale_pivotTable.title+'
'+locale_pivotTable.editRange+'
'+locale_pivotTable.tipPivotFieldSelected+' '+locale_pivotTable.btnClearSelectedField+'
'+locale_pivotTable.btnFilter+'
'+locale_pivotTable.titleRow+'
'+locale_pivotTable.titleColumn+'
'+locale_pivotTable.titleValue+'
'; + return ` +
+
${locale_pivotTable.title}
+
+
+
+
${locale_pivotTable.editRange}
+
+
${locale_pivotTable.tipPivotFieldSelected} ${locale_pivotTable.btnClearSelectedField}
+
+
+
+
${locale_pivotTable.btnFilter}
+
+
+
+
${locale_pivotTable.titleRow}
+
+
+
+
${locale_pivotTable.titleColumn}
+
+
+
+
${locale_pivotTable.titleValue}
+
+
+
+
+
+ `; } function filtermenuHTML() { @@ -685,6 +716,8 @@ const luckysheetToolHTML = '
return `
-
@@ -708,7 +741,7 @@ function menuToolBar (){
-
@@ -722,7 +755,7 @@ function menuToolBar (){
-
@@ -731,7 +764,7 @@ function menuToolBar (){
-
+
@@ -739,7 +772,11 @@ function menuToolBar (){ style="user-select: none;">
- ¥ +
+ +
@@ -749,7 +786,11 @@ function menuToolBar (){ style="user-select: none;">
- % +
+ +
@@ -761,7 +802,7 @@ function menuToolBar (){ style="user-select: none;">
-
@@ -776,14 +817,14 @@ function menuToolBar (){ style="user-select: none;">
-
-
@@ -793,13 +834,13 @@ function menuToolBar (){ style="user-select: none;"> 123
-
-
+
@@ -811,15 +852,16 @@ function menuToolBar (){ style="user-select: none;"> ${fontarray[0]}
-
-
+ +
-
@@ -831,13 +873,13 @@ function menuToolBar (){ role="combobox" style="user-select: none;" tabindex="-1" type="text" value="10" />
-
-
+
@@ -846,7 +888,7 @@ function menuToolBar (){
-
@@ -860,7 +902,7 @@ function menuToolBar (){
-
@@ -874,14 +916,14 @@ function menuToolBar (){
-
-
@@ -891,7 +933,8 @@ function menuToolBar (){ style="user-select: none;">
- +
@@ -907,15 +950,15 @@ function menuToolBar (){ style="user-select: none;">
-
-
+
-
@@ -925,7 +968,8 @@ function menuToolBar (){ style="user-select: none;">
- +
@@ -941,20 +985,20 @@ function menuToolBar (){ style="user-select: none;">
-
-
-
@@ -967,20 +1011,20 @@ function menuToolBar (){ style="user-select: none;">
-
-
-
@@ -993,15 +1037,15 @@ function menuToolBar (){ style="user-select: none;">
-
-
+
-
@@ -1010,7 +1054,7 @@ function menuToolBar (){
-
@@ -1024,13 +1068,13 @@ function menuToolBar (){ style="user-select: none;">
-
-
@@ -1039,7 +1083,7 @@ function menuToolBar (){
-
@@ -1053,13 +1097,13 @@ function menuToolBar (){ style="user-select: none;">
-
-
@@ -1068,7 +1112,7 @@ function menuToolBar (){
-
@@ -1082,13 +1126,13 @@ function menuToolBar (){ style="user-select: none;">
-
-
@@ -1097,7 +1141,7 @@ function menuToolBar (){
-
@@ -1111,85 +1155,93 @@ function menuToolBar (){ style="user-select: none;">
-
-
+
+ data-tips="${toolbar.insertImage}" id="luckysheet-insertImg-btn-title" role="button" style="user-select: none;">
-
- - - ${toolbar.freezeTopRow} +
+ +
-
-
+
-
+
+ +
-
-
-
-
+
+
-
-
- +
-
+
-
-
+
-
- -
-
+ style="user-select: none;"> +
+ +
+
+
-
-
@@ -1206,68 +1258,133 @@ function menuToolBar (){ style="user-select: none;">
-
-
-
+
+
- ${toolbar.conditionalFormat} +
+ +
-
+
+
+
+
+
+
-
+
+
+
+
+ +
+
+
+
+
+
+
-
- ${toolbar.postil} + +
+
-
-
- - ${toolbar.pivotTable} -
-
- - - ${toolbar.chart} +
+
+
+
+
+ +
+
+
+
-
- - - ${toolbar.screenshot} +
+
+
+
+
+ +
+
+
+
-
- - - ${toolbar.splitColumn} +
+
+
+ +
+ +
+
+
+
+
-
- ${toolbar.insertImage} - -
`; + `; } const luckysheetlodingHTML = function(){ @@ -1379,6 +1496,42 @@ const luckysheetdefaultFont = function(){ const luckysheet_CFiconsImg = new Image(); luckysheet_CFiconsImg.src = "data:image/png;base64,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"; +const iconfontObjects = { + border:{ + 'border-top': ' iconfont icon-shangbiankuang', + 'border-bottom': ' iconfont icon-xiabiankuang', + 'border-left': ' iconfont icon-zuobiankuang', + 'border-right': ' iconfont icon-youbiankuang', + 'border-none': ' iconfont icon-wubiankuang', + 'border-all': ' iconfont icon-quanjiabiankuang', + 'border-outside': ' iconfont icon-sizhoujiabiankuang', + 'border-inside': ' iconfont icon-shangbiankuang', + 'border-horizontal': ' iconfont icon-shangbiankuang', + 'border-vertical': ' iconfont icon-shangbiankuang', + }, + align:{ + 'left': ' iconfont icon-wenbenzuoduiqi', + 'center': ' iconfont icon-wenbenjuzhongduiqi', + 'right': ' iconfont icon-wenbenyouduiqi', + 'top': ' iconfont icon-dingbuduiqi', + 'middle': ' iconfont icon-shuipingduiqi', + 'bottom': ' iconfont icon-dibuduiqi', + }, + textWrap:{ + 'overflow': ' iconfont icon-yichu', + 'wrap': ' iconfont icon-zidonghuanhang', + 'clip': ' iconfont icon-jieduan', + }, + rotation:{ + 'none': ' iconfont icon-wuxuanzhuang', + 'angleup': ' iconfont icon-xiangshangqingxie', + 'angledown': ' iconfont icon-xiangxiaqingxie', + 'vertical': ' iconfont icon-shupaiwenzi', + 'rotation-up': ' iconfont icon-xiangshang90', + 'rotation-down': ' iconfont icon-xiangxia90', + } +} + export { gridHTML, columeHeader_word, @@ -1408,5 +1561,6 @@ export { keycode, luckysheetdefaultstyle, luckysheet_CFiconsImg, - luckysheetdefaultFont + luckysheetdefaultFont, + iconfontObjects } \ No newline at end of file diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 155dd85..3b69887 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -119,9 +119,27 @@ const luckysheetFreezen = { _this.freezenverticaldata = freezenverticaldata; - - - $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); + // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); + + // 解决freeze 不垂直居中的问题 + const freezeHTML = ` +
+
+
+ +
+
+ ${locale().freezen.freezenCancel} +
+
+
+ ` + $("#luckysheet-freezen-btn-horizontal").html(freezeHTML); $("#luckysheet-freezebar-vertical").show().find(".luckysheet-freezebar-vertical-handle").css({ "left": left }).end().find(".luckysheet-freezebar-vertical-drop").css({ "left": left }); }, @@ -276,9 +294,29 @@ const luckysheetFreezen = { cancelFreezenHorizontal: function (sheetIndex) { let _this = this; - + // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.default); + + // 解决freeze 不垂直居中的问题 + const freezeHTML = ` +
+
+
+ +
+
+ ${locale().freezen.default} +
+
+
+ ` + + $("#luckysheet-freezen-btn-horizontal").html(freezeHTML); - $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.default); _this.freezenhorizontaldata = null; let ishorizontal = $("#luckysheet-freezebar-horizontal").is(":visible"); $("#luckysheet-freezebar-horizontal").hide(); @@ -352,7 +390,30 @@ const luckysheetFreezen = { _this.freezenhorizontaldata = freezenhorizontaldata; - $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); + // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); + + // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); + + const freezeHTML = ` +
+
+
+ +
+
+ ${locale().freezen.freezenCancel} +
+
+
+ ` + + $("#luckysheet-freezen-btn-horizontal").html(freezeHTML); + $("#luckysheet-freezebar-horizontal").show().find(".luckysheet-freezebar-horizontal-handle").css({ "top": top }).end().find(".luckysheet-freezebar-horizontal-drop").css({ "top": top }); }, createAssistCanvas: function(){ diff --git a/src/controllers/handler.js b/src/controllers/handler.js index 26bdda1..898ba8c 100644 --- a/src/controllers/handler.js +++ b/src/controllers/handler.js @@ -4365,15 +4365,16 @@ export default function luckysheetHandler() { } }); - //toolbar菜单 - $("#" + Store.container + " .luckysheet-wa-editor").on("click", ".luckysheet-toolbar-zoom-combobox", function (e) { - $(e.currentTarget).addClass("luckysheet-toolbar-combo-button-open"); - $(e.currentTarget).find(".luckysheet-toolbar-combo-button-input").focus(); - }); - - $("#" + Store.container + " .luckysheet-wa-editor").on("blur", ".luckysheet-toolbar-combo-button-input", function (e) { - $(e.currentTarget).closest(".luckysheet-toolbar-zoom-combobox").removeClass("luckysheet-toolbar-combo-button-open"); - }); + // 点击设置字体大小的下拉箭头,把自动聚焦输入框去除(认为下拉设置字体大小,不需要聚焦输入框) + // //toolbar菜单 + // $("#" + Store.container + " .luckysheet-wa-editor").on("click", ".luckysheet-toolbar-zoom-combobox", function (e) { + // $(e.currentTarget).addClass("luckysheet-toolbar-combo-button-open"); + // $(e.currentTarget).find(".luckysheet-toolbar-combo-button-input").focus(); + // }); + + // $("#" + Store.container + " .luckysheet-wa-editor").on("blur", ".luckysheet-toolbar-combo-button-input", function (e) { + // $(e.currentTarget).closest(".luckysheet-toolbar-zoom-combobox").removeClass("luckysheet-toolbar-combo-button-open"); + // }); //表格格式处理 menuButton.initialMenuButton(); diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 56ef056..81efbdc 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1,5 +1,5 @@ import { selectionCopyShow, selectIsOverlap } from './select'; -import { luckyColor } from './constant'; +import { luckyColor, iconfontObjects } from './constant'; import luckysheetMoreFormat from './moreFormat'; import alternateformat from './alternateformat'; import conditionformat from './conditionformat'; @@ -785,7 +785,7 @@ const menuButton = { //字体大小 let luckysheet_fs_setTimeout = null; - $("#luckysheet-icon-font-size").click(function(){ + $("#luckysheet-icon-font-size").click(function(e){ let menuButtonId = $(this).attr("id") + "-menuButton"; let $menuButton = $("#" + menuButtonId); @@ -939,23 +939,26 @@ const menuButton = { const locale_toolbar = _locale.toolbar; const locale_button = _locale.button; let itemdata = [ - {"text": locale_border.borderTop, "value": "border-top", "example": '
'}, - {"text": locale_border.borderBottom, "value":"border-bottom", "example": '
'}, - {"text": locale_border.borderLeft, "value":"border-left", "example": '
'}, - {"text": locale_border.borderRight, "value":"border-right", "example": '
'}, + {"text": locale_border.borderTop, "value": "border-top", "example": '
'}, + {"text": locale_border.borderBottom, "value":"border-bottom", "example": '
'}, + {"text": locale_border.borderLeft, "value":"border-left", "example": '
'}, + {"text": locale_border.borderRight, "value":"border-right", "example": '
'}, {"text": "", "value": "split", "example":""}, - {"text": locale_border.borderNone, "value": "border-none", "example": '
'}, - {"text": locale_border.borderAll, "value": "border-all", "example": '
'}, - {"text": locale_border.borderOutside, "value": "border-outside", "example": '
'}, + {"text": locale_border.borderNone, "value": "border-none", "example": '
'}, + {"text": locale_border.borderAll, "value": "border-all", "example": '
'}, + {"text": locale_border.borderOutside, "value": "border-outside", "example": '
'}, {"text": "", "value": "split", "example": ""}, - {"text": locale_border.borderInside, "value": "border-inside", "example": '
'}, - {"text": locale_border.borderHorizontal, "value": "border-horizontal", "example": '
'}, - {"text": locale_border.borderVertical, "value": "border-vertical", "example": '
'}, + {"text": locale_border.borderInside, "value": "border-inside", "example": '
'}, + {"text": locale_border.borderHorizontal, "value": "border-horizontal", "example": '
'}, + {"text": locale_border.borderVertical, "value": "border-vertical", "example": '
'}, {"text": "", "value": "split", "example": ""}, {"text": ""+ locale_border.borderColor +"", "value":"borderColor", "example":"more"}, {"text": ""+ locale_border.borderSize +"", "value":"borderSize", "example":"more"} ]; + // itemvalue to iconfont + const iconfontObject = iconfontObjects.border; + let itemset = _this.createButtonMenu(itemdata); let menu = replaceHtml(_this.menu, { "id": "border-menu", "item": itemset, "subclass": "", "sub": "" }); @@ -1016,7 +1019,8 @@ const menuButton = { _this.focus($("#" + submenuid), itemvalue); }); - + + // border choose menu $menuButton.find(".luckysheet-cols-menuitem").click(function(){ $menuButton.hide(); luckysheetContainerFocus(); @@ -1081,7 +1085,9 @@ const menuButton = { $("#luckysheet-icon-border-all").attr("type", itemvalue); let $icon = $("#luckysheet-icon-border-all").find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-" + itemvalue); + + // add iconfont + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-" + itemvalue + iconfontObject[itemvalue]); _this.focus($menuButton, itemvalue); }); @@ -1295,11 +1301,14 @@ const menuButton = { const _locale = locale(); const locale_align = _locale.align; let itemdata = [ - {"text": locale_align.left, "value": "left", "example": '
'}, - {"text": locale_align.center, "value": "center", "example": '
'}, - {"text": locale_align.right, "value": "right", "example": '
'} + {"text": locale_align.left, "value": "left", "example": '
'}, + {"text": locale_align.center, "value": "center", "example": '
'}, + {"text": locale_align.right, "value": "right", "example": '
'} ]; + // itemvalue to iconfont + const iconfontObject = iconfontObjects.align; + let itemset = _this.createButtonMenu(itemdata); let menu = replaceHtml(_this.menu, { "id": "align-menu", "item": itemset, "subclass": "", "sub": "" }); @@ -1316,7 +1325,9 @@ const menuButton = { _this.focus($menuButton, itemvalue); let $icon = $("#luckysheet-icon-align").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-align-" + itemvalue); + + // add iconfont + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-align-" + itemvalue + iconfontObject[itemvalue]); let d = editor.deepCopyFlowData(Store.flowdata); _this.updateFormat(d, "ht", itemvalue); @@ -1351,11 +1362,14 @@ const menuButton = { const locale_align = _locale.align; if($menuButton.length == 0){ let itemdata = [ - {"text": locale_align.top, "value": "top", "example": '
'}, - {"text": locale_align.middle, "value": "middle", "example": '
'}, - {"text": locale_align.bottom, "value": "bottom", "example": '
'} + {"text": locale_align.top, "value": "top", "example": '
'}, + {"text": locale_align.middle, "value": "middle", "example": '
'}, + {"text": locale_align.bottom, "value": "bottom", "example": '
'} ]; + // itemvalue to iconfont + const iconfontObject = iconfontObjects.align; + let itemset = _this.createButtonMenu(itemdata); let menu = replaceHtml(_this.menu, { "id": "valign-menu", "item": itemset, "subclass": "", "sub": "" }); @@ -1372,7 +1386,9 @@ const menuButton = { _this.focus($menuButton, itemvalue); let $icon = $("#luckysheet-icon-valign").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-valign-" + itemvalue); + + // add iconfont + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-valign-" + itemvalue + iconfontObject[itemvalue]); let d = editor.deepCopyFlowData(Store.flowdata); _this.updateFormat(d, "vt", itemvalue); @@ -1398,11 +1414,14 @@ const menuButton = { const _locale = locale(); const locale_textWrap = _locale.textWrap; let itemdata = [ - {"text": locale_textWrap.overflow, "value": "overflow", "example": '
'}, - {"text": locale_textWrap.wrap, "value": "wrap", "example": '
'}, - {"text": locale_textWrap.clip, "value": "clip", "example": '
'} + {"text": locale_textWrap.overflow, "value": "overflow", "example": '
'}, + {"text": locale_textWrap.wrap, "value": "wrap", "example": '
'}, + {"text": locale_textWrap.clip, "value": "clip", "example": '
'} ]; + // itemvalue to iconfont + const iconfontObject = iconfontObjects.textWrap; + let itemset = _this.createButtonMenu(itemdata); let menu = replaceHtml(_this.menu, { "id": "textwrap-menu", "item": itemset, "subclass": "", "sub": "" }); @@ -1419,7 +1438,9 @@ const menuButton = { _this.focus($menuButton, itemvalue); let $icon = $("#luckysheet-icon-textwrap").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-textwrap-" + itemvalue); + + // add iconfont + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-textwrap-" + itemvalue + iconfontObject[itemvalue]); let d = editor.deepCopyFlowData(Store.flowdata); _this.updateFormat(d, "tb", itemvalue); @@ -1445,20 +1466,25 @@ const menuButton = { const _locale = locale(); const locale_rotation = _locale.rotation; let itemdata = [ - {"text": locale_rotation.none, "value": "none", "example": '
'}, - {"text": locale_rotation.angleup, "value": "angleup", "example": '
'}, - {"text": locale_rotation.angledown, "value": "angledown", "example": '
'}, - {"text": locale_rotation.vertical, "value": "vertical", "example": '
'}, - {"text": locale_rotation.rotationUp, "value": "rotation-up", "example": '
'}, - {"text": locale_rotation.rotationDown, "value": "rotation-down", "example": '
'}, + {"text": locale_rotation.none, "value": "none", "example": '
'}, + {"text": locale_rotation.angleup, "value": "angleup", "example": '
'}, + {"text": locale_rotation.angledown, "value": "angledown", "example": '
'}, + {"text": locale_rotation.vertical, "value": "vertical", "example": '
'}, + {"text": locale_rotation.rotationUp, "value": "rotation-up", "example": '
'}, + {"text": locale_rotation.rotationDown, "value": "rotation-down", "example": '
'}, ]; + // itemvalue to iconfont + const iconfontObject = iconfontObjects.rotation; + let itemset = _this.createButtonMenu(itemdata); let menu = replaceHtml(_this.menu, { "id": "rotation-menu", "item": itemset, "subclass": "", "sub": "" }); $("body").append(menu); - $menuButton = $("#" + menuButtonId).width(150); + + // 文字旋转总 Stack Vertically 太长了,拉宽到160 + $menuButton = $("#" + menuButtonId).width(160); _this.focus($menuButton); $menuButton.find(".luckysheet-cols-menuitem").click(function(){ @@ -1469,7 +1495,9 @@ const menuButton = { _this.focus($menuButton, itemvalue); let $icon = $("#luckysheet-icon-rotation").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-rotation-" + itemvalue); + + // add iconfont + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-rotation-" + itemvalue + iconfontObject[itemvalue]); let d = editor.deepCopyFlowData(Store.flowdata); _this.updateFormat(d, "tr", itemvalue); @@ -1765,12 +1793,12 @@ const menuButton = { const locale_sort = _locale.sort; const locale_filter = _locale.filter; let itemdata = [ - {"text": locale_sort.asc, "value": "asc", "example": ''}, - {"text": locale_sort.desc, "value": "desc", "example": ''}, - {"text": locale_sort.custom+"...", "value": "diysort", "example": ''}, + {"text": locale_sort.asc, "value": "asc", "example": ''}, + {"text": locale_sort.desc, "value": "desc", "example": ''}, + {"text": locale_sort.custom+"...", "value": "diysort", "example": ''}, {"text": "", "value": "split", "example": ""}, - {"text": locale_filter.filter, "value": "filter", "example": ''}, - {"text": locale_filter.clearFilter, "value": "clearfilter", "example": ''} + {"text": locale_filter.filter, "value": "filter", "example": ''}, + {"text": locale_filter.clearFilter, "value": "clearfilter", "example": ''} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1827,11 +1855,11 @@ const menuButton = { const locale_findAndReplace = _locale.findAndReplace; if($menuButton.length == 0){ let itemdata = [ - {"text": locale_findAndReplace.find+" ...", "value": "search", "example": ''}, - {"text": locale_findAndReplace.replace+" ...", "value": "replace", "example": ''}, - {"text": locale_findAndReplace.goto+" ...", "value": "goto", "example": ''}, + {"text": locale_findAndReplace.find+" ...", "value": "search", "example": ''}, + {"text": locale_findAndReplace.replace+" ...", "value": "replace", "example": ''}, + {"text": locale_findAndReplace.goto+" ...", "value": "goto", "example": ''}, {"text": "", "value": "split", "example": ""}, - {"text": locale_findAndReplace.location+" ...", "value": "location", "example": ''}, + {"text": locale_findAndReplace.location+" ...", "value": "location", "example": ''}, {"text": locale_findAndReplace.formula, "value": "locationFormula", "example": locale_findAndReplace.locationExample}, {"text": locale_findAndReplace.date, "value": "locationConstantDate", "example": locale_findAndReplace.locationExample}, {"text": locale_findAndReplace.number, "value": "locationConstantNumber", "example": locale_findAndReplace.locationExample}, @@ -3246,8 +3274,11 @@ const menuButton = { _this.focus($menuButton, itemvalue); + // add iconfont + const iconfontObject = iconfontObjects.align; + let $icon = $("#luckysheet-icon-align").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-align-" + itemvalue); + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-align-" + itemvalue + iconfontObject[itemvalue]); $menuButton.hide(); } else if(attr == "vt"){ @@ -3263,8 +3294,11 @@ const menuButton = { _this.focus($menuButton, itemvalue); + // add iconfont + const iconfontObject = iconfontObjects.align; + let $icon = $("#luckysheet-icon-valign").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-valign-" + itemvalue); + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-valign-" + itemvalue + iconfontObject[itemvalue]); $menuButton.hide(); } else if(attr == "tb"){ @@ -3280,8 +3314,11 @@ const menuButton = { _this.focus($menuButton, itemvalue); + // add iconfont + const iconfontObject = iconfontObjects.textWrap; + let $icon = $("#luckysheet-icon-textwrap").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-textwrap-" + itemvalue); + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-textwrap-" + itemvalue + iconfontObject[itemvalue]); $menuButton.hide(); } else if(attr == "tr"){ @@ -3306,8 +3343,11 @@ const menuButton = { _this.focus($menuButton, itemvalue); + // add iconfont + const iconfontObject = iconfontObjects.rotation; + let $icon = $("#luckysheet-icon-rotation").attr("type", itemvalue).find(".luckysheet-icon-img-container"); - $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-rotation-" + itemvalue); + $icon.removeAttr("class").addClass("luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-rotation-" + itemvalue + iconfontObject[itemvalue]); $menuButton.hide(); } } diff --git a/src/controllers/resize.js b/src/controllers/resize.js index e8414e3..bbd04cb 100644 --- a/src/controllers/resize.js +++ b/src/controllers/resize.js @@ -14,7 +14,7 @@ export default function luckysheetsizeauto(isRefreshCanvas=true) { $("#luckysheet_info_detail").hide(); } else { - Store.infobarHeight = 30; + Store.infobarHeight = 56; $("#luckysheet_info_detail").show(); } @@ -24,7 +24,7 @@ export default function luckysheetsizeauto(isRefreshCanvas=true) { } else { $("#" + Store.container).find(".luckysheet-wa-editor, .luckysheet-share-logo").show(); - Store.toolbarHeight = 61; + Store.toolbarHeight = 72; } if (!luckysheetConfigsetting.showsheetbar) { @@ -33,7 +33,7 @@ export default function luckysheetsizeauto(isRefreshCanvas=true) { } else { $("#" + Store.container).find("#luckysheet-sheet-area").show(); - Store.sheetBarHeight = 27; + Store.sheetBarHeight = 31; } if (!luckysheetConfigsetting.showstatisticBar) { @@ -72,31 +72,82 @@ export default function luckysheetsizeauto(isRefreshCanvas=true) { const locale_toolbar = _locale.toolbar; let ismore = false, toolbarW = 0, - morebtn = '
'+ locale_toolbar.toolMore +'...
', - morediv = '
'; + // morebtn = '
'+ locale_toolbar.toolMore +'...
', + morebtn = `
+
+
+ +
+ ${locale_toolbar.toolMore} +
+
+
+ +
+
+
`, + morediv = '
'; if($("#luckysheet-icon-morebtn-div").length == 0){ $("body").append(morediv); } $("#luckysheet-icon-morebtn-div").hide(); - $("#luckysheet-icon-morebtn-div > div").appendTo($("#luckysheet-wa-editor")); + // $("#luckysheet-icon-morebtn-div > div").appendTo($("#luckysheet-wa-editor")); + + $("#luckysheet-icon-morebtn-div > div").each(function(){ + const $t = $(this)[0]; + const $container = $("#luckysheet-wa-editor")[0]; + + $container.appendChild(document.createTextNode(" ")); + $container.appendChild($t); + }); + // $("#luckysheet-wa-editor > div").trigger("create"); // $("#luckysheet-icon-morebtn-div > div").trigger("create"); - $("#luckysheet-icon-morebtn").prev().remove().end().remove(); + $("#luckysheet-icon-morebtn").remove(); + + //计算前面按钮宽度加起来总和,超过 容器宽度-更多按钮,则剩下的按钮移动到展开的容器内,这种方式计算宽度不准确,且会导致下拉箭头和主按钮分离的情况,改为 计算left作为宽度依据,和容器宽度比较的方式 + // $("#luckysheet-wa-editor > div").each(function(){ + // let $t = $(this); + // // toolbarW += $t.outerWidth(); + // toolbarW += $t.outerWidth(); - $("#luckysheet-wa-editor > div").each(function(){ - let $t = $(this); - toolbarW += $t.outerWidth(); + // if(!ismore && toolbarW > gridW - 140){ + // ismore = true; + // } - if(!ismore && toolbarW > gridW - 140){ + // if(ismore){ + // $("#luckysheet-icon-morebtn-div").append($(this)); + // } + // }); + + // 所有按钮宽度与元素定位 + const toobarWidths = Store.toobarObject.toobarWidths; + const toobarElements = Store.toobarObject.toobarElements; + let moreButtonIndex = 0; + + // 找到应该隐藏的起始元素位置 + for (let index = toobarWidths.length - 1; index >= 0; index--) { + if(toobarWidths[index] < gridW - 90){ + moreButtonIndex = index; ismore = true; + break; } + } - if(ismore){ - $("#luckysheet-icon-morebtn-div").append($(this)); + // 从起始位置开始,后面的元素统一挪到下方隐藏DIV中 + for (let index = moreButtonIndex; index < toobarElements.length; index++) { + const element = toobarElements[index]; + if(element instanceof Array){ + for(const ele of element){ + $("#luckysheet-icon-morebtn-div").append($(`${ele}`)); + } + }else{ + $("#luckysheet-icon-morebtn-div").append($(`${element}`)); } - }); + + } if(ismore){ @@ -107,19 +158,49 @@ export default function luckysheetsizeauto(isRefreshCanvas=true) { let $txt = $(this).find(".luckysheet-toolbar-menu-button-caption"); if($txt.text().indexOf(locale_toolbar.toolMore) > -1){ - $(this).find(".luckysheet-toolbar-menu-button-caption").html(' '+ locale_toolbar.toolClose +'... '); + + const toolCloseHTML = ` +
+ ${locale_toolbar.toolClose} +
+
+
+ ` + $(this).find(".luckysheet-toolbar-button-inner-box").html(toolCloseHTML); } else{ - $(this).find(".luckysheet-toolbar-menu-button-caption").html(' '+ locale_toolbar.toolMore +'... '); + + const toolMoreHTML = ` +
+ ${locale_toolbar.toolMore} +
+
+
+ ` + + $(this).find(".luckysheet-toolbar-button-inner-box").html(toolMoreHTML); } }); //$("#luckysheet-wa-editor div").trigger("create"); - $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-menu-button").css("margin-right", -1); - $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-button-split-left").css("margin-right", -3); - } + // $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-menu-button").css("margin-right", -1); + // $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-button-split-left").css("margin-right", -3); + + // “更多”容器中,联动hover效果 + $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-button-split-left").off("hover").hover(function(){ + $(this).next(".luckysheet-toolbar-button-split-right").addClass("luckysheet-toolbar-button-split-right-hover"); + }, function(){ + $(this).next(".luckysheet-toolbar-button-split-right").removeClass("luckysheet-toolbar-button-split-right-hover"); + }); + $("#luckysheet-icon-morebtn-div .luckysheet-toolbar-button-split-right").off("hover").hover(function(){ + $(this).prev(".luckysheet-toolbar-button-split-left").addClass("luckysheet-toolbar-button-hover"); + }, function(){ + $(this).prev(".luckysheet-toolbar-button-split-left").removeClass("luckysheet-toolbar-button-hover"); + }); + } + $("#"+ Store.container + " .luckysheet-wa-editor .luckysheet-toolbar-button-split-left").off("hover").hover(function(){ $(this).next(".luckysheet-toolbar-button-split-right").addClass("luckysheet-toolbar-button-split-right-hover"); }, function(){ @@ -156,7 +237,7 @@ export function changeSheetContainerSize(gridW, gridH){ $("#luckysheet-scrollbar-x").height(Store.cellMainSrollBarSize); $("#luckysheet-scrollbar-y").width(Store.cellMainSrollBarSize); - $("#luckysheet-scrollbar-x").width(Store.cellmainWidth).css("left", Store.rowHeaderWidth - 1); + $("#luckysheet-scrollbar-x").width(Store.cellmainWidth).css("left", Store.rowHeaderWidth - 2); Store.luckysheetTableContentHW = [ Store.cellmainWidth + Store.rowHeaderWidth - Store.cellMainSrollBarSize, @@ -188,4 +269,80 @@ export function changeSheetContainerSize(gridW, gridH){ .css({ "height": gridheight - 10 }); luckysheetFreezen.createAssistCanvas(); +} + +/** + * 统计工具栏各个按钮宽度值,用于计算哪些需要放到 更多按钮里 + */ +export function menuToolBarWidth() { + const toobarObject = Store.toobarObject; + toobarObject.toobarWidths= [ + $('#luckysheet-icon-undo').offset().left, + $('#luckysheet-icon-redo').offset().left, + $('#luckysheet-icon-paintformat').offset().left, + $('#luckysheet-icon-currency').offset().left, + $('#luckysheet-icon-percent').offset().left, + $('#luckysheet-icon-fmt-decimal-decrease').offset().left, + $('#luckysheet-icon-fmt-decimal-increase').offset().left, + $('#luckysheet-icon-fmt-other').offset().left, + $('#luckysheet-icon-font-family').offset().left, + $('#luckysheet-icon-font-size').offset().left, + $('#luckysheet-icon-bold').offset().left, + $('#luckysheet-icon-italic').offset().left, + $('#luckysheet-icon-strikethrough').offset().left, + $('#luckysheet-icon-text-color').offset().left, + $('#luckysheet-icon-cell-color').offset().left, + $('#luckysheet-icon-border-all').offset().left, + $('#luckysheet-icon-merge-button').offset().left, + $('#luckysheet-icon-align').offset().left, + $('#luckysheet-icon-valign').offset().left, + $('#luckysheet-icon-textwrap').offset().left, + $('#luckysheet-icon-rotation').offset().left, + $('#luckysheet-insertImg-btn-title').offset().left, + $('#luckysheet-chart-btn-title').offset().left, + $('#luckysheet-icon-postil').offset().left, + $('#luckysheet-pivot-btn-title').offset().left, + $('#luckysheet-icon-function').offset().left, + $('#luckysheet-freezen-btn-horizontal').offset().left, + $('#luckysheet-icon-autofilter').offset().left, + $('#luckysheet-icon-conditionformat').offset().left, + $('#luckysheet-splitColumn-btn-title').offset().left, + $('#luckysheet-chart-btn-screenshot').offset().left, + $('#luckysheet-icon-seachmore').offset().left, + $('#luckysheet-icon-seachmore').offset().left + $('#luckysheet-icon-seachmore').outerWidth() + 5, + ]; + toobarObject.toobarElements = [ + '#luckysheet-icon-undo', + '#luckysheet-icon-redo', + ['#luckysheet-icon-paintformat','#toolbar-separator-paint-format'], + '#luckysheet-icon-currency', + '#luckysheet-icon-percent', + '#luckysheet-icon-fmt-decimal-decrease', + '#luckysheet-icon-fmt-decimal-increase', + ['#luckysheet-icon-fmt-other','#toolbar-separator-more-format'], + ['#luckysheet-icon-font-family','#toolbar-separator-font-family'], + ['#luckysheet-icon-font-size','#toolbar-separator-font-size'], + '#luckysheet-icon-bold', + '#luckysheet-icon-italic', + '#luckysheet-icon-strikethrough', + ['#luckysheet-icon-text-color','#luckysheet-icon-text-color-menu','#toolbar-separator-text-color'], + ['#luckysheet-icon-cell-color','#luckysheet-icon-cell-color-menu'], + ['#luckysheet-icon-border-all','#luckysheet-icon-border-menu'], + ['#luckysheet-icon-merge-button','#luckysheet-icon-merge-menu','#toolbar-separator-merge-cell'], + ['#luckysheet-icon-align','#luckysheet-icon-align-menu'], + ['#luckysheet-icon-valign','#luckysheet-icon-valign-menu'], + ['#luckysheet-icon-textwrap','#luckysheet-icon-textwrap-menu'], + ['#luckysheet-icon-rotation','#luckysheet-icon-rotation-menu','#toolbar-separator-text-rotate'], + '#luckysheet-insertImg-btn-title', + '#luckysheet-chart-btn-title', + '#luckysheet-icon-postil', + ['#luckysheet-pivot-btn-title','#toolbar-separator-pivot-table'], + ['#luckysheet-icon-function','#luckysheet-icon-function-menu'], + ['#luckysheet-freezen-btn-horizontal','#luckysheet-icon-freezen-menu'], + '#luckysheet-icon-autofilter', + '#luckysheet-icon-conditionformat', + '#luckysheet-splitColumn-btn-title', + '#luckysheet-chart-btn-screenshot', + '#luckysheet-icon-seachmore' + ] } \ No newline at end of file diff --git a/src/css/iconCustom.css b/src/css/iconCustom.css new file mode 100644 index 0000000..5a1fcbd --- /dev/null +++ b/src/css/iconCustom.css @@ -0,0 +1,66 @@ +.luckysheet-icon-img-container.iconfont, +.luckysheet-submenu-arrow .iconfont +{ + font-size: 24px; +} + +.luckysheet-toolbar-menu-button .icon-xiayige, +.luckysheet-toolbar-combo-button .icon-xiayige +{ + font-size: 12px; + top: -8px; + left: -3px; +} + +.luckysheet-toolbar-select .icon-xiayige{ + margin-right: 4px; +} + +#luckysheet-icon-morebtn{ + position: absolute; + right: 30px; +} + + +.toolbar .luckysheet-icon-text-color, +.toolbar .luckysheet-icon-cell-color, +.toolbar .luckysheet-icon-border-all, +.toolbar .luckysheet-icon-valign, +.toolbar .luckysheet-icon-textwrap +{ + margin-right: -3px; +} + +.toolbar .luckysheet-icon-merge-button, +.toolbar .luckysheet-icon-align, +.toolbar .luckysheet-icon-rotation, +.toolbar .luckysheet-icon-function, +.toolbar .luckysheet-freezen-btn-horizontal +{ + margin-right: -4px; +} + +#luckysheet-icon-morebtn{ + padding: 0 13px 0 5px; +} +#luckysheet-icon-morebtn .iconfont{ + top:-9px; +} + + +/* custom common style */ + +.lucky-button-custom{ + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} +.lucky-button-custom:hover{ + background-color: #E1E4E8; +} + +#luckysheet-icon-morebtn-div{ + border-left: 1px solid rgb(212, 212, 212); + border-right: 1px solid rgb(212, 212, 212); +} diff --git a/src/css/luckysheet-core.css b/src/css/luckysheet-core.css index 04e461d..04f2ef6 100644 --- a/src/css/luckysheet-core.css +++ b/src/css/luckysheet-core.css @@ -45,7 +45,7 @@ top: 0px; margin: 0px; padding: 0 17px; - width: 100%; + /* width: 100%; */ height: 56px; display: flex; align-items: center; @@ -127,14 +127,18 @@ .luckysheet-wa-editor { height: 34px; - background: #f7f7f7; + /* background: #f7f7f7; */ + background: #fafafc; position: relative; - padding-left: 15px; + /* padding-left: 15px; */ + /* padding: 0px 0px 10px 15px; */ + padding: 7px 0px 3px 15px;; border-bottom: 1px solid #d4d4d4; white-space: nowrap; + transition: all 0.2s; } - +/* .luckysheet-wa-editor>div.luckysheetfulltoolbar { display: inline-block; height: 34px; @@ -161,13 +165,13 @@ -moz-box-shadow: inset 0 0 2px #727272; box-shadow: inset 0 0 2px #727272; cursor: pointer; -} +} */ /*toolbar菜单start*/ .luckysheet-toolbar-left-theme { width: 15px; - background: #0188fb; + /* background: #0188fb; */ /* 工具栏左边的蓝色背景 */ position: absolute; left: 0px; top: 1px; @@ -182,7 +186,6 @@ /*分隔符*/ .luckysheet-toolbar-separator { - height: 17px; line-height: normal; list-style: none; outline: none; @@ -190,10 +193,12 @@ padding: 0; text-decoration: none; width: 0; - height: 35px; + /* height: 35px; */ + height: 20px; vertical-align: top; border-left: 1px solid #e0e0e0; - margin: 0 1px; + /* margin: 0 1px; */ + margin: 5px 1px; } /*combo*/ @@ -216,7 +221,7 @@ font-weight: bold; text-decoration: none; cursor: default; - top: 2px; + /* top: 2px; */ height: 26px; line-height: 26px; vertical-align: inherit; @@ -275,13 +280,14 @@ padding: 0; } -.luckysheet-toolbar-combo-button-inner-box { +/* .luckysheet-toolbar-combo-button-inner-box { padding: 0 2px; margin: 0 1px; -} +} */ .luckysheet-toolbar-zoom-combobox .luckysheet-toolbar-combo-button-caption { - width: 48px !important; + /* width: 48px !important; */ + width: 36px !important; } .luckysheet-toolbar-combo-button-caption { @@ -300,7 +306,7 @@ overflow: hidden !important; color: rgba(0, 0, 0, .7); height: 22px !important; - width: 28px; + width: 22px; } .luckysheet-toolbar-combo-button-input:focus { @@ -318,11 +324,12 @@ border-top: 1px solid #c0c0c0; font-size: 13px; height: 25px; - padding: 1px 8px; + /* padding: 1px 8px; */ + padding: 1px 0px 1px 8px; } .luckysheet-toolbar-combo-button-dropdown { - background: url(arrow-down.png) center no-repeat; + /* background: url(arrow-down.png) center no-repeat; */ float: right; margin: 9px 0 0 0px; padding: 0 0 0 1px; @@ -342,9 +349,18 @@ .luckysheet-color-menu-button-indicator { position: relative; - border-bottom: 4px solid #f0f0f0; + /* border-bottom: 4px solid #f0f0f0; */ height: 20px; - border-bottom-color: transparent; + /* border-bottom-color: transparent; */ +} + +.luckysheet-color-menu-button-indicator .text-color-bar{ + position: absolute; + bottom: 0px; + background-color: #0081f9; + height: 3px; + width: 55%; + left: 25%; } .luckysheet-toolbar-button-inner-box .luckysheet-icon, @@ -364,7 +380,7 @@ } .luckysheet-toolbar-menu-button-dropdown { - background: url(arrow-down.png) center no-repeat; + /* background: url(arrow-down.png) center no-repeat; */ float: right; margin: 10px 2px 0 3px; padding: 0; @@ -383,9 +399,9 @@ padding: 0px 3px; } -.luckysheet-toolbar-select { +/* .luckysheet-toolbar-select { margin-left: 1px; -} +} */ /*split*/ .luckysheet-toolbar-button-split-left, @@ -423,15 +439,16 @@ padding: 0; list-style: none; font-size: 11px; - font-weight: bold; + /* font-weight: bold; */ text-decoration: none; vertical-align: middle; cursor: default; - margin: 3px -3px 0px 2px; + /* margin: 3px -3px 0px 2px; */ height: 26px; line-height: 26px; - color: rgba(0, 0, 0, .7); + /* color: rgba(0, 0, 0, .7); */ + color: #333; } .luckysheet-toolbar-button:hover, @@ -444,10 +461,6 @@ cursor: pointer; } -.luckysheet-toolbar-button-split-left { - margin-right: -6px; -} - .luckysheet-toolbar-button-split-right.luckysheet-toolbar-menu-button:hover { border-left-color: rgba(0, 0, 0, 0.12) !important; } @@ -489,18 +502,21 @@ .luckysheet-icon { direction: ltr; - text-align: left; + /* text-align: left; */ + text-align: center; overflow: hidden; vertical-align: middle; - height: 18px; - width: 18px; - margin: 1px 2px 2px 1px; - margin-top: 0px; - opacity: .54; + /* height: 18px; + width: 18px; */ + height: 26px; + width: 26px; + /* margin: 1px 2px 2px 1px; */ + margin: 2px; + /* opacity: .54; */ } -.luckysheet-icon-img { +/* .luckysheet-icon-img { background: url(menuSprite.svg); content: url(menuSprite.svg); } @@ -536,7 +552,7 @@ .luckysheet-icon-redo { left: 0; top: -1188px; -} +} .luckysheet-icon-paintformat { left: -90px; @@ -546,16 +562,16 @@ .luckysheet-icon-decimal-decrease { left: -36px; top: -1444px; -} +} */ -.toolbar-decimal-icon { +/* .toolbar-decimal-icon { margin-bottom: -4px; -} +} */ -.luckysheet-icon-decimal-increase { +/* .luckysheet-icon-decimal-increase { left: -36px; top: -1660px; -} +} */ #luckysheet-icon-font-family .luckysheet-toolbar-menu-button-caption { overflow: hidden; @@ -563,10 +579,11 @@ white-space: nowrap; width: 55px; margin-left: 1px; - text-align: left; + /* text-align: left; */ + text-align: center; } -.luckysheet-icon-bold { +/* .luckysheet-icon-bold { left: -18px; top: -186px; } @@ -745,7 +762,7 @@ .luckysheet-icon-line-type { left: 0; top: -126px; -} +} */ #luckysheet-icon-function .luckysheet-toolbar-menu-button-caption { @@ -978,34 +995,37 @@ right: 0; bottom: 0; left: 0; - background-color: #f6f6f6; + /* background-color: #f6f6f6; */ + background-color: #fafafc; color: #444; - height: 27px; - padding: 0; + height: 31px; + padding: 0 0 0 44px; margin: 0; -webkit-touch-callout: none; cursor: default; + transition: .3s ease all; } .luckysheet-sheet-area>div, .luckysheet-sheet-area .luckysheet-sheets-item { display: inline-block; - margin-right: 6px; + /* margin-right: 6px; margin-top: 1px; - padding: 1px 6px; + padding: 1px 6px; */ + padding: 6px 10px; } -.luckysheet-sheet-area .luckysheet-sheets-add { +/* .luckysheet-sheet-area .luckysheet-sheets-add { margin-left: 47px; -} +} */ -div.luckysheet-sheets-add, +/* div.luckysheet-sheets-add, div.luckysheet-sheets-m, div.luckysheet-sheets-scroll { background: #F6F6F6; border: 1px solid #F6F6F6; color: #4E4E4E; -} +} */ div.luckysheet-sheets-scroll { display: none; @@ -1078,29 +1098,43 @@ div.luckysheet-sheets-m:hover { .luckysheet-sheet-area div.luckysheet-sheets-item { padding: 2px 6px; - height: 18px; - line-height: 18px; - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset; - background-color: #f7f7f7; - border-color: #000; - border-top-color: #aaa; - border-width: 0 1px 1px 1px; + height: 29px; + line-height: 29px; + /* box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset; */ + /* background-color: #f7f7f7; */ + background-color: #fafafc; + /* border-color: #000; */ + /* border-top-color: #aaa; */ + /* border-width: 0 1px 1px 1px; */ color: #676464; min-width: 30px; top: 0px; position: relative; - border-radius: 0 0 2px 2px; - margin-right: 1px; + /* border-radius: 0 0 2px 2px; */ + margin-right: -1px; cursor: pointer; - border-bottom: 1px solid #cacaca; + /* border-bottom: 1px solid #cacaca; */ transition: all 0.1s; - padding-right: 20px; + /* padding-right: 20px; */ font-size: 13px; + + padding: 2px 19px 0px 5px; + box-sizing: border-box; + border-left: 1px solid #e0e0e0; + border-bottom: 1px solid #e0e0e0; + border-right: 1px solid #e0e0e0; + /* display:flex; + justify-content: center; + align-items: center; + height: 100%; */ } +.luckysheet-sheet-area div.luckysheet-sheets-item:last-child{ + margin-right: 1px; +} .luckysheet-sheet-area div.luckysheet-sheets-item:hover { background-color: #EFEFEF; - border-color: #a5a5a5; + /* border-color: #a5a5a5; */ color: #490500; } @@ -1129,7 +1163,8 @@ div.luckysheet-sheets-m:hover { .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name[contenteditable="true"] { border: 1px solid #d9d9d9; display: inline-block; - height: 16px; + height: 18px; + line-height: 18px; min-width: 8px; margin: -4px -1px; -moz-user-modify: read-write-plaintext-only; @@ -1148,23 +1183,23 @@ div.luckysheet-sheets-m:hover { } .luckysheet-sheet-area div.luckysheet-sheets-item-active { - padding: 2px 8px; - height: 20px; - /* line-height: 22px; */ + /* padding: 2px 8px; */ + height: 29px; + line-height: 29px; background-color: #fff; - border-color: #aaa; + /* border-color: #aaa; */ border-top-color: #fff; color: #222; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + /* box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); */ cursor: default; - top: -2px; - border-bottom: none; - padding-right: 20px; + /* top: -2px; */ + /* border-bottom: none; */ + /* padding-right: 20px; */ } .luckysheet-sheet-area div.luckysheet-sheets-item-active:hover { background-color: #fff; - border-color: #aaa; + /* border-color: #aaa; */ color: #222; } @@ -2440,6 +2475,7 @@ body:not(.ewa-ipad) .luckysheet-rows-h-cell-sel:hover { color: #000; user-select: none; font-family: Arial; + line-height: 100%; } #luckysheet-pivotTable-config-option-sumtype .luckysheet-submenu-arrow { diff --git a/src/global/api.js b/src/global/api.js index dda0a41..59d17d8 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -22,6 +22,7 @@ import editor from "./editor"; import { rowlenByRange } from "./getRowlen"; import luckysheetformula from './formula'; import luckysheetsizeauto from '../controllers/resize'; +import sheetmanage from '../controllers/sheetmanage'; const IDCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i; @@ -2473,3 +2474,32 @@ export function resize(options = {}){ success(); } } + + +/** + * 根据index获取sheet页配置 + * + * @param {Object} options 可选参数 + * @param {String} options.index 工作表index + * @param {Number} options.order 工作表order + * @param {String} options.name 工作表name + */ +export function getSheet(options = {}){ + + let { + index, + order, + name + } = {...options}; + + if(index != null){ + return sheetmanage.getSheetByIndex(index); + }else if(order != null){ + return Store.luckysheetfile[order]; + }else if(name != null){ + return sheetmanage.getSheetByName(name); + } + + return sheetmanage.getSheetByIndex(); + +} diff --git a/src/global/createdom.js b/src/global/createdom.js index 52e5fd7..68ed91e 100644 --- a/src/global/createdom.js +++ b/src/global/createdom.js @@ -19,6 +19,7 @@ import rhchInit from './rhchInit'; import { replaceHtml } from '../utils/util'; import Store from '../store'; import locale from '../locale/locale'; +import {menuToolBarWidth} from '../controllers/resize' export default function luckysheetcreatedom(colwidth, rowheight, data, menu, title) { //最少30行 @@ -98,6 +99,9 @@ export default function luckysheetcreatedom(colwidth, rowheight, data, menu, tit $("#" + Store.container).append(gh); + //统计工具栏按钮宽度值 + menuToolBarWidth(); + $("#luckysheet-scrollbar-x div").width(Store.ch_width); $("#luckysheet-scrollbar-y div").height(Store.rh_height - 30); diff --git a/src/index.html b/src/index.html index e109f38..3aa78bc 100644 --- a/src/index.html +++ b/src/index.html @@ -11,6 +11,7 @@ + diff --git a/src/locale/en.js b/src/locale/en.js index fb0dd08..baa3200 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -54,6 +54,7 @@ export default { toolLess:"Less", toolClose:"Close", toolMoreTip:"More features", + moreOptions:"More Options", }, alternatingColors:{ applyRange: 'Apply to range', @@ -397,7 +398,7 @@ export default { "rotationDown":"Rotate down" }, freezen:{ - default:"Freezen", + default:"Freeze", freezenRow:"First Row", freezenColumn:"First column", freezenRC:"Both", diff --git a/src/locale/zh.js b/src/locale/zh.js index fd18cb7..3806ef1 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -54,6 +54,7 @@ export default { toolLess:"少于", toolClose:"收起", toolMoreTip:"更多功能", + moreOptions:"更多选项", }, alternatingColors:{ applyRange: '应用范围', diff --git a/src/store/index.js b/src/store/index.js index 2c9c610..220638d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -17,13 +17,13 @@ const Store = { cellmainWidth: 0, cellmainHeight: 0, - toolbarHeight: 61, - infobarHeight: 30, - calculatebarHeight: 30, + toolbarHeight: 72, + infobarHeight: 56, + calculatebarHeight: 3, rowHeaderWidth: 46, columeHeaderHeight: 20, cellMainSrollBarSize: 12, - sheetBarHeight: 27, + sheetBarHeight: 31, statisticBarHeight: 23, luckysheetTableContentHW: [0, 0], @@ -126,6 +126,8 @@ const Store = { showGridLines:true, + toobarObject: {}, //toolbar constant + } export default Store; \ No newline at end of file diff --git a/src/utils/util.js b/src/utils/util.js index 7862bcd..d47e440 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -386,15 +386,13 @@ function luckysheetactiveCell() { //单元格编辑聚焦 function luckysheetContainerFocus() { - // $("#" + Store.container).attr("tabindex", 0).focus({ + // $("#" + Store.container).focus({ // preventScroll: true // }); - + // fix jquery error: Uncaught TypeError: ((n.event.special[g.origType] || {}).handle || g.handler).apply is not a function - $("#" + Store.container).focus({ - preventScroll: true - }); + $("#" + Store.container).attr("tabindex", 0).focus(); } //数字格式