!190 更新资源文件

Merge pull request !190 from 灰色DT/4.7.2
This commit is contained in:
铭飞 2019-10-28 09:50:51 +08:00 committed by Gitee
commit e6efaa24d3
36 changed files with 7549 additions and 2 deletions

View File

@ -1,6 +1,8 @@
package net.mingsoft.config;
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.aop.Advisor;
import net.mingsoft.basic.filter.XSSEscapeFilter;
@ -70,7 +72,7 @@ public class WebConfig implements WebMvcConfigurer {
registry.addResourceHandler("/html/**").addResourceLocations("/html/","file:html/");
//三种映射方式 webapp下当前目录下jar内
registry.addResourceHandler("/app/**").addResourceLocations("/app/","file:app/", "classpath:/app/");
registry.addResourceHandler("/static/**","/**").addResourceLocations("/static/","file:static/","classpath:/static/");
registry.addResourceHandler("/static/**","/**").addResourceLocations("/static/","file:static/","classpath:/static/","classpath:/META-INF/resources/");
registry.addResourceHandler("/api/**").addResourceLocations("/api/","file:api/", "classpath:/api/");
if(new File(uploadFloderPath).isAbsolute()){
//如果指定了绝对路径上传的文件都映射到uploadMapping下
@ -150,6 +152,7 @@ public class WebConfig implements WebMvcConfigurer {
FilterRegistrationBean registration = new FilterRegistrationBean(xssFilter);
xssFilter.excludes.add(".*file/upload.do");
xssFilter.excludes.add(".*/jsp/editor.do");
xssFilter.excludes.add(".*/?(jpg|js|css|gif|png|ico)$");
xssFilter.excludes.add("/");
registration.addUrlPatterns("/*");
return registration;

View File

@ -0,0 +1,76 @@
body {
margin: 0;
padding: 0;
background: #eee !important;
}
a:link,a:visited,a:active{text-decoration: none; color:#409EFF;}
.ms-container {
margin: 12px;
height: 100%;
padding: 14px 14px 0 14px;
background: #fff;
}
.ms-header {
padding: 10px;
margin: 0;
border-bottom: 1px solid #ddd;
background: #fff;
height: 50px
}
.ms-pagination {
padding: 20px 0;
text-align: right;
}
.ms-fr {
float: right;
}
.ms-tr {
text-align: right;
}
.el-button+.el-button {
margin-left: 0
}
.ms-select{
display: block;
}
.ms-datetimerange{
width: 100% !important;
}
#index .ms-search{
background: #fff;
}
#index .ms-search .ms-search-footer{
line-height: 60px;
text-align: center;
}
#index .ms-table-pagination {
height: calc(100% - 75px);
}
#myPageTop {
width: 252px;
}
#myPageTop input {
width: 242px;
}
#form .iconfont {
font-size: 12px;
margin-right: 5px;
}
#form .ms-container{
height:calc(100vh - 74px);
}
#index .ms-container{
height: calc(100vh - 74px);
}
[v-cloak]{
display: none;
}

View File

