初始化项目:添加后端代码、ThinkPHP框架、前端资源

This commit is contained in:
amb
2026-09-03 12:42:39 +08:00
commit 482bece22e
3726 changed files with 416708 additions and 0 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+82
View File
@@ -0,0 +1,82 @@
@font-face {
font-family: "iconfont";
src: url('../fonts/iconfont/iconfont.eot'); /* IE9 */
src: url('../fonts/iconfont/iconfont.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('../fonts/iconfont/iconfont.woff') format('woff'),
url('../fonts/iconfont/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('../fonts/iconfont/iconfont.svg#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-android:before {
content: "\e665";
}
.icon-dashboard:before {
content: "\e642";
}
.icon-share:before {
content: "\e610";
}
.icon-chevronleft:before {
content: "\e67e";
}
.icon-wxapp:before {
content: "\e603";
}
.icon-pengyouquan:before {
content: "\e639";
}
.icon-weibo:before {
content: "\e63a";
}
.icon-weixin:before {
content: "\e63b";
}
.icon-heart:before {
content: "\e63e";
}
.icon-pencil:before {
content: "\e63f";
}
.icon-comment-o:before {
content: "\e655";
}
.icon-backtotop:before {
content: "\e669";
}
.icon-feedback:before {
content: "\e66b";
}
.icon-qrcode:before {
content: "\e65e";
}
.icon-shouji:before {
content: "\e661";
}
.icon-ellipsis-h:before {
content: "\e66f";
}
@@ -0,0 +1,39 @@
/**
* @fileOverview CSS for jquery-autocomplete, the jQuery Autocompleter
* @author <a href="mailto:dylan@dyve.net">Dylan Verheul</a>
* @license MIT | GPL | Apache 2.0, see LICENSE.txt
* @see https://github.com/dyve/jquery-autocomplete
*/
.acResults {
padding: 0px;
border: 1px solid WindowFrame;
background-color: Window;
overflow: hidden;
}
.acResults ul {
margin: 0px;
padding: 0px;
list-style-position: outside;
list-style: none;
}
.acResults ul li {
margin: 0px;
padding: 2px 5px;
cursor: pointer;
display: block;
font: menu;
font-size: 12px;
overflow: hidden;
}
.acLoading {
background : url('indicator.gif') right center no-repeat;
}
.acSelect {
background-color: Highlight;
color: HighlightText;
}
+78
View File
@@ -0,0 +1,78 @@
div.tagsinput{border:1px solid #CCC;background:#FFF;padding:5px;width:300px;height:100px;overflow-y:auto}div.tagsinput span.tag{border:1px solid #a5d24a;-moz-border-radius:2px;-webkit-border-radius:2px;display:block;float:left;padding:5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:13px}div.tagsinput span.tag a{font-weight:700;color:#82ad2b;text-decoration:none;font-size:11px}div.tagsinput input{width:80px;margin:0 5px 5px 0;font-family:helvetica;font-size:13px;border:1px solid transparent;padding:5px;background:0 0;color:#000;outline:0}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#FBD8DB!important;color:#90111A!important}
div.tagsinput {
border: 1px solid #e3e7f1;
border-radius: 3px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
-moz-transition: border-color ease-in-out .15s, -moz-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s
}
div.tagsinput span.tag {
height: 24px;
padding: 2px 5px;
margin-bottom: 0;
color: #0084ff;
background: rgba(0, 132, 255, .1);
border-color: transparent
}
div.tagsinput span.tag a {
font-family: Verdana;
color: #0084ff;
margin-left: 5px
}
div.tagsinput input {
margin-bottom: 0;
margin-right: 0;
padding: 2px 5px;
}
.autocomplete-suggestions {
text-align: left;
cursor: default;
background: #fff;
border: 1px solid rgba(0,0,0,.15);
border-radius: 2px;
-webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
-moz-box-shadow: 0 6px 12px rgba(0,0,0,.175);
box-shadow: 0 6px 12px rgba(0,0,0,.175);
background-clip: padding-box;
position: absolute;
/* display: none; */
z-index: 1029;
max-height: 254px;
overflow: hidden;
overflow-y: auto;
box-sizing: border-box;
}
.autocomplete-search .autocomplete-questions.selected,.autocomplete-search .autocomplete-questions:hover,.autocomplete-search .autocomplete-searchtags.selected,.autocomplete-search .autocomplete-searchtags:hover,.autocomplete-tags .autocomplete-suggestion.selected,.autocomplete-tags .autocomplete-suggestion:hover {
background: #f0f0f0
}
.autocomplete-tags {
min-width: 160px
}
.autocomplete-tags .autocomplete-suggestion {
position: relative;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
font-size: 1em;
color: #333;
padding: 5px 10px;
cursor: pointer;
white-space: inherit
}
.autocomplete-tags .autocomplete-suggestion b {
font-weight: 400;
color: #f71752
}
+1
View File
@@ -0,0 +1 @@
@font-face{font-family:"socialshare";src:url("../fonts/share/share.eot");src:url("../fonts/share/share.eot?#iefix") format("embedded-opentype"),url("../fonts/share/share.woff") format("woff"),url("../fonts/share/share.ttf") format("truetype"),url("../fonts/share/share.svg#iconfont") format("svg")}.social-share{font-family:"socialshare" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:0.2px;-moz-osx-font-smoothing:grayscale}.social-share .icon-tencent:before{content:"\f07a"}.social-share .icon-qq:before{content:"\f11a"}.social-share .icon-weibo:before{content:"\f12a"}.social-share .icon-wechat:before{content:"\f09a"}.social-share .icon-douban:before{content:"\f10a"}.social-share .icon-heart:before{content:"\f20a"}.social-share .icon-like:before{content:"\f00a"}.social-share .icon-qzone:before{content:"\f08a"}.social-share .icon-linkedin:before{content:"\f01a"}.social-share .icon-diandian:before{content:"\f05a"}.social-share .icon-facebook:before{content:"\f03a"}.social-share .icon-google:before{content:"\f04a"}.social-share .icon-twitter:before{content:"\f06a"}.social-share a{position:relative;text-decoration:none;margin:4px;display:inline-block;outline:none}.social-share .social-share-icon{position:relative;display:inline-block;width:32px;height:32px;font-size:20px;border-radius:50%;line-height:32px;border:1px solid #666;color:#666;text-align:center;vertical-align:middle;transition:background 0.6s ease-out 0s}.social-share .social-share-icon:hover{background:#666;color:#fff}.social-share .icon-weibo{color:#ff763b;border-color:#ff763b}.social-share .icon-weibo:hover{background:#ff763b}.social-share .icon-tencent{color:#56b6e7;border-color:#56b6e7}.social-share .icon-tencent:hover{background:#56b6e7}.social-share .icon-qq{color:#56b6e7;border-color:#56b6e7}.social-share .icon-qq:hover{background:#56b6e7}.social-share .icon-qzone{color:#FDBE3D;border-color:#FDBE3D}.social-share .icon-qzone:hover{background:#FDBE3D}.social-share .icon-douban{color:#33b045;border-color:#33b045}.social-share .icon-douban:hover{background:#33b045}.social-share .icon-linkedin{color:#0077B5;border-color:#0077B5}.social-share .icon-linkedin:hover{background:#0077B5}.social-share .icon-facebook{color:#44619D;border-color:#44619D}.social-share .icon-facebook:hover{background:#44619D}.social-share .icon-google{color:#db4437;border-color:#db4437}.social-share .icon-google:hover{background:#db4437}.social-share .icon-twitter{color:#55acee;border-color:#55acee}.social-share .icon-twitter:hover{background:#55acee}.social-share .icon-diandian{color:#307DCA;border-color:#307DCA}.social-share .icon-diandian:hover{background:#307DCA}.social-share .icon-wechat{position:relative;color:#7bc549;border-color:#7bc549}.social-share .icon-wechat:hover{background:#7bc549}.social-share .icon-wechat .wechat-qrcode{opacity:0;filter:alpha(opacity=0);visibility:hidden;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms}.social-share .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px;background-color:#f3f3f3;margin:0;padding:0;color:#777}.social-share .icon-wechat .wechat-qrcode .qrcode{width:105px;margin:10px auto}.social-share .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0}.social-share .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}.social-share .icon-wechat:hover .wechat-qrcode{opacity:1;filter:alpha(opacity=100);visibility:visible}
File diff suppressed because one or more lines are too long
+260
View File
@@ -0,0 +1,260 @@
.m-0 {
margin-top: 0px !important;
margin-right: 0px !important;
margin-bottom: 0px !important;
margin-left: 0px !important;
}
.mt-0 {
margin-top: 0px !important;
}
.mr-0 {
margin-right: 0px !important;
}
.mb-0 {
margin-bottom: 0px !important;
}
.ml-0 {
margin-left: 0px !important;
}
.mx-0 {
margin-left: 0px !important;
margin-right: 0px !important;
}
.my-0 {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.m-1 {
margin-top: 5px !important;
margin-right: 5px !important;
margin-bottom: 5px !important;
margin-left: 5px !important;
}
.mt-1 {
margin-top: 5px !important;
}
.mr-1 {
margin-right: 5px !important;
}
.mb-1 {
margin-bottom: 5px !important;
}
.ml-1 {
margin-left: 5px !important;
}
.mx-1 {
margin-left: 5px !important;
margin-right: 5px !important;
}
.my-1 {
margin-top: 5px !important;
margin-bottom: 5px !important;
}
.m-2 {
margin-top: 10px !important;
margin-right: 10px !important;
margin-bottom: 10px !important;
margin-left: 10px !important;
}
.mt-2 {
margin-top: 10px !important;
}
.mr-2 {
margin-right: 10px !important;
}
.mb-2 {
margin-bottom: 10px !important;
}
.ml-2 {
margin-left: 10px !important;
}
.mx-2 {
margin-left: 10px !important;
margin-right: 10px !important;
}
.my-2 {
margin-top: 10px !important;
margin-bottom: 10px !important;
}
.m-3 {
margin-top: 15px !important;
margin-right: 15px !important;
margin-bottom: 15px !important;
margin-left: 15px !important;
}
.mt-3 {
margin-top: 15px !important;
}
.mr-3 {
margin-right: 15px !important;
}
.mb-3 {
margin-bottom: 15px !important;
}
.ml-3 {
margin-left: 15px !important;
}
.mx-3 {
margin-left: 15px !important;
margin-right: 15px !important;
}
.my-3 {
margin-top: 15px !important;
margin-bottom: 15px !important;
}
.m-4 {
margin-top: 20px !important;
margin-right: 20px !important;
margin-bottom: 20px !important;
margin-left: 20px !important;
}
.mt-4 {
margin-top: 20px !important;
}
.mr-4 {
margin-right: 20px !important;
}
.mb-4 {
margin-bottom: 20px !important;
}
.ml-4 {
margin-left: 20px !important;
}
.mx-4 {
margin-left: 20px !important;
margin-right: 20px !important;
}
.my-4 {
margin-top: 20px !important;
margin-bottom: 20px !important;
}
.p-0 {
padding-top: 0px !important;
padding-right: 0px !important;
padding-bottom: 0px !important;
padding-left: 0px !important;
}
.pt-0 {
padding-top: 0px !important;
}
.pr-0 {
padding-right: 0px !important;
}
.pb-0 {
padding-bottom: 0px !important;
}
.pl-0 {
padding-left: 0px !important;
}
.px-0 {
padding-left: 0px !important;
padding-right: 0px !important;
}
.py-0 {
padding-top: 0px !important;
padding-bottom: 0px !important;
}
.p-1 {
padding-top: 5px !important;
padding-right: 5px !important;
padding-bottom: 5px !important;
padding-left: 5px !important;
}
.pt-1 {
padding-top: 5px !important;
}
.pr-1 {
padding-right: 5px !important;
}
.pb-1 {
padding-bottom: 5px !important;
}
.pl-1 {
padding-left: 5px !important;
}
.px-1 {
padding-left: 5px !important;
padding-right: 5px !important;
}
.py-1 {
padding-top: 5px !important;
padding-bottom: 5px !important;
}
.p-2 {
padding-top: 10px !important;
padding-right: 10px !important;
padding-bottom: 10px !important;
padding-left: 10px !important;
}
.pt-2 {
padding-top: 10px !important;
}
.pr-2 {
padding-right: 10px !important;
}
.pb-2 {
padding-bottom: 10px !important;
}
.pl-2 {
padding-left: 10px !important;
}
.px-2 {
padding-left: 10px !important;
padding-right: 10px !important;
}
.py-2 {
padding-top: 10px !important;
padding-bottom: 10px !important;
}
.p-3 {
padding-top: 15px !important;
padding-right: 15px !important;
padding-bottom: 15px !important;
padding-left: 15px !important;
}
.pt-3 {
padding-top: 15px !important;
}
.pr-3 {
padding-right: 15px !important;
}
.pb-3 {
padding-bottom: 15px !important;
}
.pl-3 {
padding-left: 15px !important;
}
.px-3 {
padding-left: 15px !important;
padding-right: 15px !important;
}
.py-3 {
padding-top: 15px !important;
padding-bottom: 15px !important;
}
.p-4 {
padding-top: 20px !important;
padding-right: 20px !important;
padding-bottom: 20px !important;
padding-left: 20px !important;
}
.pt-4 {
padding-top: 20px !important;
}
.pr-4 {
padding-right: 20px !important;
}
.pb-4 {
padding-bottom: 20px !important;
}
.pl-4 {
padding-left: 20px !important;
}
.px-4 {
padding-left: 20px !important;
padding-right: 20px !important;
}
.py-4 {
padding-top: 20px !important;
padding-bottom: 20px !important;
}
Binary file not shown.
@@ -0,0 +1,69 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="android" unicode="&#58981;" d="M135.791304 200.718841C101.657971 200.718841 72.718841 229.65797099999997 72.718841 245.98260900000002l0.742029 282.713043c0 17.066667 28.197101 46.005797 62.330434 46.005797 34.133333 0 62.330435-31.907246 62.330435-48.231884L197.37971 245.98260900000002c0-16.324638-27.455072-45.263768-61.588406-45.263768z m753.159421 0c-34.133333 0-63.072464 28.93913-63.072464 45.263768l0.742029 282.713043c0 17.066667 28.197101 46.005797 62.330435 46.005797 34.133333 0 62.330435-31.907246 62.330434-48.231884l-0.742029-280.486956c0-16.324638-27.455072-45.263768-61.588405-45.263768zM232.997101 575.443478v-448.927536c0-26.713043 23.744928-51.2 48.231885-51.2h55.652173v-151.373913c0-25.228986 28.197101-46.005797 62.330435-46.005797 34.133333 0 62.330435 20.776812 62.330435 46.005797V75.31594199999995h100.915942v-151.373913c0-25.228986 28.197101-46.005797 62.330435-46.005797 34.133333 0 62.330435 20.776812 62.330435 46.005797V75.31594199999995h54.910145c24.486957 0 44.521739 21.518841 44.521739 48.231884V575.443478H232.997101zM690.086957 876.707246c2.968116 4.452174 4.452174 14.098551-0.742029 17.066667-4.452174 2.968116-13.356522-1.484058-15.582609-5.936232l-47.489855-71.234782c10.388406-4.452174 10.388406-4.452174 19.292753-8.162319l44.52174 68.266666zM514.226087 837.37971c-46.747826 0-85.333333-7.42029-117.982609-20.034782h0.742029L348.011594 888.57971c-2.968116 3.710145-11.872464 8.904348-16.324637 5.936232-4.452174-2.968116-2.968116-12.614493 0-16.324638l47.489855-67.524637c-127.628986-59.362319-146.17971-195.895652-146.179711-195.895653h553.553624c0-0.742029-29.681159 222.608696-272.324638 222.608696zM363.594203 723.107246a28.93913 28.93913 0 1 1 57.878261 0 28.93913 28.93913 0 0 1-57.878261 0zM601.785507 723.107246a28.93913 28.93913 0 1 1 57.878261 0 28.93913 28.93913 0 0 1-57.878261 0z" horiz-adv-x="1024" />
<glyph glyph-name="dashboard" unicode="&#58946;" d="M974.19487208 60.553845939999974H97.78871802c-24.07384594 0-44.45538469-21.12-44.45538469-46.15384594 0-24.96 20.38153875-46.08 44.45538469-46.08H979.3641027c24 0 44.30769188 21.12 44.30769188 46.74461531a49.69846125 49.69846125 0 0 1-49.4769225 45.48923063M940.0041027 498.38769188h-1.69846125v-264.81230719a20.30769187 20.30769187 0 0 0-20.52923156-20.52923063H164.39794864a20.30769187 20.30769187 0 0 0-20.52923062 20.52923063V754.63384594c0 10.78153875 9.82153875 20.52923063 20.52923062 20.52923062H919.54871802c12.84923062 0 20.45538469-10.41230813 20.45538468-20.52923062v-256.24615407z m-775.60615406-375.8769225h751.75384594c61.21846125 0 110.99076937 49.84615406 110.99076937 111.06461531V754.41230813a104.19692344 104.19692344 0 0 1-29.53846124 76.28307656A111.50769187 111.50769187 0 0 1 917.85025677 864H164.32410271C103.10564145 864 53.33333333 814.15384594 53.33333333 752.93538469v-519.36c0-61.29230812 49.84615406-111.06461531 111.06461531-111.06461531zM791.42564145 614.54769187H767.42564146c-11.96307656 0-22.22769187-10.26461531-22.22769282-22.15384593v-222.12923063c0-11.96307656 10.26461531-22.22769187 22.15384594-22.22769187h24c11.96307656 0 22.15384594 10.26461531 22.15384688 22.15384593V592.39384594c0 11.96307656-10.19076937 22.22769187-22.15384688 22.22769281M654.73640989 482.95384594H630.81025677c-11.96307656 0-22.15384594-10.19076937-22.15384688-22.15384594v-90.53538469c0-11.96307656 10.19076937-22.15384594 22.15384688-22.15384593h23.92615312c11.96307656 0 22.15384594 10.19076937 22.15384688 22.15384593V460.8c0 11.96307656-10.19076937 22.15384594-22.15384688 22.15384594M511.17948739 477.85846125H403.58564146s-10.33846125 0-10.33846219 10.33846219V592.24615406c0 5.16923062-3.32307656 10.33846125-10.19076938 10.33846125-64.91076938 0-116.16-56.41846125-116.16-124.8 0-68.30769187 59.81538469-129.82153875 126.42461532-129.82153875 68.30769187 0 126.42461531 54.64615406 126.42461625 119.63076938 1.69846125 5.09538469-3.39692344 10.19076937-8.56615407 10.19076937M441.17333333 638.47384594c-5.16923062 0-8.56615406-3.39692344-8.56615406-8.56615407v-107.59384593c0-5.16923062 3.39692344-8.56615406 8.56615406-8.56615406h107.59384594c5.16923062 0 8.56615406 3.47076938 8.56615406 8.56615406 0 68.30769187-47.85230813 116.16-116.16 116.16" horiz-adv-x="1102" />
<glyph glyph-name="share" unicode="&#58896;" d="M768 624.941a135.529 135.529 0 1 0 0 271.059 135.529 135.529 0 0 0 0-271.059Zm0-722.824a135.529 135.529 0 1 0 0 271.059 135.529 135.529 0 0 0 0-271.059Zm-542.118 361.412a135.529 135.529 0 1 0 0 271.059 135.529 135.529 0 0 0 0-271.059ZM309.368 400.203L819.2 58.72900000000004l-46.9233-70.0536L161.611 397.673 649.939 749.508l49.2725-68.4273Z" horiz-adv-x="1024" />
<glyph glyph-name="chevronleft" unicode="&#59006;" d="M341.333333 335.847619L781.312 784.164571a48.761905 48.761905 0 0 1 0 68.315429l-10.435048 10.630095a48.761905 48.761905 0 0 1-69.217523 0.390095L257.219048 420.693333a48.761905 48.761905 0 0 1-1.389715-67.632762l14.921143-16.164571A48.761905 48.761905 0 0 1 341.333333 335.847619zM770.438095-27.282286L328.728381 422.790095a48.761905 48.761905 0 0 1-68.998095 0.633905l-5.534476-5.485714a48.761905 48.761905 0 0 1-0.950858-68.583619l437.516191-454.485334a48.761905 48.761905 0 0 1 69.924571-0.341333l9.703619 9.898667a48.761905 48.761905 0 0 1 0 68.291047z" horiz-adv-x="1024" />
<glyph glyph-name="wxapp" unicode="&#58883;" d="M512 896C229.376 896 0 666.624 0 384s229.376-512 512-512 512 229.376 512 512S794.624 896 512 896z m0-962.56C262.144-66.55999999999995 61.44 134.144 61.44 384S262.144 834.56 512 834.56s450.56-200.704 450.56-450.56-200.704-450.56-450.56-450.56zM512 384m-466.03377778 0a466.03377778 466.03377778 0 1 1 932.06755556 0 466.03377778 466.03377778 0 1 1-932.06755556 0ZM657.408 629.76c-90.112 0-161.792-73.728-161.792-163.84v-163.84c0-59.392-49.152-108.544-108.544-108.544s-108.544 49.152-108.544 108.544 49.152 108.544 108.544 108.544V465.92c-90.112 0-161.792-73.728-161.792-163.84s71.68-163.84 161.792-163.84 161.792 73.728 161.792 163.84v163.84c0 59.392 49.152 108.544 108.544 108.544s108.544-49.152 108.544-108.544-49.152-108.544-108.544-108.544V302.08000000000004c90.112 0 161.792 73.728 161.792 163.84s-71.68 163.84-161.792 163.84z" horiz-adv-x="1024" />
<glyph glyph-name="pengyouquan" unicode="&#58937;" d="M679.170882 497.01803 679.170882 769.502981c0 0-133.338844 71.481008-288.989857 16.365736L679.170882 497.01803zM704.414823 336.715067 704.414823 758.251729c0 0 157.630087-71.433936 202.051809-244.963131L704.414823 336.715067zM619.614461 214.188476l290.99042 273.64845c0 0 51.487651-83.708494-25.293059-273.64845L619.614461 214.188476zM471.029378 179.49328l393.014048 0c0 0-47.444569-128.594797-217.255069-181.688016L471.029378 179.49328zM342.736457 266.304438l0-256.17959c0 0 102.071723-65.36573 276.878005-21.478174L342.736457 266.304438zM115.370099 253.053646 314.44511 431.673789l0-406.206512C314.44511 25.4683 194.172863 67.217147 115.370099 253.053646zM110.3252 281.623331c0 0-45.538149 146.935514 18.154475 274.554076l273.811156 0L110.3252 281.623331zM145.682475 584.816678c0 0 57.602929 130.594337 214.20971 191.869912l186.893574-191.869912L145.682475 584.816678z" horiz-adv-x="1024" />
<glyph glyph-name="weibo" unicode="&#58938;" d="M711.213 391.572c-32.422 6.35-16.674 23.904-16.674 23.904s31.72 52.642-6.282 90.916c-47.084 47.402-161.495-6.032-161.495-6.032-43.696-13.646-32.128 6.236-25.938 40.081 0 39.877-13.557 107.364-129.98 67.51-116.289-40.081-216.152-180.499-216.152-180.499-69.452-93.312-60.234-165.43-60.234-165.43 17.33-159.203 185.312-202.899 315.991-213.247 137.458-10.891 322.995 47.717 379.253 168.037 56.258 120.537-45.954 168.232-78.489 174.76zM420.616 93.645c-136.463-6.417-246.788 62.493-246.788 154.212 0 91.796 110.324 165.428 246.788 171.754 136.554 6.326 247.105-50.315 247.105-141.954 0-91.695-110.551-177.777-247.105-184.012zM393.415 359.152c-137.278-16.178-121.417-145.639-121.417-145.639s-1.401-41.017 36.804-61.894c80.319-43.786 163.011-17.261 204.81 37.054 41.798 54.348 17.261 186.543-120.197 170.479zM358.779 177.422c-25.644-3.028-46.272 11.883-46.272 33.449 0 21.51 18.322 44.012 43.989 46.702 29.417 2.824 48.576-14.257 48.576-35.834 0.001-21.51-20.763-41.38-46.293-44.316zM439.686 246.839c-8.677-6.53-19.362-5.625-23.948 2.214-4.791 7.637-2.983 19.882 5.783 26.321 10.19 7.614 20.764 5.424 25.35-2.213 4.586-7.841 1.311-19.588-7.185-26.323zM778.044 447.627c11.070 0 20.47 8.247 22.051 19.002 0.181 0.791 0.293 1.491 0.293 2.395 16.765 151.782-123.495 125.664-123.495 125.664-12.45 0-22.437-10.144-22.437-22.797 0-12.472 9.987-22.616 22.437-22.616 100.743 22.412 78.512-79.032 78.512-79.032-0-12.561 10.168-22.615 22.639-22.615zM761.686 712.535c-48.485 11.432-98.371 1.582-112.334-1.107-1.085-0.113-2.077-1.13-3.073-1.333-0.496-0.090-0.814-0.61-0.814-0.61-13.758-3.909-23.836-16.764-23.836-31.924 0-18.097 14.573-32.964 32.716-32.964 0 0 17.646 2.396 29.62 7.095 11.885 4.813 112.333 3.592 162.221-80.772 27.202-61.567 11.974-102.777 10.053-109.398 0 0-6.484-15.995-6.484-31.765 0-18.165 14.596-29.597 32.624-29.597 15.071 0 27.745 2.078 31.451 27.744h0.18c53.57 179.775-65.543 264.253-152.324 284.632z" horiz-adv-x="1024" />
<glyph glyph-name="weixin" unicode="&#58939;" d="M664.250054 527.458319c10.015098 0 19.892049-0.732687 29.67281-1.795902-26.647917 122.810047-159.358451 214.077703-310.826188 214.077703-169.353083 0-308.085774-114.232694-308.085774-259.274068 0-83.708494 46.165436-152.460344 123.281791-205.78483l-30.80868-91.730191 107.688651 53.455469c38.558178-7.53665 69.459978-15.308661 107.924012-15.308661 9.66308 0 19.230993 0.470721 28.752858 1.225921-6.025227 20.36584-9.521864 41.723264-9.521864 63.862493C402.328693 419.367509 517.908058 527.458319 664.250054 527.458319zM498.62897 610.12611c23.200398 0 38.557154-15.120372 38.557154-38.061874 0-22.846334-15.356756-38.156018-38.557154-38.156018-23.107277 0-46.260603 15.309684-46.260603 38.156018C452.368366 595.005738 475.522716 610.12611 498.62897 610.12611zM283.016307 533.909242c-23.107277 0-46.402843 15.309684-46.402843 38.156018 0 22.941502 23.295566 38.061874 46.402843 38.061874 23.081695 0 38.46301-15.120372 38.46301-38.061874C321.479317 549.217902 306.098002 533.909242 283.016307 533.909242zM945.448458 289.848667c0 121.888048-123.258255 221.236753-261.683954 221.236753-146.57838 0-262.015505-99.348706-262.015505-221.236753 0-122.06508 115.437126-221.200938 262.015505-221.200938 30.66644 0 61.617359 7.609305 92.423993 15.262612l84.513836-45.786813-23.178909 76.17082C899.379213 160.223401 945.448458 221.09784 945.448458 289.848667zM598.803483 328.005708c-15.332197 0-30.807656 15.096836-30.807656 30.501688 0 15.190981 15.47546 30.477129 30.807656 30.477129 23.295566 0 38.558178-15.286148 38.558178-30.477129C637.361661 343.102544 622.099049 328.005708 598.803483 328.005708zM768.25071 328.005708c-15.213493 0-30.594809 15.096836-30.594809 30.501688 0 15.190981 15.381315 30.477129 30.594809 30.477129 23.107277 0 38.558178-15.286148 38.558178-30.477129C806.808888 343.102544 791.357987 328.005708 768.25071 328.005708z" horiz-adv-x="1024" />
<glyph glyph-name="heart" unicode="&#58942;" d="M508.766 5.385c-22.497 0-239.806 174.754-322.13 280.599-56.625 51.658-102.404 148.052-102.404 215.999 0 144.307 105.673 261.651 235.56 261.651 79.319 0 146.614-65.641 188.17-133.46 41.53 67.819 108.826 133.46 188.168 133.46 129.888 0 235.558-117.345 235.558-261.651 0-68.124-46.020-164.69-102.881-216.434-83.108-107.196-296.28-280.164-320.040-280.164z" horiz-adv-x="1024" />
<glyph glyph-name="pencil" unicode="&#58943;" d="M292.76647632 18.285713999999984l52.004571 52.004571-134.290286 134.290286-52.004571-52.004571 0-61.147429 73.142857 0 0-73.142857 61.147429 0zM591.62819032 548.5714290000001q0 12.580571-12.580571 12.580571-5.705143 0-9.728-3.986286l-309.723429-309.723429q-3.986286-3.986286-3.986286-9.728 0-12.580571 12.580571-12.580571 5.705143 0 9.728 3.986286l309.723429 309.723429q3.986286 3.986286 3.986286 9.728zM560.76190432 658.285714l237.714286-237.714286-475.428571-475.428571-237.714286 0 0 237.714286zM951.05219032 603.4285709999999q0-30.281143-21.138286-51.419429l-94.866286-94.866286-237.714286 237.714286 94.866286 94.281143q20.553143 21.723429 51.419429 21.723429 30.281143 0 52.004571-21.723429l134.290286-133.705143q21.138286-22.272 21.138286-52.004571z" horiz-adv-x="1024" />
<glyph glyph-name="comment-o" unicode="&#58965;" d="M516.582 388.839c28.277 0 51.279 23.002 51.279 51.279 0 28.269-23.002 51.272-51.279 51.272-28.262 0-51.264-23.002-51.264-51.272 0-28.277 23.002-51.279 51.264-51.279zM287.737 491.389c-28.277 0-51.279-23.002-51.279-51.272 0-28.277 23.002-51.279 51.279-51.279 28.262 0 51.264 23.002 51.264 51.279 0 28.27-23.002 51.272-51.264 51.272zM745.459 388.839c28.262 0 51.264 23.002 51.264 51.279 0 28.269-23.002 51.272-51.264 51.272-28.277 0-51.294-23.002-51.294-51.272-0.001-28.277 23.017-51.279 51.294-51.279zM516.582 45.571c249.11 0 451.782 176.994 451.782 394.547s-202.672 394.539-451.782 394.539-451.766-176.986-451.766-394.539c0-119.96 61.643-232.047 169.12-307.52l2.521-1.779v-195.069l193.376 117.33 2.181-0.356c28.757-4.748 57.219-7.154 84.568-7.154zM420.939 101.050l-141.803-85.249 1.902 139.962c-107.075 65.58-170.884 171.641-170.884 284.355 0 192.556 182.315 349.208 406.427 349.208s406.443-156.653 406.443-349.208-182.33-349.216-406.442-349.216c-31.185 0-63.36 3.411-95.643 10.147z" horiz-adv-x="1024" />
<glyph glyph-name="backtotop" unicode="&#58985;" d="M940.10709333 219.34876444999998L544.93070222 614.52515555c-4.80483555 4.80483555-10.40156445 8.32512-16.36465777 10.59271112-1.09226667 0.41415111-2.19363555 0.80099555-3.30752 1.12981333-3.21422222 0.95118222-6.51264 1.536-9.8304 1.77834667-2.23004445 0.16497778-4.46805333 0.16725333-6.69809778 0.01251555-10.80661333-0.75548445-21.40046222-5.25084445-29.66186667-13.51338667-0.00113778-0.00113778-0.00113778-0.00113778-0.00227555-0.00227555l-395.17297778-395.17297778c-18.18737778-18.18737778-18.18737778-47.67516445 0-65.86368 18.18737778-18.18624 47.67516445-18.18624 65.86254222 0L512 515.7307733299999 874.24341333 153.48622221999995c18.18737778-18.18624 47.67516445-18.18624 65.86368 0C958.29447111 171.67473778 958.29447111 201.16252444999998 940.10709333 219.34876444999998z" horiz-adv-x="1024" />
<glyph glyph-name="feedback" unicode="&#58987;" d="M689.203888 412.76923c-1.168616 6.033413-1.986237 12.161994-3.566222 18.086937-13.772678 51.692313-48.126091 82.247212-98.844216 95.950306-6.099928 1.6465-12.534478 1.597381-18.488073 3.886517 39.142485 0 78.284971-0.041956 117.431549 0.084934 2.956332 0.00921 3.561106-0.595564 3.551896-3.549849C689.161932 489.07308 689.203888 450.924225 689.203888 412.76923L689.203888 412.76923zM689.203888 412.76923M87.321788 21.669788c0.041956 6.771217-0.005117 9.172917 0 13.670348 0.170892 201.01827 0.118704 402.036539 0.165776 603.059925 0.00921 42.073234 20.286022 72.100108 55.134715 81.632205 10.482749 2.865257 21.273513 3.943822 32.224935 3.938706 144.218636-0.090051 288.438295-0.160659 432.657954 0.132006 12.231579 0.024559 16.208147-1.483794 9.18622-14.062274-10.567683-18.924002-20.00052-38.518269-29.084409-58.217936-3.89675-8.458649-9.026584-10.818393-18.138102-10.793834-127.920438 0.325411-255.840876-0.019443-383.761314 0.576121-13.46671 0.061398-15.972786-3.758604-15.945157-16.389272 0.411369-195.093327 0.441045-390.186653-0.052189-585.274864-0.032746-13.386892 3.674693-16.105816 16.423041-16.07614 195.093327 0.416486 390.186653 0.476861 585.27998-0.085958 14.605649-0.041956 16.488533 5.064342 16.45067 17.600867-0.388856 126.435621-0.080841 252.880451-0.505513 379.315048-0.038886 10.956539 3.091408 16.838503 13.07376 21.401426 22.763446 10.407024 44.978401 22.01541 67.551512 33.202193 3.712555-5.248537 2.14792-10.255575 2.152013-14.870686 0.099261-142.738935 0.103354-285.478893 0.070608-428.217828-0.014326-52.255131-38.093597-90.526783-90.620927-90.573855-206.451002-0.184195-412.903028-0.10847-619.35403-0.35918-31.646767-0.037862-66.171072 13.821797-72.548316 55.45194C87.364767-1.211339 87.317695 20.639319 87.321788 21.669788L87.321788 21.669788zM87.321788 21.669788M952.889429 679.78768c-19.694551-14.024411-34.541701-33.146934-51.971675-49.554626-9.547447-8.988722-18.303878-18.819624-29.9358-30.887474-6.364965 79.046311-50.433646 116.566856-123.740232 125.077693 13.277398 26.507724 25.993001 51.426253 38.202067 76.588329 3.328815 6.861268 33.444716 9.877975 35.189454 9.877975 2.203178 0 9.80225-0.190335 10.904351-0.275269 48.891524-3.758604 79.225389-32.810267 101.43625-73.532737 8.439206-15.471366 12.30321-32.674167 19.916609-48.400337L952.890452 679.78768 952.889429 679.78768zM952.889429 679.78768M724.898855 683.565726c37.752836-0.208754 64.46829-16.072047 82.371032-46.626947 4.700045-8.024767 8.260128-16.773012 11.792581-25.411763 12.710486-31.099299 10.662851-55.41817-17.277502-81.803097C716.070792 448.781422 633.861442 364.113067 550.71986 280.464949c-7.792477-7.839549-14.553461-9.404184-24.436552-6.122441-55.504128 18.425651-89.147366 57.489342-107.054201 111.86681-1.99954 6.089695-0.538259 9.892301 3.811816 14.228049 92.621491 92.308359 185.181583 184.685279 277.515524 277.28835C708.633403 685.825187 718.226898 681.494555 724.898855 683.565726L724.898855 683.565726zM724.898855 683.565726M375.524722 351.095589c41.157375-41.473577 80.223113-80.848353 120.652917-121.588219l-43.592844 0c-22.161742 0-44.324508 0.041956-66.487274-0.028653-5.688559-0.01842-10.724249-0.317225-10.67206 8.005324C375.656729 274.716015 375.524722 311.953104 375.524722 351.095589L375.524722 351.095589zM375.524722 351.095589" horiz-adv-x="1024" />
<glyph glyph-name="qrcode" unicode="&#58974;" d="M320 832l-256 0 0-256 256 0L320 832zM384 896 384 896l0-384-384 0 0 384L384 896zM128 768l128 0 0-128-128 0L128 768zM960 832l-256 0 0-256 256 0L960 832zM1024 896 1024 896l0-384-384 0 0 384L1024 896zM768 768l128 0 0-128-128 0L768 768zM320 192l-256 0 0-256 256 0L320 192zM384 256 384 256l0-384-384 0 0 384L384 256zM128 128l128 0 0-128-128 0L128 128zM448 896l64 0 0-64-64 0L448 896zM512 832l64 0 0-64-64 0L512 832zM448 768l64 0 0-64-64 0L448 768zM512 704l64 0 0-64-64 0L512 704zM448 640l64 0 0-64-64 0L448 640zM512 576l64 0 0-64-64 0L512 576zM448 512l64 0 0-64-64 0L448 512zM448 384l64 0 0-64-64 0L448 384zM512 320l64 0 0-64-64 0L512 320zM448 256l64 0 0-64-64 0L448 256zM512 192l64 0 0-64-64 0L512 192zM448 128l64 0 0-64-64 0L448 128zM512 64l64 0 0-64-64 0L512 64zM448 0l64 0 0-64-64 0L448 0zM512-64l64 0 0-64-64 0L512-64zM960 384l64 0 0-64-64 0L960 384zM64 384l64 0 0-64-64 0L64 384zM128 448l64 0 0-64-64 0L128 448zM0 448l64 0 0-64-64 0L0 448zM256 448l64 0 0-64-64 0L256 448zM320 384l64 0 0-64-64 0L320 384zM384 448l64 0 0-64-64 0L384 448zM576 384l64 0 0-64-64 0L576 384zM640 448l64 0 0-64-64 0L640 448zM704 384l64 0 0-64-64 0L704 384zM768 448l64 0 0-64-64 0L768 448zM832 384l64 0 0-64-64 0L832 384zM896 448l64 0 0-64-64 0L896 448zM960 256l64 0 0-64-64 0L960 256zM576 256l64 0 0-64-64 0L576 256zM640 320l64 0 0-64-64 0L640 320zM704 256l64 0 0-64-64 0L704 256zM832 256l64 0 0-64-64 0L832 256zM896 320l64 0 0-64-64 0L896 320zM960 128l64 0 0-64-64 0L960 128zM576 128l64 0 0-64-64 0L576 128zM640 192l64 0 0-64-64 0L640 192zM768 192l64 0 0-64-64 0L768 192zM832 128l64 0 0-64-64 0L832 128zM896 192l64 0 0-64-64 0L896 192zM960 0l64 0 0-64-64 0L960 0zM640 64l64 0 0-64-64 0L640 64zM704 0l64 0 0-64-64 0L704 0zM768 64l64 0 0-64-64 0L768 64zM832 0l64 0 0-64-64 0L832 0zM640-64l64 0 0-64-64 0L640-64zM768-64l64 0 0-64-64 0L768-64zM896-64l64 0 0-64-64 0L896-64z" horiz-adv-x="1024" />
<glyph glyph-name="shouji" unicode="&#58977;" d="M798.723234 721.217255c0 60.576657-49.106418 109.683075-109.683075 109.683075l-354.708628 0c-60.576657 0-109.683075-49.106418-109.683075-109.683075l0-673.980161c0-60.576657 49.106418-109.683075 109.683075-109.683075l354.708628 0c60.576657 0 109.683075 49.106418 109.683075 109.683075L798.723234 721.217255zM264.557398 658.984888l494.256894 0 0-529.049305-494.256894 0L264.557398 658.984888zM334.356091 790.991388 689.016623 790.991388c38.548968 0 69.798692-31.249725 69.798692-69.798692l0-22.298865-494.256894 0 0 22.298865C264.557398 759.74064 295.807123 790.991388 334.356091 790.991388zM689.016623-22.53704 334.356091-22.53704c-38.548968 0-69.798692 31.249725-69.798692 69.798692l0 43.788296 494.256894 0 0-43.788296C758.814292 8.712685 727.564567-22.53704 689.016623-22.53704zM513.173732 66.056718c-16.70752 0-30.30112-13.5936-30.30112-30.30112 0-16.70752 13.5936-30.30112 30.30112-30.30112s30.299073 13.5936 30.299073 30.30112C543.472805 52.463118 529.881253 66.056718 513.173732 66.056718z" horiz-adv-x="1024" />
<glyph glyph-name="ellipsis-h" unicode="&#58991;" d="M855.040 277.504c-55.992 0-101.376 45.394-101.376 101.376s45.394 101.376 101.376 101.376 101.376-45.394 101.376-101.376-45.384-101.376-101.376-101.376zM517.119 277.504c-55.992 0-101.376 45.394-101.376 101.376s45.394 101.376 101.376 101.376 101.376-45.394 101.376-101.376-45.384-101.376-101.376-101.376zM179.2 277.504c-55.992 0-101.376 45.394-101.376 101.376s45.394 101.376 101.376 101.376 101.376-45.394 101.376-101.376-45.384-101.376-101.376-101.376z" horiz-adv-x="1024" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.
Binary file not shown.
@@ -0,0 +1,88 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Sat Nov 28 22:48:50 2015
By Ads
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="-0.097561 -77 1024.92 839"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-F20A"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".notdef" horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="uniF00A" unicode="&#xf00a;"
d="M911 512l-334 1q19 79 23 116q4 45 -3 76q-11 47 -34 90q-6 12 -17 18.5t-24 6.5h-65q-13 0 -23.5 -6.5t-17 -17t-6.5 -23.5v-35v-32v-26q0 -10 -1 -11q-12 -26 -26.5 -52t-29.5 -51.5t-32 -49.5q-6 -9 -11.5 -17t-11.5 -16t-12.5 -16t-13.5 -15q-13 -14 -13 -32v-411
q0 -19 13 -33q28 -28 73 -28q323 1 440 1q13 0 24 6t17 17l119 203q6 11 9 22.5t3 23.5l1 244q0 13 -6.5 24t-17 17t-23.5 6zM155 445h-42q-13 0 -24 -6t-17 -17t-6 -24v-403q0 -19 13.5 -33t33.5 -14h42q13 0 23.5 6.5t17 17t6.5 23.5v403q0 20 -14 33.5t-33 13.5z" />
<glyph glyph-name="uniF01A" unicode="&#xf01a;"
d="M260 740q0 -41 -29.5 -69.5t-76.5 -28.5q-45 0 -74 28.5t-29 69.5q0 43 29 71t76 28t74.5 -28t29.5 -71zM57 -69v633h197v-633h-197zM371 361q0 89 -4 203h170l10 -88h4q61 103 194 103q103 0 165.5 -69t62.5 -204v-375h-197v351q0 137 -100 137q-72 0 -101 -74
q-6 -12 -6 -49v-365h-198v430z" />
<glyph glyph-name="uniF03A" unicode="&#xf03a;"
d="M751 815v-142h-84q-46 0 -62 -19t-16 -58v-101h157l-21 -158h-136v-407h-164v407h-136v158h136v117q0 100 56 154.5t148 54.5q79 0 122 -6z" />
<glyph glyph-name="uniF04A" unicode="&#xf04a;"
d="M629 830h-245q-37 0 -69 -4t-71.5 -19t-71.5 -41q-37 -31 -56.5 -72.5t-19.5 -82.5q0 -46 22.5 -87t68.5 -68t106 -27h7h8q2 0 7.5 0.5t7.5 1t8 0.5q-1 -1 -2 -4t-1.5 -4t-1.5 -4l-2 -5q0 -1 -1 -3.5t-1.5 -4.5t-1 -4.5t-0.5 -5t-0.5 -5t-0.5 -5.5q0 -17 6.5 -33
t11.5 -23t18 -23q-18 -1 -26.5 -1.5t-29 -2.5t-33.5 -4.5t-34 -6.5t-36.5 -9t-34 -12.5t-33.5 -16.5q-48 -28 -69.5 -66.5t-21.5 -75.5q0 -69 66.5 -117.5t188.5 -48.5q74 0 134.5 19t98.5 50.5t58.5 70t20.5 80.5q0 19 -3.5 36t-11.5 32t-15 26.5t-21 24.5t-23 21t-26 22
l-43 32q-9 8 -14 12.5t-10.5 15.5t-5.5 22.5t6 23t11 17t16 16.5q24 18 37.5 30.5t30 33t24 45.5t7.5 56t-8.5 57.5t-24 46.5t-25.5 30t-26 22h74zM524 120q0 -36 -19.5 -64t-59.5 -44.5t-95 -16.5q-94 0 -151.5 39.5t-57.5 102.5q0 83 102 119q57 19 125 19h6h4
q3 0 4.5 -0.5t3.5 -0.5h5q2 0 4 -1q75 -51 102 -81t27 -72zM429 494q-33 -33 -80 -33q-36 0 -66 21t-47 53.5t-26 67t-9 65.5q0 54 26 86q14 17 36.5 27.5t46.5 10.5q46 0 81.5 -37t51.5 -84.5t16 -92.5v-10q0 -4 -1 -10.5t-2 -12.5t-3.5 -13t-5.5 -13.5t-7.5 -13
t-10.5 -11.5zM865 653v118h-59v-118h-119v-58h119v-118h59v118h118v58h-118z" />
<glyph glyph-name="uniF05A" unicode="&#xf05a;"
d="M540 185h370v370h-369l-1 85h285v114h-285v85h-142v-284h-256v-370h199v-258zM284 279v175h484v-175h-484zM853 100q-17 0 -33 -6.5t-27.5 -18t-18 -27.5t-6.5 -33.5t6.5 -33.5t18 -27.5t27.5 -18.5t33 -7q35 0 60 25.5t25 61t-25 60.5t-60 25zM597.5 100
q-35.5 0 -60.5 -25t-25 -60.5t25 -61t60.5 -25.5t60 25.5t24.5 61t-24.5 60.5t-60 25zM171 100q-14 0 -27 -4t-23.5 -12t-18.5 -18.5t-12 -24t-4 -27.5q0 -35 24.5 -60.5t60 -25.5t60.5 25.5t25 60.5q0 18 -7 34t-18 27.5t-27 18t-33 6.5z" />
<glyph glyph-name="uniF06A" unicode="&#xf06a;" horiz-adv-x="1025"
d="M1024 702q-58 -26 -121 -34q33 20 57 50t36 67q-63 -37 -134 -51q-62 66 -153 66q-57 0 -105.5 -28t-76.5 -76.5t-28 -105.5q0 -8 0.5 -16t2 -16t2.5 -16q-129 7 -241.5 65t-191.5 155q-13 -24 -20.5 -51t-7.5 -55q0 -36 11.5 -69t32.5 -60t49 -46q-50 2 -95 26v-2
q0 -76 48 -134t121 -72q-27 -8 -56 -8q-5 0 -10 1h-10q-5 1 -9.5 1.5t-9.5 1.5q20 -63 74 -103.5t122 -42.5q-36 -28 -77.5 -48t-88 -31t-95.5 -11q-25 0 -50 3q147 -94 322 -94q112 0 210 35.5t168 95t120.5 136.5t75 161.5t24.5 169.5q0 14 -1 27q8 5 15.5 11t14.5 12
l14 14q7 6 13.5 12.5t13 14t12 14.5t11.5 15t11 16z" />
<glyph glyph-name="uniF07A" unicode="&#xf07a;"
d="M435 826q-94 -21 -163.5 -85.5t-98.5 -155.5t-8 -186q7 -34 21 -66q4 -9 12.5 -15t18 -7t18.5 3q15 6 20.5 20.5t-0.5 28.5q-11 25 -17 53q-17 74 6 146t78 123t129.5 67.5t145.5 -6.5t121.5 -78.5t67 -130t-6 -146.5t-77.5 -123t-130 -67q-44 -10 -89 -5q-15 1 -27 -9
t-13.5 -25t8.5 -27.5t25 -13.5q56 -6 112 7q94 20 164 85t98.5 155.5t8 185t-84.5 164.5t-154.5 99t-184.5 9zM542 339q57 13 88 62t18 106q-8 37 -33 64.5t-60.5 39t-72.5 3.5q-57 -13 -88 -62t-19 -106q5 -21 16 -41q-70 -81 -105 -197t-16 -239q2 -16 14.5 -25t28.5 -7
q1 1 2 1q14 3 22.5 15.5t6.5 26.5q-17 105 12.5 204.5t88.5 168.5q46 -25 97 -14z" />
<glyph glyph-name="uniF08A" unicode="&#xf08a;"
d="M767 277q-9 -8 -11 -13.5t0 -16.5l4 -24q-183 2 -297 18q-6 2 0 5l289 201q11 7 -1 9q-7 1 -19 3t-21 3l-9 1q-90 11 -190 11q-170 0 -303 -30h8q225 0 374 -23q7 -2 0 -6l-289 -206l-5 -4q-2 -4 5 -5q45 -6 94 -9q59 -4 116 -4q176 0 312 32l5 1q-19 -15 -63 -30
l42 -226q2 -12 -1.5 -19t-11 -7.5t-18.5 4.5l-241 140q-24 15 -49 -1l-240 -139q-16 -9 -25 -2.5t-5 24.5l53 284q3 9 1.5 14t-8.5 12l-210 193q-9 8 -10.5 16t4.5 13t18 6l268 30q15 2 21 5.5t12 14.5l126 262q9 17 20.5 17t19.5 -17l118 -262q5 -13 11 -17t21 -6l277 -27
q18 -2 21.5 -12t-9.5 -23z" />
<glyph glyph-name="uniF09A" unicode="&#xf09a;"
d="M704 547q-87 0 -163 -38t-120 -103q-22 -32 -33.5 -67t-11.5 -73q0 -41 14 -78h-18q-64 0 -124 18l-124 -56l30 102q-64 43 -101 105t-37 134q0 124 104.5 213t251.5 89q128 0 227 -70t122 -176h-17zM218 557q8 -7 17 -10.5t19 -3.5q22 0 36.5 14.5t14.5 35.5q0 11 -4 20
t-11 16q-2 2 -4 3l-4 4l-4 2l-4 2l-4 2h-6l-4 2h-6q-21 0 -36 -15q-7 -7 -10.5 -16t-3.5 -20q0 -7 1.5 -13.5t5 -12t7.5 -10.5zM1008 266q0 -126 -116 -204l23 -87l-105 49q-50 -16 -106 -16q-124 0 -213 75.5t-89 182.5q0 70 40.5 129t110.5 93q23 11 47.5 18.5t50.5 11.5
t53 4q126 0 215 -75t89 -181zM526.5 629.5q-14.5 14.5 -35 14.5t-34.5 -15q-7 -7 -11 -16t-4 -19q0 -20 14.5 -34.5t35 -14.5t35.5 14q7 8 10.5 16.5t3.5 18.5q0 21 -14.5 35.5zM603 312q9 0 16.5 3.5t13.5 9.5q13 13 13 29q0 8 -3.5 15.5t-9.5 13.5q-12 13 -30 13
q-6 0 -11 -1.5t-10 -4.5t-9 -7q-13 -13 -13 -28q0 -12 6 -21.5t16 -15.5q5 -3 10 -4.5t11 -1.5zM775 323q12 -13 30.5 -13t31.5 13q3 3 5 6.5t4 7.5t2.5 8t0.5 8q0 6 -1.5 11t-4 10t-6.5 9q-13 13 -31.5 13t-30.5 -13q-5 -4 -7.5 -9t-4 -10t-1.5 -11q0 -9 3 -16.5t10 -13.5z
" />
<glyph glyph-name="uniF10A" unicode="&#xf10a;"
d="M138 773h746v-84h-746v84zM820 273v328h-617v-328h617zM292 517h439v-160h-439v160zM686 83q41 63 76 143l-90 33q-35 -97 -81 -176h-156q-39 103 -88 176l-83 -33q51 -77 83 -143h-230v-83h789v83h-220z" />
<glyph glyph-name="uniF11A" unicode="&#xf11a;"
d="M911 223q-5 31 -17 61t-25.5 50.5t-26.5 37t-21 24.5l-8 9q5 44 -2.5 73t-17.5 36l-10 8q-2 62 -18.5 112.5t-39.5 81.5t-54 53.5t-57 32.5t-54 15.5t-38.5 6t-17.5 0.5q-6 0 -16.5 -0.5t-39 -6t-54 -15.5t-57 -32.5t-54.5 -53.5t-39.5 -81.5t-17.5 -112.5q-2 -1 -4.5 -3
t-9.5 -10t-10.5 -20.5t-7 -34t0.5 -49.5l-9 -9q-5 -5 -19.5 -23.5t-26.5 -38t-24.5 -50t-17.5 -61.5q-1 -4 -1 -10t1 -22t3.5 -28t9 -21t15.5 -8t25 17t37 50q23 -62 64 -117q-3 -1 -8 -3.5t-17.5 -10t-21.5 -17t-16 -26t-5 -34.5q0 -2 0.5 -4.5t3 -10t8 -14t17.5 -14.5
t28 -13.5t42.5 -9t58.5 -2.5q13 1 32.5 4t59.5 17t55 36h30q31 -44 141 -56l6 -1q45 -1 78 5.5t47.5 15.5t23 21.5t9 17.5t0.5 8q2 18 -4.5 34t-16.5 26t-20.5 17.5t-18.5 10.5l-8 3q9 11 17 23.5t14 23.5l12 22q6 11 9.5 19.5t6.5 15t4 9.5l1 4q21 -34 37 -50t25.5 -17
t15.5 8t8.5 21t3.5 28t1 23v9v0z" />
<glyph glyph-name="uniF12A" unicode="&#xf12a;" horiz-adv-x="1026"
d="M0 242q0 65 40 140t113 147q96 97 195.5 134.5t140.5 -3.5q36 -36 11 -119q-2 -9 0 -12t5 -4t8 0t8 2l3 1q80 34 141.5 34t87.5 -35q25 -35 0 -101q-1 -8 -3 -11t3 -7.5t7 -5.5t9 -3q33 -10 59.5 -26.5t45 -47t19.5 -66.5q0 -39 -20.5 -79t-62.5 -79t-96 -66.5t-129 -48
t-155 -17.5t-157.5 19.5t-137 52.5t-98.5 87t-37 114zM104 201q5 -55 51 -97t118.5 -62t156.5 -12q128 13 211 80.5t76 151.5q-5 54 -50 96t-120 62.5t-157 12.5q-127 -13 -211 -80.5t-75 -151.5zM237 151q-24 52 3 106q27 53 86.5 80t120.5 10q63 -16 90.5 -67.5
t1.5 -109.5t-90.5 -85t-127.5 -7q-62 19 -84 73zM283 166q5 -21 24.5 -30t43 -1t35.5 28q11 18 6 38.5t-25 28.5q-20 9 -42.5 0.5t-33.5 -25.5q-13 -20 -8 -39zM403 247q-10 -19 8 -27q8 -2 16 1t12 10q6 8 2.5 16t-10.5 10q-7 3 -16 0t-12 -10zM666 746q-3 16 5 30.5
t25 16.5q70 14 139.5 -6.5t118.5 -76.5q50 -56 65 -128.5t-8 -137.5q-5 -16 -19.5 -23t-30 -2t-22.5 19.5t-3 29.5q16 47 6 98t-46 90q-36 40 -85 54.5t-98 5.5q-17 -3 -30 6t-17 24zM699 616q-3 15 5.5 26t20.5 14q35 8 68.5 -2.5t57.5 -37t31 -62.5t-3 -68
q-5 -12 -17.5 -19t-25.5 -2t-20 17.5t-2 25.5q11 36 -13.5 62.5t-61.5 20.5q-13 -3 -25 4t-15 21z" />
<glyph glyph-name="uniF20A" unicode="&#xf20a;"
d="M945 677q-23 37 -54.5 64t-68.5 42.5t-79 18.5q-148 7 -228 -101l-1 2q-1 1 -2 1q0 -3 -3 -3q-80 108 -228 101q-60 -3 -113 -36t-89 -89q-26 -41 -36 -89.5t-5 -99t25 -102.5t54 -98q53 -69 89 -110q122 -134 282 -240l21 -15h6l21 15q78 52 150 113t132 127
q11 13 24 28.5t22.5 28t22 28t20.5 25.5q69 94 79.5 200.5t-41.5 188.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?> <!-- Generator: IcoMoon.io --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="120" height="24" viewBox="0 0 120 24" fill="#ffffff" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M 17.384,17.705q0.00,0.536 -0.375,0.911l-1.821,1.821q-0.375,0.375 -0.911,0.375t-0.911-0.375l-3.938-3.938l-3.938,3.938q-0.375,0.375 -0.911,0.375t-0.911-0.375l-1.821-1.821q-0.375-0.375 -0.375-0.911t 0.375-0.911l 3.938-3.938l-3.938-3.938q-0.375-0.375 -0.375-0.911t 0.375-0.911l 1.821-1.821q 0.375-0.375 0.911-0.375t 0.911,0.375l 3.938,3.938l 3.938-3.938q 0.375-0.375 0.911-0.375t 0.911,0.375l 1.821,1.821q 0.375,0.375 0.375,0.911 t-0.375,0.911l-3.938,3.938l 3.938,3.938q 0.375,0.375 0.375,0.911zM 57.938,21.067l-8.732-8.719q-0.496-0.496 -0.496-1.212t 0.496-1.212l 8.732-8.719q 0.496-0.496 1.212-0.496t 1.212,0.496l 1.004,1.004q 0.496,0.496 0.496,1.212t-0.496,1.212l-6.509,6.509l 6.509,6.496q 0.496,0.509 0.496,1.219t-0.496,1.205l-1.004,1.004q-0.496,0.496 -1.212,0.496t-1.212-0.496zM 110.719,11.143q0.00,0.696 -0.496,1.219l-8.732,8.719q-0.496,0.496 -1.205,0.496t-1.205-0.496l-1.018-1.004q-0.496-0.522 -0.496-1.219q0.00-0.71 0.496-1.205l 6.509-6.509l-6.509-6.496q-0.496-0.522 -0.496-1.219q0.00-0.71 0.496-1.205l 1.018-1.004q 0.482-0.509 1.205-0.509t 1.205,0.509l 8.732,8.719q 0.496,0.496 0.496,1.205z"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="search" transform="translate(8.000000, 8.000000) scale(-1, 1) translate(-8.000000, -8.000000) " fill="#666666" fill-rule="nonzero">
<path d="M15.7,14.3 L11.5,10.1 C11.3,9.9 11,9.8 10.7,9.8 C11.5,8.8 12,7.4 12,6 C12,2.7 9.3,8.8817842e-16 6,8.8817842e-16 C2.7,8.8817842e-16 0,2.7 0,6 C0,9.3 2.7,12 6,12 C7.4,12 8.8,11.5 9.8,10.6 C9.8,10.9 9.8,11.2 10.1,11.4 L14.3,15.6 C14.5,15.8 14.8,15.9 15,15.9 C15.2,15.9 15.5,15.8 15.7,15.6 C16.1,15.3 16.1,14.7 15.7,14.3 Z M6,10.5 C3.5,10.5 1.5,8.5 1.5,6 C1.5,3.5 3.5,1.5 6,1.5 C8.5,1.5 10.5,3.5 10.5,6 C10.5,8.5 8.5,10.5 6,10.5 Z" id="Shape"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+171
View File
@@ -0,0 +1,171 @@
var CMS = {
events: {
//请求成功的回调
onAjaxSuccess: function (ret, onAjaxSuccess) {
var data = typeof ret.data !== 'undefined' ? ret.data : null;
var msg = typeof ret.msg !== 'undefined' && ret.msg ? ret.msg : '操作成功';
if (typeof onAjaxSuccess === 'function') {
var result = onAjaxSuccess.call(this, data, ret);
if (result === false)
return;
}
layer.msg(msg, {icon: 1});
},
//请求错误的回调
onAjaxError: function (ret, onAjaxError) {
var data = typeof ret.data !== 'undefined' ? ret.data : null;
var msg = typeof ret.msg !== 'undefined' && ret.msg ? ret.msg : '操作失败';
if (typeof onAjaxError === 'function') {
var result = onAjaxError.call(this, data, ret);
if (result === false) {
return;
}
}
layer.msg(msg, {icon: 2});
},
//服务器响应数据后
onAjaxResponse: function (response) {
try {
var ret = typeof response === 'object' ? response : JSON.parse(response);
if (!ret.hasOwnProperty('code')) {
$.extend(ret, {code: -2, msg: response, data: null});
}
} catch (e) {
var ret = {code: -1, msg: e.message, data: null};
}
return ret;
}
},
api: {
//获取修复后可访问的cdn链接
cdnurl: function (url) {
return /^(?:[a-z]+:)?\/\//i.test(url) ? url : Config.upload.cdnurl + url;
},
//发送Ajax请求
ajax: function (options, success, error) {
options = typeof options === 'string' ? {url: options} : options;
var st, index = 0;
st = setTimeout(function () {
index = layer.load();
}, 150);
options = $.extend({
type: "POST",
dataType: "json",
xhrFields: {
withCredentials: true
},
success: function (ret) {
clearTimeout(st);
index && layer.close(index);
ret = CMS.events.onAjaxResponse(ret);
if (ret.code === 1) {
CMS.events.onAjaxSuccess(ret, success);
} else {
CMS.events.onAjaxError(ret, error);
}
},
error: function (xhr) {
clearTimeout(st);
index && layer.close(index);
var ret = {code: xhr.status, msg: xhr.statusText, data: null};
CMS.events.onAjaxError(ret, error);
}
}, options);
return $.ajax(options);
},
//提示并跳转
msg: function (message, url) {
var callback = typeof url === 'function' ? url : function () {
if (typeof url !== 'undefined' && url) {
location.href = url;
}
};
layer.msg(message, {
icon: 1,
time: 2000
}, callback);
},
//表单提交事件
form: function (elem, success, error, submit) {
var delegation = typeof elem === 'object' && typeof elem.prevObject !== 'undefined' ? elem.prevObject : document;
$(delegation).on("submit", elem, function (e) {
var form = $(e.target);
if (typeof submit === 'function') {
if (false === submit.call(form, success, error)) {
return false;
}
}
$("[type=submit]", form).prop("disabled", true);
CMS.api.ajax({
url: form.attr("action"),
data: form.serialize(),
complete: function (xhr) {
var token = xhr.getResponseHeader('__token__');
if (token) {
$("input[name='__token__']").val(token);
}
$("[type=submit]", form).prop("disabled", false);
}
}, function (data, ret) {
//刷新客户端token
if (data && typeof data.token !== 'undefined') {
$("input[name='__token__']").val(data.token);
}
//自动保存草稿设置
var autosaveKey = $("textarea[data-autosave-key]", form).data("autosave-key");
if (autosaveKey && localStorage) {
localStorage.removeItem("autosave-" + autosaveKey);
$(".md-autosave", form).addClass("hidden");
}
if (typeof success === 'function') {
if (false === success.call(form, data, ret)) {
return false;
}
}
}, function (data, ret) {
//刷新客户端token
if (data && typeof data.token !== 'undefined') {
$("input[name='__token__']").val(data.token);
}
if (typeof error === 'function') {
if (false === error.call(form, data, ret)) {
return false;
}
}
});
return false;
});
},
//localStorage存储
storage: function (key, value) {
key = key.split('.');
var _key = key[0];
var o = JSON.parse(localStorage.getItem(_key));
if (typeof value === 'undefined') {
if (o == null)
return null;
if (key.length === 1) {
return o;
}
_key = key[1];
return typeof o[_key] !== 'undefined' ? o[_key] : null;
} else {
if (key.length === 1) {
o = value;
} else {
if (o && typeof o === 'object') {
o[key[1]] = value;
} else {
o = {};
o[key[1]] = value;
}
}
localStorage.setItem(_key, JSON.stringify(o));
}
}
}
}
+462
View File
@@ -0,0 +1,462 @@
$(function () {
window.isMobile = !!("ontouchstart" in window);
function AddFavorite(sURL, sTitle) {
if (/firefox/i.test(navigator.userAgent)) {
return false;
} else if (window.external && window.external.addFavorite) {
window.external.addFavorite(sURL, sTitle);
return true;
} else if (window.sidebar && window.sidebar.addPanel) {
window.sidebar.addPanel(sTitle, sURL, "");
return true;
} else {
var touch = (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Command' : 'CTRL');
layer.msg('请使用 ' + touch + ' + D 添加到收藏夹.');
return false;
}
}
var len = function (str) {
if (!str)
return 0;
var length = 0;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 0x4e00 && str.charCodeAt(i) <= 0x9fa5) {
length += 2;
} else {
length++;
}
}
return length;
};
//new LazyLoad({elements_selector: ".lazy"});
layer.config({focusBtn: false});
//栏目高亮
var nav = $("header.header .navbar-nav");
if ($("li.active", nav).length === 0) {
var current = nav.data("current");
var currentNav = $("a[href='" + location.href + "']", nav)[0] || $("a[href='" + location.pathname + "']", nav)[0] || $("li[value='" + current + "'] > a", nav)[0];
currentNav && $(currentNav, nav).parents("li").addClass("active");
}
//移动端菜单点击
$(document).on("click", ".navbar-collapse.collapse.in .navbar-nav .dropdown-submenu > a", function () {
$(this).parents("li.dropdown").addClass("open");
return false;
});
//移动浏览器左右滑动
$(document).on('touchstart', '.carousel', function (event) {
const xClick = event.originalEvent.touches[0].pageX;
$(this).one('touchmove', function (event) {
const xMove = event.originalEvent.touches[0].pageX;
const sensitivityInPx = 5;
if (Math.floor(xClick - xMove) > sensitivityInPx) {
$(this).carousel('next');
} else if (Math.floor(xClick - xMove) < -sensitivityInPx) {
$(this).carousel('prev');
}
});
$(this).on('touchend', function () {
$(this).off('touchmove');
});
});
// 点击收藏
$(".addbookbark").attr("rel", "sidebar").click(function () {
//使用数据库收藏
CMS.api.ajax({
url: $(this).data("action"),
data: {type: $(this).data("type"), aid: $(this).data("aid")}
});
//使用浏览器收藏
//return !AddFavorite(window.location.href, $(this).attr("title"));
});
// 点赞
$(document).on("click", ".btn-like", function () {
var that = this;
var id = $(this).data("id");
var type = $(this).data("type");
if (CMS.api.storage(type + "vote." + id)) {
layer.msg("你已经点过赞了");
return false;
}
CMS.api.ajax({
data: $(this).data()
}, function (data, ret) {
$("span", that).text(type === 'like' ? ret.data.likes : ret.data.dislikes);
CMS.api.storage(type + "vote." + id, true);
return false;
}, function () {
return false;
});
});
// 加载更多
$(document).on("click", ".btn-loadmore", function () {
var that = this;
var page = parseInt($(this).data("page"));
var container = $(this).data("container");
container = container ? $(container) : $(".article-list,.product-list");
var loadmoreText = $(this).text();
$(that).text("正在加载").prop("disabled", true);
CMS.api.ajax({
url: $(that).attr("href"),
}, function (data, ret) {
if (data) {
$(data).appendTo(container);
page++;
$(that).attr("href", $(that).data("url").replace("__page__", page)).data("page", page);
$(that).text(loadmoreText).prop("disabled", false);
} else {
$(that).replaceWith('<div class="loadmore loadmore-line loadmore-nodata"><span class="loadmore-tips">暂无更多数据</span></div>');
}
return false;
}, function (data) {
$(that).text(loadmoreText).prop("disabled", false);
});
return false;
});
//滚动加载更多
$(window).scroll(function () {
var loadmore = $(".btn-loadmore");
if (loadmore.length > 0 && !loadmore.prop("disabled") && (loadmore.data("autoload") === undefined || loadmore.data("autoload"))) {
if ($(window).scrollTop() - loadmore.height() > loadmore.offset().top - $(window).height()) {
loadmore.trigger("click");
}
}
});
setTimeout(function () {
if ($(window).scrollTop() > 0) {
$(window).trigger("scroll");
}
}, 500);
//评论列表
if ($("#comment-container").length > 0) {
var ci, si;
$("#commentlist dl dd div,#commentlist dl dd dl dd").on({
mouseenter: function () {
clearTimeout(ci);
var _this = this;
ci = setTimeout(function () {
$(_this).find("small:first").find("a").stop(true, true).fadeIn();
}, 100);
},
mouseleave: function () {
clearTimeout(ci);
$(this).find("small:first").find("a").stop(true, true).fadeOut();
}
});
$(".reply").on("click", function () {
$("#pid").val($(this).data("id"));
$(this).parent().parent().append($("div#postcomment").detach());
$("#postcomment h3 a").show();
$("#commentcontent").focus().val($(this).attr("title"));
});
$("#postcomment h3 a").bind("click", function () {
$("#comment-container").append($("div#postcomment").detach());
$(this).hide();
});
$(".expandall a").on("click", function () {
$(this).parent().parent().find("dl.hide").fadeIn();
$(this).fadeOut();
});
$(document).on("click", "#submit", function () {
var btn = $(this);
var tips = $("#actiontips");
tips.removeClass();
var content = $("#commentcontent").val();
if (len(content) < 3) {
tips.addClass("text-danger").html("评论内容长度不正确!最少3个字符").fadeIn().change();
return false;
}
if (btn.prop("disabled")) {
return false;
}
var form = $("#postform");
btn.attr("disabled", "disabled");
tips.html('正在提交...');
$.ajax({
url: form.prop("action"),
type: 'POST',
data: form.serialize(),
dataType: 'json',
success: function (json) {
btn.removeAttr("disabled");
if (json.code == 1) {
$("#pid").val(0);
tips.addClass("text-success").html(json.msg || "评论成功!").fadeIn(300).change();
$("#commentcontent").val('');
$("#commentcount").text(parseInt($("#commentcount").text()) + 1);
setTimeout(function () {
location.reload();
}, 1500);
} else {
tips.addClass("text-danger").html(json.msg).fadeIn();
}
if (json.data && json.data.token) {
$("#postform input[name='__token__']").val(json.data.token);
}
},
error: function () {
btn.removeAttr("disabled");
tips.addClass("text-danger").html("评论失败!请刷新页面重试!").fadeIn();
}
});
return false;
});
$("#commentcontent").on("keydown", function (e) {
if ((e.metaKey || e.ctrlKey) && (e.keyCode == 13 || e.keyCode == 10)) {
$("#submit").trigger('click');
return false;
}
});
$("#actiontips").on("change", function () {
clearTimeout(si);
si = setTimeout(function () {
$("#actiontips").fadeOut();
}, 8000);
});
$(document).on("keyup change", "#commentcontent", function (e) {
if (e.metaKey || e.ctrlKey || [13, 10, 18, 91].indexOf(e.keyCode) > -1) {
return false;
}
var max = 1000;
var c = $(this).val();
var length = len(c);
var t = $("#actiontips");
if (max >= length) {
t.removeClass().show().addClass("loading").html("你还可以输入 <font color=green>" + (Math.floor((max - length) / 2)) + "</font> 字");
$("#submit").removeAttr("disabled");
} else {
t.removeClass().show().addClass("loading").html("你已经超出 <font color=red>" + (Math.ceil((length - max) / 2)) + "</font> 字");
$("#submit").attr("disabled", "disabled");
}
});
}
// 余额支付提示
$(document).on('click', '.btn-balance', function (e) {
var that = this;
layer.confirm("确认支付¥" + $(this).data("price") + "元用于购买?", function () {
CMS.api.ajax({
url: $(that).attr("href")
}, function (data, ret) {
CMS.api.msg(ret.msg, ret.url);
}, function (data, ret) {
});
});
return false;
});
// 回到顶部
$('#back-to-top').on('click', function (e) {
e.preventDefault();
$('html,body').animate({
scrollTop: 0
}, 700);
});
//如果是PC则移除navbar的dropdown点击事件
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobi/i.test(navigator.userAgent)) {
$("#navbar-collapse [data-toggle='dropdown']").removeAttr("data-toggle");
} else {
$(".navbar-nav ul li:not(.dropdown-submenu):not(.dropdown) a").removeAttr("data-toggle");
}
if (!isMobile) {
var search = $("#searchinput");
var form = search.closest("form");
search.autoComplete({
minChars: 1,
cache: false,
menuClass: 'autocomplete-searchmenu',
header: '',
footer: '',
source: function (term, response) {
try {
xhr.abort();
} catch (e) {
}
xhr = $.getJSON(search.data("suggestion-url"), {q: term}, function (data) {
response(data);
});
},
onSelect: function (e, term, item) {
if (typeof callback === 'function') {
callback.call(elem, term, item);
} else {
form.trigger("submit");
}
}
});
}
// 手机端左右滑动切换菜单栏
if (isMobile && 'ontouchstart' in document.documentElement) {
var startX, startY, moveEndX, moveEndY, relativeX, relativeY, element;
element = $('#navbar-collapse');
$("body").on("touchstart", function (e) {
startX = e.originalEvent.changedTouches[0].pageX;
startY = e.originalEvent.changedTouches[0].pageY;
});
$("body").on("touchend", function (e) {
moveEndX = e.originalEvent.changedTouches[0].pageX;
moveEndY = e.originalEvent.changedTouches[0].pageY;
relativeX = moveEndX - startX;
relativeY = moveEndY - startY;
//右滑
if (relativeX > 45) {
if ((Math.abs(relativeX) - Math.abs(relativeY)) > 50 && !element.hasClass("active") && startX < ($(window).width() / 4)) {
$(".sidebar-toggle").trigger("click");
}
}
//左滑
else if (relativeX < -45) {
if ((Math.abs(relativeX) - Math.abs(relativeY)) > 50 && element.hasClass("active")) {
$(".sidebar-toggle").trigger("click");
}
}
});
}
// 打赏
$(".btn-donate").popover({
trigger: 'hover',
placement: 'top',
html: true,
content: function () {
return "<img src='" + $(this).data("image") + "' width='250' height='250'/>";
}
});
$(document).on("click", ".btn-paynow", function () {
var paytype = $(this).data("paytype");
var price = $(this).data("price");
var nameArr = {wechat: "微信", alipay: "支付宝", balance: "余额"};
var that = this;
var tips = function () {
layer.confirm("请根据支付状态选择下面的操作按钮", {title: "温馨提示", icon: 0, btn: ["支付成功", "支付失败"]}, function () {
location.reload();
});
};
if (paytype) {
layer.confirm("确认使用" + (typeof nameArr[paytype] !== 'undefined' ? nameArr[paytype] : "未知") + "进行支付?<br>支付金额:¥" + price + "元", {title: "温馨提示", icon: 3, focusBtn: false, btn: ["立即支付", "取消支付"]}, function (index, layero) {
$(".layui-layer-btn0", layero).attr("href", $(that).attr("href")).attr("target", "_blank");
tips();
});
return false;
} else {
tips();
}
});
//点击切换
$(document).on("click", ".sidebar-toggle", function () {
var collapse = $("#navbar-collapse");
if (collapse.hasClass("active")) {
$(".navbar-collapse-bg").remove();
} else {
$("<div />").addClass("navbar-collapse-bg").insertAfter(collapse).on("click", function () {
$(".sidebar-toggle").trigger("click");
});
}
collapse.toggleClass("active");
$(this).toggleClass("active");
});
//内容中的图片点击事件
$(document).on("click", ".article-text img", function () {
if ($(this).closest("a").length > 0) {
return;
}
var that = this;
var data = [];
var index = 0;
$(".article-text img").each(function (i, j) {
if (that == this) {
index = i;
}
data.push({
"src": $(this).attr("src") //原图地址
});
});
layer.photos({
photos: {
"start": index, "data": data
},
// scrollbar: true,
// full: true,
// closeBtn: 1
});
return false;
});
//分享参数配置
var shareConfig = {
title: $("meta[property='og:title']").attr("content") || document.title,
description: $("meta[property='og:description']").attr("content") || $("meta[name='description']").attr("content") || "",
url: $("meta[property='og:url']").attr("content") || location.href,
image: $("meta[property='og:image']").attr("content") || ""
};
//微信公众号内分享
if (typeof wx != 'undefined') {
shareConfig.url = location.href;
CMS.api.ajax({
url: "/addons/cms/ajax/share",
data: {url: shareConfig.url},
loading: false
}, function (data, ret) {
try {
wx.config({
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: [
'checkJsApi',
'updateAppMessageShareData',
'updateTimelineShareData',
]
});
var shareData = {
title: shareConfig.title,
desc: shareConfig.description,
link: shareConfig.url,
imgUrl: shareConfig.image,
success: function () {
layer.closeAll();
},
cancel: function () {
layer.closeAll();
}
};
wx.ready(function () {
wx.updateAppMessageShareData(shareData);
wx.updateTimelineShareData(shareData);
});
} catch (e) {
console.log(e);
}
return false;
}, function () {
return false;
}
);
$(".social-share").on("click", ".icon-wechat", function () {
layer.msg("请点击右上角的●●●进行分享");
return false;
}).find(".wechat-qrcode").remove();
}
});
@@ -0,0 +1,215 @@
/*
jQuery autoComplete v1.0.7
Copyright (c) 2014 Simon Steinberger / Pixabay
GitHub: https://github.com/Pixabay/jQuery-autoComplete
License: http://www.opensource.org/licenses/mit-license.php
*/
(function ($) {
$.fn.autoComplete = function (options) {
var o = $.extend({}, $.fn.autoComplete.defaults, options);
// public methods
if (typeof options == 'string') {
this.each(function () {
var that = $(this);
if (options == 'destroy') {
$(window).off('resize.autocomplete', that.updateSC);
that.off('blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete');
if (that.data('autocomplete'))
that.attr('autocomplete', that.data('autocomplete'));
else
that.removeAttr('autocomplete');
$(that.data('sc')).remove();
that.removeData('sc').removeData('autocomplete');
}
});
return this;
}
return this.each(function () {
var that = $(this);
// sc = 'suggestions container'
that.sc = $('<div class="autocomplete-suggestions ' + o.menuClass + '"></div>');
that.data('sc', that.sc).data('autocomplete', that.attr('autocomplete'));
that.attr('autocomplete', 'off');
that.cache = {};
that.last_val = '';
that.updateSC = function (resize, next) {
that.sc.css({
top: that.offset().top + that.outerHeight() - (that.sc.css("position") == "fixed" ? $(window).scrollTop() : 0),
left: that.offset().left,
width: that.outerWidth()
});
if (!resize) {
that.sc.show();
if (!that.sc.maxHeight) that.sc.maxHeight = parseInt(that.sc.css('max-height'));
if (!that.sc.suggestionHeight) that.sc.suggestionHeight = $('.autocomplete-suggestion', that.sc).first().outerHeight();
if (that.sc.suggestionHeight)
if (!next) that.sc.scrollTop(0);
else {
var scrTop = that.sc.scrollTop(), selTop = next.offset().top - that.sc.offset().top;
if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)
that.sc.scrollTop(selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight);
else if (selTop < 0)
that.sc.scrollTop(selTop + scrTop);
}
}
}
$(window).on('resize.autocomplete', that.updateSC);
that.sc.appendTo('body');
that.on('click', function () {
if ($(this).val().length > 0 && that.sc.is(":hidden")) {
setTimeout(function () {
that.sc.show();
}, 100);
}
});
that.sc.on('mouseleave', '.autocomplete-suggestion', function () {
$('.autocomplete-suggestion.selected').removeClass('selected');
});
that.sc.on('mouseenter', '.autocomplete-suggestion', function () {
$('.autocomplete-suggestion.selected').removeClass('selected');
$(this).addClass('selected');
});
that.sc.on('mousedown click', '.autocomplete-suggestion', function (e) {
var item = $(this), v = item.data('val');
if (v || item.hasClass('autocomplete-suggestion')) { // else outside click
that.val(v);
o.onSelect(e, v, item);
that.sc.hide();
}
return false;
});
that.on('blur.autocomplete', function () {
try {
over_sb = $('.autocomplete-suggestions:hover').length;
} catch (e) {
over_sb = 0;
} // IE7 fix :hover
if (!over_sb) {
that.last_val = that.val();
that.sc.hide();
setTimeout(function () {
that.sc.hide();
}, 350); // hide suggestions on fast input
} else if (!that.is(':focus')) setTimeout(function () {
that.focus();
}, 20);
});
if (!o.minChars) that.on('focus.autocomplete', function () {
that.last_val = '\n';
that.trigger('keyup.autocomplete');
});
function suggest(data) {
var val = that.val();
that.cache[val] = data;
if (data.length && val.length >= o.minChars) {
var s = '';
if (data.length > 0) {
s += typeof o.header === 'function' ? o.header.call(data, o, that) : o.header;
for (var i = 0; i < data.length; i++) s += o.renderItem(data[i], val);
s += typeof o.footer === 'function' ? o.footer.call(data, o, that) : o.footer;
}
that.sc.html(s);
that.updateSC(0);
} else
that.sc.hide();
}
that.on('keydown.autocomplete', function (e) {
// down (40), up (38)
if ((e.which == 40 || e.which == 38) && that.sc.html()) {
var next, sel = $('.autocomplete-suggestion.selected', that.sc);
if (!sel.length) {
next = (e.which == 40) ? $('.autocomplete-suggestion', that.sc).first() : $('.autocomplete-suggestion', that.sc).last();
that.val(next.addClass('selected').data('val'));
} else {
next = (e.which == 40) ? sel.next('.autocomplete-suggestion') : sel.prev('.autocomplete-suggestion');
if (next.length) {
sel.removeClass('selected');
that.val(next.addClass('selected').data('val'));
} else {
sel.removeClass('selected');
that.val(that.last_val);
next = 0;
}
}
that.updateSC(0, next);
return false;
}
// esc
else if (e.which == 27) that.val(that.last_val).sc.hide();
// enter or tab
else if (e.which == 13 || e.which == 9) {
var sel = $('.autocomplete-suggestion.selected', that.sc);
if (sel.length && that.sc.is(':visible')) {
o.onSelect(e, sel.data('val'), sel);
setTimeout(function () {
that.sc.hide();
}, 20);
}
}
});
that.on('keyup.autocomplete', function (e) {
if (!~$.inArray(e.which, [13, 27, 35, 36, 37, 38, 39, 40])) {
var val = that.val();
if (val.length >= o.minChars) {
if (val != that.last_val) {
that.last_val = val;
clearTimeout(that.timer);
if (o.cache) {
if (val in that.cache) {
suggest(that.cache[val]);
return;
}
// no requests if previous suggestions were empty
for (var i = 1; i < val.length - o.minChars; i++) {
var part = val.slice(0, val.length - i);
if (part in that.cache && !that.cache[part].length) {
suggest([]);
return;
}
}
}
that.timer = setTimeout(function () {
o.source(val, suggest)
}, o.delay);
}
} else {
that.last_val = val;
that.sc.hide();
}
}
});
});
}
$.fn.autoComplete.defaults = {
source: 0,
minChars: 3,
delay: 150,
cache: 1,
menuClass: '',
header: '',
footer: '',
renderItem: function (item, search) {
// escape special characters
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
return '<div class="autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
},
onSelect: function (e, term, item) {
}
};
}(jQuery));
File diff suppressed because one or more lines are too long
@@ -0,0 +1,429 @@
/*
jQuery Tags Input Plugin 1.3.3
Copyright (c) 2011 XOXCO, Inc
Documentation for this plugin lives here:
http://xoxco.com/clickable/jquery-tags-input
Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
ben@xoxco.com
*/
(function ($) {
var delimiter = [];
var tags_callbacks = [];
$.fn.doAutosize = function (o) {
var minWidth = $(this).data('minwidth'),
maxWidth = $(this).data('maxwidth'),
val = '',
input = $(this),
testSubject = $('#' + $(this).data('tester_id'));
if (val === (val = input.val())) {
return;
}
// Enter new content into testSubject
var escaped = val.replace(/&/g, '&amp;').replace(/\s/g, ' ').replace(/</g, '&lt;').replace(/>/g, '&gt;');
testSubject.html(escaped);
// Calculate new width + whether to change
var testerWidth = testSubject.width(),
newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
currentWidth = input.width(),
isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
|| (newWidth > minWidth && newWidth < maxWidth);
// Animate width
if (isValidWidthChange) {
input.width(newWidth);
}
};
$.fn.resetAutosize = function (options) {
// alert(JSON.stringify(options));
var minWidth = $(this).data('minwidth') || options.minInputWidth || $(this).width(),
maxWidth = $(this).data('maxwidth') || options.maxInputWidth || ($(this).closest('.tagsinput').width() - options.inputPadding),
val = '',
input = $(this),
testSubject = $('<tester/>').css({
position: 'absolute',
top: -9999,
left: -9999,
width: 'auto',
fontSize: input.css('fontSize'),
fontFamily: input.css('fontFamily'),
fontWeight: input.css('fontWeight'),
letterSpacing: input.css('letterSpacing'),
whiteSpace: 'nowrap'
}),
testerId = $(this).attr('id') + '_autosize_tester';
if (!$('#' + testerId).length > 0) {
testSubject.attr('id', testerId);
testSubject.appendTo('body');
}
input.data('minwidth', minWidth);
input.data('maxwidth', maxWidth);
input.data('tester_id', testerId);
input.css('width', minWidth);
};
$.fn.addTag = function (value, options) {
options = jQuery.extend({focus: false, callback: true}, options);
this.each(function () {
var id = $(this).attr('id');
var tagslist = $(this).val().split(delimiter[id]);
if (tagslist[0] == '') {
tagslist = [];
}
value = jQuery.trim(value);
if (options.unique) {
var skipTag = $(this).tagExist(value);
if (skipTag == true) {
//Marks fake input as not_valid to let styling it
$('#' + id + '_tag').addClass('not_valid');
}
} else {
var skipTag = false;
}
if (value != '' && skipTag != true) {
$('<span>').addClass('tag').append(
$('<span>').text(value),
$('<a>', {
href: '#',
title: '移除标签',
html: '&times;'
}).click(function () {
return $('#' + id).removeTag(escape(value));
})
).insertBefore('#' + id + '_addTag');
tagslist.push(value);
$('#' + id + '_tag').val('');
if (options.focus) {
$('#' + id + '_tag').focus();
} else {
$('#' + id + '_tag').blur();
}
$.fn.tagsInput.updateTagsField(this, tagslist);
if (options.callback && tags_callbacks[id] && tags_callbacks[id]['onAddTag']) {
var f = tags_callbacks[id]['onAddTag'];
f.call(this, value);
}
if (tags_callbacks[id] && tags_callbacks[id]['onChange']) {
var i = tagslist.length;
var f = tags_callbacks[id]['onChange'];
f.call(this, $(this), tagslist[i - 1]);
}
}
});
return false;
};
$.fn.removeTag = function (value) {
value = unescape(value);
this.each(function () {
var id = $(this).attr('id');
var old = $(this).val().split(delimiter[id]);
$('#' + id + '_tagsinput .tag').remove();
str = '';
for (i = 0; i < old.length; i++) {
if (old[i] != value) {
str = str + delimiter[id] + old[i];
}
}
$.fn.tagsInput.importTags(this, str);
if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
var f = tags_callbacks[id]['onRemoveTag'];
f.call(this, value);
}
});
return false;
};
$.fn.tagExist = function (val) {
var id = $(this).attr('id');
var tagslist = $(this).val().split(delimiter[id]);
return (jQuery.inArray(val, tagslist) >= 0); //true when tag exists, false when not
};
// clear all existing tags and import new ones from a string
$.fn.importTags = function (str) {
var id = $(this).attr('id');
$('#' + id + '_tagsinput .tag').remove();
$.fn.tagsInput.importTags(this, str);
}
$.fn.tagsInput = function (options) {
var settings = jQuery.extend({
interactive: true,
defaultText: 'add a tag',
minChars: 0,
width: '300px',
height: '100px',
autocomplete: {selectFirst: false},
addOnBlur: true,
hide: true,
delimiter: ',',
delimiterSpace: true,
unique: true,
removeWithBackspace: true,
placeholderColor: '#666666',
autosize: true,
comfortZone: 20,
inputPadding: 6 * 2
}, options);
var uniqueIdCounter = 0;
this.each(function () {
// If we have already initialized the field, do not do it again
if (typeof $(this).attr('data-tagsinput-init') !== 'undefined') {
return;
}
// Mark the field as having been initialized
$(this).attr('data-tagsinput-init', true);
if (settings.hide) {
$(this).hide();
}
var id = $(this).attr('id');
if (!id || delimiter[$(this).attr('id')]) {
id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id');
}
var data = jQuery.extend({
pid: id,
real_input: '#' + id,
holder: '#' + id + '_tagsinput',
input_wrapper: '#' + id + '_addTag',
fake_input: '#' + id + '_tag'
}, settings);
delimiter[id] = data.delimiter;
if (settings.onAddTag || settings.onRemoveTag || settings.onChange || settings.onKeyDown) {
tags_callbacks[id] = [];
tags_callbacks[id]['onAddTag'] = settings.onAddTag;
tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
tags_callbacks[id]['onChange'] = settings.onChange;
tags_callbacks[id]['onKeyDown'] = settings.onKeyDown;
}
var markup = '<div id="' + id + '_tagsinput" class="tagsinput"><div id="' + id + '_addTag">';
if (settings.interactive) {
markup = markup + '<input id="' + id + '_tag" value="" data-default="' + settings.defaultText + '" />';
}
markup = markup + '</div><div class="tags_clear"></div></div>';
$(markup).insertAfter(this);
$(data.holder).css('width', settings.width);
$(data.holder).css('min-height', settings.height);
$(data.holder).css('height', settings.height);
if ($(data.real_input).val() != '') {
$.fn.tagsInput.importTags($(data.real_input), $(data.real_input).val());
}
if (settings.interactive) {
$(data.fake_input).val($(data.fake_input).attr('data-default'));
$(data.fake_input).css('color', settings.placeholderColor);
$(data.fake_input).resetAutosize(settings);
$(data.holder).bind('click', data, function (event) {
$(event.data.fake_input).focus();
});
$(data.fake_input).bind('focus', data, function (event) {
if ($(event.data.fake_input).val() == $(event.data.fake_input).attr('data-default')) {
$(event.data.fake_input).val('');
}
$(event.data.fake_input).css('color', '#000000');
});
if (typeof settings.autocomplete != 'undefined') {
if (jQuery.fn.autoComplete !== undefined) {
var xhr;
$(data.fake_input).autoComplete($.extend({
source: function (term, response) {
try {
xhr.abort();
} catch (e) {
}
xhr = $.getJSON(settings.autocomplete.url, {q: term}, function (data) {
response(data);
});
},
renderItem: function (item, search) {
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
return '<div class="autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
},
onSelect: function (e, term, item) {
if (item) {
$('#' + id).addTag($(item).data("val") + "", {focus: true, unique: (settings.unique)});
}
}
}, settings.autocomplete));
} else if (jQuery.Autocompleter !== undefined) {
$(data.fake_input).autocomplete(settings.autocomplete.url, settings.autocomplete);
$(data.fake_input).bind('result', data, function (event, data, formatted) {
if (data) {
$('#' + id).addTag(data[0] + "", {focus: true, unique: (settings.unique)});
}
});
} else if (jQuery.ui.autocomplete !== undefined) {
$(data.fake_input).autocomplete(settings.autocomplete);
$(data.fake_input).bind('autocompleteselect', data, function (event, ui) {
$(event.data.real_input).addTag(ui.item.value, {focus: true, unique: (settings.unique)});
return false;
});
}
}
if (settings.addOnBlur) {
// if a user tabs out of the field, create a new tag
$(data.fake_input).bind('blur', data, function (event) {
var d = $(this).attr('data-default');
if ($(event.data.fake_input).val() != '' && $(event.data.fake_input).val() != d) {
if ((event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)))
$(event.data.real_input).addTag($(event.data.fake_input).val(), {focus: true, unique: (settings.unique)});
} else {
$(event.data.fake_input).val($(event.data.fake_input).attr('data-default'));
$(event.data.fake_input).css('color', settings.placeholderColor);
}
return false;
});
}
// if user types a default delimiter like comma,semicolon and then create a new tag
$(data.fake_input).bind('keypress textInput', data, function (event) {
if (_checkDelimiter.call(this, event)) {
var value = $(event.data.fake_input).val();
if (value.indexOf(event.data.delimiter) > -1 || (event.data.delimiterSpace && value.indexOf(" ") > -1)) {
$(event.data.fake_input).addClass('not_valid');
return false;
}
event.preventDefault();
if ((event.data.minChars <= value.length) && (!event.data.maxChars || (event.data.maxChars >= value.length)))
$(event.data.real_input).addTag(value, {focus: true, unique: (settings.unique)});
$(event.data.fake_input).resetAutosize(settings);
return false;
} else if (event.data.autosize) {
$(event.data.fake_input).doAutosize(settings);
}
});
//Delete last tag on backspace
data.removeWithBackspace && $(data.fake_input).bind('keydown', function (event) {
if (event.keyCode == 8 && $(this).val() == '') {
event.preventDefault();
var last_tag = $(this).closest('.tagsinput').find('.tag:last').find("span").text();
var id = $(this).attr('id').replace(/_tag$/, '');
last_tag = last_tag.replace(/[\s]+x$/, '');
$('#' + id).removeTag(escape(last_tag));
$(this).trigger('focus');
}
});
$(data.fake_input).bind('keydown', function (event) {
var id = $(this).attr('id').replace(/_tag$/, '');
if (tags_callbacks[id] && tags_callbacks[id]['onKeyDown']) {
var f = tags_callbacks[id]['onKeyDown'];
f.call(this, event);
}
});
$(data.fake_input).blur();
//Removes the not_valid class when user changes the value of the fake input
if (data.unique) {
$(data.fake_input).keydown(function (event) {
if (event.keyCode == 8 || String.fromCharCode(event.which).match(/\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)) {
$(this).removeClass('not_valid');
}
});
}
} // if settings.interactive
});
return this;
};
$.fn.tagsInput.updateTagsField = function (obj, tagslist) {
var id = $(obj).attr('id');
$(obj).val(tagslist.join(delimiter[id]));
};
$.fn.tagsInput.importTags = function (obj, val) {
$(obj).val('');
var id = $(obj).attr('id');
var tags = val.split(delimiter[id]);
for (i = 0; i < tags.length; i++) {
$(obj).addTag(tags[i], {focus: false, callback: false});
}
if (tags_callbacks[id] && tags_callbacks[id]['onChange']) {
var f = tags_callbacks[id]['onChange'];
f.call(obj, obj, tags[i]);
}
};
/**
* check delimiter Array
* @param event
* @returns {boolean}
* @private
*/
var _checkDelimiter = function (event) {
var found = false;
var key = event.keyCode || event.which || event.charCode;
key = key || event.originalEvent.data.charCodeAt(0);
if (key == 0 || key == 229) {
var value = $(this).val();
key = value.charCodeAt(value.length - 1);
}
if (key == 13 || (event.data.delimiterSpace && key == 32)) {
return true;
}
if (typeof event.data.delimiter === 'string') {
if (key == event.data.delimiter.charCodeAt(0)) {
found = true;
}
} else {
$.each(event.data.delimiter, function (index, delimiter) {
if (key == delimiter.charCodeAt(0)) {
found = true;
}
});
}
return found;
}
})(jQuery);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,34 @@
.make-margin-padding(margin, m, 5px, 4);
.make-margin-padding(padding, p, 5px, 4);
.make-margin-padding(@type, @prefix, @space, @i) when (@i >= 0) {
.make-margin-padding(@type, @prefix, @space, @i - 1);
@pixel: @space * @i;
.@{prefix}-@{i} {
@{type}-top: @pixel !important;
@{type}-right: @pixel !important;
@{type}-bottom: @pixel !important;
@{type}-left: @pixel !important;
}
.@{prefix}t-@{i} {
@{type}-top: @pixel !important;
}
.@{prefix}r-@{i} {
@{type}-right: @pixel !important;
}
.@{prefix}b-@{i} {
@{type}-bottom: @pixel !important;
}
.@{prefix}l-@{i} {
@{type}-left: @pixel !important;
}
.@{prefix}x-@{i} {
@{type}-left: @pixel !important;
@{type}-right: @pixel !important;
}
.@{prefix}y-@{i} {
@{type}-top: @pixel !important;
@{type}-bottom: @pixel !important;
}
}