@ -0,0 +1,513 @@
/*
*这里的值严格按照UI设计图标注值来进行设置
*/
/*
*颜色
*/
/*
*页面的边距
*/
/*
*字体
*/
/*
*头像
*/
/*
* 按钮
*/
/*
*对常见的多行样式进行了方法封装方便调用加快开发效率
*/
html,
body {
min-height: 100vh;
width: 100vw;
background-color: #eee;
margin: 0;
display: flex;
font-weight: initial !important;
font-size: 14px !important;
color: #333 !important;
}
html *,
body * {
text-decoration: none !important;
font-family: Verdana, Arial, Helvetica, sans-serif;
box-sizing: border-box;
}
.ms-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
}
.ms-align-center {
display: flex;
align-items: center;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
font-weight: initial;
font-size: 12px;
color: #999;
resize: none;
}
*::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/*定义滚动条轨道 内阴影+圆角*/
*::-webkit-scrollbar-track {
border-radius: 10px;
/*滚动条的背景区域的圆角*/
background-color: #eee;
/*滚动条的背景颜色*/
}
/*定义滑块 内阴影+圆角*/
*::-webkit-scrollbar-thumb {
border-radius: 10px;
/*滚动条的圆角*/
background-color: #e6e6e6;
/*滚动条的背景颜色*/
}
.ms-container {
margin: 12px;
height: calc(100% - 24px);
padding: 14px;
background: #fff;
}
.ms-header {
padding: 10px;
margin: 0;
border-bottom: 1px solid #ddd;
background: #fff;
height: 50px;
}
.ms-header button {
height: 30px;
}
.ms-pagination {
padding: 20px 0;
text-align: right;
}
.ms-fr {
float: right;
}
.ms-tr {
text-align: right;
}
.ms-weixin-content {
width: calc(100% - 140px);
}
.ms-weixin-dialog .el-dialog__header {
height: 55px;
box-sizing: border-box;
padding: 10px 10px 25px 10px;
border-bottom: 1px solid #e6e6e6;
}
.ms-weixin-dialog .el-dialog__header .el-dialog__title {
font-weight: bold;
font-size: 14px;
color: #333;
}
.ms-weixin-dialog .el-dialog__footer {
border-top: 1px solid #e6e6e6;
padding: 15px !important;
}
.ms-hover {
cursor: pointer;
}
.ms-hover:hover {
color: #0099ff;
background: #fff;
border-color: #0099ff;
}
.ms-header-select {
font-size: 0;
}
.ms-header-select > .el-select:nth-of-type(2) {
margin: 0 10px;
}
.el-submenu .el-menu-item.is-active {
border-radius: 4px;
}
.el-card,
.el-message {
border-radius: 0 !important;
}
.sortable-ghost {
opacity: .3;
background: #ccc !important;
border-color: transparent !important;
color: transparent !important;
}
.sortable-ghost * {
background: #ccc !important;
border-color: transparent !important;
color: transparent !important;
}
.index {
width: 100%;
display: flex;
}
.ms-admin-header {
display: flex;
padding: 0;
background-color: #0099ff;
height: 50px !important;
}
.ms-admin-header .ms-admin-header-menu {
background-color: #0099ff;
border-bottom: none;
position: relative;
}
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item > *,
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item {
height: 50px !important;
line-height: 50px !important;
background-color: #0099ff !important;
color: rgba(255, 255, 255, 0.65) !important;
border-bottom: none !important;
font-size: 1em;
}
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item > *:hover,
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item:hover {
color: #fff !important;
}
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item > *.is-active,
.ms-admin-header .ms-admin-header-menu > .ms-admin-menu-item.is-active {
color: #fff !important;
}
.ms-admin-header .ms-admin-header-menu .ms-admin-shortcut-menu {
padding: 0;
user-select: none;
outline: none;
width: 100%;
min-width: 500px;
min-height: 200px;
background-color: #fff !important;
height: auto;
flex-wrap: wrap;
position: absolute;
right: 0;
top: 0;
z-index: 9;
background: #ffffff;
border: 1px solid #e6e6e6;
box-shadow: 2px 3px 5px 0.1px rgba(0, 0, 0, 0.1);
}
.ms-admin-header .ms-admin-header-menu .ms-admin-shortcut-menu > li {
margin: 0;
padding: 0 20px;
text-align: left;
display: -webkit-inline-box;
display: inline-block;
height: 50px;
line-height: 50px;
font-weight: normal;
font-size: 14px;
color: #333;
}
.ms-admin-header .ms-admin-header-menu .ms-admin-shortcut-menu > li:hover {
cursor: pointer;
color: #0099ff;
}
.ms-admin-header .ms-admin-header-menu .ms-admin-shortcut-menu i {
position: absolute;
top: 18px;
right: 19px;
font-weight: normal;
font-size: 14px;
color: #333;
}
.ms-admin-header .ms-admin-header-menu .ms-admin-shortcut-menu i:hover {
cursor: pointer;
}
.ms-admin-logo {
min-width: 200px;
width: 200px;
display: flex;
align-items: center;
overflow: hidden;
}
.ms-admin-logo > img {
padding: 20px 0 20px 20px;
width: 80px;
}
.ms-admin-logo > div {
display: flex;
align-items: center;
}
.ms-admin-logo > div img {
margin-top: -10px;
margin-left: 3px;
}
.ms-admin-logo > div span {
margin-top: -7px;
position: absolute;
margin-left: 6px;
font-size: 12px;
}
.ms-admin-logo .iconfont {
color: #fff;
margin-left: auto;
margin-right: 20px;
cursor: pointer;
}
.ms-admin-mstore {
margin-left: auto;
min-width: 200px;
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0;
line-height: 1;
}
.ms-admin-mstore .ms-admin-people-head {
width: 30px !important;
height: 30px !important;
margin-right: 10px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
color: #0099ff;
}
.ms-admin-mstore .ms-admin-mstore-icon {
min-width: 50px;
width: 50px;
height: 50px;
background-color: #0080FF;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
.ms-admin-mstore .ms-admin-mstore-icon span {
border-radius: 50%;
font-weight: initial;
font-size: 12px;
color: #fff;
background: #f00;
position: absolute;
width: 1.2em;
height: 1.2em;
display: flex;
align-items: center;
justify-content: center;
top: 0.6em;
right: 0.6em;
z-index: 2;
}
.ms-admin-mstore .ms-admin-mstore-icon .iconfont {
color: #fff;
animation: rubberBand 1.4s 1s both infinite;
font-size: 1.5em;
}
.ms-admin-login {
display: flex;
align-items: center;
}
.ms-admin-login > span {
width: 130px;
padding: 0 15px;
height: 50px;
display: flex;
align-items: center;
cursor: pointer;
outline: none;
}
.ms-admin-login > span img {
border-radius: 50%;
width: 20px;
height: 20px;
margin-right: 8px;
}
.ms-admin-login > span span {
color: #fff;
}
.ms-admin-login .active {
background: #fff;
}
.ms-admin-login .active .ms-admin-people-head {
background: #0099ff;
color: #fff;
}
.ms-admin-login .active span {
color: #333;
}
.ms-admin-login-down {
width: 130px;
padding: 0 15px;
border: none;
margin: 0 !important;
padding: 0 !important;
border-radius: 0;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
}
.ms-admin-login-down > .popper__arrow {
display: none;
}
.ms-admin-menu-aside {
width: 200px !important;
height: 100%;
position: relative;
overflow: visible;
}
.ms-admin-menu-aside .ms-admin-menu {
width: 200px;
height: 100%;
position: relative;
}
.ms-admin-menu-aside .ms-admin-menu .el-menu--inline .is-active {
border-left: 2px solid #0099ff;
}
.ms-admin-menu-aside .ms-admin-menu .ms-admin-icon {
font-weight: initial;
font-size: 1.5em;
color: #999;
}
.ms-admin-menu-aside .ms-menu-expand {
transform: rotate(270deg);
position: absolute;
right: -34px;
top: 50%;
z-index: 999;
cursor: pointer;
display: flex;
flex-direction: column;
}
.ms-admin-menu-aside .ms-menu-expand i {
font-weight: initial;
font-size: 14px;
color: #333;
position: absolute;
transform: rotate(90deg);
top: 5px;
right: 43%;
}
.ms-admin-menu-aside .ms-menu-expand::before {
border-color: transparent transparent #eee;
border-style: none solid solid;
border-width: 0 30px 22px;
content: "";
display: block;
height: 0;
left: -10px;
width: 30px;
}
.ms-admin-menu-aside .ms-menu-expand {
transition: right .3s;
}
.ms-admin-menu-aside .ms-menu-expand-active {
transform: rotate(90deg);
right: -56px;
}
.ms-admin-menu-aside .ms-admin-menu-active {
width: 60px;
height: 100%;
}
.ms-admin-menu-aside-active {
width: 60px !important;
}
.ms-admin-container {
height: calc(100vh - 60px);
}
.ms-admin-container > .ms-admin-main {
padding: 0;
background-color: #fff;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs {
height: 100%;
display: flex;
flex-direction: column;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__content {
height: 100%;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__content .el-tab-pane {
height: 100%;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__header {
background: #fafafa;
margin-bottom: 0;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__header .el-tabs__nav-scroll .el-tabs__nav {
border-left: none;
border-radius: 0;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .ms-admin-refresh {
float: right;
width: 40px;
height: 40px;
text-align: center;
border-left: 1px solid #e6e6e6;
cursor: pointer;
position: relative;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .ms-admin-refresh::before {
position: absolute;
left: 34%;
top: 50%;
transform: translateY(-50%);
color: #999;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__nav-next,
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__nav-prev {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__nav-next {
border-left: 1px solid #e6e6e6;
}
.ms-admin-container > .ms-admin-main .ms-admin-tabs .el-tabs__nav-prev {
border-right: 1px solid #e6e6e6;
}
.ms-admin-container > .ms-admin-main iframe {
width: 100%;
height: 100%;
border: none !important;
}
@keyframes rubberBand {
0 {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
10% {
-webkit-transform: scale3d(1.25, 0.75, 1);
transform: scale3d(1.25, 0.75, 1);
}
20% {
-webkit-transform: scale3d(0.75, 1.25, 1);
transform: scale3d(0.75, 1.25, 1);
}
30% {
-webkit-transform: scale3d(1.15, 0.85, 1);
transform: scale3d(1.15, 0.85, 1);
}
40% {
-webkit-transform: scale3d(0.95, 1.05, 1);
transform: scale3d(0.95, 1.05, 1);
}
50% {
-webkit-transform: scale3d(1.05, 0.95, 1);
transform: scale3d(1.05, 0.95, 1);
}
51% {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
}
.el-scrollbar__wrap{overflow-x:hidden;}
.el-scrollbar {
position: static;
}
[v-cloak] {
display: none;
}

View File

@ -0,0 +1,211 @@
/*
*这里的值严格按照UI设计图标注值来进行设置
*/
/*
*颜色
*/
/*
*页面的边距
*/
/*
*字体
*/
/*
*头像
*/
/*
* 按钮
*/
/*
*对常见的多行样式进行了方法封装方便调用加快开发效率
*/
html,
body {
min-height: 100vh;
width: 100vw;
background-color: #eee;
margin: 0;
display: flex;
font-weight: initial !important;
font-size: 14px !important;
color: #333 !important;
}
html *,
body * {
text-decoration: none !important;
font-family: Verdana, Arial, Helvetica, sans-serif;
box-sizing: border-box;
}
.ms-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
}
.ms-align-center {
display: flex;
align-items: center;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
font-weight: initial;
font-size: 12px;
color: #aaa;
resize: none;
}
*::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/*定义滚动条轨道 内阴影+圆角*/
*::-webkit-scrollbar-track {
border-radius: 10px;
/*滚动条的背景区域的圆角*/
background-color: #eee;
/*滚动条的背景颜色*/
}
/*定义滑块 内阴影+圆角*/
*::-webkit-scrollbar-thumb {
border-radius: 10px;
/*滚动条的圆角*/
background-color: #ddd;
/*滚动条的背景颜色*/
}
.ms-container {
margin: 12px;
height: calc(100% - 24px);
padding: 14px 14px 0 14px;
background: #fff;
}
.ms-header {
padding: 10px;
margin: 0;
border-bottom: 1px solid #ddd;
background: #fff;
height: 50px;
}
.ms-pagination {
padding: 20px 0;
text-align: right;
}
.ms-fr {
float: right;
}
.ms-tr {
text-align: right;
}
.ms-weixin-content {
width: calc(100% - 140px);
}
.ms-weixin-dialog .el-dialog__header {
height: 55px;
box-sizing: border-box;
padding: 10px 10px 25px 10px;
border-bottom: 1px solid #ddd;
}
.ms-weixin-dialog .el-dialog__header .el-dialog__title {
font-weight: bold;
font-size: 14px;
color: #333;
}
.ms-weixin-dialog .el-dialog__footer {
border-top: 1px solid #ddd;
padding: 15px !important;
}
.login {
width: 100vw;
height: 100vh;
}
.login .ms-admin-login-container {
height: 100%;
background: url('../images/login-bg.jpg') center no-repeat;
background-size: cover;
}
.login .ms-admin-login-container .ms-admin-login-main {
display: flex;
justify-content: center;
align-items: center;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp {
display: flex;
justify-content: center;
align-items: center;
width: 680px;
height: 320px;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp > img {
flex: 1;
display: inline-block;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form {
flex: 1;
height: 320px;
background: #fff;
padding: 20px 54px;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form h1 {
line-height: 1;
font-weight: initial;
font-size: 12px;
color: #999999;
margin: 0 0 20px 0;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form h1 span {
font-weight: initial;
font-size: 16px;
color: #0099ff;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item {
margin-bottom: 20px;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item > div {
margin-left: 0 !important;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item .el-form-item__content,
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item .el-input,
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item input {
height: 34px !important;
line-height: 34px !important;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content {
display: flex;
justify-content: space-between;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content .el-input__inner,
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content .el-input {
width: 110px;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content > img {
width: 66px;
height: 34px;
margin: 0 6px;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content p {
display: flex;
justify-content: space-between;
line-height: 1;
flex-direction: column;
margin: 0;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content p span:nth-of-type(1) {
font-weight: initial;
font-size: 10px;
color: #999999;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-code .el-form-item__content p span:nth-of-type(2) {
font-weight: initial;
font-size: 10px;
color: #0099ff;
cursor: pointer;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-checkout .el-form-item__content,
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-checkout .el-input,
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-form-item-checkout input {
height: auto !important;
line-height: 1px !important;
}
.login .ms-admin-login-container .ms-admin-login-main .ms-admin-login-warp .ms-admin-login-form .ms-admin-login-btn {
width: 100%;
height: 34px;
line-height: 5px;
}

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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,295 @@
/**
* 上传js
* 官方插件文档https://www.plupload.com
* 参数方法文档https://www.cnblogs.com/2050/p/3913184.html
*/
(function() {
// 默认支持上传的文件类型
var mimeTypes = {
"image": {
title: "Image files",
extensions: "jpg,JPG,jpeg,PNG,gif,png"
},
"file": {
title: "Zip files",
extensions: "ZIP,zip,DOC,doc,docx,xls,XLS,xlsx,RAR,rar"
},
"video": {
title: "video files",
extensions: "MP3,MP4"
},
"all": {
title: "all files",
extensions: "jpg,JPG,jpeg,PNG,gif,png,ZIP,zip,DOC,doc,docx,xls,XLS,xlsx,RAR,rar"
}
};
/**
* 文件上传
* id: id属性
* {
* url:"", //(可选)默认ms.base + "/file/upload.do"
* mime_types:"image", //(可选)默认图片支持image、file、video、all(表示包含前三种)也可以设置allowedFile参数覆盖
* allowedFile:""//(可选)自定义上传文件后缀例如jpg,gif
* max_file_size:"1mb", //(可选)默认1mb,单位kb,mb,gb,tb注意后端ms.properties文件也有配置上传大小优先上传控件大小
* multi_selection:false, //(可选)默认单文件
* uploadPath:"", //(可选)默认上传upload文件夹下面(如果非upload需要设置uploadFloderPath参数)对应的站点下面例如uload/1/xxxxx.jpg
* uploadFloderPath:"", //(可选)自定义上传文件夹路径,最终文件路径格式 uploadFloderPath/uploadPath/xxxxxx.jpg,注意这里的uploadPath已经没有了upload文件夹与站点id
* diyPath:"", //(可选)自定义上传文件夹路径,可以定义盘符路径
* isRename:true,//(可选)文件重命名,默认根据时间命名
* fileFiltered:function //每次选择一个文件都会触发
* filesAdded:function //每次选择好文件后都会触发
* beforeUpload:function //上传文件之前触发,确认上传 业务的情况下有用
* uploadProgress:function //处理进度条
* fileUploaded:function //必填上传成功返回主要会用到第三个参数的response这个值是上传成功后返回的数据
* }
*/
function upload(id, cfg) {
var uploadCfg = {
url: basePath+"/file/upload.do",
mime_types: mimeTypes["image"],
max_file_size: "1mb",
multi_selection: false,
uploadPath: "",
diyPath:"",
uploadFloderPath: "",
chunk: "",
chunks: "",
prevent_duplicates: true,
isRename: true,
fileFiltered: function(uploader, file) {},
filesAdded: function(uploader, files) {},
beforeUpload: function(uploader, file) {},
uploadProgress: function(uploader, file) {},
fileUploaded: function(uploader, file, responseObject) {},
error: function(uploader, errObject) {
if (errObject.code == -600) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "文件超过" +
uploadCfg.max_file_size + "大小" }
}).show();
} else if (errObject.code == -601) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "格式错误" }
}).show();
} else if (errObject.code == -700) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "格式错误"}
}).show();
} else if (errObject.code == -300) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "发生磁盘读写错误时的错误代码,例如本地上某个文件不可读"}
}).show();
} else if (errObject.code == -602) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "文件已上传过,不能重复上传。"}
}).show();
} else if (errObject.code == -702) {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.file.name + "文件网页上传不支持,太大的文件请通过其他途径上传。"}
}).show();
} else {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:errObject.code + errObject.file.name}
}).show();
}
},
};
var multipart_params = {}; // 上传表单参数
multipart_params.maxSize = calculationMaxSize();
multipart_params.allowedFile = uploadCfg.mime_types.extensions;
// 判断cfg是否为json格式不是则将默认参数传给cfg
if (cfg != undefined && validator.isJSON(JSON.stringify(cfg))) {
// 重新定义后台上传路径
if (cfg.url != undefined && cfg.url != "") {
uploadCfg.url = cfg.url;
}
// 允许上传的后缀
if (cfg.allowedFile != undefined && cfg.allowedFile != "") {
uploadCfg.mime_types =
{
title: "all files",
extensions: cfg.allowedFile
};
multipart_params.allowedFile = cfg.allowedFile;
}
//组织后台需要的参数
if (cfg.max_file_size != undefined && cfg.max_file_size != "") {
uploadCfg.max_file_size = cfg.max_file_size;
multipart_params.maxSize = calculationMaxSize();
}
if (cfg.path != undefined && cfg.path != "") {
uploadCfg.uploadPath = cfg.path;
multipart_params.uploadPath = cfg.path;
}
if (cfg.diyPath != undefined && cfg.diyPath != "") {
uploadCfg.diyPath = cfg.diyPath;
multipart_params.diyPath = cfg.diyPath;
}
if (cfg.uploadFloderPath != undefined && cfg.uploadFloderPath != "") {
uploadCfg.uploadFloderPath = cfg.uploadFloderPath;
multipart_params.uploadFloderPath = cfg.uploadFloderPath;
}
if (cfg.chunk != undefined && cfg.chunk != "") {
multipart_params.chunk = cfg.chunk;
}
if (cfg.chunks != undefined && cfg.chunks != "") {
multipart_params.chunks = cfg.chunks;
}
if (cfg.name != undefined && cfg.name != "") {
multipart_params.name = cfg.name;
}
if (cfg.isRename != undefined) {
multipart_params.isRename = cfg.isRename;
}
if (cfg.multi_selection != undefined ) {
uploadCfg.multi_selection = cfg.multi_selection;
}
if (cfg.prevent_duplicates != undefined) {
uploadCfg.prevent_duplicates = cfg.prevent_duplicates;
}
//回调事件
if (cfg.fileUploaded != undefined && cfg.fileUploaded != "") {
uploadCfg.fileUploaded = cfg.fileUploaded;
}
if (cfg.filesAdded != undefined && cfg.filesAdded != "") {
uploadCfg.filesAdded = cfg.filesAdded;
}
if (cfg.fileFiltered != undefined && cfg.fileFiltered != "") {
uploadCfg.fileFiltered = cfg.fileFiltered;
}
if (cfg.beforeUpload != undefined && cfg.beforeUpload != "") {
uploadCfg.beforeUpload = cfg.beforeUpload;
}
if (cfg.uploadProgress != undefined && cfg.uploadProgress != "") {
uploadCfg.uploadProgress = cfg.uploadProgress;
}
if (cfg.error != undefined && cfg.error != "") {
uploadCfg.error = cfg.error;
}
}
// 实例化一个plupload上传对象
var uploader = new plupload.Uploader({
browse_button: id, // 预览按钮元素
url: uploadCfg.url, // 上传地址
flash_swf_url: 'js/Moxie.swf',
silverlight_xap_url: 'js/Moxie.xap',
multi_selection: uploadCfg.multi_selection, // 禁止浏览框多选
multipart_params: multipart_params,
filters: { // 文件类型 大小设置,对不同场景的文件上传配置此参数
mime_types: [uploadCfg.mime_types],
max_file_size: uploadCfg.max_file_size, // 最大只能上传400kb的文件
prevent_duplicates: uploadCfg.prevent_duplicates //布尔类型
// 不允许选取重复文件
},
});
uploader.init();
/**
* 选择了多少文件就会触发多少次
*uploader为当前的plupload实例对象file为触发此事件的文件对象
*/
uploader.bind('FileFiltered', function(uploader, file) {
eval(uploadCfg.fileFiltered(uploader, file));
});
/**
* 当文件添加到上传队列后触发
* uploader为当前的plupload实例对象files为一个数组里面的元素为本次添加到上传队列里的文件对象
* 每一次选择文件都会触发不管选择多个文件还是单个文件都只会触发一次
*/
uploader.bind('FilesAdded', function(uploader, files) {
eval(uploadCfg.filesAdded(uploader, files));
});
/**
* 当队列中的某一个文件正要开始上传前触发
* uploader为当前的plupload实例对象file为触发此事件的文件对象
*/
uploader.bind('BeforeUpload', function(uploader, file) {
eval(uploadCfg.beforeUpload(uploader, file));
});
/**
* 会在文件上传过程中不断触发可以用此事件来显示上传进度
* uploader为当前的plupload实例对象file为触发此事件的文件对象
*/
uploader.bind('UploadProgress', function(uploader, file) {
eval(uploadCfg.uploadProgress(uploader, file));
});
/**
* 当队列中的某一个文件上传完成后触发监听函数参数(uploader,file,responseObject)
* uploader为当前的plupload实例对象
* file为触发此事件的文件对象
* responseObject为服务器返回的信息对象它有以下3个属性
* response服务器返回的文本
* responseHeaders服务器返回的头信息
* status服务器返回的http状态码比如200
*/
uploader.bind('FileUploaded', function(uploader, file, responseObject) {
eval(uploadCfg.fileUploaded(uploader, file, responseObject));
});
/**
* 当发生错误时触发监听函数参数(uploader,errObject)
* uploader为当前的plupload实例对象
* errObject为错误对象它至少包含以下3个属性(因为不同类型的错误属性可能会不同)
* code错误代码具体请参考plupload上定义的表示错误代码的常量属性
* file与该错误相关的文件对象
* message错误信息
*/
uploader.bind('Error', function(uploader, errObject) {
eval(uploadCfg.error(uploader, errObject));
});
/**
* 计算后台的上传大小因为前端上传空间与后端的大小单位不一致
*/
function calculationMaxSize() {
var size = parseInt(uploadCfg.max_file_size);
if (uploadCfg.max_file_size.indexOf("kb") > -1) {
return parseInt(size) / 1024;
} else if (uploadCfg.max_file_size.indexOf("mb") > -1) {
return size;
} else if (uploadCfg.max_file_size.indexOf("gb") > -1) {
return size * 1024;
} else if (uploadCfg.max_file_size.indexOf("tb") > -1) {
return size * 1024 * 1024;
}
}
return uploader;
}
if (ms == undefined) {
ms = {};
}
window.ms.upload = upload;
}());

View File

@ -26,7 +26,7 @@
return cloneData.filter(father => {
let branchArr = cloneData.filter(child => father[id] == child[parentId]);
branchArr.length > 0 ? father[children] = branchArr : ''
return father[parentId] == 0 // 如果第一层不是parentId=0请自行修改
return !father[parentId] // 如果第一层不是parentId=0请自行修改
})
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,292 @@
//点击页面其他位置头部菜单收缩
$(document).bind("click",function(e){
var target = $(e.target);
if(target.closest(".menu-default").length == 0){
manager.topMenu.initTop();
}
})
//浏览器窗口调整事件
$(window).resize(function () {
$(".categoryTree").height($(document).height());
$("#listFrame").height($(document).height());
$('.easyui-tabs').tabs("resize",{
width: $('.easyui-tabs').parent().width(),
fit:true,
scrollDuration:1000
});
})
$(function(){
//左侧菜单滚动条,鼠标上移显示
$(".ms-menu,.ms-content-menu").mouseover(function () {
$(this).css("overflow-y","auto");
});
$(".ms-menu,.ms-content-menu").mouseleave(function () {
$(this).css("overflow-y","hidden");
});
//收缩左侧菜单
$(".slideMenu").click(function(){
var obj = $(this);
if ($(".ms-menu").css("left") == "0px") {
//修改图标
obj.children(".icon-open").show();
obj.children(".icon-close").hide();
$(".ms-menu-div").css("position","absolute");
$(".ms-menu,.ms-menu-div").animate({left:'-180px'},100)
//改变右侧部分宽度
$('.easyui-tabs').tabs("resize",{
width:$('.easyui-tabs').parent().width()
});
} else {
//修改图标
obj.children(".icon-open").hide();
obj.children(".icon-close").show();
$(".ms-menu-div").css("position","relative");
$(".ms-menu,.ms-menu-div").animate({left:'0px'},50)
//恢复右侧部分宽度
$('.easyui-tabs').tabs("resize",{
width:$('.easyui-tabs').parent().width(),
fit:true,
scrollDuration:1000
});
}
})
//点击左侧菜单添加选项卡
$(".ms-menu").delegate(".ms-menu-child a","click",function(){
$(".easyui-tabs").show();
$(".wellcome").hide();
$(".ms-menu-child a").removeClass("active");
$(this).addClass("active");
var title=$(this).data("title");
var content=$(this).data("url");
var id=$(this).data("id");
if (!$('.easyui-tabs').tabs('exists', title)) {
$('.easyui-tabs').tabs('add', {
title: title,
content: '<iframe src='+content+' frameborder="0" height="100%" width="100%" id="mainFrame'+id+'" name="mainFrame'+id+'"></iframe>',
closable: true,
tools:[{
iconCls:'icon-mini-refresh',
title:"刷新当前选项卡",
handler:function(){
$('#mainFrame'+id).attr('src', $('#mainFrame'+id).attr('src'));
}
}]
});
} else {
$('.easyui-tabs').tabs('select', title);
}
})
//用户在切换选项卡时,和导航树保持同步
$('.easyui-tabs').tabs({
onSelect: function(title){
var _select = $(".easyui-tabs").tabs("getSelected");
var obj = _select.panel("options").tab;
//循环左侧菜单里每个菜单的text进行选项卡的title进行对比
$(".ms-menu").find("li").each(function(){
var target = $(this);
if(target.text() == obj.text()){
$(".ms-menu-child a").removeClass("active");
//左侧对应菜单展开选中
$(".ms-menu-none").hide();
target.parent().parent().slideDown();
target.parent().slideDown();
target.find("a").addClass("active");
//头部对应一级菜单进行选中
$(".ms-menu-list").find("li").removeClass("active").each(function(){
if(target.parent().parent().data("model-id") == $(this).data("model-id")){
$(this).addClass("active");
}
})
}
})
}
});
//当关闭最后一个选项卡时,隐藏选项卡页面显示主界面
$('.easyui-tabs').tabs({
onClose:function(){
if($('.easyui-tabs').tabs('tabs').length==0){
$(".wellcome").show();
$(".easyui-tabs").hide();
$(".ms-menu-child a").removeClass("active");
$(".ms-menu-list").find("li").removeClass("active")
}
}
})
})
//MStore做的计时循环特效
window.setInterval(showMstore, 1000);
function showMstore(){
$(".ms-top-mstore").find(".animated").addClass("rubberBand")
}
window.setInterval(hiddenMstore, 1500);
function hiddenMstore(){
$(".ms-top-mstore").find(".animated").removeClass("rubberBand")
}
var manager = {
/*头部菜单操作*/
topMenu:{
initEvent: function() {
$("*[data-ms-*]").each()
},
/*追加头部菜单*/
initMenu: function(json) {
$("#ms-menu-list-tmpl").tmpl(json).appendTo(".ms-menu-list");
if($(".ms-menu-list").children().length>5){
$(".openMenu").show();
}
//将左侧菜单追加,只是隐藏了
$("#ms-menu-tmpl").tmpl(json).appendTo(".ms-menu");
$(".ms-menu-parent").each(function(n) {
var arr = new Array;
for (i = 0; i < json.length; i++) json[i].modelModelId == $(this).data("model-id") && arr.push(json[i])
//alert(arr)
$("#ms-menu-child-tmpl").tmpl(arr).appendTo($(this).find("ul:first"))
})
},
/*头部菜单点击收缩效果*/
topMenuOpen: function(target,menuShow){
var _height=$(".ms-menu-list").height();
if(target.parent().hasClass(menuShow)){
this.initTop();
}else{
target.parent().addClass(menuShow);
$('.'+menuShow).height(_height);
}
},
/*初始化头部菜单*/
initTop:function(){
$(".menu-default").height("50px");
$(".menu-default").removeClass("menu-show");
},
/*点击头部菜单展示二级菜单*/
showChildMenu:function(target,json){
var _json = {"modelTitle":target.text(),"modelIcon":target.data("model-icon"),"modelId":target.data("model-id")};
var arr = new Array;
$(".ms-menu-list").find("li").removeClass("active");
target.addClass("active");
//显示左侧菜单
if ($(".ms-menu").css("display") == "none") {
$(".slideMenu").children(".icon-open").hide();
$(".slideMenu").children(".icon-close").show();
$(".ms-menu,.ms-menu-div").show();
//恢复右侧部分宽度
$('.easyui-tabs').tabs("resize",{
width:$('.easyui-tabs').parent().width(),
fit:true,
scrollDuration:1000
});
}
$(".ms-menu-parent").each(function(){
if(target.data("model-id")==$(this).data("model-id")){
$(this).show();
$(".ms-menu-parent").find("ul").slideUp();
$(this).find("ul").slideDown();
//默认打开当前模块的第一个菜单项
$(".easyui-tabs").show();
$(".wellcome").hide();
var title=$(this).find("ul li:eq(0) a").data("title");
var content=$(this).find("ul li:eq(0) a").data("url");
var id = $(this).find("ul li:eq(0) a").data("id");
if (!$('.easyui-tabs').tabs('exists', title)) {
$('.easyui-tabs').tabs('add', {
title: title,
content: '<iframe src='+content+' frameborder="0" height="100%" width="100%" id="mainFrame'+id+'" name="mainFrame'+id+'"></iframe>',
closable: true,
tools:[{
iconCls:'icon-mini-refresh',
handler:function(){
$('#mainFrame'+id).attr('src', $('#mainFrame'+id).attr('src'));
}
}]
});
} else {
$('.easyui-tabs').tabs('select', title);
}
}
})
this.initTop();
},
},
/*左侧菜单操作*/
leftMenu:{
/*左侧菜单点击收缩效果*/
leftMenuOpen:function(target,menu){
menu.slideToggle();
},
},
}
$(function(){
//当头部菜单超过5个时点击展开头部菜单
$(".openMenu").click(function(){
manager.topMenu.topMenuOpen($(this),"menu-show");
})
//点击展开左侧菜单子菜单
$(".ms-menu").delegate(".ms-menu-parent-title","click",function(){
var menu = $(this).parent().siblings(".ms-menu-child");
manager.leftMenu.leftMenuOpen($(this),menu);
})
//移除左侧菜单
$(".ms-menu").delegate(".ms-menu-parent","mouseover",function(){
$(".closeMenu").hide();
$(this).find(".closeMenu").show();
})
$(document).bind("mouseover",function(e){
var target = $(e.target);
if(target.closest(".ms-menu-parent").length == 0){
$(".closeMenu").hide();
}
})
//关闭左侧菜单
$(".ms-menu").delegate(".closeMenu","click",function(){
$(this).parent().parent().hide();
var menu = $(this).parent().siblings(".ms-menu-child");
manager.leftMenu.leftMenuOpen($(this),menu);
var index=0;
$(".ms-menu-parent").each(function(){
var target = $(this)
$(".ms-menu-list li").each(function(){
if(target.data("model-id")==$(this).data("model-id")){
$(this).removeClass("active");
}
})
if($(this).css("display") == "none"){
index++;
if(index == $(".ms-menu-parent").length){
$(".ms-menu-list li").removeClass("active");
$(".ms-menu-none").show();
}
}
})
})
})

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,333 @@
// JavaScript Document
(function($) {
/**
* ajax提交表单
*
* @form 表单 格式:#表单id
* @config 配置扩展用,可包含参数:func,回调方法
*/
$.fn.postForm = function(form, config) {
var target = $(this);
if (isEmpty($(form).attr("action")) && isEmpty(config.action)) {
alert("配置错误from表单不存在action属性");
return;
}
var func;
var action = $(form).attr("action");
var data_type = "json";
if (config != undefined) {
if (config.func != undefined) {
func = config.func;
}
if (config.action != undefined) {
action = config.action;
}
}
$.ajax({
type : "POST",
url : action,
dataType : data_type,
data : $(form).serialize(),
beforeSend : function() {
target.attr("disabled", true);
},
success : function(data) {
if (typeof (func) == "string") {
eval(func + "(data)");
} else if (typeof (func) == "function") {
func.call(this, data);
}
target.removeAttr("disabled");
}
});
}
/**
* 发起ajax连接请求
*
* @config(优先) 配置扩展用,可包含参数:func,回调方法
* config格式{url:请求地址,data:请求参数,loadingText:加载时文字}
* 调用该方法的元素必须存在data-ajax-url参数 参数data-ajax-url必须
* data-ajax-data 可选
*/
$.fn.request = function(config) {
var target = $(this);
if (isEmpty(target.attr("data-ajax-url"))
&& isEmpty(config.url)) {
alert(target.selector + "配置错误data-ajax-url属性不存在");
return;
}
var method = "POST";
var data_type = "json";
var func = null;
var _url = isEmpty(target.attr("data-ajax-url")) ? null
: target.attr("data-ajax-url");// 请求地址
var _data = isEmpty(target.attr("data-ajax-data")) ? null
: target.attr("data-ajax-data");// 请求参数
var _loadingText = isEmpty(target
.attr("data-ajax-loading-text")) ? null : target
.attr("data-ajax-loading-text");// 加载状态;
var data_type = isEmpty(target.attr("data-ajax-type")) ? null
: target.attr("data-ajax-type");// 返回数据类型
var text = target.text();
if (config != undefined) {
// 请求方法
if (config.method != undefined) {
var _method = config.method;
if (_method.toLowerCase() != "post"
|| _method.toLowerCase() != "get") {
method = _method;
}
}
// 回调方法
if (config.func != undefined) {
func = config.func;
}
// 返回数据类型
if (config.type != undefined) {
var _type = config.type.toLowerCase();
if (_type == "xml" || _type == "html"
|| _type == "script" || _type == "jsonp"
|| _type == "json" || _type == "text") {
data_type = _type;
}
}
if (config.url != undefined) {
_url = config.url;
}
if (config.data != undefined) {
_data = config.data;
}
if (config.loadingText != undefined) {
_loadingText = config.loadingText;
}
}
$.ajax({
type : method,
url : _url,
dataType : data_type,
data : _data,
beforeSend : function() {
if (target[0].nodeName == "INPUT") {
if (!isEmpty(_loadingText)) {
target.text(_loadingText);
}
target.attr("disabled", true);
}
},
success : function(data) {
if (typeof (func) == "string") {
eval(func + "(data)");
} else if (typeof (func) == "function") {
func.call(this, data);
}
if (target[0].nodeName == "INPUT") {
target.removeAttr("disabled");
target.text(text);
}
}
});
},
$.fn.noDataMsg = function(config) {
if (config != undefined) {
}
}
/**
* 判断是否为空 target:判断对象 message:提示信息 true:为空 false:不为空
*/
function isEmpty(target, message) {
if (target == undefined || target == null || target.trim() == ""
|| target.trim().length == 0) {
if (message != undefined) {
alert(message);
}
return true;
}
return false;
}
})(jQuery);
var Ms = {
_target : this,
"msg" : function(str, url) { // 提示消息 Ms.msg()调用
var obj = $("<div class='ms-msg'></div>");
$("body").append(obj);
obj.html(str).show();
obj.animate({
opacity : 1,
}, 500, 'ease', function() {
$(this).animate({
opacity : 0,
}, 800, 'ease', function() {
if (typeof (url) != "undefined") {
_target.loadUrl(url);
}
});
});
},
"loadUrl" : function(url) {
location.href = url;
},
"post" : function(url, params, func) { // 会员中心ajax请求类
$.ajax({
type : "POST",
url : url,
dataType : 'json',
data : params,
beforeSend : function() {
try {
_target.msg("加载中...");
} catch (e) {
}
},
success : function(json) {
func(json);
},
error : function(xhr, type) { // 服务器异常提示
try {
_target.msg("服务器繁忙稍后重试!");
} catch (e) {
}
}
});
},
"get" : function(url, params, func) { // 会员中心ajax请求类
$.ajax({
type : "GET",
url : url,
dataType : 'json',
data : params,
beforeSend : function() {
try{
_target.msg("加载中...");
}catch(e){}
},
success : function(json) {
func(json);
},
error : function(xhr, type) { // 服务器异常提示
try{
_target.msg("服务器繁忙稍后重试!");
}catch(e){}
}
});
},
"load" : function(url, method, params, func) { // 非会员中心ajax请求类
$.ajax({
type : method,
url : url,
dataType : 'json',
data : params,
beforeSend : function() {
_target.msg("加载中...");
},
success : function(json) {
if (func != null && func != undefined) {
func(json);
}
},
error : function(xhr, type) { // 服务器异常提示
_target.msg("服务器繁忙稍后重试!");
}
});
},
"setCookie" : function(key, value, time) { // 依赖zepto.cookie.min.js
// time单位为天数字
$.fn.cookie(key, value, {
path : '/',
expires : time
});
},
"getCookie" : function(key) { // 读取cookie
return decodeURIComponent($.fn.cookie(key));
},
"delCookie" : function(key) {
$.fn.cookie(key, null);
},
"queryString" : function(param) {
var svalue = location.search.match(new RegExp("[\?\&]" + param
+ "=([^\&]*)(\&?)", "i"));
return svalue ? svalue[1] : svalue;
},
"initModal" : function() { // 初始化模态框
// 弹出框处理
if ($("*[data-toggle='modal']").size() > 0) {
$("*[data-toggle='modal']").each(
function(index) {
$("body").on(
"tap",
"[data-target=\"" + $(this).attr("data-target")
+ "\"]",
function() {
if ($(this).attr("data-target") != "") {
openModal($(this).attr("data-target"),
w, h);
}
})
});
}
function openModal(modalId, w, h) {
$(modalId).show();
Ms.init(w, h);
if (!$(modalId).parent().hasClass("modalMask")) {
$(modalId)
.wrap(
"<div class='modalMask' style='width:"
+ w
+ "px;height:"
+ h
+ "px;position: absolute;background:rgba(0, 0, 0, 0.6) none repeat scroll 0 0 !important;filter:Alpha(opacity=80); background:#fff;z-index: 9997;top: 0;'>");
} else {
$(modalId).parent().show();
}
$(modalId).find(".ms-modal-button").css("line-height", "200%");
$(modalId).css(
"margin-left",
($(modalId).parent().width() - $(modalId).width()) / 2
+ "px");
$(modalId).css("margin-top", "10%");
$(modalId).on("tap", ".close", function() {
// $(modalId).hide();
// $(modalId).unwrap().parent();
hideModal(modalId);
})
}
function hideModal(modalId) {
$(modalId).parent().hide();
$(modalId).hide();
}
},
"browser" : {
versions : function() {
var u = navigator.userAgent, app = navigator.appVersion;
return {
android4 : u.indexOf('Android 4') > -1
&& u.indexOf('Linux') > -1,
android2 : u.indexOf('Android 2') > -1
&& u.indexOf('Linux') > -1,
iPhone : u.indexOf('iPhone') > -1,
iPad : u.indexOf('iPad') > -1,
iPod : u.indexOf('iPod') > -1,
};
}(),
language : (navigator.browserLanguage || navigator.language)
.toLowerCase()
}
};
var ms = Ms;