From c192f834c4e092bc7c0f2722c343c25c1be619ab Mon Sep 17 00:00:00 2001 From: shikeying <pxzsky@163.com> Date: 星期五, 07 四月 2023 17:32:33 +0800 Subject: [PATCH] 添加部分组件,添加拼图验证(未完成) --- src/components/RuoYi/Crontab/index.vue | 0 src/components/RuoYi/Crontab/month.vue | 0 src/layout/index.vue | 2 src/plugins/ztree/css/zTreeStyle/img/diy/2.png | 0 src/api/system/verify.js | 28 src/plugins/ztree/js/jquery-1.4.4.min.js | 167 src/views/components/dateSelector/index.vue | 508 + src/assets/images/staff-male.jpg | 0 src/views/components/myImport.vue | 147 src/plugins/ztree/css/zTreeStyle/img/diy/1_close.png | 0 src/components/RuoYi/Breadcrumb/index.vue | 74 src/views/components/myTableTree/myTableTree.vue | 328 + src/plugins/ztree/js/jquery.ztree.exhide.min.js | 23 src/store/modules/user.js | 5 src/views/components/editableCell.vue | 161 src/components/MyIcons/iconfont.ttf | 0 src/components/RuoYi/iFrame/index.vue | 0 src/components/RuoYi/ImageUpload/index.vue | 0 src/views/components/uploadFile/index.vue | 173 src/assets/images/staff-female.jpg | 0 src/components/Breadcrumb/index.vue | 70 src/components/RuoYi/Crontab/min.vue | 0 src/views/components/help/index.vue | 34 src/views/components/verify/img/loading.gif | 0 src/views/user/login.vue | 29 src/components/RuoYi/DictTag/index.vue | 0 src/components/UserInfo/index.vue | 78 src/views/components/generalRemark/index.vue | 94 src/plugins/ztree/js/jquery.ztree.all.min.js | 166 src/components/RuoYi/IconSelect/index.vue | 0 src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.gif | 0 src/components/RuoYi/Hamburger/index.vue | 44 src/plugins/ztree/css/zTreeStyle/img/diy/9.png | 0 src/components/MyIcons/iconfont.woff | 0 src/views/components/verify/img/vb.png | 0 src/views/components/generalRemark/query.vue | 73 src/views/components/previewPicture/index.vue | 75 src/components/RuoYi/Crontab/hour.vue | 0 src/views/components/myTableTree/tree/tableTreeUtil.js | 32 src/plugins/ztree/css/zTreeStyle/img/diy/8.png | 0 src/views/components/myTableV2.vue | 420 + src/components/RuoYi/RightToolbar/index.vue | 0 src/components/RuoYi/Editor/index.vue | 0 src/plugins/ztree/css/zTreeStyle/img/line_conn.gif | 0 src/components/MyIcons/index.css | 345 + src/components/RuoYi/FileUpload/index.vue | 0 src/views/system/menu/index.vue | 2 src/components/MyIcons/iconfont.eot | 0 src/utils/date.js | 77 src/views/components/tinymce/index.vue | 166 src/components/RuoYi/SizeSelect/index.vue | 0 src/api/common.js | 52 src/components/RuoYi/ParentView/index.vue | 0 src/views/components/myTableTree/tree/index.js | 4 src/plugins/ztree/css/zTreeStyle/zTreeStyle.css | 97 src/plugins/ztree/css/zTreeStyle/img/diy/4.png | 0 src/components/BackToTop/index.vue | 116 src/plugins/ztree/css/zTreeStyle/img/diy/6.png | 0 src/views/components/win2/index.vue | 45 src/views/components/myTable.vue | 434 + src/components/RuoYi/DictData/index.js | 0 src/views/components/upload/index.vue | 251 src/views/components/verify/css/index.css | 1346 ++++ src/utils/base.js | 14 src/views/components/verify/index.vue | 305 + src/components/RuoYi/Crontab/day.vue | 0 src/views/components/myPaging.vue | 64 src/assets/icons/index.js | 2 src/plugins/ztree/js/jquery.ztree.exhide.js | 404 + src/views/components/tinymce/components/EditorImage.vue | 111 src/components/RuoYi/ThemePicker/index.vue | 0 src/components/Screenfull/index.vue | 11 src/utils/tools.js | 228 src/components/RuoYi/SvgIcon/index.vue | 61 src/views/components/mySwitch.vue | 55 src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.png | 0 src/plugins/ztree/css/zTreeStyle/img/diy/3.png | 0 src/components/TextHoverEffect/Mallki.vue | 113 src/views/components/win/index.vue | 68 src/components/Logout/index.vue | 37 src/views/components/myButton.vue | 172 src/components/PanThumb/index.vue | 10 src/views/components/ztree/index.vue | 97 src/views/components/chooseAddress.vue | 206 src/components/MyIcons/iconfont.svg | 272 src/components/RuoYi/RightPanel/index.vue | 0 src/views/components/myButtonV2.vue | 428 + src/plugins/ztree/js/jquery.ztree.exedit.js | 1203 ++++ src/views/components/userAuth/auth.vue | 58 src/plugins/ztree/js/jquery.ztree.core.js | 1986 ++++++ src/views/components/ztree/check.vue | 245 src/main.js | 16 src/assets/images/head_img.jpg | 0 src/components/RuoYi/PanThumb/index.vue | 142 src/plugins/ztree/css/zTreeStyle/img/diy/1_open.png | 0 src/layout/components/Settings/index.vue | 4 src/plugins/ztree/css/zTreeStyle/img/loading.gif | 0 src/views/components/myBlockTable.vue | 315 + src/views/monitor/druid/index.vue | 2 src/components/RuoYi/HeaderSearch/index.vue | 0 src/layout/components/Navbar.vue | 12 src/components/RuoYi/Crontab/year.vue | 0 src/views/components/win3/index.vue | 79 src/plugins/ztree/js/jquery.ztree.excheck.js | 651 ++ src/components/MyIcons/index.vue | 45 src/utils/jsencrypt.js | 5 src/components/RuoYi/Crontab/result.vue | 0 src/components/RuoYi/TopNav/index.vue | 0 src/components/RuoYi/Crontab/second.vue | 0 src/views/components/userAuth/index.vue | 100 src/components/RuoYi/Crontab/week.vue | 0 src/plugins/ztree/js/jquery.ztree.all.js | 3841 ++++++++++++ src/plugins/ztree/js/jquery.ztree.excheck.min.js | 34 src/views/components/myTableV3.vue | 645 ++ src/components/RuoYi/IconSelect/requireIcons.js | 2 src/components/RuoYi/Pagination/index.vue | 0 src/plugins/ztree/css/zTreeStyle/img/diy/7.png | 0 src/plugins/ztree/js/jquery.ztree.exedit.min.js | 53 src/views/components/buttonSelect/index.vue | 42 src/plugins/ztree/css/zTreeStyle/img/diy/5.png | 0 src/views/monitor/job/index.vue | 2 src/plugins/ztree/js/jquery.ztree.core.min.js | 75 src/components/SvgIcon/index.vue | 20 src/store/modules/permission.js | 2 src/views/tool/swagger/index.vue | 2 src/components/RuoYi/ImagePreview/index.vue | 0 package.json | 4 src/components/RuoYi/Screenfull/index.vue | 57 128 files changed, 17,846 insertions(+), 120 deletions(-) diff --git a/package.json b/package.json index cd0bc8f..32d83cc 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "file-saver": "2.0.5", "fuse.js": "6.4.3", "highlight.js": "9.18.5", + "jquery": "^3.6.4", "js-beautify": "1.13.0", "js-cookie": "3.0.1", "jsencrypt": "3.0.0-rc.1", @@ -52,6 +53,9 @@ "quill": "1.3.7", "screenfull": "5.0.2", "sortablejs": "1.10.2", + "stylus": "^0.59.0", + "stylus-loader": "^7.1.0", + "viewerjs": "^1.11.3", "vue": "2.6.12", "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", diff --git a/src/api/common.js b/src/api/common.js new file mode 100644 index 0000000..2fa97d4 --- /dev/null +++ b/src/api/common.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +/* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-08-10 09:02 + * @Description : 鑵捐鍦板浘寮曞叆 + * @libraries 闇�瑕佺敤鐨勫簱锛岄�楀彿锛屽垎鍓� + */ +export function tMap(libraries) { + return new Promise(function(resolve, reject) { + window.init = function() { + resolve(qq)// 娉ㄦ剰杩欓噷 + } + const script = document.createElement('script') + script.type = 'text/javascript' + script.src = 'http://map.qq.com/api/js?v=2.exp&callback=init&key=Z4RBZ-RP5K4-VBYUT-D5DYM-DWG23-OPBJJ&libraries=' + libraries + script.onerror = reject + document.head.appendChild(script) + }) +} + +/* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-08-10 09:03 + * @Description : 鍦板潃鏌ヨ + */ +export function getAddress() { + return request({ + url: '/static/json/address.json', + method: 'get' + }) +} + +/** + * @Author wh + * @Date 2022/7/13 15:23 + * @Description // 鑾峰彇涓婃鐧诲綍淇℃伅 + **/ +export function getLastLogin(param) { + return request.get(globalConf.baseUrl + '/v1/base/pc/sys/login/log/getLastLogin', { params: param }) +} +/** + * 寰呭姙浜嬮」 + * @param param + */ +export function getMyWaitList(param) { + return request({ + url: globalConf.baseUrl + '/v1/base/pc/sys/menu/getMyWaitList', + method: 'get', + params: param + }) +} diff --git a/src/api/system/verify.js b/src/api/system/verify.js new file mode 100644 index 0000000..7c2297c --- /dev/null +++ b/src/api/system/verify.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +/* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-25 11:42 + * @Description :鑾峰彇楠岃瘉鐮� + */ +export function getVerify(param) { + return request({ + // url: globalConf.baseUrl + '/v1/base/web/getVerify', + url: globalConf.baseUrl + '/captcha/jigsaw', + method: 'get', + params: param + }) +} + +/* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-25 11:42 + * @Description :鏍¢獙楠岃瘉鐮� + */ +export function checkVerify(param) { + return request({ + url: globalConf.baseUrl + '/captcha/jigsaw_validate', + method: 'post', + params: param + }) +} diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js index 2c6b309..24df73d 100644 --- a/src/assets/icons/index.js +++ b/src/assets/icons/index.js @@ -1,5 +1,5 @@ import Vue from 'vue' -import SvgIcon from '@/components/SvgIcon'// svg component +import SvgIcon from '@/components/RuoYi/SvgIcon'// svg component // register globally Vue.component('svg-icon', SvgIcon) diff --git a/src/assets/images/head_img.jpg b/src/assets/images/head_img.jpg new file mode 100644 index 0000000..d2590c2 --- /dev/null +++ b/src/assets/images/head_img.jpg Binary files differ diff --git a/src/assets/images/staff-female.jpg b/src/assets/images/staff-female.jpg new file mode 100644 index 0000000..a419bb8 --- /dev/null +++ b/src/assets/images/staff-female.jpg Binary files differ diff --git a/src/assets/images/staff-male.jpg b/src/assets/images/staff-male.jpg new file mode 100644 index 0000000..13df560 --- /dev/null +++ b/src/assets/images/staff-male.jpg Binary files differ diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue new file mode 100644 index 0000000..c5bce05 --- /dev/null +++ b/src/components/BackToTop/index.vue @@ -0,0 +1,116 @@ +<template> + <transition :name="transitionName"> + <div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop"> + <svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="Icon Icon--backToTopArrow" aria-hidden="true" style="height: 16px; width: 16px;"> + <title>鍥炲埌椤堕儴</title> + <g> + <path d="M12.036 15.59c0 .55-.453.995-.997.995H5.032c-.55 0-.997-.445-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29c.39-.39 1.026-.385 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" fill-rule="evenodd" /> + </g> + </svg> + </div> + </transition> +</template> + +<script> +export default { + name: 'BackToTop', + props: { + visibilityHeight: { + type: Number, + default: 400 + }, + backPosition: { + type: Number, + default: 0 + }, + customStyle: { + type: Object, + default: function() { + return { + right: '50px', + bottom: '50px', + width: '40px', + height: '40px', + 'border-radius': '4px', + 'line-height': '45px', + background: '#e7eaf1' + } + } + }, + transitionName: { + type: String, + default: 'fade' + } + }, + data() { + return { + visible: false, + interval: null, + isMoving: false + } + }, + mounted() { + window.addEventListener('scroll', this.handleScroll) + }, + beforeDestroy() { + window.removeEventListener('scroll', this.handleScroll) + if (this.interval) { + clearInterval(ths.interval) + }i + }, + methods: { + handleScroll() { + this.visible = window.pageYOffset > this.visibilityHeight + }, + backToTop() { + if (this.isMoving) return + const start = window.pageYOffset + let i = 0 + this.isMoving = true + this.interval = setInterval(() => { + const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500)) + if (next <= this.backPosition) { + window.scrollTo(0, this.backPosition) + clearInterval(this.interval) + this.isMoving = false + } else { + window.scrollTo(0, next) + } + i++ + }, 16.7) + }, + easeInOutQuad(t, b, c, d) { + if ((t /= d / 2) < 1) return c / 2 * t * t + b + return -c / 2 * (--t * (t - 2) - 1) + b + } + } +} +</script> + +<style scoped> +.back-to-ceiling { + position: fixed; + display: inline-block; + text-align: center; + cursor: pointer; +} + +.back-to-ceiling:hover { + background: #d5dbe7; +} + +.fade-enter-active, +.fade-leave-active { + transition: opacity .5s; +} + +.fade-enter, +.fade-leave-to { + opacity: 0 +} + +.back-to-ceiling .Icon { + fill: #9aaabf; + background: none; +} +</style> diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index 1696f54..f65e612 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -1,74 +1,28 @@ <template> - <el-breadcrumb class="app-breadcrumb" separator="/"> - <transition-group name="breadcrumb"> - <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> - <span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span> - <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> - </el-breadcrumb-item> - </transition-group> - </el-breadcrumb> + <div> + <span class="title">{{ title }}</span> + </div> </template> <script> +import { title } from '@/settings' + export default { data() { return { - levelList: null - } - }, - watch: { - $route(route) { - // if you go to the redirect page, do not update the breadcrumbs - if (route.path.startsWith('/redirect/')) { - return - } - this.getBreadcrumb() + title: title } }, created() { - this.getBreadcrumb() - }, - methods: { - getBreadcrumb() { - // only show routes with meta.title - let matched = this.$route.matched.filter(item => item.meta && item.meta.title) - const first = matched[0] - - if (!this.isDashboard(first)) { - matched = [{ path: '/index', meta: { title: '棣栭〉' }}].concat(matched) - } - - this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) - }, - isDashboard(route) { - const name = route && route.name - if (!name) { - return false - } - return name.trim() === 'Index' - }, - handleLink(item) { - const { redirect, path } = item - if (redirect) { - this.$router.push(redirect) - return - } - this.$router.push(path) - } } } </script> -<style lang="scss" scoped> -.app-breadcrumb.el-breadcrumb { - display: inline-block; - font-size: 14px; - line-height: 50px; - margin-left: 8px; - - .no-redirect { - color: #97a8be; - cursor: text; +<style scoped> + .title { + line-height: 72px; + font-size: 24px; + color: #333; + font-weight: bold; } -} </style> diff --git a/src/components/Logout/index.vue b/src/components/Logout/index.vue new file mode 100644 index 0000000..c707d3f --- /dev/null +++ b/src/components/Logout/index.vue @@ -0,0 +1,37 @@ +<template> + <el-tooltip effect="dark" content="閫�鍑�" placement="bottom"> + <div class="quit" @click="logout()"> + <img class="icon" src="@/assets/images/quit.png" alt=""> + </div> + </el-tooltip> +</template> + +<script> + +export default { + methods: { + logout() { + this.$confirm('纭畾閫�鍑�?', '', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$store.dispatch('user/logout').then(() => { + this.$router.push('/login') + }) + }).catch(() => { + }) + } + } +} +</script> +<style lang="scss" scoped> +.quit{ + height: 70px; + display: flex; + align-items: center; + .icon{ + width: 25px; + } +} +</style> diff --git a/src/components/MyIcons/iconfont.eot b/src/components/MyIcons/iconfont.eot new file mode 100644 index 0000000..40ecfb8 --- /dev/null +++ b/src/components/MyIcons/iconfont.eot Binary files differ diff --git a/src/components/MyIcons/iconfont.svg b/src/components/MyIcons/iconfont.svg new file mode 100644 index 0000000..f110447 --- /dev/null +++ b/src/components/MyIcons/iconfont.svg @@ -0,0 +1,272 @@ +<?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" > +<!-- +2013-9-30: Created. +--> +<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="communityfill" unicode="" d="M704 163.2c51.2 0 96 41.6 96 96v412.8c0 51.2-41.6 96-96 96h-547.2c-51.2 0-96-41.6-96-96v-412.8c0-51.2 41.6-96 96-96h35.2v-160c0-12.8 9.6-25.6 22.4-32h9.6c9.6 0 19.2 3.2 25.6 12.8l131.2 179.2h323.2zM864 643.2c-19.2 0-32-12.8-32-32s16-32 32-32 32-12.8 32-32v-348.8c0-19.2-16-25.6-32-25.6h-32c-19.2 0-32-12.8-32-32v-3.2c0-3.2-3.2-6.4-3.2-9.6v-60.8l-73.6 57.6c-3.2 3.2-9.6 3.2-16 3.2h-163.2c-19.2 0-32-12.8-32-32s12.8-32 32-32h153.6l115.2-89.6c6.4-3.2 12.8-6.4 19.2-6.4 3.2 0 9.6 0 12.8 3.2 9.6 6.4 19.2 16 19.2 28.8v108.8c54.4 0 96 38.4 96 89.6v348.8c0 51.2-44.8 96-96 96z" horiz-adv-x="1024" /> + + + <glyph glyph-name="community" unicode="" d="M704 163.2c51.2 0 96 41.6 96 96v412.8c0 51.2-41.6 96-96 96h-547.2c-51.2 0-96-41.6-96-96v-412.8c0-51.2 41.6-96 96-96h35.2v-160c0-12.8 9.6-25.6 22.4-32h9.6c9.6 0 19.2 3.2 25.6 12.8l131.2 179.2h323.2zM233.6 224c-3.2 3.2-9.6 3.2-12.8 3.2h-64c-16 0-32 12.8-32 32v412.8c0 16 12.8 32 32 32h547.2c16 0 32-12.8 32-32v-412.8c0-16-12.8-32-32-32h-348.8c-3.2-3.2-3.2-3.2-6.4-3.2s-3.2-3.2-6.4-3.2l-3.2-3.2s-3.2 0-3.2-3.2l-80-115.2v92.8c0 16-9.6 25.6-22.4 32zM864 643.2c-19.2 0-32-12.8-32-32s16-32 32-32 32-12.8 32-32v-348.8c0-19.2-16-25.6-32-25.6h-32c-19.2 0-32-12.8-32-32v-3.2c0-3.2-3.2-6.4-3.2-9.6v-60.8l-73.6 57.6c-3.2 3.2-9.6 3.2-16 3.2h-163.2c-19.2 0-32-12.8-32-32s12.8-32 32-32h153.6l115.2-89.6c6.4-3.2 12.8-6.4 19.2-6.4 3.2 0 9.6 0 12.8 3.2 9.6 6.4 19.2 16 19.2 28.8v108.8c54.4 0 96 38.4 96 89.6v348.8c0 51.2-44.8 96-96 96z" horiz-adv-x="1024" /> + + + <glyph glyph-name="lingdang" unicode="󰇵" d="M593.862 95.418l-169.191 0c-9.444 0-18.438-3.932-24.695-10.902-6.314-6.971-9.441-16.324-8.548-25.676 2.86-29.192 16.324-56.239 38.01-76.018 21.773-20.017 50.161-31.038 79.89-31.038 29.696 0 58.085 11.022 79.83 30.978 21.715 19.84 35.178 46.886 38.068 76.256 0.596 9.474-2.535 18.707-8.639 25.499-6.286 6.971-15.28 10.902-24.724 10.902zM555.02 20.174c-25.082-22.877-66.605-22.818-91.567-0.06-7.596 6.971-13.404 15.429-17.158 24.723l125.823 0c-3.723-9.353-9.474-17.751-17.097-24.663zM818.609 235.657l-62.763 82.928 0 49.268 0 105.715c0 70.745-24.216 136.337-68.183 184.682-26.003 28.626-57.31 49.715-93.055 62.822-3.306 18.944-12.721 36.252-26.926 49.208-32.051 29.251-85.104 29.251-117.096 0-14.357-13.046-23.77-30.383-26.987-49.268-35.714-13.046-67.022-34.135-93.026-62.791-43.938-48.434-68.184-114.026-68.184-184.653l0.179-154.686-62.315-82.451c-8.757-9.353-13.582-21.507-13.582-34.256l0-40.332c0-27.644 22.461-50.043 50.043-50.043l544.812 0c27.611 0 50.011 22.4 50.011 50.043l0 40.332c-0.001 12.75-4.796 24.904-12.927 33.483zM535.776 734.118c-7.387 0.656-19.302 1.906-26.569 1.906-7.298 0-19.689-1.252-27.048-1.906 12.42 20.254 44.384 16.502 53.617 0zM237.427 161.844l-0.12 40.035 62.315 82.45c8.698 9.354 13.524 21.447 13.524 34.256l0 154.983c0 58.056 19.54 111.554 54.986 150.635 17.574 19.362 38.307 34.375 61.541 44.682 48.852 21.745 110.302 21.745 159.096 0 23.321-10.425 43.994-25.438 61.539-44.682 35.449-39.081 54.959-92.579 54.959-150.635l0-154.984c0-12.867 4.826-25.081 12.956-33.54l62.791-82.868 0.509-39.795-544.096-0.536z" horiz-adv-x="1024" /> + + + <glyph glyph-name="like" unicode="" d="M332.8 646.4c38.4 0 83.2-19.2 108.8-44.8L467.2 576 512 531.2 556.8 576l25.6 25.6c32 32 70.4 44.8 108.8 44.8 19.2 0 38.4-6.4 57.6-12.8 44.8-25.6 70.4-57.6 76.8-108.8 6.4-44.8-6.4-89.6-38.4-121.6L512 121.6 236.8 403.2C204.8 435.2 185.6 480 192 524.8c6.4 44.8 38.4 83.2 76.8 108.8C288 640 313.6 646.4 332.8 646.4L332.8 646.4M332.8 710.4C300.8 710.4 268.8 704 243.2 691.2 108.8 620.8 89.6 454.4 185.6 358.4l281.6-281.6C480 64 499.2 57.6 512 57.6s32 6.4 38.4 19.2l281.6 281.6c96 96 76.8 262.4-57.6 332.8-25.6 12.8-57.6 19.2-89.6 19.2-57.6 0-115.2-25.6-153.6-64L512 620.8 486.4 646.4C448 684.8 390.4 710.4 332.8 710.4L332.8 710.4z" horiz-adv-x="1024" /> + + + <glyph glyph-name="likefill" unicode="" d="M780.8 691.2c-83.2 44.8-179.2 19.2-243.2-44.8L512 620.8 486.4 646.4c-64 64-166.4 83.2-243.2 44.8C108.8 620.8 89.6 454.4 185.6 358.4l32-32 153.6-153.6 102.4-102.4c25.6-25.6 57.6-25.6 83.2 0l102.4 102.4 153.6 153.6 32 32C934.4 454.4 915.2 620.8 780.8 691.2z" horiz-adv-x="1024" /> + + + <glyph glyph-name="plane" unicode="" d="M704 32c-6.4 0-12.8 0-19.2 6.4l-153.6 102.4L454.4 64c-6.4-6.4-25.6-12.8-32-6.4-12.8 6.4-19.2 19.2-19.2 32l0 140.8c0 6.4 0 12.8 6.4 19.2L652.8 512c12.8 12.8 32 12.8 44.8 0 12.8-12.8 12.8-32 0-44.8l-236.8-256 0-51.2 44.8 38.4c12.8 12.8 25.6 12.8 38.4 6.4l140.8-89.6 108.8 531.2L256 384l121.6-76.8C390.4 300.8 396.8 275.2 384 262.4c-6.4-12.8-32-19.2-44.8-12.8L172.8 358.4C166.4 364.8 160 371.2 160 384c0 12.8 6.4 19.2 19.2 25.6l640 320c12.8 6.4 25.6 6.4 32 0 12.8-6.4 12.8-19.2 12.8-32l-128-640c0-12.8-6.4-19.2-19.2-25.6C710.4 32 710.4 32 704 32z" horiz-adv-x="1024" /> + + + <glyph glyph-name="planefill" unicode="" d="M851.2 729.6c-12.8 6.4-25.6 6.4-32 0l-640-320C166.4 409.6 160 396.8 160 384s6.4-25.6 12.8-25.6l153.6-96c12.8-6.4 25.6-6.4 38.4 6.4L704 576l12.8-6.4-307.2-326.4c-6.4-6.4-6.4-12.8-6.4-19.2l0-140.8c0-12.8 6.4-25.6 19.2-32 12.8-6.4 25.6 0 32 6.4l76.8 76.8 153.6-102.4c6.4-6.4 12.8-6.4 19.2-6.4 6.4 0 6.4 0 12.8 0 12.8 6.4 19.2 12.8 19.2 25.6l128 640C864 710.4 864 723.2 851.2 729.6z" horiz-adv-x="1024" /> + + + <glyph glyph-name="huiyuan" unicode="" d="M940.032-112.64l-855.04 0c-54.272 0-84.992 32.768-84.992 91.136 0 111.616 99.328 273.408 278.528 273.408 11.264 0 19.456-9.216 19.456-19.456s-9.216-19.456-19.456-19.456c-153.6 0-238.592-138.24-238.592-234.496 0-46.08 24.576-51.2 45.056-51.2l855.04 0c21.504 0 45.056 6.144 45.056 51.2 0 95.232-84.992 234.496-238.592 234.496-11.264 0-19.456 9.216-19.456 19.456s9.216 19.456 19.456 19.456C925.696 251.904 1025.024 90.112 1025.024-21.504 1025.024-78.848 994.304-112.64 940.032-112.64zM513.024 266.24c-153.6 0-279.552 137.216-279.552 307.2S359.424 880.64 513.024 880.64s279.552-137.216 279.552-307.2S666.624 266.24 513.024 266.24zM513.024 840.704c-132.096 0-239.616-119.808-239.616-267.264S380.928 306.176 513.024 306.176s239.616 119.808 239.616 267.264S645.12 840.704 513.024 840.704z" horiz-adv-x="1026" /> + + + <glyph glyph-name="biaoxingfill" unicode="" d="M957.258525 491.76684c-3.78431 11.352931-13.589115 19.609609-25.458088 21.501764l-270.406182 41.799429L540.640349 813.605241c-5.332437 11.180917-16.513355 18.40551-28.898371 18.40551 0 0 0 0 0 0-12.385016 0-23.565933-7.052579-28.898371-18.40551l-121.78599-258.021166L90.135394 514.816731c-11.868974-1.720141-21.673778-9.976818-25.630102-21.32975s-1.032085-23.909961 7.396607-32.510667L268.342012 258.859735 221.38216-25.995632c-2.064169-12.040988 3.096254-24.25399 13.073072-31.306568 9.976818-7.052579 23.221905-7.740635 33.88678-1.892155L510.193852 73.772552l241.335797-133.826978c4.816395-2.580212 10.148833-3.956325 15.48127-3.956325 0.172014 0 0.516042 0 0.688056 0 17.717453 0 31.994625 14.277171 31.994625 31.994625 0 3.956325-0.688056 7.740635-2.064169 11.352931l-44.895683 278.662859 196.956157 201.256509C958.118596 467.856879 961.042836 480.413909 957.258525 491.76684z" horiz-adv-x="1024" /> + + + <glyph glyph-name="biaoxing" unicode="" d="M767.010919-63.838737c-5.332437 0-10.664875 1.376113-15.48127 3.956325l-241.335797 133.826978-241.851839-132.966907c-10.664875-5.84848-23.909961-5.160423-33.88678 1.892155-9.976818 7.052579-15.137242 19.26558-13.073072 31.306568L268.342012 258.859735 71.901898 460.976314c-8.256677 8.428691-11.180917 20.985721-7.396607 32.166639 3.612296 11.352931 13.245087 19.609609 24.942046 21.673778l154.984714 26.662187c17.545439 2.92424 34.058794-8.77272 36.983034-26.146145s-8.77272-33.88678-26.146145-36.983034l-95.123803-16.341341 165.30556-170.121955c7.052579-7.224593 10.320847-17.545439 8.600706-27.522258l-38.875189-235.659331 199.536368 109.745003c9.63279 5.332437 21.32975 5.332437 30.96254 0l199.19234-110.433059-38.015118 235.831346c-1.548127 9.976818 1.548127 20.297665 8.77272 27.522258l164.617504 168.2298L634.732068 494.347052c-10.492861 1.548127-19.609609 8.428691-24.081975 18.061482L511.397951 724.84596l-100.112212-211.74937c-7.568621-15.997312-26.662187-22.877877-42.659499-15.309256-15.997312 7.568621-22.877877 26.662187-15.309256 42.659499l129.182597 273.502436c5.332437 11.180917 16.513355 18.40551 28.898371 18.40551 0 0 0 0 0 0 12.385016 0 23.737947-7.224593 28.898371-18.40551l120.753906-258.537208 270.406182-41.799429c11.868974-1.892155 21.673778-10.148833 25.458088-21.501764 3.78431-11.352931 0.860071-23.909961-7.568621-32.510667l-196.956157-201.256509 45.927768-284.855367c1.892155-12.040988-3.268268-24.25399-13.245087-31.306568C779.911977-61.946582 773.547455-63.838737 767.010919-63.838737z" horiz-adv-x="1024" /> + + + <glyph glyph-name="dianpufill" unicode="" d="M952.786158 543.199059c0 0.516042-0.172014 0.860071-0.172014 1.376113-0.344028 1.892155-0.860071 3.612296-1.548127 5.332437L875.895851 736.714934c-12.901058 38.531161-48.852007 62.613136-93.919704 62.613136L255.440954 799.32807c-44.207626 0-78.610449-23.565933-90.995464-60.720981L83.770872 548.015454c-0.344028-1.204099-0.860071-2.752226-1.204099-4.472367-5.84848-18.061482-8.77272-36.466991-8.77272-55.044515 0-65.193348 35.778935-124.71023 93.231648-155.328742 23.565933-12.729044 51.432219-19.093566 82.738787-19.093566 0 0 0 0 0.172014 0 52.464304 0.172014 101.144297 23.221905 134.34302 62.613136 33.026709-39.219217 81.19066-62.097094 133.654964-62.441122 51.948261 0.344028 100.112212 23.393919 132.966907 62.613136 33.198723-39.563245 81.878717-62.441122 134.687049-62.441122 31.994625 0.172014 60.204939 6.880564 84.1149 19.953637 56.592642 30.96254 91.683521 90.135394 91.683521 154.640685C961.386864 507.764153 958.29061 526.341676 952.786158 543.199059zM766.322862 512.064505 254.408869 512.064505c-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625l512.086007 0c17.717453 0 31.994625-14.277171 31.994625-31.994625S784.040316 512.064505 766.322862 512.064505zM894.989417 256.107509c0 17.717453-14.277171 31.994625-31.994625 31.994625-3.268268 0-6.192508-0.860071-9.288762-1.892155l0 0c-23.737947-9.460776-54.012431-14.449185-76.890307-13.245087-50.400134 2.752226-88.931295 12.729044-125.914329 44.207626-36.466991-31.134554-83.082815-48.852007-132.622879-49.36805-50.22812 0.344028-97.187972 12.901058-133.826978 44.207626-36.983034-31.478582-84.1149-46.787838-134.34302-46.787838l-0.172014 0c-30.618512 0-47.991937 5.84848-75.858223 16.169326-0.688056 0.344028-1.548127 0.516042-2.408198 0.860071-1.376113 0.516042-2.408198 0.860071-3.78431 1.376113 0 0-4.644381 0.860071-7.052579 0.860071 0 0 0 0 0 0-17.717453 0-31.994625-14.449185-31.994625-31.994625l0.172014-171.498068c0-45.067697 36.81102-81.878717 82.050731-81.878717l602.221401 0.344028c45.067697 0.172014 81.878717 36.983034 81.878717 82.050731L894.989417 256.107509z" horiz-adv-x="1024" /> + + + <glyph glyph-name="dianpu" unicode="" d="M952.786158 543.199059c0 0.516042-0.172014 0.860071-0.172014 1.376113-0.344028 1.892155-0.860071 3.612296-1.548127 5.332437L875.895851 736.714934c-13.073072 38.703175-50.22812 62.441122-93.919704 62.613136L255.440954 799.32807c-44.207626 0-78.610449-23.565933-90.995464-60.720981L83.770872 548.015454c-0.344028-1.204099-0.860071-2.752226-1.204099-4.472367-5.84848-18.061482-8.77272-36.466991-8.77272-55.044515 0-65.193348 35.778935-124.71023 93.231648-155.328742 0 0 0 0 0 0s0 0 0 0l0 0c0 0 0 0 0 0 23.565933-12.55703 51.432219-18.921552 82.738787-18.921552 52.464304 0.172014 101.144297 23.221905 134.34302 62.78515 33.026709-39.219217 81.19066-62.097094 133.654964-62.441122 51.948261 0.344028 100.112212 23.393919 132.966907 62.613136 33.198723-39.563245 81.878717-62.441122 134.687049-62.441122 31.994625 0.172014 60.204939 6.880564 84.1149 19.953637 56.592642 30.96254 91.683521 90.135394 91.683521 154.640685C961.386864 507.764153 958.29061 526.341676 952.786158 543.199059zM839.084831 390.622543c-14.449185-7.912649-32.510667-12.040988-53.668402-12.040988-39.047203 0-74.48211 19.781623-95.295817 53.324374-1.548127 3.096254-3.956325 8.428691-8.600706 13.417101-5.332437 5.84848-14.793214 12.901058-30.618512 12.901058-12.729044 0-24.25399-5.160423-30.790526-13.245087-4.300353-4.816395-6.70855-9.63279-8.428691-13.245087-20.469679-33.198723-55.732572-53.15236-93.919704-53.324374-38.703175 0.172014-73.966068 20.125651-94.607761 53.496388-1.376113 2.92424-3.78431 7.912649-7.568621 12.040988-14.965228 17.889467-48.679993 17.029397-61.753066 1.376113-4.816395-5.332437-7.396607-10.664875-8.944734-14.277171-20.641693-33.198723-56.248614-52.980346-94.951789-53.15236-20.641693 0-38.359147 3.956325-52.636318 11.524945l0 0c0 0 0 0 0 0-36.639006 19.437594-59.344868 57.452713-59.344868 98.908114 0 12.213002 2.064169 24.598018 6.192508 36.639006 0.344028 0.860071 0.516042 1.892155 0.688056 2.752226l79.470519 187.839409c1.548127 4.816395 6.536536 19.437594 31.306568 19.437594l526.707206 0c10.148833-0.688056 27.694272-2.408198 33.88678-20.641693l74.310096-185.259197c0.344028-1.376113 0.688056-2.580212 1.032085-3.612296 4.128339-12.040988 6.192508-24.25399 6.192508-36.466991C897.397615 448.075256 875.03578 410.404166 839.084831 390.622543zM862.994793 288.102133c-17.717453 0-31.994625-14.277171-31.994625-31.994625l0-174.594322c0-9.976818-8.084663-18.061482-18.061482-18.061482l-602.049387-0.344028c-9.976818 0-18.061482 8.084663-18.061482 17.889467l-0.172014 171.498068c0 17.717453-14.449185 31.994625-31.994625 31.994625 0 0 0 0 0 0-17.717453 0-31.994625-14.449185-31.994625-31.994625l0.172014-171.498068c0-45.067697 36.81102-81.878717 82.050731-81.878717l602.221401 0.344028c45.067697 0.172014 81.878717 36.81102 81.878717 82.050731l0 174.594322C894.989417 273.652948 880.712246 288.102133 862.994793 288.102133zM768.043004 512.064505 255.956996 512.064505c-17.717453 0-31.994625 14.277171-31.994625 31.994625 0 17.717453 14.277171 31.994625 31.994625 31.994625l511.913993 0c17.717453 0 31.994625-14.277171 31.994625-31.994625C800.037628 526.341676 785.588443 512.064505 768.043004 512.064505z" horiz-adv-x="1024" /> + + + <glyph glyph-name="gouwuchefill" unicode="" d="M352.972955 64.139761c-35.434907 0-63.989249-28.554342-63.989249-63.989249 0-35.434907 28.554342-63.989249 63.989249-63.989249s63.989249 28.554342 63.989249 63.989249C416.962204 35.585419 388.407862 64.139761 352.972955 64.139761L352.972955 64.139761zM801.069713 64.139761c-35.434907 0-63.989249-28.554342-63.989249-63.989249 0-35.434907 28.554342-63.989249 63.989249-63.989249s63.989249 28.554342 63.989249 63.989249C865.058962 35.585419 836.332605 64.139761 801.069713 64.139761L801.069713 64.139761zM937.304888 707.472535C920.963548 726.050059 898.429699 736.026877 874.003696 736.026877L232.907106 736.026877l-2.236183 13.073072c-5.676466 46.615824-46.615824 82.910801-93.231648 82.910801L97.015958 832.010751c-17.717453 0-31.994625-14.277171-31.994625-31.994625s14.277171-31.994625 31.994625-31.994625l40.251302 0c13.933143 0 28.210314-12.729044 29.930455-28.210314l30.96254-178.550647 54.356459-382.043339c5.676466-46.615824 46.099782-83.082815 92.371577-83.082815l520.17067 0c17.717453 0 31.994625 14.277171 31.994625 31.994625s-14.277171 31.994625-31.994625 31.994625L344.716278 160.123635c-13.589115 0-27.006215 12.55703-28.898371 27.522258l-5.332437 37.327062 507.61364 31.306568c46.099782 0 86.695112 36.466991 92.027549 81.362674L960.870821 625.937846C964.483118 656.728372 956.054426 686.486813 937.304888 707.472535z" horiz-adv-x="1024" /> + + + <glyph glyph-name="gouwuche" unicode="" d="M352.456912 63.967747c-35.434907 0-63.989249-28.554342-63.989249-63.989249 0-35.434907 28.554342-63.989249 63.989249-63.989249s63.989249 28.554342 63.989249 63.989249C416.446162 35.413405 387.891819 63.967747 352.456912 63.967747L352.456912 63.967747zM800.55367 63.967747c-35.434907 0-63.989249-28.554342-63.989249-63.989249 0-35.434907 28.554342-63.989249 63.989249-63.989249s63.989249 28.554342 63.989249 63.989249C864.54292 35.413405 835.816563 63.967747 800.55367 63.967747L800.55367 63.967747zM864.026877 95.962372 344.200235 95.962372c-46.099782 0-86.695112 36.466991-92.199563 83.082815l-54.356459 382.043339L166.853687 739.639174c-1.892155 15.653284-16.169326 28.382328-29.930455 28.382328L95.983874 768.021502c-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625l40.767344 0c46.615824 0 87.727196-36.466991 93.403662-83.082815l30.790526-177.86259L315.473879 187.301865c1.720141-14.793214 15.309256-27.350244 28.726356-27.350244l519.826642 0c17.717453 0 31.994625-14.277171 31.994625-31.994625S881.744331 95.962372 864.026877 95.962372zM384.279523 223.94087c-16.685369 0-30.618512 12.729044-31.82261 29.586427-1.376113 17.545439 11.868974 33.026709 29.586427 34.230808l434.163615 31.994625c15.997312 0.172014 29.414413 12.55703 31.134554 26.834201l50.400134 288.295649c1.204099 10.664875-1.720141 22.533848-8.084663 29.758441-4.128339 4.644381-9.288762 7.052579-15.309256 7.052579L319.946246 671.6936c-17.717453 0-31.994625 14.277171-31.994625 31.994625S302.400806 736.026877 319.946246 736.026877l554.05745 0c24.426004 0 46.959852-10.148833 63.301193-28.554342 18.749538-21.157736 27.178229-50.744163 23.565933-81.706703l-50.400134-288.467663c-5.504452-44.895683-45.927768-81.362674-92.027549-81.362674l-431.755417-31.82261C385.82765 224.112884 384.967579 223.94087 384.279523 223.94087z" horiz-adv-x="1024" /> + + + <glyph glyph-name="kefufill" unicode="" d="M608.929951 224.284898c-34.230808 0-60.892995 2.580212-68.461616 3.440282-17.545439 2.064169-30.274483 17.717453-28.210314 35.262893 1.892155 17.545439 17.545439 30.102469 35.262893 28.210314 79.642533-8.77272 201.772552-1.204099 223.102301 43.175542 7.568621 15.825298 26.662187 22.705863 42.659499 14.965228 15.997312-7.568621 22.705863-26.834201 14.965228-42.659499C794.361162 236.669914 683.412061 224.284898 608.929951 224.284898zM896.021502 256.107509c-17.717453 0-31.994625 14.277171-31.994625 31.994625l0 110.261045-42.831514 15.309256c-12.729044 4.472367-21.32975 16.685369-21.32975 30.102469 0 158.769024-129.182597 287.951621-287.951621 287.951621-158.769024 0-287.951621-129.182597-287.951621-287.951621 0-10.320847-4.988409-19.953637-13.417101-25.974131l-18.577524-13.245087 0-116.281539c0-17.717453-14.277171-31.994625-31.994625-31.994625s-31.994625 14.277171-31.994625 31.994625l0 132.794893c0 10.320847 4.988409 19.953637 13.417101 25.974131l18.921552 13.589115c8.77272 186.291282 163.069377 335.255501 351.596842 335.255501C698.377289 795.715774 851.469847 650.019822 863.338821 466.480766l43.51957-15.48127c12.729044-4.472367 21.32975-16.685369 21.32975-30.102469l0-132.794893C928.016126 270.38468 913.738955 256.107509 896.021502 256.107509zM639.892491 112.303712 639.892491 121.936503c28.0383 21.845792 50.400134 43.003528 63.645221 72.761969-29.070385-4.644381-61.581052-2.92424-87.727196-2.92424-31.994625 0-59.344868-0.860071-76.030237 1.032085-35.090879 3.956325-60.376953 38.703175-56.592642 73.794053 3.956325 35.090879 35.778935 60.720981 70.697799 56.592642 71.213842-7.568621 149.82429 0.688056 181.302873 13.933143 1.376113 29.242399 1.032085 60.032925 1.032085 83.426844 0 136.923232-83.254829 218.113892-216.737779 221.038132-0.688056 0-18.749538 0-19.437594 0-133.48295-2.752226-213.469511-84.974971-213.469511-222.070217 0-84.630942 1.376113-222.758273 97.359987-297.756425l0-9.63279c-127.978498-19.953637-226.026541-72.589955-226.026541-142.083655 0-17.717453 14.793214-34.230808 32.510667-34.230808l628.023518 0c17.717453 0 39.907274 16.513355 39.907274 34.230808C858.522426 39.713758 768.043004 92.178061 639.892491 112.303712z" horiz-adv-x="1024" /> + + + <glyph glyph-name="kefu" unicode="" d="M190.591634-64.526793c-17.717453 0-31.994625 14.277171-31.994625 31.994625 0 69.493701 82.050731 119.721821 226.370569 139.847472l0 9.63279c-97.876029 74.998152-97.876029 213.985554-97.876029 298.616496 0 139.675458 82.222745 223.102301 219.834033 223.102301l7.396607 0c137.611288 0 219.834033-83.426844 219.834033-223.102301 0-10.320847-0.172014-20.641693-0.344028-31.306568-0.516042-17.717453-14.965228-31.650596-32.854695-31.134554-17.717453 0.516042-31.650596 15.137242-31.134554 32.854695 0.344028 9.976818 0.344028 19.781623 0.344028 29.586427 0 105.616664-52.464304 159.113052-155.844784 159.113052l-7.396607 0c-103.38048 0-155.844784-53.496388-155.844784-159.113052 0-102.176382 6.364522-206.244919 83.082815-255.096926 9.288762-5.84848 14.793214-15.997312 14.793214-27.006215L448.956828 78.932975c0-16.341341-12.385016-30.102469-28.554342-31.82261-128.494541-13.589115-197.816227-51.260205-197.816227-79.642533C222.586259-50.077608 208.137074-64.526793 190.591634-64.526793zM833.752394-64.526793c-17.717453 0-31.994625 14.277171-31.994625 31.994625 0 28.554342-69.321687 66.053418-197.816227 79.642533-16.341341 1.720141-28.726356 15.48127-28.726356 31.82261l0 54.700487c0 17.717453 14.277171 31.994625 31.994625 31.994625s31.994625-14.277171 31.994625-31.994625l0-26.318159c144.319839-19.953637 226.370569-70.353771 226.370569-139.847472C865.747018-50.077608 851.469847-64.526793 833.752394-64.526793zM612.198219 222.564757c-44.035612 0-76.890307 4.472367-77.750378 4.644381-15.825298 4.816395-25.286074 20.813707-21.845792 37.155048 3.268268 16.169326 18.40551 26.834201 34.918864 25.286074 79.814547-8.77272 201.600538-1.204099 222.930287 43.175542 7.568621 15.825298 26.662187 22.705863 42.659499 14.965228 15.997312-7.568621 22.705863-26.834201 14.965228-42.659499C794.705191 235.63783 687.368386 222.564757 612.198219 222.564757zM896.021502 256.107509c-17.717453 0-31.994625 14.277171-31.994625 31.994625l0 111.809172-42.831514 15.309256c-12.729044 4.472367-21.32975 16.685369-21.32975 30.102469 0 160.489165-129.182597 291.219889-287.951621 291.219889-158.769024 0-287.951621-130.730724-287.951621-291.219889 0-10.320847-4.988409-19.953637-13.417101-25.974131l-18.577524-13.245087 0-118.00168c0-17.717453-14.277171-31.994625-31.994625-31.994625s-31.994625 14.277171-31.994625 31.994625l0 134.34302c0 10.320847 4.988409 19.953637 13.417101 25.974131l18.921552 13.589115C169.089871 650.019822 323.386528 800.360155 511.913993 800.360155c186.463296 0 339.555854-147.072065 351.252814-332.331262l43.51957-15.48127c12.729044-4.472367 21.32975-16.685369 21.32975-30.102469l0-134.34302C928.016126 270.38468 913.738955 256.107509 896.021502 256.107509z" horiz-adv-x="1024" /> + + + <glyph glyph-name="liuyanfill" unicode="" d="M832.032253 768.021502l-639.892491 0c-52.980346 0-95.983874-43.003528-95.983874-95.983874l0-511.913993c0-52.980346 43.003528-95.983874 95.983874-95.983874l210.717285 0 86.695112-86.695112c6.192508-6.192508 14.449185-9.460776 22.705863-9.460776s16.341341 3.096254 22.705863 9.460776l86.695112 86.695112 210.717285 0c52.980346 0 95.983874 43.003528 95.983874 95.983874L928.360155 672.037628C928.016126 725.017974 884.840585 768.021502 832.032253 768.021502zM335.943558 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937 47.991937-21.501764 47.991937-47.991937S362.433731 384.086007 335.943558 384.086007zM527.911305 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937 47.991937-21.501764 47.991937-47.991937S554.401478 384.086007 527.911305 384.086007zM720.051067 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937c26.490173 0 47.991937-21.501764 47.991937-47.991937S746.369226 384.086007 720.051067 384.086007z" horiz-adv-x="1024" /> + + + <glyph glyph-name="liuyan" unicode="" d="M511.913993-32.016126c-8.256677 0-16.341341 3.096254-22.705863 9.460776l-95.983874 95.983874c-12.55703 12.55703-12.55703 32.682681 0 45.239711s32.682681 12.55703 45.239711 0l73.450025-73.450025 73.450025 73.450025c6.020494 6.020494 14.105157 9.460776 22.705863 9.460776l223.962372 0c17.717453 0 31.994625 14.277171 31.994625 31.994625L864.026877 672.037628c0 17.545439-14.277171 31.994625-31.994625 31.994625l-639.892491 0c-17.545439 0-31.994625-14.449185-31.994625-31.994625l0-511.913993c0-17.717453 14.449185-31.994625 31.994625-31.994625l95.983874 0c17.717453 0 31.994625-14.277171 31.994625-31.994625s-14.277171-31.994625-31.994625-31.994625l-95.983874 0c-52.980346 0-95.983874 43.003528-95.983874 95.983874L96.155888 672.037628c0 52.980346 43.003528 95.983874 95.983874 95.983874l639.892491 0c52.980346 0 95.983874-43.003528 95.983874-95.983874l0-511.913993c0-52.980346-43.003528-95.983874-95.983874-95.983874L621.142953 64.139761 534.619856-22.55535C528.427348-28.747858 520.17067-32.016126 511.913993-32.016126zM335.943558 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937 47.991937-21.501764 47.991937-47.991937S362.433731 384.086007 335.943558 384.086007zM527.911305 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937 47.991937-21.501764 47.991937-47.991937S554.401478 384.086007 527.911305 384.086007zM720.051067 384.086007c-26.490173 0-47.991937 21.501764-47.991937 47.991937s21.501764 47.991937 47.991937 47.991937c26.490173 0 47.991937-21.501764 47.991937-47.991937S746.369226 384.086007 720.051067 384.086007z" horiz-adv-x="1024" /> + + + <glyph glyph-name="pengyoufill" unicode="" d="M518.966571 242.174366l0 6.70855c89.791366 64.161263 89.447337 175.282379 89.275323 265.589787l0 13.589115c0 130.730724-78.782463 208.653116-210.717285 208.653116l-6.70855 0c-126.602385 0-196.2681-74.138082-196.2681-208.653116 0-67.945574 0-205.728876 103.552495-279.178901l0-5.332437c-120.065849-17.029397-232.735092-66.225433-232.735092-144.663867 0-109.056946 107.680833-162.037292 329.062993-162.037292 283.30724 0 342.824122 88.071225 342.824122 162.037292C737.252478 182.829498 598.437091 226.86511 518.966571 242.174366zM929.564253 128.301025c-17.545439 0-31.82261 14.277171-31.994625 31.82261-0.344028 23.393919-101.660339 88.415253-197.300185 99.768184-16.169326 1.892155-28.210314 15.653284-28.210314 31.82261l0 66.225433c0 9.804804 4.472367 18.921552 12.040988 24.942046 54.012431 43.175542 94.951789 137.26726 94.951789 218.801949 0 109.917017-74.310096 132.966907-136.579204 132.966907-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625c123.678145 0 200.568453-75.514195 200.568453-197.128171 0-94.779775-44.207626-200.396439-106.992777-258.365194l0-24.598018c91.855535-19.609609 225.682513-83.942886 225.682513-158.59701 0-17.545439-14.277171-31.650596-31.82261-31.82261C929.736267 128.301025 929.736267 128.301025 929.564253 128.301025z" horiz-adv-x="1024" /> + + + <glyph glyph-name="pengyou" unicode="" d="M401.30892-64.182765c-226.542584 0-336.631614 52.980346-336.631614 162.209306 0 76.718293 114.389384 127.118428 229.982866 144.663867l0 6.536536c-86.351083 66.053418-97.876029 184.055098-97.876029 281.071057 0 132.106837 77.750378 211.061314 208.137074 211.061314l6.880564 0c130.386696 0 208.137074-78.954477 208.137074-211.061314 0-97.015958-11.524945-214.845624-97.876029-281.071057l0-6.536536c115.593482-17.545439 229.982866-67.77356 229.982866-144.663867C752.045691 23.88846 691.152696-64.182765 401.30892-64.182765zM404.921216 677.198051c-95.639845 0-144.147825-49.540064-144.147825-147.072065 0-91.339493 9.804804-190.763649 83.082815-237.379473 9.288762-5.84848 14.793214-15.997312 14.793214-27.006215l0-51.260205c0-16.341341-12.385016-30.102469-28.554342-31.82261-121.097934-12.729044-201.428523-59.344868-201.428523-84.630942 0-65.193348 91.683521-98.220057 272.642365-98.220057 182.162943 0 286.747522 35.778935 286.747522 98.220057 0 25.286074-80.33059 71.901898-201.428523 84.630942-16.341341 1.720141-28.554342 15.48127-28.554342 31.82261l0 51.260205c0 11.008903 5.676466 21.157736 14.793214 27.006215 73.105997 46.615824 83.082815 146.211994 83.082815 237.379473 0 97.532001-48.507979 147.072065-144.147825 147.072065L404.921216 677.198051 404.921216 677.198051zM899.117756 132.257349c-17.717453 0-31.994625 14.277171-31.994625 31.994625 0 24.426004-91.167479 83.942886-196.956157 95.123803-16.341341 1.720141-28.726356 15.48127-28.726356 31.82261L641.440618 357.595834c0 11.008903 5.676466 21.157736 14.793214 27.006215 82.738787 52.636318 91.683521 169.777927 91.683521 217.769864 0 110.433059-74.654124 133.654964-137.26726 133.654964-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625c124.194188 0 201.256509-75.686209 201.256509-197.644213 0-55.732572-10.664875-188.699479-106.476734-261.289434l0-22.18982c102.176382-18.577524 225.682513-79.986561 225.682513-154.640685C931.284394 146.53452 916.835209 132.257349 899.117756 132.257349z" horiz-adv-x="1024" /> + + + <glyph glyph-name="shouyefill" unicode="" d="M982.028557 491.594826 573.32303 812.057114c-34.918864 27.694272-89.619352 27.694272-124.538216 0L43.175542 491.422812c-13.933143-11.008903-16.169326-31.134554-5.332437-44.895683s31.134554-16.169326 44.895683-5.332437l13.073072 10.320847 0-387.547791c0-54.872501 56.936671-95.983874 107.852847-95.983874l639.892491 0c50.22812 0 84.1149 38.531161 84.1149 95.983874L927.672098 452.547623l14.449185-11.352931c5.84848-4.644381 12.729044-6.880564 19.781623-6.880564 9.460776 0 18.921552 4.128339 25.286074 12.213002C998.369898 460.460272 995.789686 480.585923 982.028557 491.594826zM607.897867 98.886612l0-66.741475-63.989249 0-63.989249 0-63.989249 0 0 66.741475 0 112.325214c0 37.155048 30.102469 77.234336 95.983874 77.234336 66.053418 0 95.983874-40.079288 95.983874-77.234336L607.897867 98.886612 607.897867 98.886612z" horiz-adv-x="1024" /> + + + <glyph glyph-name="shouye" unicode="" d="M979.792374 491.422812 574.183101 812.057114c-34.918864 27.694272-89.619352 27.694272-124.538216 0L44.207626 491.422812c-13.933143-11.008903-16.169326-31.134554-5.332437-44.895683s30.618512-16.169326 44.551655-5.332437l12.55703 10.320847 0-387.547791c0-54.872501 57.968755-95.983874 108.712918-95.983874l639.892491 0c50.22812 0 83.254829 38.531161 83.254829 95.983874L927.844112 450.139425l11.69696-8.944734c5.84848-4.644381 13.073072-6.880564 20.125651-6.880564 9.460776 0 18.921552 4.128339 25.286074 12.213002C995.9617 460.288258 993.725517 480.413909 979.792374 491.422812zM479.919368 31.973123 479.919368 209.491685c0 8.77272 15.997312 13.245087 31.994625 13.245087s31.994625-4.472367 31.994625-13.245087l0-177.346548L479.919368 31.973123 479.919368 31.973123zM864.026877 63.967747c0-21.157736-5.84848-31.994625-19.26558-31.994625L608.585923 31.973123c0 0.516042-0.688056 0.860071-0.688056 1.376113L607.897867 209.491685c0 37.155048-29.930455 77.234336-95.983874 77.234336s-95.983874-40.079288-95.983874-77.234336l0-176.142449c0-0.516042 0.860071-0.860071 0.860071-1.376113L204.868806 31.973123c-20.125651 0-44.723669 17.373425-44.723669 31.994625L160.145137 502.259701 488.864102 761.828994c11.868974 9.288762 33.198723 9.288762 44.895683 0l330.095078-261.11742L863.854863 63.967747z" horiz-adv-x="1024" /> + + + <glyph glyph-name="tongzhifill" unicode="" d="M889.828994 146.362506c-1.204099 1.720141-119.205779 165.821603-119.205779 287.435579 0 168.401814-76.202251 254.752898-162.725349 286.919536L607.897867 736.026877c0 52.980346-43.175542 95.983874-95.983874 95.983874S415.930119 788.835209 415.930119 736.026877l0-15.309256c-86.523098-32.166639-162.725349-118.517722-162.725349-286.919536 0-121.269948-118.00168-285.199395-119.205779-286.919536-5.332437-7.568621-7.396607-16.857383-5.332437-25.974131 2.064169-8.944734 7.912649-16.685369 15.997312-20.985721 5.676466-3.096254 107.336805-57.280699 233.423148-84.458928 21.32975-66.397447 73.966068-111.29313 133.654964-111.29313s112.325214 44.895683 133.654964 111.29313c126.086343 27.178229 227.746682 81.018646 233.423148 83.942886 8.256677 4.472367 13.933143 12.040988 16.169326 20.985721C897.225601 129.333109 895.333445 138.793885 889.828994 146.362506zM479.919368 736.026877c0 17.545439 14.449185 31.994625 31.994625 31.994625 17.545439 0 31.994625-14.449185 31.994625-31.994625l0-0.860071c-7.224593 0.516042-14.277171 0.860071-21.32975 0.860071l-21.32975 0c-7.052579 0-14.105157-0.344028-21.32975-0.860071L479.919368 736.026877 479.919368 736.026877zM511.913993-32.016126c-22.361834 0-43.175542 13.417101-57.968755 35.262893 19.26558-2.064169 38.531161-3.268268 57.968755-3.268268s38.875189 1.376113 57.968755 3.268268C555.089535-18.599026 534.275827-32.016126 511.913993-32.016126z" horiz-adv-x="1024" /> + + + <glyph glyph-name="tongzhi" unicode="" d="M889.828994 146.362506c-1.204099 1.548127-119.205779 166.165631-119.205779 287.435579 0 168.401814-76.202251 254.752898-162.725349 286.919536L607.897867 736.026877c0 52.980346-43.175542 95.983874-95.983874 95.983874S415.930119 788.835209 415.930119 736.026877l0-16.685369c-10.836889-7.912649-16.169326-21.845792-11.868974-35.262893 5.332437-16.857383 23.393919-25.974131 40.251302-20.641693 17.717453 5.676466 36.983034 8.428691 56.936671 8.428691l21.32975 0c115.249454 0 184.055098-89.103309 184.055098-238.239543 0-108.024861 72.933983-235.315303 110.261045-293.456073-57.452713-26.146145-183.023014-76.202251-304.809004-76.202251-121.441962 0-247.356291 50.400134-304.809004 76.546279 37.327062 57.968755 110.089031 184.915169 110.089031 293.112044 0 62.441122 11.524945 114.217369 34.574836 153.952629 8.77272 15.309256 3.612296 34.918864-11.69696 43.691584-15.48127 8.944734-34.918864 3.612296-43.691584-11.69696-28.554342-49.540064-43.175542-112.1532-43.175542-185.947253 0-121.269948-118.00168-285.199395-119.205779-286.919536-5.332437-7.568621-7.396607-16.857383-5.332437-25.974131 2.064169-8.944734 7.912649-16.685369 15.997312-20.985721 5.676466-3.096254 107.336805-57.280699 233.423148-84.458928 21.32975-66.397447 73.966068-111.29313 133.654964-111.29313s112.325214 44.895683 133.654964 111.29313c126.086343 27.178229 227.746682 81.018646 233.423148 83.942886 8.084663 4.472367 13.933143 12.040988 16.169326 20.985721C897.225601 129.333109 895.333445 138.793885 889.828994 146.362506zM501.249118 736.026877c-7.224593 0-14.277171-1.032085-21.32975-1.548127L479.919368 736.026877c0 17.545439 14.449185 31.994625 31.994625 31.994625 17.545439 0 31.994625-14.449185 31.994625-31.994625l0-0.860071c-7.224593 0.516042-14.277171 0.860071-21.32975 0.860071L501.249118 736.026877zM511.913993-32.016126c-22.361834 0-43.175542 13.417101-57.968755 35.262893 19.26558-2.064169 38.531161-3.268268 57.968755-3.268268s38.875189 1.376113 57.968755 3.268268C555.089535-18.599026 534.275827-32.016126 511.913993-32.016126z" horiz-adv-x="1024" /> + + + <glyph glyph-name="xihuanfill" unicode="" d="M736.048379 768.021502c-65.881404 0-128.494541-24.942046-176.314463-70.525785-4.644381-4.300353-28.726356-28.726356-47.30388-47.647909l-47.30388 47.131866c-47.819923 45.755753-110.605073 71.041828-177.00252 71.041828-141.223585 0-255.956996-114.905426-255.956996-255.956996 0-82.394759 41.111372-144.319839 76.546279-182.506971l316.849992-320.11826c25.11406-25.11406 52.980346-41.455401 86.695112-41.455401 33.714766 0 61.581052 16.341341 86.695112 41.455401l316.677977 319.946246 2.236183 2.408198c38.187133 47.647909 74.310096 92.715606 74.310096 180.098774C992.005375 653.116076 877.09995 768.021502 736.048379 768.021502z" horiz-adv-x="1024" /> + + + <glyph glyph-name="xihuan" unicode="" d="M511.913993-32.016126c-28.898371 0-57.968755 12.729044-86.695112 41.455401L106.30472 331.965732C68.117588 379.61364 31.994625 424.681337 31.994625 512.064505c0 141.223585 114.905426 255.956996 255.956996 255.956996 53.15236 0 104.068537-16.169326 147.244079-46.615824 14.449185-10.148833 17.889467-30.102469 7.740635-44.551655-10.148833-14.449185-30.102469-17.889467-44.551655-7.740635-32.338653 22.877877-70.525785 34.918864-110.433059 34.918864-105.960692 0-191.967747-86.179069-191.967747-191.967747 0-61.409037 20.297665-90.135394 59.172854-138.643373l315.645893-318.742147c15.997312-15.997312 28.898371-22.361834 41.283387-22.533848 12.729044-0.172014 24.942046 6.192508 41.455401 22.705863l316.677977 319.946246c25.974131 28.210314 57.968755 75.858223 57.968755 137.439274 0 105.960692-86.179069 191.967747-191.967747 191.967747-47.991937 0-94.091718-17.889467-129.526625-50.22812l-133.998992-134.171006c-12.55703-12.55703-32.682681-12.55703-45.239711 0s-12.55703 32.682681 0 45.239711l135.031077 135.203091c48.335965 44.207626 109.745003 67.945574 173.734252 67.945574 141.223585 0 255.956996-114.905426 255.956996-255.956996 0-82.394759-41.111372-144.319839-75.686209-181.646901L598.781119 9.611288C569.882748-19.287082 540.984378-32.016126 511.913993-32.016126z" horiz-adv-x="1024" /> + + + <glyph glyph-name="xinxifill" unicode="" d="M511.913993 828.914497C264.90173 828.914497 63.989249 656.556358 63.989249 444.806988c0-116.453553 62.957164-226.026541 174.07828-301.368722l84.1149-51.948261c-3.612296-23.565933-18.749538-74.48211-33.370737-115.93751-4.300353-12.040988-0.860071-25.458088 8.428691-34.230808 6.020494-5.504452 13.761129-8.428691 21.673778-8.428691 4.472367 0 8.77272 0.860071 13.073072 2.752226 36.466991 16.169326 147.416093 68.977658 187.49538 125.398287 243.571981 3.440282 440.356123 174.422308 440.356123 383.935495C960.010751 656.556358 759.09827 828.914497 511.913993 828.914497zM580.203595 352.091382 384.967579 352.091382c-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625l195.236015 0c17.717453 0 31.994625-14.277171 31.994625-31.994625S597.921048 352.091382 580.203595 352.091382zM640.924576 480.069881 384.967579 480.069881c-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625l255.956996 0c17.717453 0 31.994625-14.277171 31.994625-31.994625C672.9192 494.347052 658.642029 480.069881 640.924576 480.069881z" horiz-adv-x="1024" /> + + + <glyph glyph-name="xinxi" unicode="" d="M639.892491 480.069881 383.935495 480.069881c-17.717453 0-31.994625 14.277171-31.994625 31.994625s14.277171 31.994625 31.994625 31.994625L639.892491 544.05913c17.717453 0 31.994625-14.277171 31.994625-31.994625S657.609945 480.069881 639.892491 480.069881zM579.17151 352.091382 383.935495 352.091382c-17.717453 0-31.994625 14.277171-31.994625 31.994625S366.390055 416.080632 383.935495 416.080632l195.236015 0c17.717453 0 31.994625-14.277171 31.994625-31.994625S596.888964 352.091382 579.17151 352.091382zM962.246934 448.075256c0 211.74937-200.912481 383.935495-447.924744 383.935495S66.225433 659.824626 66.225433 448.075256c0-116.453553 62.957164-226.026541 172.874181-300.680665 14.621199-9.976818 34.574836-6.192508 44.379641 8.428691 9.976818 14.621199 6.192508 34.574836-8.428691 44.379641-92.027549 62.441122-144.835881 152.74853-144.835881 247.700319 0 176.486477 172.186125 319.946246 383.935495 319.946246s383.935495-143.631782 383.935495-319.946246-172.186125-319.946246-383.935495-319.946246c-2.064169 0-3.612296-0.688056-5.504452-1.204099-15.137242 2.752226-30.446498-5.160423-35.778935-20.125651-6.192508-17.373425-46.44381-46.615824-94.091718-73.794053 17.373425 58.140769 9.116748 70.697799 3.440282 78.954477-6.70855 9.976818-17.889467 15.997312-29.930455 15.997312-17.717453 0-31.994625-14.277171-31.994625-31.994625 0-5.84848 1.548127-11.180917 4.300353-15.997312-3.268268-18.233496-17.201411-60.892995-33.026709-99.768184-4.988409-12.040988-2.064169-25.974131 7.396607-35.090879 6.020494-5.84848 14.105157-8.944734 22.18982-8.944734 4.300353 0 8.77272 0.860071 13.073072 2.752226 36.466991 16.341341 147.588107 69.149672 187.667395 125.570301C765.290778 67.924072 962.246934 238.390055 962.246934 448.075256z" horiz-adv-x="1024" /> + + + <glyph glyph-name="yonghufill" unicode="" d="M631.119772 276.577188l0.344028 16.685369c79.298505 55.388544 117.829666 153.092558 117.829666 297.756425 0 139.503444-87.211154 222.758273-233.423148 222.758273l-7.912649 0c-146.03998 0-233.423148-83.254829-233.423148-222.758273 0-143.975811 38.875189-241.679825 118.86175-297.412397l0-16.857383c-133.138922-17.889467-266.621871-70.869814-266.621871-151.88846 0-113.357299 129.526625-170.810012 385.139593-170.810012s385.139593 57.452713 385.139593 170.810012C897.053586 205.707374 763.914665 258.68772 631.119772 276.577188z" horiz-adv-x="1024" /> + + + <glyph glyph-name="yonghu" unicode="" d="M511.913993-45.605241c-255.612968 0-385.311608 57.452713-385.311608 170.810012 0 80.846632 133.654964 133.998992 266.621871 151.88846L393.224257 293.950613c-79.986561 55.904586-118.86175 153.436587-118.86175 297.240383 0 139.33143 87.211154 222.586259 233.423148 222.586259l7.912649 0c146.211994 0 233.423148-83.254829 233.423148-222.586259 0-54.184445 0-214.67361-117.829666-297.412397l-0.344028-16.685369c132.966907-18.061482 266.105829-71.041828 266.105829-151.716445C897.225601 11.847472 767.526961-45.605241 511.913993-45.605241zM507.957668 754.432387c-79.470519 0-174.250294-28.382328-174.250294-163.241391 0-129.698639 34.230808-213.469511 104.584579-255.784982 8.944734-5.332437 14.277171-14.965228 14.277171-25.286074l0-59.344868c0-15.309256-11.524945-28.0383-26.662187-29.414413-144.319839-14.449185-239.959684-67.429531-239.959684-95.983874 0-92.199563 177.346548-111.637158 325.966739-111.637158 148.792206 0 325.966739 19.26558 325.966739 111.637158 0 28.726356-95.639845 81.534688-239.959684 95.983874-15.48127 1.548127-27.006215 14.621199-26.662187 30.102469l1.376113 59.344868c0.172014 10.148833 5.676466 19.437594 14.277171 24.770032 70.525785 42.487485 103.208466 123.678145 103.208466 255.784982 0 135.031077-94.779775 163.241391-174.250294 163.241391L507.957668 754.432387 507.957668 754.432387z" horiz-adv-x="1024" /> + + + <glyph glyph-name="zantongfill" unicode="" d="M864.198891 512.064505l-189.215522 0c13.761129 31.994625 29.586427 114.733412 20.297665 189.731564C688.056442 761.828994 652.965564 807.928775 601.705359 825.302201c-38.015118 12.901058-78.26642 6.70855-99.940198-15.48127-25.802117-26.318159-37.843104-75.858223-50.744163-128.322526-8.428691-34.402822-17.029397-69.837729-27.866286-88.243239-31.134554-52.980346-96.67193-81.362674-109.572988-81.362674l-89.619352 0c-17.717453 0-31.994625-14.449185-31.994625-32.166639l0-447.924744c0-17.717453 14.277171-31.994625 31.994625-31.994625l86.523098 0c26.834201 0 126.430371-63.989249 241.851839-63.989249l215.877709 0c35.606921 0 96.843944 13.761129 119.721821 51.776247 23.049891 38.531161 71.901898 388.75189 71.901898 427.455065C959.838737 468.888964 907.546447 512.064505 864.198891 512.064505zM95.983874 511.892491c-17.717453 0-31.994625-14.277171-31.994625-31.994625l0-447.924744c0-17.717453 14.277171-31.994625 31.994625-31.994625s31.994625 14.277171 31.994625 31.994625L127.978498 479.897867C127.978498 497.61532 113.701327 511.892491 95.983874 511.892491z" horiz-adv-x="1024" /> + + + <glyph glyph-name="zantong" unicode="" d="M95.983874-0.021502c-17.717453 0-31.994625 14.277171-31.994625 31.994625L63.989249 480.069881c0 17.717453 14.277171 31.994625 31.994625 31.994625s31.994625-14.277171 31.994625-31.994625l0-447.924744C127.978498 14.255669 113.701327-0.021502 95.983874-0.021502zM864.198891 512.064505 674.811356 512.064505c13.761129 31.994625 29.586427 114.733412 20.469679 190.075592C688.056442 762.001008 652.793549 807.928775 601.533345 825.474215c-38.015118 12.901058-78.26642 6.536536-99.940198-15.48127-25.802117-26.318159-37.843104-75.858223-50.744163-128.322526-8.428691-34.230808-17.029397-69.837729-27.866286-88.243239-31.134554-52.980346-96.327902-77.062322-109.400974-81.362674l-89.791366 0c-17.717453 0-31.994625-14.277171-31.994625-31.994625l0-447.924744c0-17.717453 14.277171-31.994625 31.994625-31.994625l86.523098 0c26.834201-14.449185 126.430371-63.989249 241.851839-63.989249l215.877709 0c35.606921 0 96.843944 13.761129 119.721821 51.776247 23.049891 38.531161 71.901898 388.75189 71.901898 427.455065C959.838737 468.716949 907.546447 512.064505 864.198891 512.064505zM833.236351 20.792206c-4.816395-8.084663-36.466991-20.641693-64.84932-20.641693L552.337309 0.150512c-114.217369 0-215.189652 63.989249-216.221737 63.989249l0 0c-4.816395 0-10.148833 0-16.169326 0l-63.989249 0L255.956996 448.075256l63.989249 0c2.580212 0 4.988409 0.860071 7.396607 1.548127 0.516042 0.172014 1.032085 0 1.548127 0.172014 0.172014 0.172014 0.860071 0.344028 1.720141 0.516042 0.860071 0.344028 1.720141 0.344028 2.580212 0.860071 19.437594 6.364522 102.52041 37.327062 145.179909 109.917017 15.48127 26.318159 24.942046 64.84932 34.74685 105.44465 9.116748 37.843104 20.641693 84.974971 34.058794 98.564085 3.096254 2.580212 18.061482 6.020494 36.81102-1.376113 15.309256-6.020494 41.971443-23.049891 47.647909-69.665715 12.55703-102.52041-31.478582-200.052411-31.82261-201.084495-4.644381-9.976818-3.78431-21.157736 2.064169-30.274483 5.84848-9.116748 15.997312-14.449185 26.834201-14.449185l235.315303 0c8.77272 0 31.650596-14.965228 31.650596-32.854695C895.849488 372.561062 846.481438 51.066689 833.236351 20.792206z" horiz-adv-x="1024" /> + + + <glyph glyph-name="leimupinleifenleileibie2" unicode="" d="M320 832 192 832C121.6 832 64 774.4 64 704l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128L448 704C448 774.4 390.4 832 320 832zM768 832l-128 0C569.6 832 512 774.4 512 704l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128L896 704C896 774.4 838.4 832 768 832zM320 384 192 384c-70.4 0-128-57.6-128-128l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128l0 128C448 326.4 390.4 384 320 384zM768 384l-128 0c-70.4 0-128-57.6-128-128l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128l0 128C896 326.4 838.4 384 768 384z" horiz-adv-x="1024" /> + + + <glyph glyph-name="leimupinleifenleileibie" unicode="" d="M320 384 192 384c-70.4 0-128-57.6-128-128l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128l0 128C448 326.4 390.4 384 320 384zM384 128c0-35.2-28.8-64-64-64L192 64c-35.2 0-64 28.8-64 64l0 128c0 35.2 28.8 64 64 64l128 0c35.2 0 64-28.8 64-64L384 128zM768 832l-128 0C569.6 832 512 774.4 512 704l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128L896 704C896 774.4 838.4 832 768 832zM832 576c0-35.2-28.8-64-64-64l-128 0C604.8 512 576 540.8 576 576L576 704c0 35.2 28.8 64 64 64l128 0c35.2 0 64-28.8 64-64L832 576zM768 384l-128 0c-70.4 0-128-57.6-128-128l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128l0 128C896 326.4 838.4 384 768 384zM832 128c0-35.2-28.8-64-64-64l-128 0c-35.2 0-64 28.8-64 64l0 128c0 35.2 28.8 64 64 64l128 0c35.2 0 64-28.8 64-64L832 128zM320 832 192 832C121.6 832 64 774.4 64 704l0-128c0-70.4 57.6-128 128-128l128 0c70.4 0 128 57.6 128 128L448 704C448 774.4 390.4 832 320 832zM384 576c0-35.2-28.8-64-64-64L192 512C156.8 512 128 540.8 128 576L128 704c0 35.2 28.8 64 64 64l128 0c35.2 0 64-28.8 64-64L384 576z" horiz-adv-x="1024" /> + + + <glyph glyph-name="edit" unicode="" d="M678.854949 858.074075 151.913033 858.074075C67.776878 858.074075 0 790.060281 0 706.161013L0 23.913062C0-60.223137 68.013787-128 151.913033-128L834.161006-128C918.297234-128 986.074039-59.986205 986.074039 23.913062L986.074039 543.123046 910.22219 467.271197 910.22219 23.913062C910.22219-18.194593 876.305262-52.148151 834.161006-52.148151L151.913033-52.148151C109.805422-52.148151 75.851849-18.231172 75.851849 23.913062L75.851849 706.161013C75.851849 748.268668 109.76885 782.222219 151.913033 782.222219L603.003099 782.222219 678.854949 858.074075ZM320.679497 197.145066 550.775881 262.471958 386.423442 425.819414 320.679497 197.145066ZM935.236535 644.587381 770.882048 807.936965 409.297774 448.578077 573.650213 285.244409 935.236535 644.587381ZM1011.623351 781.801538 908.897353 883.888662C891.877742 900.806437 863.36629 899.885305 845.211136 881.847962L795.896832 832.853058 960.252416 669.504541 1009.563575 718.514293C1027.718729 736.552704 1028.639817 764.881642 1011.623351 781.801538Z" horiz-adv-x="1024" /> + + + <glyph glyph-name="917caidan_fenlei" unicode="" d="M856.653 780.63c26.343-0.03 47.774-21.743 47.774-48.404v-219.733c0-12.992-4.978-25.159-14.015-34.257l-0.03-0.03-0.03-0.03c-9.083-9.176-20.693-14.025-33.577-14.025h-217.85c-26.275 0-47.65 21.714-47.65 48.405V732.288c0 26.657 21.376 48.343 47.65 48.343h217.728m-523.092-0.063v-0.003h51.166c13.013 0 25.234-5.06 34.41-14.246 8.959-8.968 13.884-20.789 13.87-33.285v-217.97c0-26.273-21.687-47.649-48.343-47.649H164.931c-12.992 0-25.158 4.977-34.256 14.014-9.215 9.154-14.086 20.786-14.086 33.638v217.85c0 26.275 21.715 47.651 48.405 47.651h168.567M382.09 309.21c26.277 0 47.654-21.714 47.654-48.405v-219.732c0-12.993-4.977-25.158-14.012-34.255-9.156-9.216-20.789-14.088-33.642-14.088H164.24c-26.275 0-47.65 21.715-47.65 48.405V260.868c0 26.656 21.376 48.342 47.65 48.342h217.85m473.995-3.327c13.003 0 25.212-5.053 34.378-14.231 8.98-8.989 13.915-20.859 13.9-33.424v-217.846c0-26.275-21.685-47.652-48.341-47.652H636.289c-12.992 0-25.159 4.977-34.256 14.014-9.215 9.154-14.086 20.786-14.086 33.638V258.231c0 26.276 21.714 47.652 48.405 47.652h219.733m0.628 525.913H638.926c-54.494 0-98.817-44.634-98.817-99.508v-219.732c0-54.933 44.323-99.57 98.817-99.57h217.85c26.43 0 51.291 10.358 69.937 29.193 18.646 18.771 28.88 43.758 28.88 70.314V732.228c0 54.868-44.324 99.505-98.88 99.568z m-471.986-0.063H164.994c-54.87 0-99.57-44.323-99.57-98.817v-217.85c0-26.43 10.359-51.228 29.193-69.937 18.771-18.645 43.758-28.879 70.314-28.879h219.733c54.873 0 99.508 44.32 99.508 98.814V732.976c0.062 54.431-44.575 98.754-99.445 98.754v0.003z m-2.637-471.358H164.24c-54.493 0-98.816-44.637-98.816-99.507v-219.733c0-54.87 44.323-99.57 98.817-99.57H382.09c26.431 0 51.229 10.358 69.94 29.193 18.646 18.772 28.88 43.758 28.88 70.314V260.805c0 54.933-44.324 99.57-98.82 99.57z m473.995-3.327H636.352c-54.87 0-99.57-44.324-99.57-98.817v-217.85c0-26.43 10.359-51.228 29.192-69.936 18.773-18.647 43.76-28.88 70.315-28.88h219.733c54.87 0 99.507 44.323 99.507 98.817V258.169c0.063 54.556-44.574 98.88-99.444 98.88z" horiz-adv-x="1024" /> + + + <glyph glyph-name="weixuanzhong-01" unicode="" d="M511.805 832.079c-247.423 0-447.999-200.576-447.999-448s200.576-448 447.999-448c247.424 0 448.001 200.576 448.001 448 0 247.423-200.577 448-448.001 448z m0-856c-225.332 0-407.999 182.668-407.999 408s182.667 408 407.999 408c225.332 0 408.001-182.667 408.001-408s-182.669-408-408.001-408z" horiz-adv-x="1024" /> + + + <glyph glyph-name="xuanzhong" unicode="" d="M512 832C262.4 832 64 633.6 64 384s198.4-448 448-448 448 198.4 448 448S761.6 832 512 832z m236.8-326.4L454.4 211.2c-12.8-12.8-32-12.8-44.8 0L275.2 352c-12.8 12.8-12.8 32 0 44.8 12.8 12.8 32 12.8 44.8 0l115.2-115.2L704 556.8c12.8 12.8 32 12.8 44.8 0 12.8-12.8 12.8-38.4 0-51.2z" horiz-adv-x="1024" /> + + + <glyph glyph-name="shujudaping" unicode="" d="M94.3 694.9V137h828.5V694.9H94.3z m794.6-524.1H128.1V661.1h760.8v-490.3z m-169.1 355c-18.7 0-33.8-15.1-33.8-33.8 0-4.1 0.7-8 2-11.6L558.6 379.8c-6.2 6.6-15 10.8-24.8 10.8-9.3 0-17.8-3.8-23.9-9.9l-63.6 63.6c1.9 4.2 3 9 3 13.9 0 18.7-15.1 33.8-33.8 33.8-18.7 0-33.8-15.1-33.8-33.8 0-4.3 0.8-8.4 2.3-12.2l-79.2-66c-6.2 6.5-14.9 10.6-24.5 10.6-18.7 0-33.8-15.1-33.8-33.8s15.1-33.8 33.8-33.8c18.7 0 33.8 15.1 33.8 33.8 0 4.3-0.8 8.4-2.3 12.2l79.2 66c6.2-6.5 14.9-10.6 24.5-10.6 9.3 0 17.8 3.8 23.9 9.9l63.6-63.6c-1.9-4.2-3-9-3-13.9 0-18.7 15.1-33.8 33.8-33.8 18.7 0 33.8 15.1 33.8 33.8 0 4.1-0.7 8-2 11.6L695.1 469c6.2-6.6 15-10.8 24.8-10.8 18.7 0 33.8 15.1 33.8 33.8s-15.2 33.8-33.9 33.8zM280.2 339.9c-9.3 0-16.9 7.6-16.9 16.9s7.6 16.9 16.9 16.9c9.3 0 16.9-7.6 16.9-16.9s-7.5-16.9-16.9-16.9z m135.3 101.4c-9.3 0-16.9 7.6-16.9 16.9s7.6 16.9 16.9 16.9 16.9-7.6 16.9-16.9-7.6-16.9-16.9-16.9z m118.4-101.4c-9.3 0-16.9 7.6-16.9 16.9s7.6 16.9 16.9 16.9 16.9-7.6 16.9-16.9-7.6-16.9-16.9-16.9z m185.9 135.2c-9.3 0-16.9 7.6-16.9 16.9 0 9.3 7.6 16.9 16.9 16.9 9.3 0 16.9-7.6 16.9-16.9 0-9.3-7.5-16.9-16.9-16.9z m-120.4-355l35.9-101.4H364.8l35.9 101.4H365l-50.9-135.3h372l-50.9 135.3h-35.8zM872 644.2H145v-16.9h727v16.9z" horiz-adv-x="1024" /> + + + <glyph glyph-name="yigouxuan" unicode="" d="M196.923077 896h630.153846a196.923077 196.923077 0 0 0 196.923077-196.923077v-630.153846a196.923077 196.923077 0 0 0-196.923077-196.923077H196.923077a196.923077 196.923077 0 0 0-196.923077 196.923077V699.076923a196.923077 196.923077 0 0 0 196.923077 196.923077z m0-78.769231a118.153846 118.153846 0 0 1-118.153846-118.153846v-630.153846a118.153846 118.153846 0 0 1 118.153846-118.153846h630.153846a118.153846 118.153846 0 0 1 118.153846 118.153846V699.076923a118.153846 118.153846 0 0 1-118.153846 118.153846H196.923077z m584.900923-258.205538a36.509538 36.509538 0 0 0 1.260308-51.633231l-299.480616-313.107692c-0.118154-0.157538-0.393846-0.236308-0.630154-0.472616l-0.393846-0.551384c-2.166154-2.126769-4.726154-3.229538-7.207384-4.726154-1.575385-0.866462-2.796308-2.166154-4.411077-2.835692a35.800615 35.800615 0 0 0-27.490462-0.07877c-1.260308 0.512-2.284308 1.614769-3.544615 2.284308-2.756923 1.457231-5.592615 2.835692-8.034462 5.12-0.196923 0.157538-0.275692 0.433231-0.512 0.669538-0.196923 0.118154-0.393846 0.196923-0.551384 0.354462l-150.843077 156.593231a36.430769 36.430769 0 0 0 0.945231 51.633231 36.391385 36.391385 0 0 0 51.63323-0.945231l124.455385-129.102769 273.092923 285.61723a36.548923 36.548923 0 0 0 51.712 1.181539z" horiz-adv-x="1024" /> + + + <glyph glyph-name="weigouxuan" unicode="" d="M196.923077 817.230769a118.153846 118.153846 0 0 1-118.153846-118.153846v-630.153846a118.153846 118.153846 0 0 1 118.153846-118.153846h630.153846a118.153846 118.153846 0 0 1 118.153846 118.153846V699.076923a118.153846 118.153846 0 0 1-118.153846 118.153846H196.923077z m0 78.769231h630.153846a196.923077 196.923077 0 0 0 196.923077-196.923077v-630.153846a196.923077 196.923077 0 0 0-196.923077-196.923077H196.923077a196.923077 196.923077 0 0 0-196.923077 196.923077V699.076923a196.923077 196.923077 0 0 0 196.923077 196.923077z" horiz-adv-x="1024" /> + + + <glyph glyph-name="phone_light" unicode="" d="M358.4 87.466667h14.933333c40.533333 0 155.733333 14.933333 275.2 174.933333 130.133333 172.8 100.266667 302.933333 91.733334 330.666667-12.8 55.466667-64 93.866667-119.466667 91.733333-66.133333-2.133333-117.333333-57.6-115.2-123.733333 0-27.733333 10.666667-53.333333 29.866667-74.666667l2.133333-2.133333c6.4-6.4 12.8-12.8 19.2-17.066667 29.866667-34.133333 6.4-81.066667-19.2-113.066667-34.133333-46.933333-72.533333-64-110.933333-49.066666-21.333333 17.066667-46.933333 25.6-74.666667 23.466666-32 0-61.866667-14.933333-83.2-38.4s-34.133333-53.333333-32-85.333333c0-32 14.933333-61.866667 38.4-83.2 21.333333-21.333333 51.2-32 81.066667-32-2.133333-2.133333 0-2.133333 2.133333-2.133333zM277.333333 204.8c0 21.333333 6.4 40.533333 21.333334 55.466667 14.933333 14.933333 32 23.466667 53.333333 23.466666s38.4-8.533333 49.066667-17.066666c2.133333-2.133333 2.133333-2.133333 4.266666-2.133334 34.133333-12.8 98.133333-23.466667 164.266667 61.866667 66.133333 87.466667 36.266667 142.933333 14.933333 170.666667l-4.266666 4.266666c-4.266667 2.133333-8.533333 6.4-14.933334 12.8-12.8 14.933333-19.2 29.866667-19.2 49.066667-2.133333 42.666667 32 78.933333 74.666667 78.933333 36.266667 0 68.266667-23.466667 76.8-59.733333v-2.133333c6.4-21.333333 34.133333-134.4-83.2-292.266667C492.8 128 384 128 364.8 130.133333h-10.666667c-21.333333 0-40.533333 6.4-55.466666 21.333334-12.8 12.8-21.333333 32-21.333334 53.333333zM512 832C264.533333 832 64 631.466667 64 384c0-85.333333 23.466667-166.4 68.266667-238.933333 6.4-10.666667 19.2-12.8 29.866666-6.4 8.533333 8.533333 12.8 21.333333 6.4 32C128 234.666667 106.666667 309.333333 106.666667 384 106.666667 608 288 789.333333 512 789.333333s405.333333-181.333333 405.333333-405.333333-181.333333-405.333333-405.333333-405.333333c-55.466667 0-106.666667 10.666667-157.866667 32-10.666667 4.266667-23.466667 0-27.733333-10.666667-4.266667-10.666667 0-23.466667 10.666667-27.733333 55.466667-23.466667 113.066667-34.133333 172.8-34.133334 247.466667 0 448 200.533333 448 448C960 631.466667 759.466667 832 512 832z" horiz-adv-x="1024" /> + + + <glyph glyph-name="Myassessment" unicode="" d="M567.6 93.5c0-11 10.7-20 23.9-20h362.7c13.2 0 23.9 9 23.9 20s-10.7 20-23.9 20H591.4c-13.1 0-23.8-9-23.8-20zM954.2-15.8H419.1c-13.2 0-23.9-9-23.9-20s10.7-20 23.9-20h535.1c13.2 0 23.9 9 23.9 20-0.1 11-10.8 20-23.9 20zM104.9-66.3c-11.3 0-22.1 4.3-30.2 12.1-10.9 10.4-15.7 25.4-12.8 40.1 8.7 45.1 55 273 110.5 343l0.2 0.3 0.7 0.8c1.2 1.6 2.5 3.3 4.3 5.1l0.1 0.1c0.3 0.3 0.7 0.6 1 0.9 0.4 0.4 0.9 1 1.4 1.5l454.1 454.1C667.9 825.4 712.8 844 760.4 844c47.7 0 92.5-18.6 126.2-52.3l21.2-21.2c33.7-33.7 52.3-78.6 52.3-126.2 0-47.7-18.6-92.5-52.3-126.2L836.7 447l-0.7-0.7-382.3-382.2c-0.5-0.5-1.1-1-1.5-1.4-0.3-0.3-0.6-0.7-1-1.1l-0.1-0.1c-1.7-1.7-3.3-2.9-4.4-3.7C379.8 1.7 159-54.3 115.3-65c-3.4-0.8-6.9-1.3-10.4-1.3z m100.2 372.2l-0.1-0.2-0.9-1.2c-41.3-51.2-84.2-229.2-103-326.2-0.3-1.3 0.2-2.6 1.1-3.5 0.7-0.7 1.7-1.1 2.7-1.1 0.3 0 0.6 0 0.9 0.1 94 23 266.3 73.1 315.6 114.9l1.3 1 0.7 0.8 0.7 0.7c0.3 0.3 0.7 0.6 1 0.9l0.3 0.2L806 473l0.1 0.2 2.2 2.1 71.2 71.2c26.2 26.2 40.6 60.9 40.6 97.9 0 37-14.4 71.8-40.6 97.9l-21.2 21.2c-26.2 26.2-60.9 40.6-97.9 40.6-37 0-71.8-14.4-97.9-40.6l-454-454-0.1-0.1c-0.4-0.4-0.8-0.9-1.1-1.3l-0.6-0.6-0.6-0.6c-0.2-0.2-0.3-0.3-0.5-0.4-0.1-0.1-0.2-0.2-0.3-0.4l-0.2-0.2zM651.6 789.7c-7.4-8.2-6.3-21.3 2.5-29.2L896 542.9c8.8-7.9 21.9-7.7 29.3 0.6 7.4 8.2 6.3 21.3-2.5 29.2L680.9 790.3c-8.8 7.9-21.9 7.6-29.3-0.6zM175.7 308.8c-7.4-8.2-6.3-21.3 2.5-29.2L420.1 62c8.8-7.9 21.9-7.7 29.3 0.6 7.4 8.2 6.3 21.3-2.5 29.2L205 309.4c-8.8 7.9-21.9 7.7-29.3-0.6z" horiz-adv-x="1024" /> + + + <glyph glyph-name="Myquestionandansw" unicode="" d="M844.6 133.8c0 21.4-24.4 38.7-54.4 38.7s-54.4-17.3-54.4-38.7c0-5.4 1.5-10.5 4.3-15.1h-63.6c0 56.4 51.2 102.2 114.3 102.2 63.1 0 114.3-45.7 114.3-102.2h-64.8c2.8 4.7 4.3 9.8 4.3 15.1zM664.6 117.5c0-7.4 14.1-13.3 31.4-13.3 17.4 0 31.4 6 31.4 13.3 0 7.3-14.1 13.3-31.4 13.3-17.3 0-31.4-5.9-31.4-13.3z m0 0M830.8 118.8s-0.3-10.4-9-15.1l-42.2-39.1s-26.7-24.5-27.1-45.1v-36.1h54.2s-0.7 17.7 0 33.1c0.2 11.9 63.3 63.2 63.3 63.2s24.4 19.1 24.1 39.1c-0.3 20.1-63.3 0-63.3 0z m0 0M737.5-85.9c0-21.5 17.5-39 39-39s39 17.5 39 39-17.5 39-39 39c-21.5-0.1-39-17.5-39-39z m0 0M546.1-90H211.4c-30.3 0-58.5 13.7-79.5 38.5-20.2 23.9-31.4 55.4-31.4 88.7V751.7c0 33.4 11.1 64.9 31.4 88.7 21 24.8 49.3 38.4 79.5 38.4h606.1c30.3 0 58.5-13.7 79.5-38.4 20.2-23.9 31.4-55.4 31.4-88.7v-434.8h-40V751.7c0 48.1-31.8 87.2-70.9 87.2H211.4c-39.1 0-70.9-39.1-70.9-87.2v-714.5c0-48.1 31.8-87.2 70.9-87.2h334.7v-40zM746.4 577.4H294.2c-16.3 0-29.5 8.9-29.5 20v0.1c0 11 13.2 19.9 29.5 19.9h452.2c16.3 0 29.5-8.9 29.5-19.9v-0.1c-0.1-11.1-13.2-20-29.5-20zM264.7 383.3v0.1c0 11 13.2 19.9 29.5 19.9h452.2c16.3 0 29.5-8.9 29.5-19.9v-0.1c0-11-13.2-19.9-29.5-19.9H294.2c-16.3 0-29.5 8.9-29.5 19.9z" horiz-adv-x="1024" /> + + + <glyph glyph-name="tuichu" unicode="" d="M224 192c-8 0-16 3.2-22.4 9.6l-160 160c-12.8 12.8-12.8 32 0 44.8l160 160c12.8 12.8 32 12.8 44.8 0 12.8-12.8 12.8-32 0-44.8L108.8 384l137.6-137.6c12.8-12.8 12.8-32 0-44.8-6.4-6.4-14.4-9.6-22.4-9.6z m416 160H80c-17.6 0-32 14.4-32 32s14.4 32 32 32h560c17.6 0 32-14.4 32-32s-14.4-32-32-32z m192-384H480c-52.8 0-96 43.2-96 96V192c0 17.6 14.4 32 32 32s32-14.4 32-32v-128c0-17.6 14.4-32 32-32h352c17.6 0 32 14.4 32 32V704c0 17.6-14.4 32-32 32H480c-17.6 0-32-14.4-32-32v-128c0-17.6-14.4-32-32-32s-32 14.4-32 32V704c0 52.8 43.2 96 96 96h352c52.8 0 96-43.2 96-96v-640c0-52.8-43.2-96-96-96z" horiz-adv-x="1024" /> + + + <glyph glyph-name="caidan" unicode="" d="M333.275 704.951h597.418c16.511 0 29.871 14.328 29.871 32s-13.36 32-29.871 32H333.275c-16.496 0-29.871-14.328-29.871-32s13.375-32 29.871-32zM930.693 416.5H333.275c-16.496 0-29.871-14.328-29.871-32s13.375-32 29.871-32h597.418c16.511 0 29.871 14.328 29.871 32s-13.36 32-29.871 32z m0-352.451H333.275c-16.496 0-29.871-14.313-29.871-32 0-17.687 13.375-32 29.871-32h597.418c16.511 0 29.871 14.313 29.871 32 0 17.687-13.36 32-29.871 32zM128.197 798.693c-35.211 0-63.76-28.549-63.76-63.76s28.549-63.76 63.76-63.76 63.761 28.549 63.761 63.76-28.55 63.76-63.761 63.76z m-0.118-350.659c-35.146 0-63.642-28.681-63.642-64.055 0-35.373 28.496-64.053 63.642-64.053s63.642 28.681 63.642 64.053c0 35.374-28.496 64.055-63.642 64.055z m-0.382-354.243c-34.935 0-63.26-28.325-63.26-63.261s28.325-63.26 63.26-63.26 63.261 28.324 63.261 63.26-28.326 63.261-63.261 63.261z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_alipay_line" unicode="" d="M322.749752 150.762935c74.987878 0 149.936871 47.355541 208.79642 123.163087-83.736123 40.35715-154.673755 69.230758-231.311203 61.753459-20.720927-2.034333-59.624982-11.099802-80.896449-29.652343-63.759139-54.903447-25.614377-155.264203 103.411232-155.264203zM160.016437 831.978894h703.966103c53.016471 0 95.995331-42.97886 95.995331-95.995331v-703.966103c0-53.016471-42.97886-95.995331-95.995331-95.995331H160.016437c-53.016471 0-95.995331 42.97886-95.995331 95.995331V735.983563c0 53.016471 42.97886 95.995331 95.995331 95.995331z m735.964888-600.388073V735.983563c0 17.672498-14.326287 31.998785-31.998785 31.998785H160.016437c-17.672498 0-31.998785-14.326287-31.998785-31.998785v-703.966103c0-17.672498 14.326287-31.998785 31.998785-31.998785h703.966103c17.672498 0 31.998785 14.326287 31.998785 31.998785V111.397369c-64.164369 26.708292-209.505571 87.783299-292.64613 127.259382-73.051783-88.768743-167.301354-142.641721-265.137613-142.641721-165.469636 0-221.660402 142.991692-143.308917 237.131768 17.076934 20.521383 46.147016 40.116673 91.247191 51.093679 70.545706 17.113773 182.841282-10.679223 288.069904-44.970214 18.914792 34.440393 34.853809 72.354911 46.715975 112.724341H296.610418v32.458249h167.223583v58.144258H261.292028v32.457226h202.541973v82.95534s0 13.977339 14.329356 13.97734h81.733513v-96.93268h200.257953v-32.457226H559.89687v-58.144258h163.467025c-15.637142-63.282279-39.414685-121.517611-69.210291-172.657338 49.595558-17.72264 94.132914-34.505885 127.311571-45.469588 56.590879-18.723434 92.449575-29.05064 114.51615-34.735106z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_addressbook" unicode="" d="M863.98254 831.978894H224.014007c-53.017494 0-95.995331-42.97886-95.995332-95.995331v-159.991877h-31.998784c-17.671475 0-31.998785-14.325263-31.998785-31.998785s14.32731-31.998785 31.998785-31.998785h31.998784v-255.988232h-31.998784c-17.671475 0-31.998785-14.325263-31.998785-31.998785s14.32731-31.998785 31.998785-31.998785h31.998784v-159.991877c0-53.017494 42.97886-95.995331 95.995332-95.995331h639.969556c53.017494 0 95.995331 42.97886 95.995331 95.995331V735.983563c-0.001023 53.016471-42.97886 95.995331-95.996354 95.995331z m31.998785-799.961434c0-17.673521-14.32731-31.998785-31.998785-31.998785H224.014007c-17.671475 0-31.998785 14.325263-31.998785 31.998785V192.009338h63.996546c17.671475 0 31.998785 14.325263 31.998785 31.998784 0 17.672498-14.32731 31.998785-31.998785 31.998785h-63.996546V511.994116h63.996546c17.671475 0 31.998785 14.325263 31.998785 31.998785s-14.32731 31.998785-31.998785 31.998785h-63.996546V735.983563c0 17.672498 14.32731 31.998785 31.998785 31.998785h639.969556c17.671475 0 31.998785-14.325263 31.998785-31.998785v-703.966103zM702.803627 331.160561c-2.945075 1.183965-5.835915 1.769296-8.600888 1.769297-9.31618 0-17.663288-6.072299-27.530007-18.430768-1.461281-1.837858-2.738367-3.52529-5.234211-6.896061-14.299681-19.305695-21.717627-24.88169-36.490076-20.212344-19.639293 6.17156-37.428448 17.811668-63.325258 44.131103-24.885783 25.297153-32.943296 36.541241-39.920198 51.995211a132.419915 132.419915 0 0 1-1.827624 3.966335c-7.554046 15.692401-1.355881 25.541723 20.494776 44.105521a619.619066 619.619066 0 0 1 3.472078 2.970658 170.380482 170.380482 0 0 1 1.655709 1.441838c15.421224 13.542434 21.182438 29.688159 16.139586 39.58967-12.866029 25.258267-52.41886 83.198887-65.965388 95.577823-8.679683 7.942903-21.99085 6.418176-40.267099-7.153934-5.464455-4.062526-12.710486-11.083429-19.72218-20.907169-11.042497-15.47546-18.10024-33.564443-19.374256-54.298674-4.046153-65.875337 32.448016-148.60248 93.112677-209.950709 57.149605-57.768705 121.326253-86.84902 191.100386-86.84902 5.077645 0 10.187013 0.161682 15.335267 0.480954 21.49864 1.349741 40.185234 9.556657 56.06797 22.405289 5.655813 4.578272 10.561543 9.441023 14.682397 14.277168 2.508123 2.940982 4.29277 5.354961 5.328356 6.945179 2.476401 3.460822 5.273097 8.553817 6.870477 13.929244 2.124384 7.16212 1.421372 12.386098-2.484587 16.114003-14.795984 14.083763-79.847559 59.470463-93.517907 64.999386z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_at" unicode="" d="M450.451202 216.348676C525.144368 196.334853 609.444333 253.381104 635.088386 349.075583c25.63996 95.694479-18.844184 187.248661-93.538373 207.262484-74.693166 20.013823-158.993131-37.031405-184.637184-132.725884-25.640983-95.695502 18.84316-187.249685 93.538373-207.263507z m214.549448 324.971349l16.402575 61.217247c4.573155 17.069771 22.12081 27.200502 39.188534 22.626323 17.071817-4.574179 27.201525-22.119787 22.626323-39.190581L703.898565 439.223742c2.210341-15.998369 2.950192-32.494065 2.102894-49.253774 4.584412-29.328979 16.789385-55.654554 34.311457-75.278497 16.850783-18.87386 33.345456-26.687826 43.674708-26.687825 10.329253 0 26.823925 7.812943 43.674709 26.687825 22.575158 25.281803 36.32123 61.684898 36.32123 101.306291 0 194.394409-157.589155 351.983563-351.983563 351.983563-212.066907 0-383.981325-171.914418-383.981325-383.981325s171.914418-383.981325 383.981325-383.981325c153.238057 0 287.122323 82.857103 359.294063 206.212572a32.397874 32.397874 0 0 0 0.953721 1.777483c8.837272 15.304568 28.408003 20.547988 43.712571 11.712763 15.301498-8.836249 20.546965-28.405957 11.711739-43.710524l4.604878 7.978718c-81.794911-147.854443-239.346203-247.967558-420.277995-247.967558-247.411903 0-447.978894 200.566992-447.978895 447.978894s200.568015 447.977871 447.979918 447.977871c229.739405 0 415.980109-186.240705 415.980109-415.980109 0-106.033965-64.467267-191.990662-143.993508-191.990663-41.332361 0-78.595033 23.217794-104.855116 60.404742-47.546899-99.082646-148.956543-155.680688-245.243517-129.880069-110.957091 29.730115-173.095313 157.616784-138.789996 285.642622C329.400219 568.201256 447.158203 647.885086 558.113247 618.154971c44.508703-11.926634 81.163531-39.646975 106.887403-76.834946z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_coinpurse_line" unicode="" d="M703.990662 352.001215c-35.344996 0-63.996546-28.652574-63.996546-63.996546s28.652574-63.996546 63.996546-63.996547h127.994116c35.344996 0 63.996546 28.652574 63.996547 63.996547s-28.652574 63.996546-63.996547 63.996546H703.990662z m0 63.99757h127.994116c70.688969 0 127.994116-57.305147 127.994116-127.994116s-57.305147-127.994116-127.994116-127.994116H703.990662c-70.688969 0-127.994116 57.305147-127.994116 127.994116s57.305147 127.994116 127.994116 127.994116zM339.429643 639.988232h396.559804V740.198561c0 3.774977-0.668219 7.520277-1.972934 11.06194-6.109138 16.582677-24.505114 25.073048-41.087791 18.962888L339.429643 639.988232z m-185.66356-0.200568L670.803819 830.275089c49.748031 18.328437 104.934934-7.142677 123.263371-56.890708a95.990215 95.990215 0 0 0 5.918803-33.18582v-100.211352h31.998785c53.016471 0 95.995331-42.97886 95.995331-95.995331v-63.996547c0-17.672498-14.326287-31.998785-31.998784-31.998785s-31.998785 14.326287-31.998785 31.998785v63.996547c0 17.672498-14.326287 31.998785-31.998785 31.998784H160.016437c-17.672498 0-31.998785-14.326287-31.998785-31.998784v-511.975441c0-17.672498 14.326287-31.998785 31.998785-31.998785h671.967318c17.672498 0 31.998785 14.326287 31.998785 31.998785v63.996546c0 17.672498 14.326287 31.998785 31.998785 31.998785s31.998785-14.326287 31.998784-31.998785v-63.996546c0-53.016471-42.97886-95.995331-95.995331-95.995331H160.016437c-53.016471 0-95.995331 42.97886-95.995331 95.995331V543.992901c0 50.916647 39.641859 92.574419 89.744977 95.794763z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_details" unicode="" d="M510.651282 543.992901c-26.508747 0-47.998177 21.48943-47.998177 47.998177s21.48943 47.998177 47.998177 47.998177 47.997154-21.48943 47.997154-47.998177-21.48943-47.998177-47.997154-47.998177z m-31.998784-63.99757h31.998784c17.672498 0 31.998785-14.326287 31.998785-31.998785v-287.985993h47.998177c8.836249 0 15.999392-7.163143 15.999393-15.999393s-7.163143-15.999392-15.999393-15.999392H430.655344c-8.836249 0-15.999392 7.163143-15.999393 15.999392s7.163143 15.999392 15.999393 15.999393h47.998177V447.99757h-31.998785c-8.836249 0-15.999392 7.163143-15.999392 15.999392s7.163143 15.999392 15.999392 15.999392h31.997762z m31.998784-495.976048c220.909295 0 399.980717 179.071422 399.980718 399.980717S731.560578 783.980717 510.651282 783.980717 110.670565 604.909295 110.670565 384s179.071422-399.980717 399.980717-399.980717zM62.672388 384c0 247.406786 200.572108 447.978894 447.978894 447.978894s447.978894-200.572108 447.978895-447.978894-200.573131-447.977871-447.978895-447.977871S62.672388 136.594237 62.672388 384z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_delete" unicode="" d="M800.162002 579.340967c1.850138 17.575284 17.596773 30.322609 35.172058 28.473495 17.575284-1.850138 30.322609-17.596773 28.473494-35.172058l-57.966202-550.673811c-5.143137-48.856731-46.341445-85.946464-95.467306-85.946464H313.625954c-49.126884 0-90.325192 37.089733-95.468329 85.946464L160.192446 572.641381c-1.850138 17.575284 10.898211 33.32192 28.472471 35.172057 17.575284 1.850138 33.32192-10.898211 35.172058-28.473494l57.965179-550.672788c1.714038-16.285918 15.446807-28.64848 31.822776-28.648481h396.74707c16.375969 0 30.108738 12.363585 31.822776 28.648481l57.967226 550.673811z m-192.176904-99.345636c17.672498 0 31.998785-14.326287 31.998785-31.998785v-223.989447c0-17.672498-14.326287-31.998785-31.998785-31.998785s-31.998785 14.326287-31.998785 31.998785V447.99757c0 17.671475 14.326287 31.997762 31.998785 31.997761z m-191.990662 0c17.672498 0 31.998785-14.326287 31.998785-31.998785v-223.989447c0-17.672498-14.326287-31.998785-31.998785-31.998785s-31.998785 14.326287-31.998785 31.998785V447.99757c0 17.671475 14.326287 31.997762 31.998785 31.997761z m-31.998785 223.989447h255.987209v47.998178c0 8.836249-7.163143 15.999392-15.999393 15.999392H399.995043c-8.836249 0-15.999392-7.163143-15.999392-15.999392v-47.998178z m-63.996546 0V767.981325c0 35.344996 28.652574 63.996546 63.997569 63.996546h255.987209c35.343973 0 63.996546-28.652574 63.996546-63.996546v-63.996547h223.99968c17.672498 0 31.998785-14.326287 31.998785-31.998785s-14.326287-31.998785-31.998785-31.998784H96.019891c-17.672498 0-31.998785 14.326287-31.998785 31.998784s14.326287 31.998785 31.998785 31.998785h223.979214z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_GPS" unicode="" d="M512-47.979502c223.989447 224.729298 335.984171 399.577534 335.984171 524.546757 0 187.452299-150.424988 339.412246-335.984171 339.412247S176.015829 664.019555 176.015829 476.567255c0-124.9682 111.994724-299.81746 335.984171-524.546757z m45.327348-45.177945c-25.009603-25.092491-65.645093-25.092491-90.654696 0-235.249909 236.027621-354.653369 422.443311-354.653369 569.724702C112.019283 699.219241 290.950512 879.976048 512 879.976048s399.980717-180.756807 399.980717-403.408793c0-147.281391-119.40346-333.697081-354.653369-569.724702z m-45.327348 445.158662c70.688969 0 127.994116 57.305147 127.994116 127.994116s-57.305147 127.994116-127.994116 127.994116-127.994116-57.305147-127.994116-127.994116 57.305147-127.994116 127.994116-127.994116z m0-63.996546c-106.033965 0-191.990662 85.956697-191.990662 191.990662s85.956697 191.990662 191.990662 191.990662 191.990662-85.956697 191.990662-191.990662-85.957721-191.990662-191.990662-191.990662z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_horn" unicode="" d="M702.383048 225.615737c40.534182 40.534182 65.605184 96.531544 65.605184 158.384263s-25.071002 117.850082-65.605184 158.384263c-12.496615 12.495592-12.496615 32.756031 0 45.252647 12.495592 12.496615 32.756031 12.496615 45.252647 0 52.114938-52.114938 84.349083-124.111692 84.349083-203.63691s-32.234145-151.521972-84.349083-203.63691c-12.495592-12.496615-32.756031-12.496615-45.252647 0-12.496615 12.496615-12.496615 32.757055 0 45.252647z m113.130594-113.131617C885.000226 181.970704 927.979086 277.966035 927.979086 384s-42.97886 202.029296-112.465444 271.51588c-12.495592 12.496615-12.495592 32.756031 0 45.252647 12.496615 12.496615 32.756031 12.496615 45.252646 0C941.834652 619.700163 991.976656 507.70544 991.976656 384s-50.142004-235.700163-131.209344-316.768527c-12.496615-12.496615-32.757055-12.496615-45.25367 0-12.495592 12.496615-12.495592 32.757055 0 45.252647zM312.24449 543.992901H112.019283c-8.836249 0-15.999392-7.163143-15.999392-15.999393v-287.985993c0-8.836249 7.163143-15.999392 15.999392-15.999393H312.245514c25.459858 0 49.875944-10.113335 67.87897-28.116361l163.874301-163.874301V735.983563L380.12346 572.109262a95.992261 95.992261 0 0 0-67.87897-28.116361z m41.371247 92.112907L498.746138 781.23621c40.316218 40.316218 109.249193 11.762905 109.249193-45.252647v-703.966103c0-57.015551-68.933999-85.568864-109.249193-45.252647L353.615737 131.894192a95.994308 95.994308 0 0 1-67.878971 28.116361H96.019891c-35.344996 0-63.996546 28.652574-63.996547 63.996546V543.992901c0 35.344996 28.652574 63.996546 63.996547 63.996546h189.716875a95.996354 95.996354 0 0 1 67.878971 28.116361z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_im_voice" unicode="" d="M512 891.624343c-280.357246 0-507.624343-227.275283-507.624343-507.624343s227.267097-507.624343 507.624343-507.624343 507.624343 227.275283 507.624343 507.624343S792.356222 891.624343 512 891.624343z m0-983.5221c-262.832104 0-475.897757 213.069747-475.897757 475.897757S249.167896 859.897757 512 859.897757s475.897757-213.069747 475.897757-475.897757-213.065653-475.897757-475.897757-475.897757zM512 288.820244c69.944002 0 126.906342 56.915267 126.906342 127.107933V574.157921c0 70.191642-56.819077 127.107933-126.906342 127.107933-69.944002 0-126.906342-56.915267-126.906342-127.107933v-158.229744c0-70.191642 56.819077-127.107933 126.906342-127.107933zM718.221782 447.453171c-17.521049 0-31.726585-14.205537-31.726586-31.726586 0-96.371908-78.123288-174.49622-174.496219-174.496219S337.502757 319.353654 337.502757 415.726585c0 17.521049-14.205537 31.726585-31.726585 31.726586s-31.726585-14.205537-31.726586-31.726586c0-120.66315 89.804329-220.335221 206.222805-235.857752v-97.270371c0-17.521049 14.205537-31.726585 31.726586-31.726585s31.726585 14.205537 31.726585 31.726585v97.270371c116.418476 15.522532 206.222805 115.194602 206.222805 235.857752 0 17.521049-14.205537 31.726585-31.726585 31.726586z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_notice" unicode="" d="M320.009338 495.994724c0-63.996546 0-94.871741-31.998785-191.990663-21.331841-65.37801-63.996546-129.375579-127.994116-191.990662h703.966103c-63.996546 63.996546-106.661252 127.994116-127.994116 191.990662-31.998785 95.995331-31.998785 127.994116-31.998785 191.990663 0 127.994116-31.998785 223.989447-191.990662 223.989447-154.75562 0-191.989639-95.995331-191.989639-223.989447z m282.523585-447.978895H421.467077c13.178137-37.284161 48.735981-63.996546 90.532923-63.996546s77.354785 26.712385 90.532923 63.996546z m3.220344 724.683961c114.993011-31.42164 162.233941-127.552048 162.233942-276.705066 0-89.716324 4.64888-99.556437 28.713972-171.752736 17.921161-53.764508 55.119365-109.561301 112.532982-166.975942 40.316218-40.316218 11.762905-109.249193-45.252646-109.249193H668.791999c-14.823614-73.028247-79.389118-127.994116-156.791999-127.994116S370.031615-25.011394 355.208001 48.015829H160.016437c-57.352219 0-85.751013 69.63087-44.756343 109.74038 57.057507 55.825446 94.02035 111.270223 111.967094 166.273955 15.731286 47.745421 25.325805 105.065917 28.78458 171.96456 0 146.069797 49.270147 243.450684 162.078399 275.986705 9.200546 43.417859 47.750537 75.996858 93.909833 75.996858 45.903469 0 84.282568-32.219819 93.753267-75.278497z" horiz-adv-x="1024" /> + + + <glyph glyph-name="icon_phone" unicode="" d="M594.366939 129.93456c-159.949922 44.407396-286.332331 171.396625-332.337107 334.574055-7.93574 33.57263 0.589424 58.139142 20.833491 76.930114 2.334161 2.166339 8.812713 7.6574 7.883551 6.846941 5.597485 4.881171 10.837836 9.142218 19.834744 16.252149 2.812045 2.220574 2.812045 2.220574 5.558599 4.393054 21.046339 16.672728 30.17116 25.720801 34.406624 34.540677 5.409197 11.263531-8.538467 51.386344-40.708144 92.706425-37.842887 48.608068-70.305229 71.802326-98.924033 71.802326-20.010753 0-40.808428-24.629957-69.484538-82.763982-15.160281-30.733978-16.61133-108.283192-8.523117-161.977091 5.968945-39.624463 27.458375-117.279077 46.62797-162.884764 78.380138-186.474019 248.529353-320.266188 449.951829-352.145246 98.261954-15.363919 197.22692-8.435113 225.184669 15.370059 27.800159 23.671119 41.494043 42.909276 41.494043 51.451836 0 23.763217-29.543873 70.203922-71.062476 103.345739-40.60479 32.412201-79.886445 46.413076-90.551342 41.162492-7.424086-3.65525-15.161305-10.838859-25.971511-24.202215-3.03001-3.746324-21.337981-27.621081-27.841092-35.579333-25.540699-32.458249-44.096311-39.199791-86.37216-29.823236z m36.237319 69.600171l0.445139 0.553609c5.430686 6.613628 23.953551 30.772864 27.774576 35.496446 16.142655 19.956517 29.889751 32.719192 47.458895 41.370223 39.706327 19.550265 100.614535-2.158153 158.744467-48.560996 55.264675-44.11473 95.134731-106.787118 95.134731-153.361877 0-32.958646-22.99062-65.260329-64.002686-100.17963-46.997384-40.016389-160.744008-47.980781-276.618085-29.862121-223.393883 35.356252-412.053684 183.703929-499.004011 390.5663-21.25714 50.572816-44.165896 133.357264-50.913577 178.150446-9.928117 65.907059-8.283664 153.812131 14.411221 199.821001C123.704416 793.946696 155.817812 831.978894 210.914664 831.978894c53.312206 0 100.621698-33.802874 149.422148-96.484471 45.666062-58.655911 66.9846-119.983675 47.899939-159.724795-9.901511-20.61962-23.690562-34.290991-52.357461-57.001225-2.832512-2.241041-2.832512-2.241041-5.615905-4.439102-8.232498-6.506181-12.850679-10.261715-17.455557-14.277168-0.048095-0.041956-5.324262-4.513804-6.405897-5.518691-4.00522-3.716648-4.495384-5.129834-2.434445-13.976316 39.618323-140.435473 149.21851-250.560616 285.85547-288.543695 16.519232-3.64604 10.199293-5.965875 20.781302 7.5213z" horiz-adv-x="1024" /> + + + <glyph glyph-name="weibiaoti-" unicode="" d="M943.962529 699.85324c0 35.871975-26.079625 64.449649-59.453552 65.249024l-20.483997 0.399688c-3.09758 0-74.741608 1.898517-149.982825 34.473068-79.837627 34.473068-130.198283 72.943013-132.296644 74.541764l-12.39032 9.492584c-10.291959 7.893833-22.282592 11.990632-34.772833 11.990632h-0.099922c-12.690086 0-24.78064-4.196721-35.272444-12.190476l-11.990632-9.29274c-5.69555-4.296643-55.956284-41.567525-132.596409-74.541764-74.541764-32.174863-148.983607-34.473068-149.583138-34.473068l-20.883685-0.399688c-32.674473-0.699454-59.253708-29.976581-59.253708-65.249024v-374.607338c0-101.720531 54.257611-215.131928 148.883685-311.056987 71.843872-72.943013 156.677596-124.502732 226.822794-137.992194l0.799376-0.199844 29.776737-2.997658 2.198282-0.099922h0.99922c36.671351 0 80.736924 13.389539 127.400468 38.969555 46.064012 25.180328 92.128025 60.552693 133.395785 102.419985 94.626073 95.925059 148.883685 209.436378 148.883684 311.056987l-0.099922 374.507416z m-180.558938-649.492584c-36.271663-37.870414-76.740047-69.745511-117.108509-92.427791-40.967994-23.081967-79.637783-35.172521-111.912568-35.172522h-0.899298l-1.998438 0.099922-26.179548 2.697893-0.699453 0.199844c-61.651835 12.090554-136.093677 58.654176-199.144419 124.502732-83.135051 86.632319-130.697892 188.952381-130.697892 280.680718V669.077283c0 31.775176 23.381733 58.254489 52.059329 58.854021l18.385636 0.399687c0.599532 0 65.948478 1.998439 131.397346 31.075723C443.953162 789.083528 488.018735 822.757221 493.014832 826.654176l10.491803 8.393443c9.192818 7.194379 19.884465 10.991413 30.975801 10.991413h0.099922c10.991413 0 21.583138-3.697112 30.576112-10.891491l10.891491-8.593287c1.898517-1.498829 46.064012-36.171741 116.209212-67.247462 66.0484-29.377049 128.999219-31.075722 131.697111-31.075723l17.985949-0.399687c29.277127-0.699454 52.159251-26.479313 52.15925-58.854021l0.199844-337.935987c-0.199844-91.728337-47.762685-194.0484-130.897736-280.680718zM507.203747 207.13817300000005c-9.79235-9.79235-25.580016-9.79235-35.372365 0L333.339578 345.53005499999995c-9.79235 9.79235-9.79235 25.580016 0 35.372365 9.79235 9.79235 25.580016 9.79235 35.372366 0l138.491803-138.491803c9.79235-9.79235 9.79235-25.580016 0-35.272444zM784.287276 519.594067c9.79235-9.79235 9.79235-25.580016 0-35.372365L507.203747 207.13817300000005c-9.79235-9.79235-25.580016-9.79235-35.372365 0-9.79235 9.79235-9.79235 25.580016 0 35.372366l277.083528 277.083528c9.79235 9.692428 25.679938 9.692428 35.372366 0z" horiz-adv-x="1024" /> + + + <glyph glyph-name="zhihang" unicode="" d="M751.742464 138.713491H302.225344c-13.785192 0-24.973173 11.187982-24.973173 24.973174s11.187982 24.973173 24.973173 24.973173h449.51712c13.785192 0 24.973173-11.187982 24.973173-24.973173s-11.187982-24.973173-24.973173-24.973174zM751.742464 612.204858H302.225344c-13.785192 0-24.973173 11.187982-24.973173 24.973173s11.187982 24.973173 24.973173 24.973174h449.51712c13.785192 0 24.973173-11.187982 24.973173-24.973174s-11.187982-24.973173-24.973173-24.973173zM520.990342-76.954834H177.359477c-14.384548 0-26.071993 12.087016-26.071993 27.07092V818.982733c0 14.983904 11.687445 27.07092 26.071993 27.07092h687.061945c14.384548 0 26.071993-12.087016 26.071993-27.07092v-523.437713h49.946347V866.032192c0 16.582187-13.285728 29.967808-29.568237 29.967808H130.909375c-16.382402 0-29.568237-13.385621-29.568238-29.967808v-962.965564c0-16.582187 13.285728-29.967808 29.568238-29.967808H520.990342v49.946346zM915.566481 291.549312m-24.973173 0a24.973173 24.973173 0 1 1 49.946347 0 24.973173 24.973173 0 1 1-49.946347 0ZM525.984977-103.026827m-24.973173 0a24.973173 24.973173 0 1 1 49.946346 0 24.973173 24.973173 0 1 1-49.946346 0ZM735.659741-122.306116l-108.183787 71.822846c-11.48766 7.591845-14.584333 23.175105-6.992489 34.662765 7.591845 11.48766 23.175105 14.584333 34.662765 6.992488l108.183787-71.822846c11.48766-7.591845 14.584333-23.175105 6.992488-34.662765-7.691737-11.48766-23.175105-14.584333-34.662764-6.992488zM728.667252-87.643352l165.721978 249.731734c7.591845 11.48766 23.175105 14.584333 34.662765 6.992488 11.48766-7.591845 14.584333-23.175105 6.992488-34.662764l-165.721978-249.731734c-7.591845-11.48766-23.175105-14.584333-34.662764-6.992488-11.48766 7.691737-14.684226 23.175105-6.992489 34.662764zM745.748903 375.459175H296.231782c-13.785192 0-24.973173 11.187982-24.973173 24.973173s11.187982 24.973173 24.973173 24.973173h449.517121c13.785192 0 24.973173-11.187982 24.973173-24.973173s-11.187982-24.973173-24.973173-24.973173z" horiz-adv-x="1024" /> + + + <glyph glyph-name="baocun" unicode="" d="M894.863499 895.10079H114.849058c-16.385599 0-29.574007-13.388233-29.574007-29.973656v-963.153478c0-16.585423 13.288321-29.973656 29.574007-29.973656h780.014441c16.385599 0 29.574007 13.388233 29.574007 29.973656v963.153478c0 16.585423-13.188409 29.973656-29.574007 29.973656z m-20.382086-946.068494c0-14.986828-11.689726-27.076203-26.077081-27.076203H161.308225c-14.387355 0-26.077081 12.089375-26.07708 27.076203V818.068494c0 14.986828 11.689726 27.076203 26.07708 27.076203h687.196019c14.387355 0 26.077081-12.089375 26.077081-27.076203v-869.036198zM729.608742 59.734999h-449.604839c-13.787882 0-24.978047 11.190165-24.978047 24.978046s11.190165 24.978047 24.978047 24.978047h449.604839c13.787882 0 24.978047-11.190165 24.978047-24.978047s-11.090253-24.978047-24.978047-24.978046zM729.608742 263.555859h-449.604839c-13.787882 0-24.978047 11.190165-24.978047 24.978047s11.190165 24.978047 24.978047 24.978046h449.604839c13.787882 0 24.978047-11.190165 24.978047-24.978046s-11.090253-24.978047-24.978047-24.978047zM255.025856 895.500439v-259.771685c0-27.575763 22.38033-49.956093 49.956093-49.956093h399.648747c27.575763 0 49.956093 22.38033 49.956093 49.956093V895.500439h-499.560933z m449.60484-235.293199c0-13.787882-11.190165-24.978047-24.978047-24.978047h-349.692653c-13.787882 0-24.978047 11.190165-24.978047 24.978047V845.044785h399.648747v-184.837545z" horiz-adv-x="1024" /> + + + <glyph glyph-name="zhongzhi" unicode="" d="M300.153441 631.329234L45.877599 540.873402c-14.792777-5.297413-31.084822 2.49878-36.382235 17.291557-5.297413 14.792777 2.49878 31.084822 17.291556 36.382235l254.275842 90.455832c14.792777 5.297413 31.084822-2.49878 36.382236-17.291557 5.297413-14.792777-2.49878-31.184773-17.291557-36.382235zM113.244705 828.033187L64.36857 562.562811c-2.798633-15.392484-17.791313-25.687457-33.183797-22.888824-15.392484 2.798633-25.687457 17.791313-22.888824 33.183797L57.172084 838.32816C59.970717 853.720644 74.963397 864.015617 90.355881 861.117033c15.392484-2.798633 25.687457-17.691362 22.888824-33.083846zM84.958516 151.363592m-24.987799 0a24.987799 24.987799 0 1 1 49.975598 0 24.987799 24.987799 0 1 1-49.975598 0ZM512.749634 895.500244C308.649292 895.500244 132.435334 775.958614 50.275451 603.142997h56.072621C184.409956 747.472523 337.135383 845.524646 512.749634 845.524646c255.075451 0 461.774524-206.699073 461.774524-461.774524s-206.699073-461.774524-461.774524-461.774524c-175.614251 0-328.339678 98.052123-406.401562 242.381649H68.966325v-20.989751h-2.998536v-2.998536h-3.39834c86.557735-159.821962 255.675159-268.36896 450.180185-268.36896 282.661981 0 511.750122 229.088141 511.750122 511.750122S795.411615 895.500244 512.749634 895.500244z" horiz-adv-x="1025" /> + + + <glyph glyph-name="shanchu" unicode="" d="M1000 654H26c-13.8 0-25 11.2-25 25s11.2 25 25 25h974c13.8 0 25-11.2 25-25s-11.2-25-25-25zM855.7 702.6h-684c-27.6 0-50-22.4-50-50v-730c0-27.6 22.4-50 50-50h684c27.6 0 50 22.4 50 50v730c0 27.6-22.4 50-50 50z m0-755c0-13.8-11.2-25-25-25h-634c-13.8 0-25 11.2-25 25v705h684v-705zM788.7 784H237.4c-13.8 0-25 11.2-25 25s11.2 25 25 25h551.3c13.8 0 25-11.2 25-25s-11.2-25-25-25zM452.2 448.6v-322c0-13.8-11.2-25-25-25s-25 11.2-25 25v322c0 13.8 11.2 25 25 25s25-11.2 25-25zM625.2 448.6v-322c0-13.8-11.2-25-25-25s-25 11.2-25 25v322c0 13.8 11.2 25 25 25s25-11.2 25-25z" horiz-adv-x="1025" /> + + + <glyph glyph-name="sousuo" unicode="" d="M501.6 871.7C262.1 899.8 45.3 728.4 17.3 489s143.3-456.3 382.8-484.3S856.3 148 884.4 387.4 741 843.7 501.6 871.7z m-95.4-814.2C196 82.1 45.5 272.5 70.1 482.8s215 360.7 425.3 336.1 360.7-215 336.1-425.3-215-360.7-425.3-336.1zM1005.2-16l-220 181.9c-10.6 8.8-26.4 7.3-35.2-3.3l-2.1-2.5c-8.8-10.6-7.3-26.4 3.3-35.2l220-181.9c10.6-8.8 26.4-7.3 35.2 3.3l2.1 2.5c8.9 10.6 7.4 26.4-3.3 35.2z" horiz-adv-x="1024" /> + + + <glyph glyph-name="fanhui" unicode="" d="M511.002727 893.207635C228.973899 893.207635 0.398909 664.632645 0.398909 382.60381800000005s228.57499-510.603818 510.603818-510.603818 510.603818 228.57499 510.603818 510.603818-228.57499 510.603818-510.603818 510.603817z m0-971.343981c-254.50409 0-460.740164 206.236073-460.740164 460.740164s206.236073 460.740164 460.740164 460.740163 460.740164-206.236073 460.740164-460.740163-206.236073-460.740164-460.740164-460.740164zM753.53954 357.67199100000005h-544.511102c-13.762369 0-24.931827 11.169459-24.931827 24.931827s11.169459 24.931827 24.931827 24.931827h544.511102c13.762369 0 24.931827-11.169459 24.931827-24.931827s-11.169459-24.931827-24.931827-24.931827zM829.033113 363.05726500000003l-198.557071-166.544604c-10.571095-8.87573-26.228282-7.479548-35.104012 3.091546-8.87573 10.571095-7.479548 26.228282 3.091546 35.104013L797.020647 401.352552c10.571095 8.87573 26.228282 7.479548 35.104012-3.091547 8.87573-10.571095 7.479548-26.328009-3.091546-35.20374zM829.033113 402.250097l-198.557071 166.544605c-10.571095 8.87573-26.228282 7.479548-35.104012-3.091547-8.87573-10.571095-7.479548-26.228282 3.091546-35.104012l198.557071-166.644332c10.571095-8.87573 26.228282-7.479548 35.104012 3.091547 8.87573 10.571095 7.479548 26.328009-3.091546 35.203739z" horiz-adv-x="1024" /> + + + <glyph glyph-name="cuowu" unicode="" d="M875.086452 742.269942C676.053818 941.302575 353.260522 941.302575 154.128323 742.269942s-199.032634-521.825929 0-720.958129 521.825929-199.032634 720.958129 0 199.032634 521.825929 0 720.958129zM725.836868 170.561396c-9.757478-9.757478-25.488922-9.757478-35.246399 0L514.557604 346.594261 338.624306 170.561396c-9.757478-9.757478-25.488922-9.757478-35.2464 0s-9.757478 25.488922 0 35.2464l176.032865 176.032864-176.032865 175.933299c-9.757478 9.757478-9.757478 25.488922 0 35.246399 9.757478 9.757478 25.488922 9.757478 35.2464 0l176.032864-176.032865 176.032865 176.032865c9.757478 9.757478 25.488922 9.757478 35.246399 0 9.757478-9.757478 9.757478-25.488922 0-35.246399L549.804004 381.84066 725.836868 205.807796c9.657912-9.757478 9.657912-25.488922 0-35.2464z" horiz-adv-x="1028" /> + + + <glyph glyph-name="zhengque" unicode="" d="M513.099356 895.400351c-282.634394 0-511.700176-229.065782-511.700176-511.700175s229.065782-511.700176 511.700176-511.700176 511.700176 229.065782 511.700176 511.700176S795.73375 895.400351 513.099356 895.400351z m225.567831-399.865703L461.429631 218.397033c-9.794261-9.794261-25.585009-9.794261-35.37927 0L287.631466 356.91587c-9.794261 9.794261-9.794261 25.585009 0 35.37927 9.794261 9.794261 25.585009 9.794261 35.37927 0l120.829202-120.929144 259.547921 259.547922c9.794261 9.794261 25.585009 9.794261 35.37927 0 9.69432-9.794261 9.69432-25.585009-0.099942-35.37927z" horiz-adv-x="1025" /> + + + <glyph glyph-name="jingshi" unicode="" d="M878.815746 744.39056C679.198314 943.908184 355.618456 943.908184 156.100832 744.39056S-43.416792 221.293078 156.100832 21.675646s523.097482-199.517624 722.714914 0 199.517624 523.097482 0 722.714914z m-385.361453-48.507036c27.547206 0 49.904358-22.357152 49.904358-49.904358s-22.357152-49.904358-49.904358-49.904358-49.904358 22.357152-49.904358 49.904358 22.357152 49.904358 49.904358 49.904358z m148.714987-600.848472c0-13.773603-11.178576-24.952179-24.952179-24.952179h-199.617432c-13.773603 0-24.952179 11.178576-24.952179 24.952179s11.178576 24.952179 24.952179 24.95218H492.056971v395.242516h-74.457302c-13.773603 0-24.952179 11.178576-24.952179 24.952179s11.178576 24.952179 24.952179 24.952179h99.808716c13.773603 0 24.952179-11.178576 24.952179-24.952179v-420.194695h74.856537c13.773603 0 24.952179-11.178576 24.952179-24.95218z" horiz-adv-x="1030" /> + + + <glyph glyph-name="xitongpeizhi" unicode="" d="M214 209c-55.2 0-100-44.8-100-100s44.8-100 100-100 100 44.8 100 100-44.8 100-100 100z m0-150c-27.6 0-50 22.4-50 50s22.4 50 50 50 50-22.4 50-50-22.4-50-50-50zM239 167V871c0 13.8-11.2 25-25 25s-25-11.2-25-25v-704h50zM189 50v-153c0-13.8 11.2-25 25-25s25 11.2 25 25V50h-50zM517 452c-55.2 0-100-44.8-100-100s44.8-100 100-100 100 44.8 100 100-44.8 100-100 100z m0-150c-27.6 0-50 22.4-50 50s22.4 50 50 50 50-22.4 50-50-22.4-50-50-50zM542 430V871c0 13.8-11.2 25-25 25s-25-11.2-25-25v-441h50zM492 279v-382c0-13.8 11.2-25 25-25s25 11.2 25 25V279h-50zM910 659c0 55.2-44.8 100-100 100s-100-44.8-100-100 44.8-100 100-100 100 44.8 100 100z m-50 0c0-27.6-22.4-50-50-50s-50 22.4-50 50 22.4 50 50 50 50-22.4 50-50zM835 601v-704c0-13.8-11.2-25-25-25s-25 11.2-25 25V601h50zM785 718V871c0 13.8 11.2 25 25 25s25-11.2 25-25v-153h-50z" horiz-adv-x="1024" /> + + + <glyph glyph-name="shujuchaxun" unicode="" d="M477-78H108.8c-13.8 0-25 11.2-25 25V821c0 13.8 11.2 25 25 25h750c13.8 0 25-11.2 25-25v-469h50V846c0 27.6-22.4 50-50 50h-800c-27.6 0-50-22.4-50-50v-924c0-27.6 22.4-50 50-50H477v50zM909 354m-25 0a25 25 0 1 1 50 0 25 25 0 1 1-50 0ZM482-103m-25 0a25 25 0 1 1 50 0 25 25 0 1 1-50 0ZM767 647H169c-13.7 0-25 11.2-25 25 0 13.7 11.2 25 25 25h598c13.8 0 25-11.2 25-25s-11.2-25-25-25zM767 385.5H169c-13.7 0-25 11.3-25 25s11.2 25 25 25h598c13.8 0 25-11.3 25-25 0-13.8-11.2-25-25-25zM474 124H184c-13.7 0-25 11.3-25 25 0 13.8 11.2 25 25 25h290c13.7 0 25-11.3 25-25 0-13.8-11.2-25-25-25zM895.8-118.9l-97.5 110.8c-9.1 10.3-8.1 26.2 2.2 35.3 10.3 9.1 26.2 8.1 35.3-2.2l97.5-110.8c9.1-10.3 8.1-26.2-2.2-35.3-10.3-9.1-26.2-8.1-35.3 2.2zM795.7 295.3C708 336 604 297.9 563.3 210.2c-40.7-87.7-2.6-191.7 85.1-232.4 87.7-40.7 191.7-2.6 232.4 85.1 40.7 87.7 2.6 191.8-85.1 232.4zM669.5 23.2c-62.6 29-89.8 103.4-60.8 166S712 279 774.7 250c62.6-29 89.8-103.4 60.8-166-29.1-62.6-103.4-89.9-166-60.8z" horiz-adv-x="1024" /> + + + <glyph glyph-name="baobiaoshuchu" unicode="" d="M471.539512-102.52487799999994m-25.475122 0a25.475122 25.475122 0 1 1 50.950244 0 25.475122 25.475122 0 1 1-50.950244 0ZM913.108293 353.03024400000004m-25.475122 0a25.475122 25.475122 0 1 1 50.950244 0 25.475122 25.475122 0 1 1-50.950244 0ZM888.632195 896H313.194146l-41.959024-49.95122h592.421463c13.786537 0 24.97561-11.189073 24.97561-24.975609v-472.538537h49.95122V846.04878c0 27.573073-22.378146 49.95122-49.95122 49.95122zM39.461463-43.08292700000004c0-61.539902 22.378146-83.918049 49.95122-83.918049h380.628293v49.95122H114.388293c-13.786537 0-24.97561 11.189073-24.97561 24.97561V642.247805l-47.953171-19.980488M173.330732 755.637073L313.194146 896v-273.732683H39.461463zM579.933659 302.579512H261.244878c-13.786537 0-24.97561 11.189073-24.97561 24.97561s11.189073 24.97561 24.97561 24.97561h318.688781c13.786537 0 24.97561-11.189073 24.975609-24.97561s-11.189073-24.97561-24.975609-24.97561zM705.810732 513.373659H261.244878c-13.786537 0-24.97561 11.189073-24.97561 24.975609s11.189073 24.97561 24.97561 24.97561h444.565854c13.786537 0 24.97561-11.189073 24.975609-24.97561s-11.189073-24.97561-24.975609-24.975609zM751.266341 274.60682899999995c-110.392195 0-199.804878-89.412683-199.804878-199.804878s89.412683-199.804878 199.804878-199.804878 199.804878 89.412683 199.804879 199.804878-89.412683 199.804878-199.804879 199.804878z m0-349.658536c-82.71922 0-149.853659 67.134439-149.853658 149.853658s67.134439 149.853659 149.853658 149.853659 149.853659-67.134439 149.853659-149.853659-67.134439-149.853659-149.853659-149.853658zM845.674146 36.839023999999995H655.859512c-13.786537 0-24.97561 11.189073-24.97561 24.97561s11.189073 24.97561 24.97561 24.97561h189.814634c13.786537 0 24.97561-11.189073 24.97561-24.97561s-11.189073-24.97561-24.97561-24.97561zM829.090341 48.827316999999994L750.766829 109.26829299999997c-10.889366 8.391805-12.887415 24.076488-4.495609 35.065756 8.391805 10.889366 24.076488 12.887415 35.065756 4.49561l78.323512-60.440976c10.889366-8.391805 12.887415-24.076488 4.49561-35.065756-8.491707-10.989268-24.17639-12.987317-35.065757-4.49561zM862.457756 44.63141499999995L786.931512-15.110243999999966c-10.789463-8.59161-26.574049-6.693463-35.065756 4.096l-0.199805 0.199805c-8.59161 10.789463-6.693463 26.574049 4.096 35.065756l75.626147 59.741659c10.789463 8.59161 26.574049 6.693463 35.065756-4.096l0.199805-0.199805c8.491707-10.789463 6.693463-26.474146-4.195903-35.065756z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-" unicode="" d="M512 896C230.4 896 0 665.6 0 384s230.4-512 512-512 512 230.4 512 512S793.6 896 512 896z m292.571429-585.142857H219.428571v146.285714h585.142858v-146.285714z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-1" unicode="" d="M512 896C230.4 896 0 665.6 0 384s230.4-512 512-512 512 230.4 512 512S793.6 896 512 896z m-73.142857-797.257143l-270.628572 270.628572 102.4 102.4 168.228572-168.228572 314.514286 314.514286 102.4-102.4L438.857143 98.742857z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-2" unicode="" d="M512 896C230.4 896 0 665.6 0 384s230.4-512 512-512 512 230.4 512 512S793.6 896 512 896z m292.571429-585.142857h-219.428572v-219.428572h-146.285714v219.428572H219.428571v146.285714h219.428572V676.571429h146.285714v-219.428572h219.428572v-146.285714z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-3" unicode="" d="M1024 676.571429H0v-146.285715h146.285714v-585.142857c0-40.228571 32.914286-73.142857 73.142857-73.142857h585.142858c40.228571 0 73.142857 32.914286 73.142857 73.142857V530.285714h146.285714V676.571429zM365.714286 18.285714H292.571429V530.285714h73.142857v-512z m182.857143 0h-73.142858V530.285714h73.142858v-512z m182.857142 0h-73.142857V530.285714h73.142857v-512z m0 731.428572H292.571429V896h438.857142v-146.285714z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-4" unicode="" d="M658.285714 683.885714l153.6-153.6-658.285714-658.285714H0v153.6l658.285714 658.285714z m343.771429 87.771429L899.657143 874.057143c-14.628571 14.628571-36.571429 14.628571-51.2 0l-120.685714-120.685714 153.6-153.6 120.685714 120.685714c14.628571 14.628571 14.628571 36.571429 0 51.2z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-5" unicode="" d="M512 676.571429V896L219.428571 603.428571l292.571429-292.571428v219.428571c142.628571 0 256-113.371429 256-256s-113.371429-256-256-256-256 113.371429-256 256H109.714286c0-223.085714 179.2-402.285714 402.285714-402.285714s402.285714 179.2 402.285714 402.285714S735.085714 676.571429 512 676.571429z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-6" unicode="" d="M872.768683 327.516014c3.644128 18.220641 3.644128 36.441281 3.644128 58.30605s-3.644128 36.441281-3.644128 58.30605l112.967972 83.814946c14.576512 10.932384 18.220641 32.797153 10.932384 47.373666l-76.52669 134.83274c-10.932384 14.576512-29.153025 21.864769-47.373666 14.576513l-127.544484-54.661922c-29.153025 25.508897-61.950178 43.729537-98.391459 58.30605L628.6121 866.846975c-7.288256 14.576512-21.864769 29.153025-40.08541 29.153025h-153.05338c-18.220641 0-32.797153-14.576512-36.441282-32.797153l-18.22064-138.476868c-36.441281-14.576512-69.238434-32.797153-98.391459-58.30605L154.875445 724.725979c-18.220641 7.288256-36.441281 0-47.373666-14.576513L30.975089 575.316726c-10.932384-14.576512-3.644128-36.441281 10.932384-47.373666l112.967972-83.814946C151.231317 422.263345 147.587189 404.042705 147.587189 385.822064s3.644128-36.441281 3.644128-58.30605L38.263345 243.701068c-14.576512-10.932384-18.220641-32.797153-10.932384-47.373666l76.52669-134.83274c10.932384-14.576512 29.153025-21.864769 47.373666-14.576513l127.544484 54.661922c29.153025-25.508897 61.950178-43.729537 98.391459-58.30605l18.22064-138.476868c3.644128-18.220641 18.220641-32.797153 36.441281-32.797153H584.882562c18.220641 0 32.797153 14.576512 36.441281 32.797153l18.220641 138.476868c36.441281 14.576512 69.238434 32.797153 98.391459 58.30605l127.544484-54.661922c18.220641-7.288256 36.441281 0 47.373666 14.576513l76.52669 134.83274c10.932384 14.576512 3.644128 36.441281-10.932384 47.373666l-105.679716 83.814946zM512 203.615658c-102.035587 0-182.206406 80.170819-182.206406 182.206406s80.170819 182.206406 182.206406 182.206406 182.206406-80.170819 182.206406-182.206406-80.170819-182.206406-182.206406-182.206406z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-7" unicode="" d="M808.228571 384l-475.428571-479.085714-80.457143 80.457143 402.285714 398.628571-402.285714 398.628571L332.8 863.085714z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-8" unicode="" d="M512 87.771429L32.914286 563.2l80.457143 80.457143 398.628571-402.285714 398.628571 402.285714 80.457143-80.457143z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-9" unicode="" d="M146.285714 530.285714L512 896l365.714286-365.714286zM877.714286 237.714286L512-128 146.285714 237.714286z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-10" unicode="" d="M815.542857 468.114286l-277.942857-277.942857c-14.628571-14.628571-36.571429-14.628571-51.2 0l-277.942857 277.942857c-21.942857 21.942857-7.314286 62.171429 25.6 62.171428h555.885714c32.914286 0 47.542857-40.228571 25.6-62.171428z" horiz-adv-x="1024" /> + + + <glyph glyph-name="-11" unicode="" d="M292.571429 310.857143v-219.428572l-292.571429 292.571429 292.571429 292.571429v-219.428572h438.857142v-146.285714H292.571429zM877.714286 896h-292.571429c-80.457143 0-146.285714-65.828571-146.285714-146.285714v-146.285715h146.285714V749.714286h292.571429v-731.428572h-292.571429v146.285715h-146.285714v-146.285715c0-80.457143 65.828571-146.285714 146.285714-146.285714h292.571429c80.457143 0 146.285714 65.828571 146.285714 146.285714V749.714286c0 80.457143-65.828571 146.285714-146.285714 146.285714z" horiz-adv-x="1024" /> + + + + + </font> +</defs></svg> diff --git a/src/components/MyIcons/iconfont.ttf b/src/components/MyIcons/iconfont.ttf new file mode 100644 index 0000000..c6e1ab5 --- /dev/null +++ b/src/components/MyIcons/iconfont.ttf Binary files differ diff --git a/src/components/MyIcons/iconfont.woff b/src/components/MyIcons/iconfont.woff new file mode 100644 index 0000000..798dbe5 --- /dev/null +++ b/src/components/MyIcons/iconfont.woff Binary files differ diff --git a/src/components/MyIcons/index.css b/src/components/MyIcons/index.css new file mode 100644 index 0000000..817cf7e --- /dev/null +++ b/src/components/MyIcons/index.css @@ -0,0 +1,345 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1554181418589'); /* IE9 */ + src: url('iconfont.eot?t=1554181418589#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1554181418589') format('woff'), + url('iconfont.ttf?t=1554181418589') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1554181418589#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-communityfill:before { + content: "\e740"; +} + +.icon-community:before { + content: "\e741"; +} + +.icon-lingdang:before { + content: "\f01f5"; +} + +.icon-like:before { + content: "\e69c"; +} + +.icon-likefill:before { + content: "\e69d"; +} + +.icon-plane:before { + content: "\e6b1"; +} + +.icon-planefill:before { + content: "\e6b2"; +} + +.icon-huiyuan:before { + content: "\e61d"; +} + +.icon-biaoxingfill:before { + content: "\e732"; +} + +.icon-biaoxing:before { + content: "\e733"; +} + +.icon-dianpufill:before { + content: "\e735"; +} + +.icon-dianpu:before { + content: "\e736"; +} + +.icon-gouwuchefill:before { + content: "\e73c"; +} + +.icon-gouwuche:before { + content: "\e73d"; +} + +.icon-kefufill:before { + content: "\e742"; +} + +.icon-kefu:before { + content: "\e743"; +} + +.icon-liuyanfill:before { + content: "\e744"; +} + +.icon-liuyan:before { + content: "\e745"; +} + +.icon-pengyoufill:before { + content: "\e746"; +} + +.icon-pengyou:before { + content: "\e747"; +} + +.icon-shouyefill:before { + content: "\e750"; +} + +.icon-shouye:before { + content: "\e751"; +} + +.icon-tongzhifill:before { + content: "\e758"; +} + +.icon-tongzhi:before { + content: "\e759"; +} + +.icon-xihuanfill:before { + content: "\e760"; +} + +.icon-xihuan:before { + content: "\e761"; +} + +.icon-xinxifill:before { + content: "\e762"; +} + +.icon-xinxi:before { + content: "\e763"; +} + +.icon-yonghufill:before { + content: "\e787"; +} + +.icon-yonghu:before { + content: "\e788"; +} + +.icon-zantongfill:before { + content: "\e793"; +} + +.icon-zantong:before { + content: "\e794"; +} + +.icon-leimupinleifenleileibie2:before { + content: "\e7f8"; +} + +.icon-leimupinleifenleileibie:before { + content: "\e7f9"; +} + +.icon-edit:before { + content: "\e61c"; +} + +.icon-917caidan_fenlei:before { + content: "\e685"; +} + +.icon-weixuanzhong-01:before { + content: "\e61a"; +} + +.icon-xuanzhong:before { + content: "\e62d"; +} + +.icon-shujudaping:before { + content: "\e748"; +} + +.icon-yigouxuan:before { + content: "\e63d"; +} + +.icon-weigouxuan:before { + content: "\e63e"; +} + +.icon-phone_light:before { + content: "\e7fe"; +} + +.icon-Myassessment:before { + content: "\e649"; +} + +.icon-Myquestionandansw:before { + content: "\e64a"; +} + +.icon-tuichu:before { + content: "\e6dd"; +} + +.icon-caidan:before { + content: "\e613"; +} + +.icon-icon_alipay_line:before { + content: "\eb90"; +} + +.icon-icon_addressbook:before { + content: "\eb8f"; +} + +.icon-icon_at:before { + content: "\eb91"; +} + +.icon-icon_coinpurse_line:before { + content: "\eb92"; +} + +.icon-icon_details:before { + content: "\eb93"; +} + +.icon-icon_delete:before { + content: "\eb94"; +} + +.icon-icon_GPS:before { + content: "\eb95"; +} + +.icon-icon_horn:before { + content: "\eb96"; +} + +.icon-icon_im_voice:before { + content: "\eb97"; +} + +.icon-icon_notice:before { + content: "\eb99"; +} + +.icon-icon_phone:before { + content: "\eb9a"; +} + +.icon-weibiaoti-:before { + content: "\e651"; +} + +.icon-zhihang:before { + content: "\e654"; +} + +.icon-baocun:before { + content: "\e655"; +} + +.icon-zhongzhi:before { + content: "\e657"; +} + +.icon-shanchu:before { + content: "\e658"; +} + +.icon-sousuo:before { + content: "\e659"; +} + +.icon-fanhui:before { + content: "\e65a"; +} + +.icon-cuowu:before { + content: "\e65b"; +} + +.icon-zhengque:before { + content: "\e65c"; +} + +.icon-jingshi:before { + content: "\e65e"; +} + +.icon-xitongpeizhi:before { + content: "\e65f"; +} + +.icon-shujuchaxun:before { + content: "\e660"; +} + +.icon-baobiaoshuchu:before { + content: "\e661"; +} + +.icon--:before { + content: "\e61e"; +} + +.icon--1:before { + content: "\e61f"; +} + +.icon--2:before { + content: "\e620"; +} + +.icon--3:before { + content: "\e621"; +} + +.icon--4:before { + content: "\e622"; +} + +.icon--5:before { + content: "\e623"; +} + +.icon--6:before { + content: "\e624"; +} + +.icon--7:before { + content: "\e625"; +} + +.icon--8:before { + content: "\e626"; +} + +.icon--9:before { + content: "\e627"; +} + +.icon--10:before { + content: "\e628"; +} + +.icon--11:before { + content: "\e629"; +} + diff --git a/src/components/MyIcons/index.vue b/src/components/MyIcons/index.vue new file mode 100644 index 0000000..47ecd8a --- /dev/null +++ b/src/components/MyIcons/index.vue @@ -0,0 +1,45 @@ + +<template> + <div class="fonts"> + <span><i :class="getIcon" :style="'font-size:'+getSize" />{{ content }}</span> + </div> +</template> + +<script> + +export default { + components: { + }, + props: { + content: { + type: String, + default: '' + }, + icons: { + type: String, + default: '' + }, + fontsize: { + type: String, + default: '14' + } + }, + computed: { + getIcon() { + return 'iconfont ' + this.icons + }, + getSize() { + return this.fontsize + 'px' + } + }, + methods: { + } +} +</script> +<style src="./index.css"></style> +<style scoped> + .fonts{ + color: black; + font-size: 13px; + } +</style> diff --git a/src/components/PanThumb/index.vue b/src/components/PanThumb/index.vue index 1bcf417..de6940a 100644 --- a/src/components/PanThumb/index.vue +++ b/src/components/PanThumb/index.vue @@ -5,8 +5,7 @@ <slot /> </div> </div> - <!-- eslint-disable-next-line --> - <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> + <img :src="image" class="pan-thumb"> </div> </template> @@ -53,8 +52,7 @@ .pan-thumb { width: 100%; height: 100%; - background-position: center center; - background-size: cover; + background-size: 100%; border-radius: 50%; overflow: hidden; position: absolute; @@ -62,7 +60,7 @@ transition: all 0.3s ease-in-out; } -/* .pan-thumb:after { +.pan-thumb:after { content: ''; width: 8px; height: 8px; @@ -73,7 +71,7 @@ margin: -4px 0 0 -4px; background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%); box-shadow: 0 0 1px rgba(255, 255, 255, 0.9); -} */ +} .pan-info { position: absolute; diff --git a/src/components/RuoYi/Breadcrumb/index.vue b/src/components/RuoYi/Breadcrumb/index.vue new file mode 100644 index 0000000..1696f54 --- /dev/null +++ b/src/components/RuoYi/Breadcrumb/index.vue @@ -0,0 +1,74 @@ +<template> + <el-breadcrumb class="app-breadcrumb" separator="/"> + <transition-group name="breadcrumb"> + <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> + <span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span> + <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> + </el-breadcrumb-item> + </transition-group> + </el-breadcrumb> +</template> + +<script> +export default { + data() { + return { + levelList: null + } + }, + watch: { + $route(route) { + // if you go to the redirect page, do not update the breadcrumbs + if (route.path.startsWith('/redirect/')) { + return + } + this.getBreadcrumb() + } + }, + created() { + this.getBreadcrumb() + }, + methods: { + getBreadcrumb() { + // only show routes with meta.title + let matched = this.$route.matched.filter(item => item.meta && item.meta.title) + const first = matched[0] + + if (!this.isDashboard(first)) { + matched = [{ path: '/index', meta: { title: '棣栭〉' }}].concat(matched) + } + + this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) + }, + isDashboard(route) { + const name = route && route.name + if (!name) { + return false + } + return name.trim() === 'Index' + }, + handleLink(item) { + const { redirect, path } = item + if (redirect) { + this.$router.push(redirect) + return + } + this.$router.push(path) + } + } +} +</script> + +<style lang="scss" scoped> +.app-breadcrumb.el-breadcrumb { + display: inline-block; + font-size: 14px; + line-height: 50px; + margin-left: 8px; + + .no-redirect { + color: #97a8be; + cursor: text; + } +} +</style> diff --git a/src/components/Crontab/day.vue b/src/components/RuoYi/Crontab/day.vue similarity index 100% rename from src/components/Crontab/day.vue rename to src/components/RuoYi/Crontab/day.vue diff --git a/src/components/Crontab/hour.vue b/src/components/RuoYi/Crontab/hour.vue similarity index 100% rename from src/components/Crontab/hour.vue rename to src/components/RuoYi/Crontab/hour.vue diff --git a/src/components/Crontab/index.vue b/src/components/RuoYi/Crontab/index.vue similarity index 100% rename from src/components/Crontab/index.vue rename to src/components/RuoYi/Crontab/index.vue diff --git a/src/components/Crontab/min.vue b/src/components/RuoYi/Crontab/min.vue similarity index 100% rename from src/components/Crontab/min.vue rename to src/components/RuoYi/Crontab/min.vue diff --git a/src/components/Crontab/month.vue b/src/components/RuoYi/Crontab/month.vue similarity index 100% rename from src/components/Crontab/month.vue rename to src/components/RuoYi/Crontab/month.vue diff --git a/src/components/Crontab/result.vue b/src/components/RuoYi/Crontab/result.vue similarity index 100% rename from src/components/Crontab/result.vue rename to src/components/RuoYi/Crontab/result.vue diff --git a/src/components/Crontab/second.vue b/src/components/RuoYi/Crontab/second.vue similarity index 100% rename from src/components/Crontab/second.vue rename to src/components/RuoYi/Crontab/second.vue diff --git a/src/components/Crontab/week.vue b/src/components/RuoYi/Crontab/week.vue similarity index 100% rename from src/components/Crontab/week.vue rename to src/components/RuoYi/Crontab/week.vue diff --git a/src/components/Crontab/year.vue b/src/components/RuoYi/Crontab/year.vue similarity index 100% rename from src/components/Crontab/year.vue rename to src/components/RuoYi/Crontab/year.vue diff --git a/src/components/DictData/index.js b/src/components/RuoYi/DictData/index.js similarity index 100% rename from src/components/DictData/index.js rename to src/components/RuoYi/DictData/index.js diff --git a/src/components/DictTag/index.vue b/src/components/RuoYi/DictTag/index.vue similarity index 100% rename from src/components/DictTag/index.vue rename to src/components/RuoYi/DictTag/index.vue diff --git a/src/components/Editor/index.vue b/src/components/RuoYi/Editor/index.vue similarity index 100% rename from src/components/Editor/index.vue rename to src/components/RuoYi/Editor/index.vue diff --git a/src/components/FileUpload/index.vue b/src/components/RuoYi/FileUpload/index.vue similarity index 100% rename from src/components/FileUpload/index.vue rename to src/components/RuoYi/FileUpload/index.vue diff --git a/src/components/RuoYi/Hamburger/index.vue b/src/components/RuoYi/Hamburger/index.vue new file mode 100644 index 0000000..368b002 --- /dev/null +++ b/src/components/RuoYi/Hamburger/index.vue @@ -0,0 +1,44 @@ +<template> + <div style="padding: 0 15px;" @click="toggleClick"> + <svg + :class="{'is-active':isActive}" + class="hamburger" + viewBox="0 0 1024 1024" + xmlns="http://www.w3.org/2000/svg" + width="64" + height="64" + > + <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" /> + </svg> + </div> +</template> + +<script> +export default { + name: 'Hamburger', + props: { + isActive: { + type: Boolean, + default: false + } + }, + methods: { + toggleClick() { + this.$emit('toggleClick') + } + } +} +</script> + +<style scoped> +.hamburger { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 20px; +} + +.hamburger.is-active { + transform: rotate(180deg); +} +</style> diff --git a/src/components/HeaderSearch/index.vue b/src/components/RuoYi/HeaderSearch/index.vue similarity index 100% rename from src/components/HeaderSearch/index.vue rename to src/components/RuoYi/HeaderSearch/index.vue diff --git a/src/components/IconSelect/index.vue b/src/components/RuoYi/IconSelect/index.vue similarity index 100% rename from src/components/IconSelect/index.vue rename to src/components/RuoYi/IconSelect/index.vue diff --git a/src/components/IconSelect/requireIcons.js b/src/components/RuoYi/IconSelect/requireIcons.js similarity index 70% rename from src/components/IconSelect/requireIcons.js rename to src/components/RuoYi/IconSelect/requireIcons.js index 99e5c54..b063483 100644 --- a/src/components/IconSelect/requireIcons.js +++ b/src/components/RuoYi/IconSelect/requireIcons.js @@ -1,5 +1,5 @@ -const req = require.context('../../assets/icons/svg', false, /\.svg$/) +const req = require.context('../../../assets/icons/svg', false, /\.svg$/) const requireAll = requireContext => requireContext.keys() const re = /\.\/(.*)\.svg/ diff --git a/src/components/ImagePreview/index.vue b/src/components/RuoYi/ImagePreview/index.vue similarity index 100% rename from src/components/ImagePreview/index.vue rename to src/components/RuoYi/ImagePreview/index.vue diff --git a/src/components/ImageUpload/index.vue b/src/components/RuoYi/ImageUpload/index.vue similarity index 100% rename from src/components/ImageUpload/index.vue rename to src/components/RuoYi/ImageUpload/index.vue diff --git a/src/components/Pagination/index.vue b/src/components/RuoYi/Pagination/index.vue similarity index 100% rename from src/components/Pagination/index.vue rename to src/components/RuoYi/Pagination/index.vue diff --git a/src/components/RuoYi/PanThumb/index.vue b/src/components/RuoYi/PanThumb/index.vue new file mode 100644 index 0000000..1bcf417 --- /dev/null +++ b/src/components/RuoYi/PanThumb/index.vue @@ -0,0 +1,142 @@ +<template> + <div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item"> + <div class="pan-info"> + <div class="pan-info-roles-container"> + <slot /> + </div> + </div> + <!-- eslint-disable-next-line --> + <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> + </div> +</template> + +<script> +export default { + name: 'PanThumb', + props: { + image: { + type: String, + required: true + }, + zIndex: { + type: Number, + default: 1 + }, + width: { + type: String, + default: '150px' + }, + height: { + type: String, + default: '150px' + } + } +} +</script> + +<style scoped> +.pan-item { + width: 200px; + height: 200px; + border-radius: 50%; + display: inline-block; + position: relative; + cursor: default; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); +} + +.pan-info-roles-container { + padding: 20px; + text-align: center; +} + +.pan-thumb { + width: 100%; + height: 100%; + background-position: center center; + background-size: cover; + border-radius: 50%; + overflow: hidden; + position: absolute; + transform-origin: 95% 40%; + transition: all 0.3s ease-in-out; +} + +/* .pan-thumb:after { + content: ''; + width: 8px; + height: 8px; + position: absolute; + border-radius: 50%; + top: 40%; + left: 95%; + margin: -4px 0 0 -4px; + background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%); + box-shadow: 0 0 1px rgba(255, 255, 255, 0.9); +} */ + +.pan-info { + position: absolute; + width: inherit; + height: inherit; + border-radius: 50%; + overflow: hidden; + box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05); +} + +.pan-info h3 { + color: #fff; + text-transform: uppercase; + position: relative; + letter-spacing: 2px; + font-size: 18px; + margin: 0 60px; + padding: 22px 0 0 0; + height: 85px; + font-family: 'Open Sans', Arial, sans-serif; + text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3); +} + +.pan-info p { + color: #fff; + padding: 10px 5px; + font-style: italic; + margin: 0 30px; + font-size: 12px; + border-top: 1px solid rgba(255, 255, 255, 0.5); +} + +.pan-info p a { + display: block; + color: #333; + width: 80px; + height: 80px; + background: rgba(255, 255, 255, 0.3); + border-radius: 50%; + color: #fff; + font-style: normal; + font-weight: 700; + text-transform: uppercase; + font-size: 9px; + letter-spacing: 1px; + padding-top: 24px; + margin: 7px auto 0; + font-family: 'Open Sans', Arial, sans-serif; + opacity: 0; + transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, background 0.2s linear 0s; + transform: translateX(60px) rotate(90deg); +} + +.pan-info p a:hover { + background: rgba(255, 255, 255, 0.5); +} + +.pan-item:hover .pan-thumb { + transform: rotate(-110deg); +} + +.pan-item:hover .pan-info p a { + opacity: 1; + transform: translateX(0px) rotate(0deg); +} +</style> diff --git a/src/components/ParentView/index.vue b/src/components/RuoYi/ParentView/index.vue similarity index 100% rename from src/components/ParentView/index.vue rename to src/components/RuoYi/ParentView/index.vue diff --git a/src/components/RightPanel/index.vue b/src/components/RuoYi/RightPanel/index.vue similarity index 100% rename from src/components/RightPanel/index.vue rename to src/components/RuoYi/RightPanel/index.vue diff --git a/src/components/RightToolbar/index.vue b/src/components/RuoYi/RightToolbar/index.vue similarity index 100% rename from src/components/RightToolbar/index.vue rename to src/components/RuoYi/RightToolbar/index.vue diff --git a/src/components/RuoYi/Screenfull/index.vue b/src/components/RuoYi/Screenfull/index.vue new file mode 100644 index 0000000..d4e539c --- /dev/null +++ b/src/components/RuoYi/Screenfull/index.vue @@ -0,0 +1,57 @@ +<template> + <div> + <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" /> + </div> +</template> + +<script> +import screenfull from 'screenfull' + +export default { + name: 'Screenfull', + data() { + return { + isFullscreen: false + } + }, + mounted() { + this.init() + }, + beforeDestroy() { + this.destroy() + }, + methods: { + click() { + if (!screenfull.isEnabled) { + this.$message({ message: '浣犵殑娴忚鍣ㄤ笉鏀寔鍏ㄥ睆', type: 'warning' }) + return false + } + screenfull.toggle() + }, + change() { + this.isFullscreen = screenfull.isFullscreen + }, + init() { + if (screenfull.isEnabled) { + screenfull.on('change', this.change) + } + }, + destroy() { + if (screenfull.isEnabled) { + screenfull.off('change', this.change) + } + } + } +} +</script> + +<style scoped> +.screenfull-svg { + display: inline-block; + cursor: pointer; + fill: #5a5e66;; + width: 20px; + height: 20px; + vertical-align: 10px; +} +</style> diff --git a/src/components/SizeSelect/index.vue b/src/components/RuoYi/SizeSelect/index.vue similarity index 100% rename from src/components/SizeSelect/index.vue rename to src/components/RuoYi/SizeSelect/index.vue diff --git a/src/components/RuoYi/SvgIcon/index.vue b/src/components/RuoYi/SvgIcon/index.vue new file mode 100644 index 0000000..e4bf5ad --- /dev/null +++ b/src/components/RuoYi/SvgIcon/index.vue @@ -0,0 +1,61 @@ +<template> + <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" /> + <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> + <use :xlink:href="iconName" /> + </svg> +</template> + +<script> +import { isExternal } from '@/utils/validate' + +export default { + name: 'SvgIcon', + props: { + iconClass: { + type: String, + required: true + }, + className: { + type: String, + default: '' + } + }, + computed: { + isExternal() { + return isExternal(this.iconClass) + }, + iconName() { + return `#icon-${this.iconClass}` + }, + svgClass() { + if (this.className) { + return 'svg-icon ' + this.className + } else { + return 'svg-icon' + } + }, + styleExternalIcon() { + return { + mask: `url(${this.iconClass}) no-repeat 50% 50%`, + '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` + } + } + } +} +</script> + +<style scoped> +.svg-icon { + width: 1em; + height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} + +.svg-external-icon { + background-color: currentColor; + mask-size: cover!important; + display: inline-block; +} +</style> diff --git a/src/components/ThemePicker/index.vue b/src/components/RuoYi/ThemePicker/index.vue similarity index 100% rename from src/components/ThemePicker/index.vue rename to src/components/RuoYi/ThemePicker/index.vue diff --git a/src/components/TopNav/index.vue b/src/components/RuoYi/TopNav/index.vue similarity index 100% rename from src/components/TopNav/index.vue rename to src/components/RuoYi/TopNav/index.vue diff --git a/src/components/iFrame/index.vue b/src/components/RuoYi/iFrame/index.vue similarity index 100% rename from src/components/iFrame/index.vue rename to src/components/RuoYi/iFrame/index.vue diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue index d4e539c..260c90d 100644 --- a/src/components/Screenfull/index.vue +++ b/src/components/Screenfull/index.vue @@ -22,8 +22,11 @@ }, methods: { click() { - if (!screenfull.isEnabled) { - this.$message({ message: '浣犵殑娴忚鍣ㄤ笉鏀寔鍏ㄥ睆', type: 'warning' }) + if (!screenfull.enabled) { + this.$message({ + message: 'you browser can not work', + type: 'warning' + }) return false } screenfull.toggle() @@ -32,12 +35,12 @@ this.isFullscreen = screenfull.isFullscreen }, init() { - if (screenfull.isEnabled) { + if (screenfull.enabled) { screenfull.on('change', this.change) } }, destroy() { - if (screenfull.isEnabled) { + if (screenfull.enabled) { screenfull.off('change', this.change) } } diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue index e4bf5ad..27da76c 100644 --- a/src/components/SvgIcon/index.vue +++ b/src/components/SvgIcon/index.vue @@ -1,13 +1,10 @@ <template> - <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" /> - <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> + <svg :class="svgClass" aria-hidden="true" v-on="$listeners"> <use :xlink:href="iconName" /> </svg> </template> <script> -import { isExternal } from '@/utils/validate' - export default { name: 'SvgIcon', props: { @@ -21,9 +18,6 @@ } }, computed: { - isExternal() { - return isExternal(this.iconClass) - }, iconName() { return `#icon-${this.iconClass}` }, @@ -32,12 +26,6 @@ return 'svg-icon ' + this.className } else { return 'svg-icon' - } - }, - styleExternalIcon() { - return { - mask: `url(${this.iconClass}) no-repeat 50% 50%`, - '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` } } } @@ -51,11 +39,5 @@ vertical-align: -0.15em; fill: currentColor; overflow: hidden; -} - -.svg-external-icon { - background-color: currentColor; - mask-size: cover!important; - display: inline-block; } </style> diff --git a/src/components/TextHoverEffect/Mallki.vue b/src/components/TextHoverEffect/Mallki.vue new file mode 100644 index 0000000..5d6d16c --- /dev/null +++ b/src/components/TextHoverEffect/Mallki.vue @@ -0,0 +1,113 @@ +<template> + <a :class="className" class="link--mallki" href="#"> + {{ text }} + <span :data-letters="text" /> + <span :data-letters="text" /> + </a> +</template> + +<script> +export default { + props: { + className: { + type: String, + default: '' + }, + text: { + type: String, + default: 'vue-element-admin' + } + } +} +</script> + +<style> +/* Mallki */ + +.link--mallki { + font-weight: 800; + color: #4dd9d5; + font-family: 'Dosis', sans-serif; + -webkit-transition: color 0.5s 0.25s; + transition: color 0.5s 0.25s; + overflow: hidden; + position: relative; + display: inline-block; + line-height: 1; + outline: none; + text-decoration: none; +} + +.link--mallki:hover { + -webkit-transition: none; + transition: none; + color: transparent; +} + +.link--mallki::before { + content: ''; + width: 100%; + height: 6px; + margin: -3px 0 0 0; + background: #3888fa; + position: absolute; + left: 0; + top: 50%; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + -webkit-transition: -webkit-transform 0.4s; + transition: transform 0.4s; + -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); + transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); +} + +.link--mallki:hover::before { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} + +.link--mallki span { + position: absolute; + height: 50%; + width: 100%; + left: 0; + top: 0; + overflow: hidden; +} + +.link--mallki span::before { + content: attr(data-letters); + color: red; + position: absolute; + left: 0; + width: 100%; + color: #3888fa; + -webkit-transition: -webkit-transform 0.5s; + transition: transform 0.5s; +} + +.link--mallki span:nth-child(2) { + top: 50%; +} + +.link--mallki span:first-child::before { + top: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} + +.link--mallki span:nth-child(2)::before { + bottom: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); +} + +.link--mallki:hover span::before { + -webkit-transition-delay: 0.3s; + transition-delay: 0.3s; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} +</style> diff --git a/src/components/UserInfo/index.vue b/src/components/UserInfo/index.vue new file mode 100644 index 0000000..55e6170 --- /dev/null +++ b/src/components/UserInfo/index.vue @@ -0,0 +1,78 @@ +<template> + <router-link key="expand" class="user-link" to="/userInfo"> + <img v-if="logo" :src="logo" class="avatar" alt=""> + <div class="user-name">{{ name }}</div> + <el-divider direction="vertical" /> + <div> + <div v-if="deptName" class="dept-name">{{ deptName }}</div> + <div v-if="titleName" class="title-name">{{ titleName }}</div> + </div> + </router-link> +</template> + +<script> +import { getFtpUrl } from '@/utils/base' +import storage from 'store' +export default { + name: 'UserInfo', + data() { + return { + name: '娆㈣繋鎮細admin', + deptName: storage.get('user').deptName || '', + logo: '', + titleName: storage.get('user').titleName || '' + } + }, + created() { + this.name = this.$store.getters.name + if (this.$store.getters.info.headUrl) { + this.logo = this.getUrl(JSON.parse(this.$store.getters.info.headUrl)[0].path) + } else { + this.logo = 'https://tse1-mm.cn.bing.net/th/id/R-C.6e0766f48cac2b57efcfdf15bbb4124f?rik=XWu%2bR657LNpTRg&riu=http%3a%2f%2fwww.jcrb.com%2fxmtpd%2fmengman%2f201707%2fW020170712672258195967.jpg&ehk=FceMdlWHihzZotopRc8GtPnS6wuFZfWw%2bjA5BGB3qlA%3d&risl=&pid=ImgRaw&r=0' + } + }, + methods: { + getUrl(path) { + if (path.substr(0, 7).toLowerCase() == 'http://' || path.substr(0, 8).toLowerCase() == 'https://') { + return path + } else { + return getFtpUrl() + path + } + } + } +} +</script> + +<style scoped> +.user-link { + display: flex; + align-items: center; + height: 72px; + margin-right: 10px; + font-size: 0; +} + +.avatar { + width: 45px; + height: 45px; + margin-right: 15px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; +} + +.user-name { + color: #333; + font-weight: 600; + font-size: 18px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; +} +.dept-name{ + font-size: 16px; + color: #333; +} +.title-name{ + font-size: 16px; + color: #E04E5F; +} +</style> diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 6ba7ee9..97e5249 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -36,12 +36,12 @@ <script> import { mapGetters } from 'vuex' -import Breadcrumb from '@/components/Breadcrumb' -import TopNav from '@/components/TopNav' -import Hamburger from '@/components/Hamburger' -import Screenfull from '@/components/Screenfull' -import SizeSelect from '@/components/SizeSelect' -import Search from '@/components/HeaderSearch' +import Breadcrumb from '@/components/RuoYi/Breadcrumb' +import TopNav from '@/components/RuoYi/TopNav' +import Hamburger from '@/components/RuoYi/Hamburger' +import Screenfull from '@/components/RuoYi/Screenfull' +import SizeSelect from '@/components/RuoYi/SizeSelect' +import Search from '@/components/RuoYi/HeaderSearch' import RuoYiGit from '@/components/RuoYi/Git' import RuoYiDoc from '@/components/RuoYi/Doc' diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue index 8b49842..be1db42 100644 --- a/src/layout/components/Settings/index.vue +++ b/src/layout/components/Settings/index.vue @@ -38,7 +38,7 @@ <el-divider/> <h3 class="drawer-title">绯荤粺甯冨眬閰嶇疆</h3> - + <div class="drawer-item"> <span>寮�鍚� TopNav</span> <el-switch v-model="topNav" class="drawer-switch" /> @@ -74,7 +74,7 @@ </template> <script> -import ThemePicker from '@/components/ThemePicker' +import ThemePicker from '@/components/RuoYi/ThemePicker' export default { components: { ThemePicker }, diff --git a/src/layout/index.vue b/src/layout/index.vue index f048657..65d45ae 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -16,7 +16,7 @@ </template> <script> -import RightPanel from '@/components/RightPanel' +import RightPanel from '@/components/RuoYi/RightPanel' import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components' import ResizeMixin from './mixin/ResizeHandler' import { mapState } from 'vuex' diff --git a/src/main.js b/src/main.js index 13c6cf2..1cb2625 100644 --- a/src/main.js +++ b/src/main.js @@ -20,23 +20,23 @@ import { getConfigKey } from "@/api/system/config"; import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; // 鍒嗛〉缁勪欢 -import Pagination from "@/components/Pagination"; +import Pagination from "@/components/RuoYi/Pagination"; // 鑷畾涔夎〃鏍煎伐鍏风粍浠� -import RightToolbar from "@/components/RightToolbar" +import RightToolbar from "@/components/RuoYi/RightToolbar" // 瀵屾枃鏈粍浠� -import Editor from "@/components/Editor" +import Editor from "@/components/RuoYi/Editor" // 鏂囦欢涓婁紶缁勪欢 -import FileUpload from "@/components/FileUpload" +import FileUpload from "@/components/RuoYi/FileUpload" // 鍥剧墖涓婁紶缁勪欢 -import ImageUpload from "@/components/ImageUpload" +import ImageUpload from "@/components/RuoYi/ImageUpload" // 鍥剧墖棰勮缁勪欢 -import ImagePreview from "@/components/ImagePreview" +import ImagePreview from "@/components/RuoYi/ImagePreview" // 瀛楀吀鏍囩缁勪欢 -import DictTag from '@/components/DictTag' +import DictTag from '@/components/RuoYi/DictTag' // 澶撮儴鏍囩缁勪欢 import VueMeta from 'vue-meta' // 瀛楀吀鏁版嵁缁勪欢 -import DictData from '@/components/DictData' +import DictData from '@/components/RuoYi/DictData' // 鍏ㄥ眬鏂规硶鎸傝浇 Vue.prototype.getDicts = getDicts diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/1_close.png b/src/plugins/ztree/css/zTreeStyle/img/diy/1_close.png new file mode 100644 index 0000000..68ccb3c --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/1_close.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/1_open.png b/src/plugins/ztree/css/zTreeStyle/img/diy/1_open.png new file mode 100644 index 0000000..d6ff36d --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/1_open.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/2.png b/src/plugins/ztree/css/zTreeStyle/img/diy/2.png new file mode 100644 index 0000000..9eff506 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/2.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/3.png b/src/plugins/ztree/css/zTreeStyle/img/diy/3.png new file mode 100644 index 0000000..d7ba6d0 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/3.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/4.png b/src/plugins/ztree/css/zTreeStyle/img/diy/4.png new file mode 100644 index 0000000..753e2bf --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/4.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/5.png b/src/plugins/ztree/css/zTreeStyle/img/diy/5.png new file mode 100644 index 0000000..0c5eccd --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/5.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/6.png b/src/plugins/ztree/css/zTreeStyle/img/diy/6.png new file mode 100644 index 0000000..070b835 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/6.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/7.png b/src/plugins/ztree/css/zTreeStyle/img/diy/7.png new file mode 100644 index 0000000..532b037 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/7.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/8.png b/src/plugins/ztree/css/zTreeStyle/img/diy/8.png new file mode 100644 index 0000000..a8f3a86 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/8.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/diy/9.png b/src/plugins/ztree/css/zTreeStyle/img/diy/9.png new file mode 100644 index 0000000..4db73cd --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/diy/9.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/line_conn.gif b/src/plugins/ztree/css/zTreeStyle/img/line_conn.gif new file mode 100644 index 0000000..d561d36 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/line_conn.gif Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/loading.gif b/src/plugins/ztree/css/zTreeStyle/img/loading.gif new file mode 100644 index 0000000..e8c2892 --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/loading.gif Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.gif b/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.gif new file mode 100644 index 0000000..50c94fd --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.gif Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.png b/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.png new file mode 100644 index 0000000..ffda01e --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/img/zTreeStandard.png Binary files differ diff --git a/src/plugins/ztree/css/zTreeStyle/zTreeStyle.css b/src/plugins/ztree/css/zTreeStyle/zTreeStyle.css new file mode 100644 index 0000000..4a1705b --- /dev/null +++ b/src/plugins/ztree/css/zTreeStyle/zTreeStyle.css @@ -0,0 +1,97 @@ +/*------------------------------------- +zTree Style + +version: 3.5.19 +author: Hunter.z +email: hunter.z@263.net +website: http://code.google.com/p/jquerytree/ + +-------------------------------------*/ + +.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} +.ztree {margin:0; padding:5px; color:#333} +.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0} +.ztree li ul{ margin:0; padding:0 0 0 18px} +.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;} + +.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent; + text-decoration:none; vertical-align:top; display: inline-block} +.ztree li a:hover {text-decoration:underline} +.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} +.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} +.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid; + opacity:0.8; filter:alpha(opacity=80)} +.ztree li a.tmpTargetNode_prev {} +.ztree li a.tmpTargetNode_next {} +.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; + font-size:12px; border:1px #7EC4CC solid; *border:0px} +.ztree li span {line-height:16px; margin-right:2px} +.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle; + border:0 none; cursor: pointer;outline:none; + background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; + background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} + +.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto} +.ztree li span.button.chk.checkbox_false_full {background-position:0 0} +.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px} +.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px} +.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px} +.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px} +.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0} +.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px} +.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px} +.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px} +.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px} +.ztree li span.button.chk.radio_false_full {background-position:-28px 0} +.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px} +.ztree li span.button.chk.radio_false_part {background-position:-28px -28px} +.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px} +.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px} +.ztree li span.button.chk.radio_true_full {background-position:-42px 0} +.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px} +.ztree li span.button.chk.radio_true_part {background-position:-42px -28px} +.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px} +.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px} + +.ztree li span.button.switch {width:18px; height:18px} +.ztree li span.button.root_open{background-position:-92px -54px} +.ztree li span.button.root_close{background-position:-74px -54px} +.ztree li span.button.roots_open{background-position:-92px 0} +.ztree li span.button.roots_close{background-position:-74px 0} +.ztree li span.button.center_open{background-position:-92px -18px} +.ztree li span.button.center_close{background-position:-74px -18px} +.ztree li span.button.bottom_open{background-position:-92px -36px} +.ztree li span.button.bottom_close{background-position:-74px -36px} +.ztree li span.button.noline_open{background-position:-92px -72px} +.ztree li span.button.noline_close{background-position:-74px -72px} +.ztree li span.button.root_docu{ background:none;} +.ztree li span.button.roots_docu{background-position:-56px 0} +.ztree li span.button.center_docu{background-position:-56px -18px} +.ztree li span.button.bottom_docu{background-position:-56px -36px} +.ztree li span.button.noline_docu{ background:none;} + +.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle} +.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle} +.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle} +.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle} +.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle} + +.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} + +ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} + +span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; + background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; + background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} + +ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} +.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} + +/* level style*/ +/*.ztree li span.button.level0 { + display:none; +} +.ztree li ul.level0 { + padding:0; + background:none; +}*/ \ No newline at end of file diff --git a/src/plugins/ztree/js/jquery-1.4.4.min.js b/src/plugins/ztree/js/jquery-1.4.4.min.js new file mode 100644 index 0000000..8f3ca2e --- /dev/null +++ b/src/plugins/ztree/js/jquery-1.4.4.min.js @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| +h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; +if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], +z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, +s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= +s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| +[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, +false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, +a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= +c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, +a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", +colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== +1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), +l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, +"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= +a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= +w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, +Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= +c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; +var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== +"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, +xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, +a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= +1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== +"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); +c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, +[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); +return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== +B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, +POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== +i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= +i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, +"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== +"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; +for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), +i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; +c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, +not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, +"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= +c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, +b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): +this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", +d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, +d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== +"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| +1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== +b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& +h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; +for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= +parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", +height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= +f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, +"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/src/plugins/ztree/js/jquery.ztree.all.js b/src/plugins/ztree/js/jquery.ztree.all.js new file mode 100644 index 0000000..c0f0a88 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.all.js @@ -0,0 +1,3841 @@ + +/* + * JQuery zTree core v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + var settings = {}, roots = {}, caches = {}, + //default consts of core + _consts = { + className: { + BUTTON: "button", + LEVEL: "level", + ICO_LOADING: "ico_loading", + SWITCH: "switch", + NAME: 'node_name' + }, + event: { + NODECREATED: "ztree_nodeCreated", + CLICK: "ztree_click", + EXPAND: "ztree_expand", + COLLAPSE: "ztree_collapse", + ASYNC_SUCCESS: "ztree_async_success", + ASYNC_ERROR: "ztree_async_error", + REMOVE: "ztree_remove", + SELECTED: "ztree_selected", + UNSELECTED: "ztree_unselected" + }, + id: { + A: "_a", + ICON: "_ico", + SPAN: "_span", + SWITCH: "_switch", + UL: "_ul" + }, + line: { + ROOT: "root", + ROOTS: "roots", + CENTER: "center", + BOTTOM: "bottom", + NOLINE: "noline", + LINE: "line" + }, + folder: { + OPEN: "open", + CLOSE: "close", + DOCU: "docu" + }, + node: { + CURSELECTED: "curSelectedNode" + } + }, + //default setting of core + _setting = { + treeId: "", + treeObj: null, + view: { + addDiyDom: null, + autoCancelSelected: true, + dblClickExpand: true, + expandSpeed: "fast", + fontCss: {}, + nameIsHTML: false, + selectedMulti: true, + showIcon: true, + showLine: true, + showTitle: true, + txtSelectedEnable: false + }, + data: { + key: { + isParent: "isParent", + children: "children", + name: "name", + title: "", + url: "url", + icon: "icon" + }, + simpleData: { + enable: false, + idKey: "id", + pIdKey: "pId", + rootPId: null + }, + keep: { + parent: false, + leaf: false + } + }, + async: { + enable: false, + contentType: "application/x-www-form-urlencoded", + type: "post", + dataType: "text", + headers: {}, + xhrFields: {}, + url: "", + autoParam: [], + otherParam: [], + dataFilter: null + }, + callback: { + beforeAsync: null, + beforeClick: null, + beforeDblClick: null, + beforeRightClick: null, + beforeMouseDown: null, + beforeMouseUp: null, + beforeExpand: null, + beforeCollapse: null, + beforeRemove: null, + + onAsyncError: null, + onAsyncSuccess: null, + onNodeCreated: null, + onClick: null, + onDblClick: null, + onRightClick: null, + onMouseDown: null, + onMouseUp: null, + onExpand: null, + onCollapse: null, + onRemove: null + } + }, + //default root of core + //zTree use root to save full data + _initRoot = function (setting) { + var r = data.getRoot(setting); + if (!r) { + r = {}; + data.setRoot(setting, r); + } + data.nodeChildren(setting, r, []); + r.expandTriggerFlag = false; + r.curSelectedList = []; + r.noSelection = true; + r.createdNodes = []; + r.zId = 0; + r._ver = (new Date()).getTime(); + }, + //default cache of core + _initCache = function (setting) { + var c = data.getCache(setting); + if (!c) { + c = {}; + data.setCache(setting, c); + } + c.nodes = []; + c.doms = []; + }, + //default bindEvent of core + _bindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.bind(c.NODECREATED, function (event, treeId, node) { + tools.apply(setting.callback.onNodeCreated, [event, treeId, node]); + }); + + o.bind(c.CLICK, function (event, srcEvent, treeId, node, clickFlag) { + tools.apply(setting.callback.onClick, [srcEvent, treeId, node, clickFlag]); + }); + + o.bind(c.EXPAND, function (event, treeId, node) { + tools.apply(setting.callback.onExpand, [event, treeId, node]); + }); + + o.bind(c.COLLAPSE, function (event, treeId, node) { + tools.apply(setting.callback.onCollapse, [event, treeId, node]); + }); + + o.bind(c.ASYNC_SUCCESS, function (event, treeId, node, msg) { + tools.apply(setting.callback.onAsyncSuccess, [event, treeId, node, msg]); + }); + + o.bind(c.ASYNC_ERROR, function (event, treeId, node, XMLHttpRequest, textStatus, errorThrown) { + tools.apply(setting.callback.onAsyncError, [event, treeId, node, XMLHttpRequest, textStatus, errorThrown]); + }); + + o.bind(c.REMOVE, function (event, treeId, treeNode) { + tools.apply(setting.callback.onRemove, [event, treeId, treeNode]); + }); + + o.bind(c.SELECTED, function (event, treeId, node) { + tools.apply(setting.callback.onSelected, [treeId, node]); + }); + o.bind(c.UNSELECTED, function (event, treeId, node) { + tools.apply(setting.callback.onUnSelected, [treeId, node]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.unbind(c.NODECREATED) + .unbind(c.CLICK) + .unbind(c.EXPAND) + .unbind(c.COLLAPSE) + .unbind(c.ASYNC_SUCCESS) + .unbind(c.ASYNC_ERROR) + .unbind(c.REMOVE) + .unbind(c.SELECTED) + .unbind(c.UNSELECTED); + }, + //default event proxy of core + _eventProxy = function (event) { + var target = event.target, + setting = data.getSetting(event.data.treeId), + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null, + tmp = null; + + if (tools.eqs(event.type, "mousedown")) { + treeEventType = "mousedown"; + } else if (tools.eqs(event.type, "mouseup")) { + treeEventType = "mouseup"; + } else if (tools.eqs(event.type, "contextmenu")) { + treeEventType = "contextmenu"; + } else if (tools.eqs(event.type, "click")) { + if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "switchNode"; + } else { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "clickNode"; + } + } + } else if (tools.eqs(event.type, "dblclick")) { + treeEventType = "dblclick"; + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "switchNode"; + } + } + if (treeEventType.length > 0 && tId.length == 0) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + } + } + // event to node + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "switchNode" : + var isParent = data.nodeIsParent(setting, node); + if (!isParent) { + nodeEventType = ""; + } else if (tools.eqs(event.type, "click") + || (tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [setting.treeId, node], setting.view.dblClickExpand))) { + nodeEventCallback = handler.onSwitchNode; + } else { + nodeEventType = ""; + } + break; + case "clickNode" : + nodeEventCallback = handler.onClickNode; + break; + } + } + // event to zTree + switch (treeEventType) { + case "mousedown" : + treeEventCallback = handler.onZTreeMousedown; + break; + case "mouseup" : + treeEventCallback = handler.onZTreeMouseup; + break; + case "dblclick" : + treeEventCallback = handler.onZTreeDblclick; + break; + case "contextmenu" : + treeEventCallback = handler.onZTreeContextmenu; + break; + } + var proxyResult = { + stop: false, + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of core + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + var r = data.getRoot(setting), + children = data.nodeChildren(setting, n); + n.level = level; + n.tId = setting.treeId + "_" + (++r.zId); + n.parentTId = parentNode ? parentNode.tId : null; + n.open = (typeof n.open == "string") ? tools.eqs(n.open, "true") : !!n.open; + var isParent = data.nodeIsParent(setting, n); + if (tools.isArray(children)) { + data.nodeIsParent(setting, n, true); + n.zAsync = true; + } else { + isParent = data.nodeIsParent(setting, n, isParent); + n.open = (isParent && !setting.async.enable) ? n.open : false; + n.zAsync = !isParent; + } + n.isFirstNode = isFirstNode; + n.isLastNode = isLastNode; + n.getParentNode = function () { + return data.getNodeCache(setting, n.parentTId); + }; + n.getPreNode = function () { + return data.getPreNode(setting, n); + }; + n.getNextNode = function () { + return data.getNextNode(setting, n); + }; + n.getIndex = function () { + return data.getNodeIndex(setting, n); + }; + n.getPath = function () { + return data.getNodePath(setting, n); + }; + n.isAjaxing = false; + data.fixPIdKeyValue(setting, n); + }, + _init = { + bind: [_bindEvent], + unbind: [_unbindEvent], + caches: [_initCache], + nodes: [_initNode], + proxys: [_eventProxy], + roots: [_initRoot], + beforeA: [], + afterA: [], + innerBeforeA: [], + innerAfterA: [], + zTreeTools: [] + }, + //method of operate data + data = { + addNodeCache: function (setting, node) { + data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node; + }, + getNodeCacheId: function (tId) { + return tId.substring(tId.lastIndexOf("_") + 1); + }, + addAfterA: function (afterA) { + _init.afterA.push(afterA); + }, + addBeforeA: function (beforeA) { + _init.beforeA.push(beforeA); + }, + addInnerAfterA: function (innerAfterA) { + _init.innerAfterA.push(innerAfterA); + }, + addInnerBeforeA: function (innerBeforeA) { + _init.innerBeforeA.push(innerBeforeA); + }, + addInitBind: function (bindEvent) { + _init.bind.push(bindEvent); + }, + addInitUnBind: function (unbindEvent) { + _init.unbind.push(unbindEvent); + }, + addInitCache: function (initCache) { + _init.caches.push(initCache); + }, + addInitNode: function (initNode) { + _init.nodes.push(initNode); + }, + addInitProxy: function (initProxy, isFirst) { + if (!!isFirst) { + _init.proxys.splice(0, 0, initProxy); + } else { + _init.proxys.push(initProxy); + } + }, + addInitRoot: function (initRoot) { + _init.roots.push(initRoot); + }, + addNodesData: function (setting, parentNode, index, nodes) { + var children = data.nodeChildren(setting, parentNode), params; + if (!children) { + children = data.nodeChildren(setting, parentNode, []); + index = -1; + } else if (index >= children.length) { + index = -1; + } + + if (children.length > 0 && index === 0) { + children[0].isFirstNode = false; + view.setNodeLineIcos(setting, children[0]); + } else if (children.length > 0 && index < 0) { + children[children.length - 1].isLastNode = false; + view.setNodeLineIcos(setting, children[children.length - 1]); + } + data.nodeIsParent(setting, parentNode, true); + + if (index < 0) { + data.nodeChildren(setting, parentNode, children.concat(nodes)); + } else { + params = [index, 0].concat(nodes); + children.splice.apply(children, params); + } + }, + addSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + if (!data.isSelectedNode(setting, node)) { + root.curSelectedList.push(node); + } + }, + addCreatedNode: function (setting, node) { + if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { + var root = data.getRoot(setting); + root.createdNodes.push(node); + } + }, + addZTreeTools: function (zTreeTools) { + _init.zTreeTools.push(zTreeTools); + }, + exSetting: function (s) { + $.extend(true, _setting, s); + }, + fixPIdKeyValue: function (setting, node) { + if (setting.data.simpleData.enable) { + node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId; + } + }, + getAfterA: function (setting, node, array) { + for (var i = 0, j = _init.afterA.length; i < j; i++) { + _init.afterA[i].apply(this, arguments); + } + }, + getBeforeA: function (setting, node, array) { + for (var i = 0, j = _init.beforeA.length; i < j; i++) { + _init.beforeA[i].apply(this, arguments); + } + }, + getInnerAfterA: function (setting, node, array) { + for (var i = 0, j = _init.innerAfterA.length; i < j; i++) { + _init.innerAfterA[i].apply(this, arguments); + } + }, + getInnerBeforeA: function (setting, node, array) { + for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) { + _init.innerBeforeA[i].apply(this, arguments); + } + }, + getCache: function (setting) { + return caches[setting.treeId]; + }, + getNodeIndex: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length - 1; i <= l; i++) { + if (children[i] === node) { + return i; + } + } + return -1; + }, + getNextNode: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length - 1; i <= l; i++) { + if (children[i] === node) { + return (i == l ? null : children[i + 1]); + } + } + return null; + }, + getNodeByParam: function (setting, nodes, key, value) { + if (!nodes || !key) return null; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (node[key] == value) { + return nodes[i]; + } + var children = data.nodeChildren(setting, node); + var tmp = data.getNodeByParam(setting, children, key, value); + if (tmp) return tmp; + } + return null; + }, + getNodeCache: function (setting, tId) { + if (!tId) return null; + var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)]; + return n ? n : null; + }, + getNodePath: function (setting, node) { + if (!node) return null; + + var path; + if (node.parentTId) { + path = node.getParentNode().getPath(); + } else { + path = []; + } + + if (path) { + path.push(node); + } + + return path; + }, + getNodes: function (setting) { + return data.nodeChildren(setting, data.getRoot(setting)); + }, + getNodesByParam: function (setting, nodes, key, value) { + if (!nodes || !key) return []; + var result = []; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (node[key] == value) { + result.push(node); + } + var children = data.nodeChildren(setting, node); + result = result.concat(data.getNodesByParam(setting, children, key, value)); + } + return result; + }, + getNodesByParamFuzzy: function (setting, nodes, key, value) { + if (!nodes || !key) return []; + var result = []; + value = value.toLowerCase(); + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) { + result.push(node); + } + var children = data.nodeChildren(setting, node); + result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value)); + } + return result; + }, + getNodesByFilter: function (setting, nodes, filter, isSingle, invokeParam) { + if (!nodes) return (isSingle ? null : []); + var result = isSingle ? null : []; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (tools.apply(filter, [node, invokeParam], false)) { + if (isSingle) { + return node; + } + result.push(node); + } + var children = data.nodeChildren(setting, node); + var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam); + if (isSingle && !!tmpResult) { + return tmpResult; + } + result = isSingle ? tmpResult : result.concat(tmpResult); + } + return result; + }, + getPreNode: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i] === node) { + return (i == 0 ? null : children[i - 1]); + } + } + return null; + }, + getRoot: function (setting) { + return setting ? roots[setting.treeId] : null; + }, + getRoots: function () { + return roots; + }, + getSetting: function (treeId) { + return settings[treeId]; + }, + getSettings: function () { + return settings; + }, + getZTreeTools: function (treeId) { + var r = this.getRoot(this.getSetting(treeId)); + return r ? r.treeTools : null; + }, + initCache: function (setting) { + for (var i = 0, j = _init.caches.length; i < j; i++) { + _init.caches[i].apply(this, arguments); + } + }, + initNode: function (setting, level, node, parentNode, preNode, nextNode) { + for (var i = 0, j = _init.nodes.length; i < j; i++) { + _init.nodes[i].apply(this, arguments); + } + }, + initRoot: function (setting) { + for (var i = 0, j = _init.roots.length; i < j; i++) { + _init.roots[i].apply(this, arguments); + } + }, + isSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + for (var i = 0, j = root.curSelectedList.length; i < j; i++) { + if (node === root.curSelectedList[i]) return true; + } + return false; + }, + nodeChildren: function (setting, node, newChildren) { + if (!node) { + return null; + } + var key = setting.data.key.children; + if (typeof newChildren !== 'undefined') { + node[key] = newChildren; + } + return node[key]; + }, + nodeIsParent: function (setting, node, newIsParent) { + if (!node) { + return false; + } + var key = setting.data.key.isParent; + if (typeof newIsParent !== 'undefined') { + if (typeof newIsParent === "string") { + newIsParent = tools.eqs(newIsParent, "true"); + } + newIsParent = !!newIsParent; + node[key] = newIsParent; + } else if (typeof node[key] == "string"){ + node[key] = tools.eqs(node[key], "true"); + } else { + node[key] = !!node[key]; + } + return node[key]; + }, + nodeName: function (setting, node, newName) { + var key = setting.data.key.name; + if (typeof newName !== 'undefined') { + node[key] = newName; + } + return "" + node[key]; + }, + nodeTitle: function (setting, node) { + var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title; + return "" + node[t]; + }, + removeNodeCache: function (setting, node) { + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + data.removeNodeCache(setting, children[i]); + } + } + data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null; + }, + removeSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + for (var i = 0, j = root.curSelectedList.length; i < j; i++) { + if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) { + root.curSelectedList.splice(i, 1); + setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, node]); + i--; + j--; + } + } + }, + setCache: function (setting, cache) { + caches[setting.treeId] = cache; + }, + setRoot: function (setting, root) { + roots[setting.treeId] = root; + }, + setZTreeTools: function (setting, zTreeTools) { + for (var i = 0, j = _init.zTreeTools.length; i < j; i++) { + _init.zTreeTools[i].apply(this, arguments); + } + }, + transformToArrayFormat: function (setting, nodes) { + if (!nodes) return []; + var r = []; + if (tools.isArray(nodes)) { + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + _do(node); + } + } else { + _do(nodes); + } + return r; + + function _do(_node) { + r.push(_node); + var children = data.nodeChildren(setting, _node); + if (children) { + r = r.concat(data.transformToArrayFormat(setting, children)); + } + } + }, + transformTozTreeFormat: function (setting, sNodes) { + var i, l, + key = setting.data.simpleData.idKey, + parentKey = setting.data.simpleData.pIdKey; + if (!key || key == "" || !sNodes) return []; + + if (tools.isArray(sNodes)) { + var r = []; + var tmpMap = {}; + for (i = 0, l = sNodes.length; i < l; i++) { + tmpMap[sNodes[i][key]] = sNodes[i]; + } + for (i = 0, l = sNodes.length; i < l; i++) { + var p = tmpMap[sNodes[i][parentKey]]; + if (p && sNodes[i][key] != sNodes[i][parentKey]) { + var children = data.nodeChildren(setting, p); + if (!children) { + children = data.nodeChildren(setting, p, []); + } + children.push(sNodes[i]); + } else { + r.push(sNodes[i]); + } + } + return r; + } else { + return [sNodes]; + } + } + }, + //method of event proxy + event = { + bindEvent: function (setting) { + for (var i = 0, j = _init.bind.length; i < j; i++) { + _init.bind[i].apply(this, arguments); + } + }, + unbindEvent: function (setting) { + for (var i = 0, j = _init.unbind.length; i < j; i++) { + _init.unbind[i].apply(this, arguments); + } + }, + bindTree: function (setting) { + var eventParam = { + treeId: setting.treeId + }, + o = setting.treeObj; + if (!setting.view.txtSelectedEnable) { + // for can't select text + o.bind('selectstart', handler.onSelectStart).css({ + "-moz-user-select": "-moz-none" + }); + } + o.bind('click', eventParam, event.proxy); + o.bind('dblclick', eventParam, event.proxy); + o.bind('mouseover', eventParam, event.proxy); + o.bind('mouseout', eventParam, event.proxy); + o.bind('mousedown', eventParam, event.proxy); + o.bind('mouseup', eventParam, event.proxy); + o.bind('contextmenu', eventParam, event.proxy); + }, + unbindTree: function (setting) { + var o = setting.treeObj; + o.unbind('selectstart', handler.onSelectStart) + .unbind('click', event.proxy) + .unbind('dblclick', event.proxy) + .unbind('mouseover', event.proxy) + .unbind('mouseout', event.proxy) + .unbind('mousedown', event.proxy) + .unbind('mouseup', event.proxy) + .unbind('contextmenu', event.proxy); + }, + doProxy: function (e) { + var results = []; + for (var i = 0, j = _init.proxys.length; i < j; i++) { + var proxyResult = _init.proxys[i].apply(this, arguments); + results.push(proxyResult); + if (proxyResult.stop) { + break; + } + } + return results; + }, + proxy: function (e) { + var setting = data.getSetting(e.data.treeId); + if (!tools.uCanDo(setting, e)) return true; + var results = event.doProxy(e), + r = true, x = false; + for (var i = 0, l = results.length; i < l; i++) { + var proxyResult = results[i]; + if (proxyResult.nodeEventCallback) { + x = true; + r = proxyResult.nodeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; + } + if (proxyResult.treeEventCallback) { + x = true; + r = proxyResult.treeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; + } + } + return r; + } + }, + //method of event handler + handler = { + onSwitchNode: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (node.open) { + if (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false) return true; + data.getRoot(setting).expandTriggerFlag = true; + view.switchNode(setting, node); + } else { + if (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false) return true; + data.getRoot(setting).expandTriggerFlag = true; + view.switchNode(setting, node); + } + return true; + }, + onClickNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + clickFlag = ((setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey)) && data.isSelectedNode(setting, node)) ? 0 : (setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti) ? 2 : 1; + if (tools.apply(setting.callback.beforeClick, [setting.treeId, node, clickFlag], true) == false) return true; + if (clickFlag === 0) { + view.cancelPreSelectedNode(setting, node); + } else { + view.selectNode(setting, node, clickFlag === 2); + } + setting.treeObj.trigger(consts.event.CLICK, [event, setting.treeId, node, clickFlag]); + return true; + }, + onZTreeMousedown: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeMouseDown, [setting.treeId, node], true)) { + tools.apply(setting.callback.onMouseDown, [event, setting.treeId, node]); + } + return true; + }, + onZTreeMouseup: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeMouseUp, [setting.treeId, node], true)) { + tools.apply(setting.callback.onMouseUp, [event, setting.treeId, node]); + } + return true; + }, + onZTreeDblclick: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeDblClick, [setting.treeId, node], true)) { + tools.apply(setting.callback.onDblClick, [event, setting.treeId, node]); + } + return true; + }, + onZTreeContextmenu: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeRightClick, [setting.treeId, node], true)) { + tools.apply(setting.callback.onRightClick, [event, setting.treeId, node]); + } + return (typeof setting.callback.onRightClick) != "function"; + }, + onSelectStart: function (e) { + var n = e.originalEvent.srcElement.nodeName.toLowerCase(); + return (n === "input" || n === "textarea"); + } + }, + //method of tools for zTree + tools = { + apply: function (fun, param, defaultValue) { + if ((typeof fun) == "function") { + return fun.apply(zt, param ? param : []); + } + return defaultValue; + }, + canAsync: function (setting, node) { + var children = data.nodeChildren(setting, node); + var isParent = data.nodeIsParent(setting, node); + return (setting.async.enable && node && isParent && !(node.zAsync || (children && children.length > 0))); + }, + clone: function (obj) { + if (obj === null) return null; + var o = tools.isArray(obj) ? [] : {}; + for (var i in obj) { + o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()) : (typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i]); + } + return o; + }, + eqs: function (str1, str2) { + return str1.toLowerCase() === str2.toLowerCase(); + }, + isArray: function (arr) { + return Object.prototype.toString.apply(arr) === "[object Array]"; + }, + isElement: function (o) { + return ( + typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 + o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string" + ); + }, + $: function (node, exp, setting) { + if (!!exp && typeof exp != "string") { + setting = exp; + exp = ""; + } + if (typeof node == "string") { + return $(node, setting ? setting.treeObj.get(0).ownerDocument : null); + } else { + return $("#" + node.tId + exp, setting ? setting.treeObj : null); + } + }, + getMDom: function (setting, curDom, targetExpr) { + if (!curDom) return null; + while (curDom && curDom.id !== setting.treeId) { + for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) { + if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) { + return curDom; + } + } + curDom = curDom.parentNode; + } + return null; + }, + getNodeMainDom: function (target) { + return ($(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0)); + }, + isChildOrSelf: function (dom, parentId) { + return ($(dom).closest("#" + parentId).length > 0); + }, + uCanDo: function (setting, e) { + return true; + } + }, + //method of operate ztree dom + view = { + addNodes: function (setting, parentNode, index, newNodes, isSilent) { + var isParent = data.nodeIsParent(setting, parentNode); + if (setting.data.keep.leaf && parentNode && !isParent) { + return; + } + if (!tools.isArray(newNodes)) { + newNodes = [newNodes]; + } + if (setting.data.simpleData.enable) { + newNodes = data.transformTozTreeFormat(setting, newNodes); + } + if (parentNode) { + var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), + target_icoObj = $$(parentNode, consts.id.ICON, setting), + target_ulObj = $$(parentNode, consts.id.UL, setting); + + if (!parentNode.open) { + view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE); + view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE); + parentNode.open = false; + target_ulObj.css({ + "display": "none" + }); + } + + data.addNodesData(setting, parentNode, index, newNodes); + view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index); + if (!isSilent) { + view.expandCollapseParentNode(setting, parentNode, true); + } + } else { + data.addNodesData(setting, data.getRoot(setting), index, newNodes); + view.createNodes(setting, 0, newNodes, null, index); + } + }, + appendNodes: function (setting, level, nodes, parentNode, index, initFlag, openFlag) { + if (!nodes) return []; + var html = []; + + var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), + tmpPChild = data.nodeChildren(setting, tmpPNode), + isFirstNode, isLastNode; + + if (!tmpPChild || index >= tmpPChild.length - nodes.length) { + index = -1; + } + + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (initFlag) { + isFirstNode = ((index === 0 || tmpPChild.length == nodes.length) && (i == 0)); + isLastNode = (index < 0 && i == (nodes.length - 1)); + data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag); + data.addNodeCache(setting, node); + } + var isParent = data.nodeIsParent(setting, node); + + var childHtml = []; + var children = data.nodeChildren(setting, node); + if (children && children.length > 0) { + //make child html first, because checkType + childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open); + } + if (openFlag) { + view.makeDOMNodeMainBefore(html, setting, node); + view.makeDOMNodeLine(html, setting, node); + data.getBeforeA(setting, node, html); + view.makeDOMNodeNameBefore(html, setting, node); + data.getInnerBeforeA(setting, node, html); + view.makeDOMNodeIcon(html, setting, node); + data.getInnerAfterA(setting, node, html); + view.makeDOMNodeNameAfter(html, setting, node); + data.getAfterA(setting, node, html); + if (isParent && node.open) { + view.makeUlHtml(setting, node, html, childHtml.join('')); + } + view.makeDOMNodeMainAfter(html, setting, node); + data.addCreatedNode(setting, node); + } + } + return html; + }, + appendParentULDom: function (setting, node) { + var html = [], + nObj = $$(node, setting); + if (!nObj.get(0) && !!node.parentTId) { + view.appendParentULDom(setting, node.getParentNode()); + nObj = $$(node, setting); + } + var ulObj = $$(node, consts.id.UL, setting); + if (ulObj.get(0)) { + ulObj.remove(); + } + var children = data.nodeChildren(setting, node), + childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true); + view.makeUlHtml(setting, node, html, childHtml.join('')); + nObj.append(html.join('')); + }, + asyncNode: function (setting, node, isSilent, callback) { + var i, l; + var isParent = data.nodeIsParent(setting, node); + if (node && !isParent) { + tools.apply(callback); + return false; + } else if (node && node.isAjaxing) { + return false; + } else if (tools.apply(setting.callback.beforeAsync, [setting.treeId, node], true) == false) { + tools.apply(callback); + return false; + } + if (node) { + node.isAjaxing = true; + var icoObj = $$(node, consts.id.ICON, setting); + icoObj.attr({"style": "", "class": consts.className.BUTTON + " " + consts.className.ICO_LOADING}); + } + + var tmpParam = {}; + var autoParam = tools.apply(setting.async.autoParam, [setting.treeId, node], setting.async.autoParam); + for (i = 0, l = autoParam.length; node && i < l; i++) { + var pKey = autoParam[i].split("="), spKey = pKey; + if (pKey.length > 1) { + spKey = pKey[1]; + pKey = pKey[0]; + } + tmpParam[spKey] = node[pKey]; + } + var otherParam = tools.apply(setting.async.otherParam, [setting.treeId, node], setting.async.otherParam); + if (tools.isArray(otherParam)) { + for (i = 0, l = otherParam.length; i < l; i += 2) { + tmpParam[otherParam[i]] = otherParam[i + 1]; + } + } else { + for (var p in otherParam) { + tmpParam[p] = otherParam[p]; + } + } + + var _tmpV = data.getRoot(setting)._ver; + $.ajax({ + contentType: setting.async.contentType, + cache: false, + type: setting.async.type, + url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url), + data: setting.async.contentType.indexOf('application/json') > -1 ? JSON.stringify(tmpParam) : tmpParam, + dataType: setting.async.dataType, + headers: setting.async.headers, + xhrFields: setting.async.xhrFields, + success: function (msg) { + if (_tmpV != data.getRoot(setting)._ver) { + return; + } + var newNodes = []; + try { + if (!msg || msg.length == 0) { + newNodes = []; + } else if (typeof msg == "string") { + newNodes = eval("(" + msg + ")"); + } else { + newNodes = msg; + } + } catch (err) { + newNodes = msg; + } + + if (node) { + node.isAjaxing = null; + node.zAsync = true; + } + view.setNodeLineIcos(setting, node); + if (newNodes && newNodes !== "") { + newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes); + view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent); + } else { + view.addNodes(setting, node, -1, [], !!isSilent); + } + setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]); + tools.apply(callback); + }, + error: function (XMLHttpRequest, textStatus, errorThrown) { + if (_tmpV != data.getRoot(setting)._ver) { + return; + } + if (node) node.isAjaxing = null; + view.setNodeLineIcos(setting, node); + setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]); + } + }); + return true; + }, + cancelPreSelectedNode: function (setting, node, excludeNode) { + var list = data.getRoot(setting).curSelectedList, + i, n; + for (i = list.length - 1; i >= 0; i--) { + n = list[i]; + if (node === n || (!node && (!excludeNode || excludeNode !== n))) { + $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED); + if (node) { + data.removeSelectedNode(setting, node); + break; + } else { + list.splice(i, 1); + setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, n]); + } + } + } + }, + createNodeCallback: function (setting) { + if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { + var root = data.getRoot(setting); + while (root.createdNodes.length > 0) { + var node = root.createdNodes.shift(); + tools.apply(setting.view.addDiyDom, [setting.treeId, node]); + if (!!setting.callback.onNodeCreated) { + setting.treeObj.trigger(consts.event.NODECREATED, [setting.treeId, node]); + } + } + } + }, + createNodes: function (setting, level, nodes, parentNode, index) { + if (!nodes || nodes.length == 0) return; + var root = data.getRoot(setting), + openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0); + root.createdNodes = []; + var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), + parentObj, nextObj; + + if (!parentNode) { + parentObj = setting.treeObj; + //setting.treeObj.append(zTreeHtml.join('')); + } else { + var ulObj = $$(parentNode, consts.id.UL, setting); + if (ulObj.get(0)) { + parentObj = ulObj; + //ulObj.append(zTreeHtml.join('')); + } + } + if (parentObj) { + if (index >= 0) { + nextObj = parentObj.children()[index]; + } + if (index >= 0 && nextObj) { + $(nextObj).before(zTreeHtml.join('')); + } else { + parentObj.append(zTreeHtml.join('')); + } + } + + view.createNodeCallback(setting); + }, + destroy: function (setting) { + if (!setting) return; + data.initCache(setting); + data.initRoot(setting); + event.unbindTree(setting); + event.unbindEvent(setting); + setting.treeObj.empty(); + delete settings[setting.treeId]; + }, + expandCollapseNode: function (setting, node, expandFlag, animateFlag, callback) { + var root = data.getRoot(setting); + var tmpCb, _callback; + if (!node) { + tools.apply(callback, []); + return; + } + var children = data.nodeChildren(setting, node); + var isParent = data.nodeIsParent(setting, node); + if (root.expandTriggerFlag) { + _callback = callback; + tmpCb = function () { + if (_callback) _callback(); + if (node.open) { + setting.treeObj.trigger(consts.event.EXPAND, [setting.treeId, node]); + } else { + setting.treeObj.trigger(consts.event.COLLAPSE, [setting.treeId, node]); + } + }; + callback = tmpCb; + root.expandTriggerFlag = false; + } + if (!node.open && isParent && ((!$$(node, consts.id.UL, setting).get(0)) || (children && children.length > 0 && !$$(children[0], setting).get(0)))) { + view.appendParentULDom(setting, node); + view.createNodeCallback(setting); + } + if (node.open == expandFlag) { + tools.apply(callback, []); + return; + } + var ulObj = $$(node, consts.id.UL, setting), + switchObj = $$(node, consts.id.SWITCH, setting), + icoObj = $$(node, consts.id.ICON, setting); + + if (isParent) { + node.open = !node.open; + if (node.iconOpen && node.iconClose) { + icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); + } + + if (node.open) { + view.replaceSwitchClass(node, switchObj, consts.folder.OPEN); + view.replaceIcoClass(node, icoObj, consts.folder.OPEN); + if (animateFlag == false || setting.view.expandSpeed == "") { + ulObj.show(); + tools.apply(callback, []); + } else { + if (children && children.length > 0) { + ulObj.slideDown(setting.view.expandSpeed, callback); + } else { + ulObj.show(); + tools.apply(callback, []); + } + } + } else { + view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE); + view.replaceIcoClass(node, icoObj, consts.folder.CLOSE); + if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) { + ulObj.hide(); + tools.apply(callback, []); + } else { + ulObj.slideUp(setting.view.expandSpeed, callback); + } + } + } else { + tools.apply(callback, []); + } + }, + expandCollapseParentNode: function (setting, node, expandFlag, animateFlag, callback) { + if (!node) return; + if (!node.parentTId) { + view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); + return; + } else { + view.expandCollapseNode(setting, node, expandFlag, animateFlag); + } + if (node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback); + } + }, + expandCollapseSonNode: function (setting, node, expandFlag, animateFlag, callback) { + var root = data.getRoot(setting), + treeNodes = (node) ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), + selfAnimateSign = (node) ? false : animateFlag, + expandTriggerFlag = data.getRoot(setting).expandTriggerFlag; + data.getRoot(setting).expandTriggerFlag = false; + if (treeNodes) { + for (var i = 0, l = treeNodes.length; i < l; i++) { + if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign); + } + } + data.getRoot(setting).expandTriggerFlag = expandTriggerFlag; + view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); + }, + isSelectedNode: function (setting, node) { + if (!node) { + return false; + } + var list = data.getRoot(setting).curSelectedList, + i; + for (i = list.length - 1; i >= 0; i--) { + if (node === list[i]) { + return true; + } + } + return false; + }, + makeDOMNodeIcon: function (html, setting, node) { + var nameStr = data.nodeName(setting, node), + name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + html.push("<span id='", node.tId, consts.id.ICON, + "' title='' treeNode", consts.id.ICON, " class='", view.makeNodeIcoClass(setting, node), + "' style='", view.makeNodeIcoStyle(setting, node), "'></span><span id='", node.tId, consts.id.SPAN, + "' class='", consts.className.NAME, + "'>", name, "</span>"); + }, + makeDOMNodeLine: function (html, setting, node) { + html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>"); + }, + makeDOMNodeMainAfter: function (html, setting, node) { + html.push("</li>"); + }, + makeDOMNodeMainBefore: function (html, setting, node) { + html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>"); + }, + makeDOMNodeNameAfter: function (html, setting, node) { + html.push("</a>"); + }, + makeDOMNodeNameBefore: function (html, setting, node) { + var title = data.nodeTitle(setting, node), + url = view.makeNodeUrl(setting, node), + fontcss = view.makeNodeFontCss(setting, node), + fontStyle = []; + for (var f in fontcss) { + fontStyle.push(f, ":", fontcss[f], ";"); + } + html.push("<a id='", node.tId, consts.id.A, "' class='", consts.className.LEVEL, node.level, "' treeNode", consts.id.A, " onclick=\"", (node.click || ''), + "\" ", ((url != null && url.length > 0) ? "href='" + url + "'" : ""), " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(''), + "'"); + if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle) && title) { + html.push("title='", title.replace(/'/g, "'").replace(/</g, '<').replace(/>/g, '>'), "'"); + } + html.push(">"); + }, + makeNodeFontCss: function (setting, node) { + var fontCss = tools.apply(setting.view.fontCss, [setting.treeId, node], setting.view.fontCss); + return (fontCss && ((typeof fontCss) != "function")) ? fontCss : {}; + }, + makeNodeIcoClass: function (setting, node) { + var icoCss = ["ico"]; + if (!node.isAjaxing) { + var isParent = data.nodeIsParent(setting, node); + icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0]; + if (isParent) { + icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); + } else { + icoCss.push(consts.folder.DOCU); + } + } + return consts.className.BUTTON + " " + icoCss.join('_'); + }, + makeNodeIcoStyle: function (setting, node) { + var icoStyle = []; + if (!node.isAjaxing) { + var isParent = data.nodeIsParent(setting, node); + var icon = (isParent && node.iconOpen && node.iconClose) ? (node.open ? node.iconOpen : node.iconClose) : node[setting.data.key.icon]; + if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;"); + if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [setting.treeId, node], true)) { + icoStyle.push("width:0px;height:0px;"); + } + } + return icoStyle.join(''); + }, + makeNodeLineClass: function (setting, node) { + var lineClass = []; + if (setting.view.showLine) { + if (node.level == 0 && node.isFirstNode && node.isLastNode) { + lineClass.push(consts.line.ROOT); + } else if (node.level == 0 && node.isFirstNode) { + lineClass.push(consts.line.ROOTS); + } else if (node.isLastNode) { + lineClass.push(consts.line.BOTTOM); + } else { + lineClass.push(consts.line.CENTER); + } + } else { + lineClass.push(consts.line.NOLINE); + } + if (data.nodeIsParent(setting, node)) { + lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); + } else { + lineClass.push(consts.folder.DOCU); + } + return view.makeNodeLineClassEx(node) + lineClass.join('_'); + }, + makeNodeLineClassEx: function (node) { + return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " "; + }, + makeNodeTarget: function (node) { + return (node.target || "_blank"); + }, + makeNodeUrl: function (setting, node) { + var urlKey = setting.data.key.url; + return node[urlKey] ? node[urlKey] : null; + }, + makeUlHtml: function (setting, node, html, content) { + html.push("<ul id='", node.tId, consts.id.UL, "' class='", consts.className.LEVEL, node.level, " ", view.makeUlLineClass(setting, node), "' style='display:", (node.open ? "block" : "none"), "'>"); + html.push(content); + html.push("</ul>"); + }, + makeUlLineClass: function (setting, node) { + return ((setting.view.showLine && !node.isLastNode) ? consts.line.LINE : ""); + }, + removeChildNodes: function (setting, node) { + if (!node) return; + var nodes = data.nodeChildren(setting, node); + if (!nodes) return; + + for (var i = 0, l = nodes.length; i < l; i++) { + data.removeNodeCache(setting, nodes[i]); + } + data.removeSelectedNode(setting); + delete node[setting.data.key.children]; + + if (!setting.data.keep.parent) { + data.nodeIsParent(setting, node, false); + node.open = false; + var tmp_switchObj = $$(node, consts.id.SWITCH, setting), + tmp_icoObj = $$(node, consts.id.ICON, setting); + view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU); + $$(node, consts.id.UL, setting).remove(); + } else { + $$(node, consts.id.UL, setting).empty(); + } + }, + scrollIntoView: function (setting, dom) { + if (!dom) { + return; + } + // support IE 7 + if (typeof Element === 'undefined') { + var contRect = setting.treeObj.get(0).getBoundingClientRect(), + findMeRect = dom.getBoundingClientRect(); + if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom + || findMeRect.right > contRect.right || findMeRect.left < contRect.left) { + dom.scrollIntoView(); + } + return; + } + // CC-BY jocki84@googlemail.com, https://gist.github.com/jocki84/6ffafd003387179a988e + if (!Element.prototype.scrollIntoViewIfNeeded) { + Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { + "use strict"; + + function makeRange(start, length) { + return {"start": start, "length": length, "end": start + length}; + } + + function coverRange(inner, outer) { + if ( + false === centerIfNeeded || + (outer.start < inner.end && inner.start < outer.end) + ) { + return Math.max( + inner.end - outer.length, + Math.min(outer.start, inner.start) + ); + } + return (inner.start + inner.end - outer.length) / 2; + } + + function makePoint(x, y) { + return { + "x": x, + "y": y, + "translate": function translate(dX, dY) { + return makePoint(x + dX, y + dY); + } + }; + } + + function absolute(elem, pt) { + while (elem) { + pt = pt.translate(elem.offsetLeft, elem.offsetTop); + elem = elem.offsetParent; + } + return pt; + } + + var target = absolute(this, makePoint(0, 0)), + extent = makePoint(this.offsetWidth, this.offsetHeight), + elem = this.parentNode, + origin; + + while (elem instanceof HTMLElement) { + // Apply desired scroll amount. + origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop)); + elem.scrollLeft = coverRange( + makeRange(target.x - origin.x, extent.x), + makeRange(elem.scrollLeft, elem.clientWidth) + ); + elem.scrollTop = coverRange( + makeRange(target.y - origin.y, extent.y), + makeRange(elem.scrollTop, elem.clientHeight) + ); + + // Determine actual scroll amount by reading back scroll properties. + target = target.translate(-elem.scrollLeft, -elem.scrollTop); + elem = elem.parentNode; + } + }; + } + dom.scrollIntoViewIfNeeded(); + }, + setFirstNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + if (children.length > 0) { + children[0].isFirstNode = true; + } + }, + setLastNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + if (children.length > 0) { + children[children.length - 1].isLastNode = true; + } + }, + removeNode: function (setting, node) { + var root = data.getRoot(setting), + parentNode = (node.parentTId) ? node.getParentNode() : root; + + node.isFirstNode = false; + node.isLastNode = false; + node.getPreNode = function () { + return null; + }; + node.getNextNode = function () { + return null; + }; + + if (!data.getNodeCache(setting, node.tId)) { + return; + } + + $$(node, setting).remove(); + data.removeNodeCache(setting, node); + data.removeSelectedNode(setting, node); + + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].tId == node.tId) { + children.splice(i, 1); + break; + } + } + view.setFirstNode(setting, parentNode); + view.setLastNode(setting, parentNode); + + var tmp_ulObj, tmp_switchObj, tmp_icoObj, + childLength = children.length; + + //repair nodes old parent + if (!setting.data.keep.parent && childLength == 0) { + //old parentNode has no child nodes + data.nodeIsParent(setting, parentNode, false); + parentNode.open = false; + delete parentNode[setting.data.key.children]; + tmp_ulObj = $$(parentNode, consts.id.UL, setting); + tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting); + tmp_icoObj = $$(parentNode, consts.id.ICON, setting); + view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU); + tmp_ulObj.css("display", "none"); + + } else if (setting.view.showLine && childLength > 0) { + //old parentNode has child nodes + var newLast = children[childLength - 1]; + tmp_ulObj = $$(newLast, consts.id.UL, setting); + tmp_switchObj = $$(newLast, consts.id.SWITCH, setting); + tmp_icoObj = $$(newLast, consts.id.ICON, setting); + if (parentNode == root) { + if (children.length == 1) { + //node was root, and ztree has only one root after move node + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT); + } else { + var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting); + view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS); + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); + } + } else { + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); + } + tmp_ulObj.removeClass(consts.line.LINE); + } + }, + replaceIcoClass: function (node, obj, newName) { + if (!obj || node.isAjaxing) return; + var tmpName = obj.attr("class"); + if (tmpName == undefined) return; + var tmpList = tmpName.split("_"); + switch (newName) { + case consts.folder.OPEN: + case consts.folder.CLOSE: + case consts.folder.DOCU: + tmpList[tmpList.length - 1] = newName; + break; + } + obj.attr("class", tmpList.join("_")); + }, + replaceSwitchClass: function (node, obj, newName) { + if (!obj) return; + var tmpName = obj.attr("class"); + if (tmpName == undefined) return; + var tmpList = tmpName.split("_"); + switch (newName) { + case consts.line.ROOT: + case consts.line.ROOTS: + case consts.line.CENTER: + case consts.line.BOTTOM: + case consts.line.NOLINE: + tmpList[0] = view.makeNodeLineClassEx(node) + newName; + break; + case consts.folder.OPEN: + case consts.folder.CLOSE: + case consts.folder.DOCU: + tmpList[1] = newName; + break; + } + obj.attr("class", tmpList.join("_")); + if (newName !== consts.folder.DOCU) { + obj.removeAttr("disabled"); + } else { + obj.attr("disabled", "disabled"); + } + }, + selectNode: function (setting, node, addFlag) { + if (!addFlag) { + view.cancelPreSelectedNode(setting, null, node); + } + $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED); + data.addSelectedNode(setting, node); + setting.treeObj.trigger(consts.event.SELECTED, [setting.treeId, node]); + }, + setNodeFontCss: function (setting, treeNode) { + var aObj = $$(treeNode, consts.id.A, setting), + fontCss = view.makeNodeFontCss(setting, treeNode); + if (fontCss) { + aObj.css(fontCss); + } + }, + setNodeLineIcos: function (setting, node) { + if (!node) return; + var switchObj = $$(node, consts.id.SWITCH, setting), + ulObj = $$(node, consts.id.UL, setting), + icoObj = $$(node, consts.id.ICON, setting), + ulLine = view.makeUlLineClass(setting, node); + if (ulLine.length == 0) { + ulObj.removeClass(consts.line.LINE); + } else { + ulObj.addClass(ulLine); + } + switchObj.attr("class", view.makeNodeLineClass(setting, node)); + if (data.nodeIsParent(setting, node)) { + switchObj.removeAttr("disabled"); + } else { + switchObj.attr("disabled", "disabled"); + } + icoObj.removeAttr("style"); + icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); + icoObj.attr("class", view.makeNodeIcoClass(setting, node)); + }, + setNodeName: function (setting, node) { + var title = data.nodeTitle(setting, node), + nObj = $$(node, consts.id.SPAN, setting); + nObj.empty(); + if (setting.view.nameIsHTML) { + nObj.html(data.nodeName(setting, node)); + } else { + nObj.text(data.nodeName(setting, node)); + } + if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle)) { + var aObj = $$(node, consts.id.A, setting); + aObj.attr("title", !title ? "" : title); + } + }, + setNodeTarget: function (setting, node) { + var aObj = $$(node, consts.id.A, setting); + aObj.attr("target", view.makeNodeTarget(node)); + }, + setNodeUrl: function (setting, node) { + var aObj = $$(node, consts.id.A, setting), + url = view.makeNodeUrl(setting, node); + if (url == null || url.length == 0) { + aObj.removeAttr("href"); + } else { + aObj.attr("href", url); + } + }, + switchNode: function (setting, node) { + if (node.open || !tools.canAsync(setting, node)) { + view.expandCollapseNode(setting, node, !node.open); + } else if (setting.async.enable) { + if (!view.asyncNode(setting, node)) { + view.expandCollapseNode(setting, node, !node.open); + return; + } + } else if (node) { + view.expandCollapseNode(setting, node, !node.open); + } + } + }; + // zTree defind + $.fn.zTree = { + consts: _consts, + _z: { + tools: tools, + view: view, + event: event, + data: data + }, + getZTreeObj: function (treeId) { + var o = data.getZTreeTools(treeId); + return o ? o : null; + }, + destroy: function (treeId) { + if (!!treeId && treeId.length > 0) { + view.destroy(data.getSetting(treeId)); + } else { + for (var s in settings) { + view.destroy(settings[s]); + } + } + }, + init: function (obj, zSetting, zNodes) { + var setting = tools.clone(_setting); + $.extend(true, setting, zSetting); + setting.treeId = obj.attr("id"); + setting.treeObj = obj; + setting.treeObj.empty(); + settings[setting.treeId] = setting; + //For some older browser,(e.g., ie6) + if (typeof document.body.style.maxHeight === "undefined") { + setting.view.expandSpeed = ""; + } + data.initRoot(setting); + var root = data.getRoot(setting); + zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [zNodes]) : []; + if (setting.data.simpleData.enable) { + data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes)); + } else { + data.nodeChildren(setting, root, zNodes); + } + + data.initCache(setting); + event.unbindTree(setting); + event.bindTree(setting); + event.unbindEvent(setting); + event.bindEvent(setting); + + var zTreeTools = { + setting: setting, + addNodes: function (parentNode, index, newNodes, isSilent) { + if (!parentNode) parentNode = null; + var isParent = data.nodeIsParent(setting, parentNode); + if (parentNode && !isParent && setting.data.keep.leaf) return null; + + var i = parseInt(index, 10); + if (isNaN(i)) { + isSilent = !!newNodes; + newNodes = index; + index = -1; + } else { + index = i; + } + if (!newNodes) return null; + + + var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [newNodes]); + + function addCallback() { + view.addNodes(setting, parentNode, index, xNewNodes, (isSilent == true)); + } + + if (tools.canAsync(setting, parentNode)) { + view.asyncNode(setting, parentNode, isSilent, addCallback); + } else { + addCallback(); + } + return xNewNodes; + }, + cancelSelectedNode: function (node) { + view.cancelPreSelectedNode(setting, node); + }, + destroy: function () { + view.destroy(setting); + }, + expandAll: function (expandFlag) { + expandFlag = !!expandFlag; + view.expandCollapseSonNode(setting, null, expandFlag, true); + return expandFlag; + }, + expandNode: function (node, expandFlag, sonSign, focus, callbackFlag) { + if (!node || !data.nodeIsParent(setting, node)) return null; + if (expandFlag !== true && expandFlag !== false) { + expandFlag = !node.open; + } + callbackFlag = !!callbackFlag; + + if (callbackFlag && expandFlag && (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false)) { + return null; + } else if (callbackFlag && !expandFlag && (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false)) { + return null; + } + if (expandFlag && node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false); + } + if (expandFlag === node.open && !sonSign) { + return null; + } + + data.getRoot(setting).expandTriggerFlag = callbackFlag; + if (!tools.canAsync(setting, node) && sonSign) { + view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus); + } else { + node.open = !expandFlag; + view.switchNode(this.setting, node); + showNodeFocus(); + } + return expandFlag; + + function showNodeFocus() { + var a = $$(node, setting).get(0); + if (a && focus !== false) { + view.scrollIntoView(setting, a); + } + } + }, + getNodes: function () { + return data.getNodes(setting); + }, + getNodeByParam: function (key, value, parentNode) { + if (!key) return null; + return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodeByTId: function (tId) { + return data.getNodeCache(setting, tId); + }, + getNodesByParam: function (key, value, parentNode) { + if (!key) return null; + return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodesByParamFuzzy: function (key, value, parentNode) { + if (!key) return null; + return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodesByFilter: function (filter, isSingle, parentNode, invokeParam) { + isSingle = !!isSingle; + if (!filter || (typeof filter != "function")) return (isSingle ? null : []); + return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam); + }, + getNodeIndex: function (node) { + if (!node) return null; + var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i] == node) return i; + } + return -1; + }, + getSelectedNodes: function () { + var r = [], list = data.getRoot(setting).curSelectedList; + for (var i = 0, l = list.length; i < l; i++) { + r.push(list[i]); + } + return r; + }, + isSelectedNode: function (node) { + return data.isSelectedNode(setting, node); + }, + reAsyncChildNodesPromise: function (parentNode, reloadType, isSilent) { + var promise = new Promise(function (resolve, reject) { + try { + zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, function () { + resolve(parentNode); + }); + } catch (e) { + reject(e); + } + }); + return promise; + }, + reAsyncChildNodes: function (parentNode, reloadType, isSilent, callback) { + if (!this.setting.async.enable) return; + var isRoot = !parentNode; + if (isRoot) { + parentNode = data.getRoot(setting); + } + if (reloadType == "refresh") { + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children ? children.length : 0; i < l; i++) { + data.removeNodeCache(setting, children[i]); + } + data.removeSelectedNode(setting); + data.nodeChildren(setting, parentNode, []); + if (isRoot) { + this.setting.treeObj.empty(); + } else { + var ulObj = $$(parentNode, consts.id.UL, setting); + ulObj.empty(); + } + } + view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback); + }, + refresh: function () { + this.setting.treeObj.empty(); + var root = data.getRoot(setting), + nodes = data.nodeChildren(setting, root); + data.initRoot(setting); + data.nodeChildren(setting, root, nodes); + data.initCache(setting); + view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1); + }, + removeChildNodes: function (node) { + if (!node) return null; + var nodes = data.nodeChildren(setting, node); + view.removeChildNodes(setting, node); + return nodes ? nodes : null; + }, + removeNode: function (node, callbackFlag) { + if (!node) return; + callbackFlag = !!callbackFlag; + if (callbackFlag && tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return; + view.removeNode(setting, node); + if (callbackFlag) { + this.setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); + } + }, + selectNode: function (node, addFlag, isSilent) { + if (!node) return; + if (tools.uCanDo(setting)) { + addFlag = setting.view.selectedMulti && addFlag; + if (node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus); + } else if (!isSilent) { + try { + $$(node, setting).focus().blur(); + } catch (e) { + } + } + view.selectNode(setting, node, addFlag); + } + + function showNodeFocus() { + if (isSilent) { + return; + } + var a = $$(node, setting).get(0); + view.scrollIntoView(setting, a); + } + }, + transformTozTreeNodes: function (simpleNodes) { + return data.transformTozTreeFormat(setting, simpleNodes); + }, + transformToArray: function (nodes) { + return data.transformToArrayFormat(setting, nodes); + }, + updateNode: function (node, checkTypeFlag) { + if (!node) return; + var nObj = $$(node, setting); + if (nObj.get(0) && tools.uCanDo(setting)) { + view.setNodeName(setting, node); + view.setNodeTarget(setting, node); + view.setNodeUrl(setting, node); + view.setNodeLineIcos(setting, node); + view.setNodeFontCss(setting, node); + } + } + }; + root.treeTools = zTreeTools; + data.setZTreeTools(setting, zTreeTools); + var children = data.nodeChildren(setting, root); + if (children && children.length > 0) { + view.createNodes(setting, 0, children, null, -1); + } else if (setting.async.enable && setting.async.url && setting.async.url !== '') { + view.asyncNode(setting); + } + return zTreeTools; + } + }; + + var zt = $.fn.zTree, + $$ = tools.$, + consts = zt.consts; +})(jQuery); +/* + * JQuery zTree excheck v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + //default consts of excheck + var _consts = { + event: { + CHECK: "ztree_check" + }, + id: { + CHECK: "_check" + }, + checkbox: { + STYLE: "checkbox", + DEFAULT: "chk", + DISABLED: "disable", + FALSE: "false", + TRUE: "true", + FULL: "full", + PART: "part", + FOCUS: "focus" + }, + radio: { + STYLE: "radio", + TYPE_ALL: "all", + TYPE_LEVEL: "level" + } + }, + //default setting of excheck + _setting = { + check: { + enable: false, + autoCheckTrigger: false, + chkStyle: _consts.checkbox.STYLE, + nocheckInherit: false, + chkDisabledInherit: false, + radioType: _consts.radio.TYPE_LEVEL, + chkboxType: { + "Y": "ps", + "N": "ps" + } + }, + data: { + key: { + checked: "checked" + } + }, + callback: { + beforeCheck: null, + onCheck: null + } + }, + //default root of excheck + _initRoot = function (setting) { + var r = data.getRoot(setting); + r.radioCheckedList = []; + }, + //default cache of excheck + _initCache = function (treeId) { + }, + //default bind event of excheck + _bindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.bind(c.CHECK, function (event, srcEvent, treeId, node) { + event.srcEvent = srcEvent; + tools.apply(setting.callback.onCheck, [event, treeId, node]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.unbind(c.CHECK); + }, + //default event proxy of excheck + _eventProxy = function (e) { + var target = e.target, + setting = data.getSetting(e.data.treeId), + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null; + + if (tools.eqs(e.type, "mouseover")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "mouseoverCheck"; + } + } else if (tools.eqs(e.type, "mouseout")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "mouseoutCheck"; + } + } else if (tools.eqs(e.type, "click")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "checkNode"; + } + } + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "checkNode" : + nodeEventCallback = _handler.onCheckNode; + break; + case "mouseoverCheck" : + nodeEventCallback = _handler.onMouseoverCheck; + break; + case "mouseoutCheck" : + nodeEventCallback = _handler.onMouseoutCheck; + break; + } + } + var proxyResult = { + stop: nodeEventType === "checkNode", + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of excheck + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + var checked = data.nodeChecked(setting, n); + n.checkedOld = checked; + if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true"); + n.nocheck = !!n.nocheck || (setting.check.nocheckInherit && parentNode && !!parentNode.nocheck); + if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true"); + n.chkDisabled = !!n.chkDisabled || (setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled); + if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true"); + n.halfCheck = !!n.halfCheck; + n.check_Child_State = -1; + n.check_Focus = false; + n.getCheckStatus = function () { + return data.getCheckStatus(setting, n); + }; + + if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) { + var r = data.getRoot(setting); + r.radioCheckedList.push(n); + } + }, + //add dom for check + _beforeA = function (setting, node, html) { + if (setting.check.enable) { + data.makeChkFlag(setting, node); + html.push("<span ID='", node.tId, consts.id.CHECK, "' class='", view.makeChkClass(setting, node), "' treeNode", consts.id.CHECK, (node.nocheck === true ? " style='display:none;'" : ""), "></span>"); + } + }, + //update zTreeObj, add method of check + _zTreeTools = function (setting, zTreeTools) { + zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) { + var nodeChecked = data.nodeChecked(setting, node); + if (node.chkDisabled === true) return; + if (checked !== true && checked !== false) { + checked = !nodeChecked; + } + callbackFlag = !!callbackFlag; + + if (nodeChecked === checked && !checkTypeFlag) { + return; + } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) { + return; + } + if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) { + data.nodeChecked(setting, node, checked); + var checkObj = $$(node, consts.id.CHECK, this.setting); + if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); + view.setChkClass(this.setting, checkObj, node); + view.repairParentChkClassWithSelf(this.setting, node); + if (callbackFlag) { + this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]); + } + } + } + + zTreeTools.checkAllNodes = function (checked) { + view.repairAllChk(this.setting, !!checked); + } + + zTreeTools.getCheckedNodes = function (checked) { + var checked = (checked !== false); + var children = data.nodeChildren(setting, data.getRoot(this.setting)); + return data.getTreeCheckedNodes(this.setting, children, checked); + } + + zTreeTools.getChangeCheckedNodes = function () { + var children = data.nodeChildren(setting, data.getRoot(this.setting)); + return data.getTreeChangeCheckedNodes(this.setting, children); + } + + zTreeTools.setChkDisabled = function (node, disabled, inheritParent, inheritChildren) { + disabled = !!disabled; + inheritParent = !!inheritParent; + inheritChildren = !!inheritChildren; + view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren); + view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent); + } + + var _updateNode = zTreeTools.updateNode; + zTreeTools.updateNode = function (node, checkTypeFlag) { + if (_updateNode) _updateNode.apply(zTreeTools, arguments); + if (!node || !this.setting.check.enable) return; + var nObj = $$(node, this.setting); + if (nObj.get(0) && tools.uCanDo(this.setting)) { + var checkObj = $$(node, consts.id.CHECK, this.setting); + if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); + view.setChkClass(this.setting, checkObj, node); + view.repairParentChkClassWithSelf(this.setting, node); + } + } + }, + //method of operate data + _data = { + getRadioCheckedList: function (setting) { + var checkedList = data.getRoot(setting).radioCheckedList; + for (var i = 0, j = checkedList.length; i < j; i++) { + if (!data.getNodeCache(setting, checkedList[i].tId)) { + checkedList.splice(i, 1); + i--; + j--; + } + } + return checkedList; + }, + getCheckStatus: function (setting, node) { + if (!setting.check.enable || node.nocheck || node.chkDisabled) return null; + var checked = data.nodeChecked(setting, node), + r = { + checked: checked, + half: node.halfCheck ? node.halfCheck : (setting.check.chkStyle == consts.radio.STYLE ? (node.check_Child_State === 2) : (checked ? (node.check_Child_State > -1 && node.check_Child_State < 2) : (node.check_Child_State > 0))) + }; + return r; + }, + getTreeCheckedNodes: function (setting, nodes, checked, results) { + if (!nodes) return []; + var onlyOne = (checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL); + results = !results ? [] : results; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + var children = data.nodeChildren(setting, node); + var nodeChecked = data.nodeChecked(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) { + results.push(node); + if (onlyOne) { + break; + } + } + data.getTreeCheckedNodes(setting, children, checked, results); + if (onlyOne && results.length > 0) { + break; + } + } + return results; + }, + getTreeChangeCheckedNodes: function (setting, nodes, results) { + if (!nodes) return []; + results = !results ? [] : results; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + var children = data.nodeChildren(setting, node); + var nodeChecked = data.nodeChecked(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) { + results.push(node); + } + data.getTreeChangeCheckedNodes(setting, children, results); + } + return results; + }, + makeChkFlag: function (setting, node) { + if (!node) return; + var chkFlag = -1; + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + var cNode = children[i]; + var nodeChecked = data.nodeChecked(setting, cNode); + var tmp = -1; + if (setting.check.chkStyle == consts.radio.STYLE) { + if (cNode.nocheck === true || cNode.chkDisabled === true) { + tmp = cNode.check_Child_State; + } else if (cNode.halfCheck === true) { + tmp = 2; + } else if (nodeChecked) { + tmp = 2; + } else { + tmp = cNode.check_Child_State > 0 ? 2 : 0; + } + if (tmp == 2) { + chkFlag = 2; + break; + } else if (tmp == 0) { + chkFlag = 0; + } + } else if (setting.check.chkStyle == consts.checkbox.STYLE) { + if (cNode.nocheck === true || cNode.chkDisabled === true) { + tmp = cNode.check_Child_State; + } else if (cNode.halfCheck === true) { + tmp = 1; + } else if (nodeChecked) { + tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1; + } else { + tmp = (cNode.check_Child_State > 0) ? 1 : 0; + } + if (tmp === 1) { + chkFlag = 1; + break; + } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) { + chkFlag = 1; + break; + } else if (chkFlag === 2 && tmp > -1 && tmp < 2) { + chkFlag = 1; + break; + } else if (tmp > -1) { + chkFlag = tmp; + } + } + } + } + node.check_Child_State = chkFlag; + } + }, + //method of event proxy + _event = {}, + //method of event handler + _handler = { + onCheckNode: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeCheck, [setting.treeId, node], true) == false) return true; + var nodeChecked = data.nodeChecked(setting, node); + data.nodeChecked(setting, node, !nodeChecked); + view.checkNodeRelation(setting, node); + var checkObj = $$(node, consts.id.CHECK, setting); + view.setChkClass(setting, checkObj, node); + view.repairParentChkClassWithSelf(setting, node); + setting.treeObj.trigger(consts.event.CHECK, [event, setting.treeId, node]); + return true; + }, + onMouseoverCheck: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId), + checkObj = $$(node, consts.id.CHECK, setting); + node.check_Focus = true; + view.setChkClass(setting, checkObj, node); + return true; + }, + onMouseoutCheck: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId), + checkObj = $$(node, consts.id.CHECK, setting); + node.check_Focus = false; + view.setChkClass(setting, checkObj, node); + return true; + } + }, + //method of tools for zTree + _tools = {}, + //method of operate ztree dom + _view = { + checkNodeRelation: function (setting, node) { + var pNode, i, l, + r = consts.radio; + var nodeChecked = data.nodeChecked(setting, node); + if (setting.check.chkStyle == r.STYLE) { + var checkedList = data.getRadioCheckedList(setting); + if (nodeChecked) { + if (setting.check.radioType == r.TYPE_ALL) { + for (i = checkedList.length - 1; i >= 0; i--) { + pNode = checkedList[i]; + var pNodeChecked = data.nodeChecked(setting, pNode); + if (pNodeChecked && pNode != node) { + data.nodeChecked(setting, pNode, false); + checkedList.splice(i, 1); + + view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); + if (pNode.parentTId != node.parentTId) { + view.repairParentChkClassWithSelf(setting, pNode); + } + } + } + checkedList.push(node); + } else { + var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); + var children = data.nodeChildren(setting, parentNode); + for (i = 0, l = children.length; i < l; i++) { + pNode = children[i]; + var pNodeChecked = data.nodeChecked(setting, pNode); + if (pNodeChecked && pNode != node) { + data.nodeChecked(setting, pNode, false); + view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); + } + } + } + } else if (setting.check.radioType == r.TYPE_ALL) { + for (i = 0, l = checkedList.length; i < l; i++) { + if (node == checkedList[i]) { + checkedList.splice(i, 1); + break; + } + } + } + + } else { + var children = data.nodeChildren(setting, node); + if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) { + view.setSonNodeCheckBox(setting, node, true); + } + if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) { + view.setSonNodeCheckBox(setting, node, false); + } + if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) { + view.setParentNodeCheckBox(setting, node, true); + } + if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) { + view.setParentNodeCheckBox(setting, node, false); + } + } + }, + makeChkClass: function (setting, node) { + var c = consts.checkbox, r = consts.radio, + fullStyle = ""; + var nodeChecked = data.nodeChecked(setting, node); + if (node.chkDisabled === true) { + fullStyle = c.DISABLED; + } else if (node.halfCheck) { + fullStyle = c.PART; + } else if (setting.check.chkStyle == r.STYLE) { + fullStyle = (node.check_Child_State < 1) ? c.FULL : c.PART; + } else { + fullStyle = nodeChecked ? ((node.check_Child_State === 2 || node.check_Child_State === -1) ? c.FULL : c.PART) : ((node.check_Child_State < 1) ? c.FULL : c.PART); + } + var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle; + chkName = (node.check_Focus && node.chkDisabled !== true) ? chkName + "_" + c.FOCUS : chkName; + return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName; + }, + repairAllChk: function (setting, checked) { + if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) { + var root = data.getRoot(setting); + var children = data.nodeChildren(setting, root); + for (var i = 0, l = children.length; i < l; i++) { + var node = children[i]; + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, checked); + } + view.setSonNodeCheckBox(setting, node, checked); + } + } + }, + repairChkClass: function (setting, node) { + if (!node) return; + data.makeChkFlag(setting, node); + if (node.nocheck !== true) { + var checkObj = $$(node, consts.id.CHECK, setting); + view.setChkClass(setting, checkObj, node); + } + }, + repairParentChkClass: function (setting, node) { + if (!node || !node.parentTId) return; + var pNode = node.getParentNode(); + view.repairChkClass(setting, pNode); + view.repairParentChkClass(setting, pNode); + }, + repairParentChkClassWithSelf: function (setting, node) { + if (!node) return; + var children = data.nodeChildren(setting, node); + if (children && children.length > 0) { + view.repairParentChkClass(setting, children[0]); + } else { + view.repairParentChkClass(setting, node); + } + }, + repairSonChkDisabled: function (setting, node, chkDisabled, inherit) { + if (!node) return; + if (node.chkDisabled != chkDisabled) { + node.chkDisabled = chkDisabled; + } + view.repairChkClass(setting, node); + var children = data.nodeChildren(setting, node); + if (children && inherit) { + for (var i = 0, l = children.length; i < l; i++) { + var sNode = children[i]; + view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit); + } + } + }, + repairParentChkDisabled: function (setting, node, chkDisabled, inherit) { + if (!node) return; + if (node.chkDisabled != chkDisabled && inherit) { + node.chkDisabled = chkDisabled; + } + view.repairChkClass(setting, node); + view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit); + }, + setChkClass: function (setting, obj, node) { + if (!obj) return; + if (node.nocheck === true) { + obj.hide(); + } else { + obj.show(); + } + obj.attr('class', view.makeChkClass(setting, node)); + }, + setParentNodeCheckBox: function (setting, node, value, srcNode) { + var checkObj = $$(node, consts.id.CHECK, setting); + if (!srcNode) srcNode = node; + data.makeChkFlag(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, value); + view.setChkClass(setting, checkObj, node); + if (setting.check.autoCheckTrigger && node != srcNode) { + setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); + } + } + if (node.parentTId) { + var pSign = true; + if (!value) { + var pNodes = data.nodeChildren(setting, node.getParentNode()); + for (var i = 0, l = pNodes.length; i < l; i++) { + var pNode = pNodes[i]; + var nodeChecked = data.nodeChecked(setting, pNode); + if ((pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked) + || ((pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0)) { + pSign = false; + break; + } + } + } + if (pSign) { + view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode); + } + } + }, + setSonNodeCheckBox: function (setting, node, value, srcNode) { + if (!node) return; + var checkObj = $$(node, consts.id.CHECK, setting); + if (!srcNode) srcNode = node; + + var hasDisable = false; + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + var sNode = children[i]; + view.setSonNodeCheckBox(setting, sNode, value, srcNode); + if (sNode.chkDisabled === true) hasDisable = true; + } + } + + if (node != data.getRoot(setting) && node.chkDisabled !== true) { + if (hasDisable && node.nocheck !== true) { + data.makeChkFlag(setting, node); + } + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, value); + if (!hasDisable) node.check_Child_State = (children && children.length > 0) ? (value ? 2 : 0) : -1; + } else { + node.check_Child_State = -1; + } + view.setChkClass(setting, checkObj, node); + if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) { + setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); + } + } + + } + }, + + _z = { + tools: _tools, + view: _view, + event: _event, + data: _data + }; + $.extend(true, $.fn.zTree.consts, _consts); + $.extend(true, $.fn.zTree._z, _z); + + var zt = $.fn.zTree, + tools = zt._z.tools, + consts = zt.consts, + view = zt._z.view, + data = zt._z.data, + event = zt._z.event, + $$ = tools.$; + + data.nodeChecked = function (setting, node, newChecked) { + if (!node) { + return false; + } + var key = setting.data.key.checked; + if (typeof newChecked !== 'undefined') { + if (typeof newChecked === "string") { + newChecked = tools.eqs(newChecked, "true"); + } + newChecked = !!newChecked; + node[key] = newChecked; + } else if (typeof node[key] == "string"){ + node[key] = tools.eqs(node[key], "true"); + } else { + node[key] = !!node[key]; + } + return node[key]; + }; + + data.exSetting(_setting); + data.addInitBind(_bindEvent); + data.addInitUnBind(_unbindEvent); + data.addInitCache(_initCache); + data.addInitNode(_initNode); + data.addInitProxy(_eventProxy, true); + data.addInitRoot(_initRoot); + data.addBeforeA(_beforeA); + data.addZTreeTools(_zTreeTools); + + var _createNodes = view.createNodes; + view.createNodes = function (setting, level, nodes, parentNode, index) { + if (_createNodes) _createNodes.apply(view, arguments); + if (!nodes) return; + view.repairParentChkClassWithSelf(setting, parentNode); + } + var _removeNode = view.removeNode; + view.removeNode = function (setting, node) { + var parentNode = node.getParentNode(); + if (_removeNode) _removeNode.apply(view, arguments); + if (!node || !parentNode) return; + view.repairChkClass(setting, parentNode); + view.repairParentChkClass(setting, parentNode); + } + + var _appendNodes = view.appendNodes; + view.appendNodes = function (setting, level, nodes, parentNode, index, initFlag, openFlag) { + var html = ""; + if (_appendNodes) { + html = _appendNodes.apply(view, arguments); + } + if (parentNode) { + data.makeChkFlag(setting, parentNode); + } + return html; + } +})(jQuery); +/* + * JQuery zTree exedit v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + //default consts of exedit + var _consts = { + event: { + DRAG: "ztree_drag", + DROP: "ztree_drop", + RENAME: "ztree_rename", + DRAGMOVE: "ztree_dragmove" + }, + id: { + EDIT: "_edit", + INPUT: "_input", + REMOVE: "_remove" + }, + move: { + TYPE_INNER: "inner", + TYPE_PREV: "prev", + TYPE_NEXT: "next" + }, + node: { + CURSELECTED_EDIT: "curSelectedNode_Edit", + TMPTARGET_TREE: "tmpTargetzTree", + TMPTARGET_NODE: "tmpTargetNode" + } + }, + //default setting of exedit + _setting = { + edit: { + enable: false, + editNameSelectAll: false, + showRemoveBtn: true, + showRenameBtn: true, + removeTitle: "remove", + renameTitle: "rename", + drag: { + autoExpandTrigger: false, + isCopy: true, + isMove: true, + prev: true, + next: true, + inner: true, + minMoveSize: 5, + borderMax: 10, + borderMin: -5, + maxShowNodeNum: 5, + autoOpenTime: 500 + } + }, + view: { + addHoverDom: null, + removeHoverDom: null + }, + callback: { + beforeDrag: null, + beforeDragOpen: null, + beforeDrop: null, + beforeEditName: null, + beforeRename: null, + onDrag: null, + onDragMove: null, + onDrop: null, + onRename: null + } + }, + //default root of exedit + _initRoot = function (setting) { + var r = data.getRoot(setting), rs = data.getRoots(); + r.curEditNode = null; + r.curEditInput = null; + r.curHoverNode = null; + r.dragFlag = 0; + r.dragNodeShowBefore = []; + r.dragMaskList = new Array(); + rs.showHoverDom = true; + }, + //default cache of exedit + _initCache = function (treeId) { + }, + //default bind event of exedit + _bindEvent = function (setting) { + var o = setting.treeObj; + var c = consts.event; + o.bind(c.RENAME, function (event, treeId, treeNode, isCancel) { + tools.apply(setting.callback.onRename, [event, treeId, treeNode, isCancel]); + }); + + o.bind(c.DRAG, function (event, srcEvent, treeId, treeNodes) { + tools.apply(setting.callback.onDrag, [srcEvent, treeId, treeNodes]); + }); + + o.bind(c.DRAGMOVE, function (event, srcEvent, treeId, treeNodes) { + tools.apply(setting.callback.onDragMove, [srcEvent, treeId, treeNodes]); + }); + + o.bind(c.DROP, function (event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) { + tools.apply(setting.callback.onDrop, [srcEvent, treeId, treeNodes, targetNode, moveType, isCopy]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj; + var c = consts.event; + o.unbind(c.RENAME); + o.unbind(c.DRAG); + o.unbind(c.DRAGMOVE); + o.unbind(c.DROP); + }, + //default event proxy of exedit + _eventProxy = function (e) { + var target = e.target, + setting = data.getSetting(e.data.treeId), + relatedTarget = e.relatedTarget, + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null, + tmp = null; + + if (tools.eqs(e.type, "mouseover")) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "hoverOverNode"; + } + } else if (tools.eqs(e.type, "mouseout")) { + tmp = tools.getMDom(setting, relatedTarget, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (!tmp) { + tId = "remove"; + nodeEventType = "hoverOutNode"; + } + } else if (tools.eqs(e.type, "mousedown")) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "mousedownNode"; + } + } + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "mousedownNode" : + nodeEventCallback = _handler.onMousedownNode; + break; + case "hoverOverNode" : + nodeEventCallback = _handler.onHoverOverNode; + break; + case "hoverOutNode" : + nodeEventCallback = _handler.onHoverOutNode; + break; + } + } + var proxyResult = { + stop: false, + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of exedit + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + n.isHover = false; + n.editNameFlag = false; + }, + //update zTreeObj, add method of edit + _zTreeTools = function (setting, zTreeTools) { + zTreeTools.cancelEditName = function (newName) { + var root = data.getRoot(this.setting); + if (!root.curEditNode) return; + view.cancelCurEditNode(this.setting, newName ? newName : null, true); + } + zTreeTools.copyNode = function (targetNode, node, moveType, isSilent) { + if (!node) return null; + var isParent = data.nodeIsParent(setting, targetNode); + if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null; + var _this = this, + newNode = tools.clone(node); + if (!targetNode) { + targetNode = null; + moveType = consts.move.TYPE_INNER; + } + if (moveType == consts.move.TYPE_INNER) { + function copyCallback() { + view.addNodes(_this.setting, targetNode, -1, [newNode], isSilent); + } + + if (tools.canAsync(this.setting, targetNode)) { + view.asyncNode(this.setting, targetNode, isSilent, copyCallback); + } else { + copyCallback(); + } + } else { + view.addNodes(this.setting, targetNode.parentNode, -1, [newNode], isSilent); + view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent); + } + return newNode; + } + zTreeTools.editName = function (node) { + if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return; + if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true); + view.editNode(this.setting, node) + } + zTreeTools.moveNode = function (targetNode, node, moveType, isSilent) { + if (!node) return node; + var isParent = data.nodeIsParent(setting, targetNode); + if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) { + return null; + } else if (targetNode && ((node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER) || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) { + return null; + } else if (!targetNode) { + targetNode = null; + } + var _this = this; + + function moveCallback() { + view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent); + } + + if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) { + view.asyncNode(this.setting, targetNode, isSilent, moveCallback); + } else { + moveCallback(); + } + return node; + } + zTreeTools.setEditable = function (editable) { + this.setting.confirm.enable = editable; + return this.refresh(); + } + }, + //method of operate data + _data = { + setSonNodeLevel: function (setting, parentNode, node) { + if (!node) return; + var children = data.nodeChildren(setting, node); + node.level = (parentNode) ? parentNode.level + 1 : 0; + if (!children) return; + for (var i = 0, l = children.length; i < l; i++) { + if (children[i]) data.setSonNodeLevel(setting, node, children[i]); + } + } + }, + //method of event proxy + _event = {}, + //method of event handler + _handler = { + onHoverOverNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + root = data.getRoot(setting); + if (root.curHoverNode != node) { + _handler.onHoverOutNode(event); + } + root.curHoverNode = node; + view.addHoverDom(setting, node); + }, + onHoverOutNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + root = data.getRoot(setting); + if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) { + view.removeTreeDom(setting, root.curHoverNode); + root.curHoverNode = null; + } + }, + onMousedownNode: function (eventMouseDown, _node) { + var i, l, + setting = data.getSetting(eventMouseDown.data.treeId), + root = data.getRoot(setting), roots = data.getRoots(); + //right click can't drag & drop + if (eventMouseDown.button == 2 || !setting.confirm.enable || (!setting.confirm.drag.isCopy && !setting.confirm.drag.isMove)) return true; + + //input of edit node name can't drag & drop + var target = eventMouseDown.target, + _nodes = data.getRoot(setting).curSelectedList, + nodes = []; + if (!data.isSelectedNode(setting, _node)) { + nodes = [_node]; + } else { + for (i = 0, l = _nodes.length; i < l; i++) { + if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) { + return true; + } + nodes.push(_nodes[i]); + if (nodes[0].parentTId !== _nodes[i].parentTId) { + nodes = [_node]; + break; + } + } + } + + view.editNodeBlur = true; + view.cancelCurEditNode(setting); + + var doc = $(setting.treeObj.get(0).ownerDocument), + body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, + isOtherTree = false, + targetSetting = setting, + sourceSetting = setting, + preNode, nextNode, + preTmpTargetNodeId = null, + preTmpMoveType = null, + tmpTargetNodeId = null, + moveType = consts.move.TYPE_INNER, + mouseDownX = eventMouseDown.clientX, + mouseDownY = eventMouseDown.clientY, + startTime = (new Date()).getTime(); + + if (tools.uCanDo(setting)) { + doc.bind("mousemove", _docMouseMove); + } + + function _docMouseMove(event) { + //avoid start drag after click node + if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.confirm.drag.minMoveSize + && Math.abs(mouseDownY - event.clientY) < setting.confirm.drag.minMoveSize) { + return true; + } + var i, l, tmpNode, tmpDom, tmpNodes; + body.css("cursor", "pointer"); + + if (root.dragFlag == 0) { + if (tools.apply(setting.callback.beforeDrag, [setting.treeId, nodes], true) == false) { + _docMouseUp(event); + return true; + } + + for (i = 0, l = nodes.length; i < l; i++) { + if (i == 0) { + root.dragNodeShowBefore = []; + } + tmpNode = nodes[i]; + if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) { + view.expandCollapseNode(setting, tmpNode, !tmpNode.open); + root.dragNodeShowBefore[tmpNode.tId] = true; + } else { + root.dragNodeShowBefore[tmpNode.tId] = false; + } + } + + root.dragFlag = 1; + roots.showHoverDom = false; + tools.showIfameMask(setting, true); + + //sort + var isOrder = true, lastIndex = -1; + if (nodes.length > 1) { + var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting); + tmpNodes = []; + for (i = 0, l = pNodes.length; i < l; i++) { + if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) { + if (isOrder && lastIndex > -1 && (lastIndex + 1) !== i) { + isOrder = false; + } + tmpNodes.push(pNodes[i]); + lastIndex = i; + } + if (nodes.length === tmpNodes.length) { + nodes = tmpNodes; + break; + } + } + } + if (isOrder) { + preNode = nodes[0].getPreNode(); + nextNode = nodes[nodes.length - 1].getNextNode(); + } + + //set node in selected + curNode = $$("<ul class='zTreeDragUL'></ul>", setting); + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + tmpNode.editNameFlag = false; + view.selectNode(setting, tmpNode, i > 0); + view.removeTreeDom(setting, tmpNode); + + if (i > setting.confirm.drag.maxShowNodeNum - 1) { + continue; + } + + tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting); + tmpDom.append($$(tmpNode, consts.id.A, setting).clone()); + tmpDom.css("padding", "0"); + tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED); + curNode.append(tmpDom); + if (i == setting.confirm.drag.maxShowNodeNum - 1) { + tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting); + curNode.append(tmpDom); + } + } + curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp"); + curNode.addClass(setting.treeObj.attr("class")); + curNode.appendTo(body); + + tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting); + tmpArrow.attr("id", "zTreeMove_arrow_tmp"); + tmpArrow.appendTo(body); + + setting.treeObj.trigger(consts.event.DRAG, [event, setting.treeId, nodes]); + } + + if (root.dragFlag == 1) { + if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && (event.clientX + doc.scrollLeft() + 2) > ($("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left)) { + var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget); + event.target = (xT.length > 0) ? xT.get(0) : event.target; + } else if (tmpTarget) { + tmpTarget.removeClass(consts.node.TMPTARGET_TREE); + if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) + .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); + } + tmpTarget = null; + tmpTargetNodeId = null; + + //judge drag & drop in multi ztree + isOtherTree = false; + targetSetting = setting; + var settings = data.getSettings(); + for (var s in settings) { + if (settings[s].treeId && settings[s].confirm.enable && settings[s].treeId != setting.treeId + && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) { + isOtherTree = true; + targetSetting = settings[s]; + } + } + + var docScrollTop = doc.scrollTop(), + docScrollLeft = doc.scrollLeft(), + treeOffset = targetSetting.treeObj.offset(), + scrollHeight = targetSetting.treeObj.get(0).scrollHeight, + scrollWidth = targetSetting.treeObj.get(0).scrollWidth, + dTop = (event.clientY + docScrollTop - treeOffset.top), + dBottom = (targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop), + dLeft = (event.clientX + docScrollLeft - treeOffset.left), + dRight = (targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft), + isTop = (dTop < setting.confirm.drag.borderMax && dTop > setting.confirm.drag.borderMin), + isBottom = (dBottom < setting.confirm.drag.borderMax && dBottom > setting.confirm.drag.borderMin), + isLeft = (dLeft < setting.confirm.drag.borderMax && dLeft > setting.confirm.drag.borderMin), + isRight = (dRight < setting.confirm.drag.borderMax && dRight > setting.confirm.drag.borderMin), + isTreeInner = dTop > setting.confirm.drag.borderMin && dBottom > setting.confirm.drag.borderMin && dLeft > setting.confirm.drag.borderMin && dRight > setting.confirm.drag.borderMin, + isTreeTop = (isTop && targetSetting.treeObj.scrollTop() <= 0), + isTreeBottom = (isBottom && (targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10) >= scrollHeight), + isTreeLeft = (isLeft && targetSetting.treeObj.scrollLeft() <= 0), + isTreeRight = (isRight && (targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10) >= scrollWidth); + + if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) { + //get node <li> dom + var targetObj = event.target; + while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) { + targetObj = targetObj.parentNode; + } + + var canMove = true; + //don't move to self or children of self + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + if (targetObj.id === tmpNode.tId) { + canMove = false; + break; + } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) { + canMove = false; + break; + } + } + if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) { + tmpTarget = $(targetObj); + tmpTargetNodeId = targetObj.id; + } + } + + //the mouse must be in zTree + tmpNode = nodes[0]; + if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) { + //judge mouse move in root of ztree + if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || (!isOtherTree && tmpNode.parentTId))) { + tmpTarget = targetSetting.treeObj; + } + //auto scroll top + if (isTop) { + targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10); + } else if (isBottom) { + targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10); + } + if (isLeft) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10); + } else if (isRight) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10); + } + //auto scroll left + if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left); + } + } + + curNode.css({ + "top": (event.clientY + docScrollTop + 3) + "px", + "left": (event.clientX + docScrollLeft + 3) + "px" + }); + + var dX = 0; + var dY = 0; + if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) { + var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), + isCopy = ((event.ctrlKey || event.metaKey) && setting.confirm.drag.isMove && setting.confirm.drag.isCopy) || (!setting.confirm.drag.isMove && setting.confirm.drag.isCopy), + isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), + isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), + isInner = (tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId), + canPrev = (isCopy || !isNext) && tools.apply(targetSetting.confirm.drag.prev, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.prev), + canNext = (isCopy || !isPrev) && tools.apply(targetSetting.confirm.drag.next, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.next), + canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.confirm.drag.inner, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.inner); + + function clearMove() { + tmpTarget = null; + tmpTargetNodeId = ""; + moveType = consts.move.TYPE_INNER; + tmpArrow.css({ + "display": "none" + }); + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null + } + } + + if (!canPrev && !canNext && !canInner) { + clearMove(); + } else { + var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), + tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), + tmpTop = tmpTargetA.offset().top, + tmpLeft = tmpTargetA.offset().left, + prevPercent = canPrev ? (canInner ? 0.25 : (canNext ? 0.5 : 1)) : -1, + nextPercent = canNext ? (canInner ? 0.75 : (canPrev ? 0.5 : 0)) : -1, + dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height(); + + if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) { + dX = 1 - tmpArrow.width(); + dY = tmpTop - tmpArrow.height() / 2; + moveType = consts.move.TYPE_PREV; + } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) { + dX = 1 - tmpArrow.width(); + dY = (tmpNextA == null || (data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open)) ? (tmpTop + tmpTargetA.height() - tmpArrow.height() / 2) : (tmpNextA.offset().top - tmpArrow.height() / 2); + moveType = consts.move.TYPE_NEXT; + } else if (canInner) { + dX = 5 - tmpArrow.width(); + dY = tmpTop; + moveType = consts.move.TYPE_INNER; + } else { + clearMove(); + } + + if (tmpTarget) { + tmpArrow.css({ + "display": "block", + "top": dY + "px", + "left": (tmpLeft + dX) + "px" + }); + tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType); + + if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) { + startTime = (new Date()).getTime(); + } + if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) { + var startTimer = true; + if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) { + startTimer = false; + } + if (startTimer) { + window.zTreeMoveTimer = setTimeout(function () { + if (moveType != consts.move.TYPE_INNER) return; + if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date()).getTime() - startTime > targetSetting.confirm.drag.autoOpenTime + && tools.apply(targetSetting.callback.beforeDragOpen, [targetSetting.treeId, tmpTargetNode], true)) { + view.switchNode(targetSetting, tmpTargetNode); + if (targetSetting.confirm.drag.autoExpandTrigger) { + targetSetting.treeObj.trigger(consts.event.EXPAND, [targetSetting.treeId, tmpTargetNode]); + } + } + }, targetSetting.confirm.drag.autoOpenTime + 50); + window.zTreeMoveTargetNodeTId = tmpTargetNode.tId; + } + } + } + } + } else { + moveType = consts.move.TYPE_INNER; + if (tmpTarget && tools.apply(targetSetting.confirm.drag.inner, [targetSetting.treeId, nodes, null], !!targetSetting.confirm.drag.inner)) { + tmpTarget.addClass(consts.node.TMPTARGET_TREE); + } else { + tmpTarget = null; + } + tmpArrow.css({ + "display": "none" + }); + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } + } + preTmpTargetNodeId = tmpTargetNodeId; + preTmpMoveType = moveType; + + setting.treeObj.trigger(consts.event.DRAGMOVE, [event, setting.treeId, nodes]); + } + return false; + } + + doc.bind("mouseup", _docMouseUp); + + function _docMouseUp(event) { + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } + preTmpTargetNodeId = null; + preTmpMoveType = null; + doc.unbind("mousemove", _docMouseMove); + doc.unbind("mouseup", _docMouseUp); + doc.unbind("selectstart", _docSelect); + body.css("cursor", ""); + if (tmpTarget) { + tmpTarget.removeClass(consts.node.TMPTARGET_TREE); + if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) + .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); + } + tools.showIfameMask(setting, false); + + roots.showHoverDom = true; + if (root.dragFlag == 0) return; + root.dragFlag = 0; + + var i, l, tmpNode; + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) { + view.expandCollapseNode(setting, tmpNode, !tmpNode.open); + delete root.dragNodeShowBefore[tmpNode.tId]; + } + } + + if (curNode) curNode.remove(); + if (tmpArrow) tmpArrow.remove(); + + var isCopy = ((event.ctrlKey || event.metaKey) && setting.confirm.drag.isMove && setting.confirm.drag.isCopy) || (!setting.confirm.drag.isMove && setting.confirm.drag.isCopy); + if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) { + tmpTarget = null; + } + if (tmpTarget) { + var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId); + if (tools.apply(setting.callback.beforeDrop, [targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy], true) == false) { + view.selectNodes(sourceSetting, nodes); + return; + } + var newNodes = isCopy ? tools.clone(nodes) : nodes; + + function dropCallback() { + if (isOtherTree) { + if (!isCopy) { + for (var i = 0, l = nodes.length; i < l; i++) { + view.removeNode(setting, nodes[i]); + } + } + if (moveType == consts.move.TYPE_INNER) { + view.addNodes(targetSetting, dragTargetNode, -1, newNodes); + } else { + view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); + } + } else { + if (isCopy && moveType == consts.move.TYPE_INNER) { + view.addNodes(targetSetting, dragTargetNode, -1, newNodes); + } else if (isCopy) { + view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); + } else { + if (moveType != consts.move.TYPE_NEXT) { + for (i = 0, l = newNodes.length; i < l; i++) { + view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false); + } + } else { + for (i = -1, l = newNodes.length - 1; i < l; l--) { + view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false); + } + } + } + } + view.selectNodes(targetSetting, newNodes); + + var a = $$(newNodes[0], setting).get(0); + view.scrollIntoView(setting, a); + + setting.treeObj.trigger(consts.event.DROP, [event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy]); + } + + if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) { + view.asyncNode(targetSetting, dragTargetNode, false, dropCallback); + } else { + dropCallback(); + } + + } else { + view.selectNodes(sourceSetting, nodes); + setting.treeObj.trigger(consts.event.DROP, [event, setting.treeId, nodes, null, null, null]); + } + } + + doc.bind("selectstart", _docSelect); + + function _docSelect() { + return false; + } + + // 2018-03-30 FireFox has fixed this issue. + //Avoid FireFox's Bug + //If zTree Div CSS set 'overflow', so drag node outside of zTree, and event.target is error. + // if(eventMouseDown.preventDefault) { + // eventMouseDown.preventDefault(); + // } + return true; + } + }, + //method of tools for zTree + _tools = { + getAbs: function (obj) { + var oRect = obj.getBoundingClientRect(), + scrollTop = document.body.scrollTop + document.documentElement.scrollTop, + scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft; + return [oRect.left + scrollLeft, oRect.top + scrollTop]; + }, + inputFocus: function (inputObj) { + if (inputObj.get(0)) { + inputObj.focus(); + tools.setCursorPosition(inputObj.get(0), inputObj.val().length); + } + }, + inputSelect: function (inputObj) { + if (inputObj.get(0)) { + inputObj.focus(); + inputObj.select(); + } + }, + setCursorPosition: function (obj, pos) { + if (obj.setSelectionRange) { + obj.focus(); + obj.setSelectionRange(pos, pos); + } else if (obj.createTextRange) { + var range = obj.createTextRange(); + range.collapse(true); + range.moveEnd('character', pos); + range.moveStart('character', pos); + range.select(); + } + }, + showIfameMask: function (setting, showSign) { + var root = data.getRoot(setting); + //clear full mask + while (root.dragMaskList.length > 0) { + root.dragMaskList[0].remove(); + root.dragMaskList.shift(); + } + if (showSign) { + //show mask + var iframeList = $$("iframe", setting); + for (var i = 0, l = iframeList.length; i < l; i++) { + var obj = iframeList.get(i), + r = tools.getAbs(obj), + dragMask = $$("<div id='zTreeMask_" + i + "' class='zTreeMask' style='top:" + r[1] + "px; left:" + r[0] + "px; width:" + obj.offsetWidth + "px; height:" + obj.offsetHeight + "px;'></div>", setting); + dragMask.appendTo($$("body", setting)); + root.dragMaskList.push(dragMask); + } + } + } + }, + //method of operate ztree dom + _view = { + addEditBtn: function (setting, node) { + if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) { + return; + } + if (!tools.apply(setting.confirm.showRenameBtn, [setting.treeId, node], setting.confirm.showRenameBtn)) { + return; + } + var aObj = $$(node, consts.id.A, setting), + editStr = "<span class='" + consts.className.BUTTON + " edit' id='" + node.tId + consts.id.EDIT + "' title='" + tools.apply(setting.confirm.renameTitle, [setting.treeId, node], setting.confirm.renameTitle) + "' treeNode" + consts.id.EDIT + " style='display:none;'></span>"; + aObj.append(editStr); + + $$(node, consts.id.EDIT, setting).bind('click', + function () { + if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [setting.treeId, node], true) == false) return false; + view.editNode(setting, node); + return false; + } + ).show(); + }, + addRemoveBtn: function (setting, node) { + if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) { + return; + } + if (!tools.apply(setting.confirm.showRemoveBtn, [setting.treeId, node], setting.confirm.showRemoveBtn)) { + return; + } + var aObj = $$(node, consts.id.A, setting), + removeStr = "<span class='" + consts.className.BUTTON + " remove' id='" + node.tId + consts.id.REMOVE + "' title='" + tools.apply(setting.confirm.removeTitle, [setting.treeId, node], setting.confirm.removeTitle) + "' treeNode" + consts.id.REMOVE + " style='display:none;'></span>"; + aObj.append(removeStr); + + $$(node, consts.id.REMOVE, setting).bind('click', + function () { + if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return false; + view.removeNode(setting, node); + setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); + return false; + } + ).bind('mousedown', + function (eventMouseDown) { + return true; + } + ).show(); + }, + addHoverDom: function (setting, node) { + if (data.getRoots().showHoverDom) { + node.isHover = true; + if (setting.confirm.enable) { + view.addEditBtn(setting, node); + view.addRemoveBtn(setting, node); + } + tools.apply(setting.view.addHoverDom, [setting.treeId, node]); + } + }, + cancelCurEditNode: function (setting, forceName, isCancel) { + var root = data.getRoot(setting), + node = root.curEditNode; + + if (node) { + var inputObj = root.curEditInput, + newName = forceName ? forceName : (isCancel ? data.nodeName(setting, node) : inputObj.val()); + if (tools.apply(setting.callback.beforeRename, [setting.treeId, node, newName, isCancel], true) === false) { + return false; + } + data.nodeName(setting, node, newName); + var aObj = $$(node, consts.id.A, setting); + aObj.removeClass(consts.node.CURSELECTED_EDIT); + inputObj.unbind(); + view.setNodeName(setting, node); + node.editNameFlag = false; + root.curEditNode = null; + root.curEditInput = null; + view.selectNode(setting, node, false); + setting.treeObj.trigger(consts.event.RENAME, [setting.treeId, node, isCancel]); + } + root.noSelection = true; + return true; + }, + editNode: function (setting, node) { + var root = data.getRoot(setting); + view.editNodeBlur = false; + if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { + setTimeout(function () { + tools.inputFocus(root.curEditInput); + }, 0); + return; + } + node.editNameFlag = true; + view.removeTreeDom(setting, node); + view.cancelCurEditNode(setting); + view.selectNode(setting, node, false); + $$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >"); + var inputObj = $$(node, consts.id.INPUT, setting); + inputObj.attr("value", data.nodeName(setting, node)); + if (setting.confirm.editNameSelectAll) { + tools.inputSelect(inputObj); + } else { + tools.inputFocus(inputObj); + } + + inputObj.bind('blur', function (event) { + if (!view.editNodeBlur) { + view.cancelCurEditNode(setting); + } + }).bind('keydown', function (event) { + if (event.keyCode == "13") { + view.editNodeBlur = true; + view.cancelCurEditNode(setting); + } else if (event.keyCode == "27") { + view.cancelCurEditNode(setting, null, true); + } + }).bind('click', function (event) { + return false; + }).bind('dblclick', function (event) { + return false; + }); + + $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT); + root.curEditInput = inputObj; + root.noSelection = false; + root.curEditNode = node; + }, + moveNode: function (setting, targetNode, node, moveType, animateFlag, isSilent) { + var root = data.getRoot(setting); + if (targetNode == node) return; + if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return; + var oldParentNode = (node.parentTId ? node.getParentNode() : root), + targetNodeIsRoot = (targetNode === null || targetNode == root); + if (targetNodeIsRoot && targetNode === null) targetNode = root; + if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER; + var targetParentNode = (targetNode.parentTId ? targetNode.getParentNode() : root); + + if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) { + moveType = consts.move.TYPE_INNER; + } + + if (moveType == consts.move.TYPE_INNER) { + if (targetNodeIsRoot) { + //parentTId of root node is null + node.parentTId = null; + } else { + if (!data.nodeIsParent(setting, targetNode)) { + data.nodeIsParent(setting, targetNode, true); + targetNode.open = !!targetNode.open; + view.setNodeLineIcos(setting, targetNode); + } + node.parentTId = targetNode.tId; + } + } + + //move node Dom + var targetObj, target_ulObj; + if (targetNodeIsRoot) { + targetObj = setting.treeObj; + target_ulObj = targetObj; + } else { + if (!isSilent && moveType == consts.move.TYPE_INNER) { + view.expandCollapseNode(setting, targetNode, true, false); + } else if (!isSilent) { + view.expandCollapseNode(setting, targetNode.getParentNode(), true, false); + } + targetObj = $$(targetNode, setting); + target_ulObj = $$(targetNode, consts.id.UL, setting); + if (!!targetObj.get(0) && !target_ulObj.get(0)) { + var ulstr = []; + view.makeUlHtml(setting, targetNode, ulstr, ''); + targetObj.append(ulstr.join('')); + } + target_ulObj = $$(targetNode, consts.id.UL, setting); + } + var nodeDom = $$(node, setting); + if (!nodeDom.get(0)) { + nodeDom = view.appendNodes(setting, node.level, [node], null, -1, false, true).join(''); + } else if (!targetObj.get(0)) { + nodeDom.remove(); + } + if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) { + target_ulObj.append(nodeDom); + } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) { + targetObj.before(nodeDom); + } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) { + targetObj.after(nodeDom); + } + + //repair the data after move + var i, l, + tmpSrcIndex = -1, + tmpTargetIndex = 0, + oldNeighbor = null, + newNeighbor = null, + oldLevel = node.level; + var oldChildren = data.nodeChildren(setting, oldParentNode); + var targetParentChildren = data.nodeChildren(setting, targetParentNode); + var targetChildren = data.nodeChildren(setting, targetNode); + if (node.isFirstNode) { + tmpSrcIndex = 0; + if (oldChildren.length > 1) { + oldNeighbor = oldChildren[1]; + oldNeighbor.isFirstNode = true; + } + } else if (node.isLastNode) { + tmpSrcIndex = oldChildren.length - 1; + oldNeighbor = oldChildren[tmpSrcIndex - 1]; + oldNeighbor.isLastNode = true; + } else { + for (i = 0, l = oldChildren.length; i < l; i++) { + if (oldChildren[i].tId == node.tId) { + tmpSrcIndex = i; + break; + } + } + } + if (tmpSrcIndex >= 0) { + oldChildren.splice(tmpSrcIndex, 1); + } + if (moveType != consts.move.TYPE_INNER) { + for (i = 0, l = targetParentChildren.length; i < l; i++) { + if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i; + } + } + if (moveType == consts.move.TYPE_INNER) { + if (!targetChildren) { + targetChildren = data.nodeChildren(setting, targetNode, []); + } + if (targetChildren.length > 0) { + newNeighbor = targetChildren[targetChildren.length - 1]; + newNeighbor.isLastNode = false; + } + targetChildren.splice(targetChildren.length, 0, node); + node.isLastNode = true; + node.isFirstNode = (targetChildren.length == 1); + } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) { + targetParentChildren.splice(tmpTargetIndex, 0, node); + newNeighbor = targetNode; + newNeighbor.isFirstNode = false; + node.parentTId = targetNode.parentTId; + node.isFirstNode = true; + node.isLastNode = false; + + } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) { + targetParentChildren.splice(tmpTargetIndex + 1, 0, node); + newNeighbor = targetNode; + newNeighbor.isLastNode = false; + node.parentTId = targetNode.parentTId; + node.isFirstNode = false; + node.isLastNode = true; + + } else { + if (moveType == consts.move.TYPE_PREV) { + targetParentChildren.splice(tmpTargetIndex, 0, node); + } else { + targetParentChildren.splice(tmpTargetIndex + 1, 0, node); + } + node.parentTId = targetNode.parentTId; + node.isFirstNode = false; + node.isLastNode = false; + } + data.fixPIdKeyValue(setting, node); + data.setSonNodeLevel(setting, node.getParentNode(), node); + + //repair node what been moved + view.setNodeLineIcos(setting, node); + view.repairNodeLevelClass(setting, node, oldLevel); + + //repair node's old parentNode dom + if (!setting.data.keep.parent && oldChildren.length < 1) { + //old parentNode has no child nodes + data.nodeIsParent(setting, oldParentNode, false); + oldParentNode.open = false; + var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), + tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), + tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting); + view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU); + tmp_ulObj.css("display", "none"); + + } else if (oldNeighbor) { + //old neigbor node + view.setNodeLineIcos(setting, oldNeighbor); + } + + //new neigbor node + if (newNeighbor) { + view.setNodeLineIcos(setting, newNeighbor); + } + + //repair checkbox / radio + if (!!setting.check && setting.check.enable && view.repairChkClass) { + view.repairChkClass(setting, oldParentNode); + view.repairParentChkClassWithSelf(setting, oldParentNode); + if (oldParentNode != node.parent) + view.repairParentChkClassWithSelf(setting, node); + } + + //expand parents after move + if (!isSilent) { + view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag); + } + }, + removeEditBtn: function (setting, node) { + $$(node, consts.id.EDIT, setting).unbind().remove(); + }, + removeRemoveBtn: function (setting, node) { + $$(node, consts.id.REMOVE, setting).unbind().remove(); + }, + removeTreeDom: function (setting, node) { + node.isHover = false; + view.removeEditBtn(setting, node); + view.removeRemoveBtn(setting, node); + tools.apply(setting.view.removeHoverDom, [setting.treeId, node]); + }, + repairNodeLevelClass: function (setting, node, oldLevel) { + if (oldLevel === node.level) return; + var liObj = $$(node, setting), + aObj = $$(node, consts.id.A, setting), + ulObj = $$(node, consts.id.UL, setting), + oldClass = consts.className.LEVEL + oldLevel, + newClass = consts.className.LEVEL + node.level; + liObj.removeClass(oldClass); + liObj.addClass(newClass); + aObj.removeClass(oldClass); + aObj.addClass(newClass); + ulObj.removeClass(oldClass); + ulObj.addClass(newClass); + }, + selectNodes: function (setting, nodes) { + for (var i = 0, l = nodes.length; i < l; i++) { + view.selectNode(setting, nodes[i], i > 0); + } + } + }, + + _z = { + tools: _tools, + view: _view, + event: _event, + data: _data + }; + $.extend(true, $.fn.zTree.consts, _consts); + $.extend(true, $.fn.zTree._z, _z); + + var zt = $.fn.zTree, + tools = zt._z.tools, + consts = zt.consts, + view = zt._z.view, + data = zt._z.data, + event = zt._z.event, + $$ = tools.$; + + data.exSetting(_setting); + data.addInitBind(_bindEvent); + data.addInitUnBind(_unbindEvent); + data.addInitCache(_initCache); + data.addInitNode(_initNode); + data.addInitProxy(_eventProxy); + data.addInitRoot(_initRoot); + data.addZTreeTools(_zTreeTools); + + var _cancelPreSelectedNode = view.cancelPreSelectedNode; + view.cancelPreSelectedNode = function (setting, node) { + var list = data.getRoot(setting).curSelectedList; + for (var i = 0, j = list.length; i < j; i++) { + if (!node || node === list[i]) { + view.removeTreeDom(setting, list[i]); + if (node) break; + } + } + if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments); + } + + var _createNodes = view.createNodes; + view.createNodes = function (setting, level, nodes, parentNode, index) { + if (_createNodes) { + _createNodes.apply(view, arguments); + } + if (!nodes) return; + if (view.repairParentChkClassWithSelf) { + view.repairParentChkClassWithSelf(setting, parentNode); + } + } + + var _makeNodeUrl = view.makeNodeUrl; + view.makeNodeUrl = function (setting, node) { + return setting.confirm.enable ? null : (_makeNodeUrl.apply(view, arguments)); + } + + var _removeNode = view.removeNode; + view.removeNode = function (setting, node) { + var root = data.getRoot(setting); + if (root.curEditNode === node) root.curEditNode = null; + if (_removeNode) { + _removeNode.apply(view, arguments); + } + } + + var _selectNode = view.selectNode; + view.selectNode = function (setting, node, addFlag) { + var root = data.getRoot(setting); + if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { + return false; + } + if (_selectNode) _selectNode.apply(view, arguments); + view.addHoverDom(setting, node); + return true; + } + + var _uCanDo = tools.uCanDo; + tools.uCanDo = function (setting, e) { + var root = data.getRoot(setting); + if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) { + return true; + } + if (root.curEditNode) { + view.editNodeBlur = false; + root.curEditInput.focus(); + } + return (!root.curEditNode) && (_uCanDo ? _uCanDo.apply(view, arguments) : true); + } +})(jQuery); diff --git a/src/plugins/ztree/js/jquery.ztree.all.min.js b/src/plugins/ztree/js/jquery.ztree.all.min.js new file mode 100644 index 0000000..11e5827 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.all.min.js @@ -0,0 +1,166 @@ + +/* + * JQuery zTree core v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", +dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, +function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, +[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= +e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=function(){return e.getNextNode(a,c)}; +c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id, +i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,f)?h.eqs(a.type,"click")||h.eqs(a.type, +"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=!0;b.createdNodes=[];b.zId=0;b._ver= +(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},addInitProxy:function(a, +b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);e.isSelectedNode(a,b)|| +c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d<e;d++)E[d].apply(this,arguments)},getBeforeA:function(a,b,c){for(var d= +0,e=D.length;d<e;d++)D[d].apply(this,arguments)},getInnerAfterA:function(a,b,c){for(var d=0,e=G.length;d<e;d++)G[d].apply(this,arguments)},getInnerBeforeA:function(a,b,c){for(var d=0,e=F.length;d<e;d++)F[d].apply(this,arguments)},getCache:function(a){return x[a.treeId]},getNodeIndex:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d;return-1},getNextNode:function(a,b){if(!b)return null;for(var c= +b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d==f?null:c[d+1];return null},getNodeByParam:function(a,b,c,d){if(!b||!c)return null;for(var f=0,i=b.length;f<i;f++){var m=b[f];if(m[c]==d)return b[f];m=e.nodeChildren(a,m);if(m=e.getNodeByParam(a,m,c,d))return m}return null},getNodeCache:function(a,b){if(!b)return null;var c=x[a.treeId].nodes[e.getNodeCacheId(b)];return c?c:null},getNodePath:function(a,b){if(!b)return null;var c;(c=b.parentTId? +b.getParentNode().getPath():[])&&c.push(b);return c},getNodes:function(a){return e.nodeChildren(a,e.getRoot(a))},getNodesByParam:function(a,b,c,d){if(!b||!c)return[];for(var f=[],i=0,m=b.length;i<m;i++){var k=b[i];k[c]==d&&f.push(k);k=e.nodeChildren(a,k);f=f.concat(e.getNodesByParam(a,k,c,d))}return f},getNodesByParamFuzzy:function(a,b,c,d){if(!b||!c)return[];for(var f=[],d=d.toLowerCase(),i=0,m=b.length;i<m;i++){var k=b[i];typeof k[c]=="string"&&b[i][c].toLowerCase().indexOf(d)>-1&&f.push(k);k=e.nodeChildren(a, +k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m<k;m++){var g=b[m];if(h.apply(c,[g,f],!1)){if(d)return g;i.push(g)}g=e.nodeChildren(a,g);g=e.getNodesByFilter(a,g,c,d,f);if(d&&g)return g;i=d?g:i.concat(g)}return i},getPreNode:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length;d<f;d++)if(c[d]===b)return d==0?null:c[d-1];return null}, +getRoot:function(a){return a?w[a.treeId]:null},getRoots:function(){return w},getSetting:function(a){return t[a]},getSettings:function(){return t},getZTreeTools:function(a){return(a=this.getRoot(this.getSetting(a)))?a.treeTools:null},initCache:function(a){for(var b=0,c=A.length;b<c;b++)A[b].apply(this,arguments)},initNode:function(a,b,c,d,e,i){for(var m=0,g=B.length;m<g;m++)B[m].apply(this,arguments)},initRoot:function(a){for(var b=0,c=C.length;b<c;b++)C[b].apply(this,arguments)},isSelectedNode:function(a, +b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d])return!0;return!1},nodeChildren:function(a,b,c){if(!b)return null;a=a.data.key.children;typeof c!=="undefined"&&(b[a]=c);return b[a]},nodeIsParent:function(a,b,c){if(!b)return!1;a=a.data.key.isParent;typeof c!=="undefined"?(typeof c==="string"&&(c=h.eqs(c,"true")),b[a]=!!c):b[a]=typeof b[a]=="string"?h.eqs(b[a],"true"):!!b[a];return b[a]},nodeName:function(a,b,c){a=a.data.key.name;typeof c!=="undefined"&& +(b[a]=c);return""+b[a]},nodeTitle:function(a,b){return""+b[a.data.key.title===""?a.data.key.name:a.data.key.title]},removeNodeCache:function(a,b){var c=e.nodeChildren(a,b);if(c)for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=null},removeSelectedNode:function(a,b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d]||!e.getNodeCache(a,c.curSelectedList[d].tId))c.curSelectedList.splice(d,1),a.treeObj.trigger(g.event.UNSELECTED, +[a.treeId,b]),d--,f--},setCache:function(a,b){x[a.treeId]=b},setRoot:function(a,b){w[a.treeId]=b},setZTreeTools:function(a,b){for(var c=0,d=H.length;c<d;c++)H[c].apply(this,arguments)},transformToArrayFormat:function(a,b){function c(b){d.push(b);(b=e.nodeChildren(a,b))&&(d=d.concat(e.transformToArrayFormat(a,b)))}if(!b)return[];var d=[];if(h.isArray(b))for(var f=0,i=b.length;f<i;f++)c(b[f]);else c(b);return d},transformTozTreeFormat:function(a,b){var c,d,f=a.data.simpleData.idKey,i=a.data.simpleData.pIdKey; +if(!f||f==""||!b)return[];if(h.isArray(b)){var g=[],k={};for(c=0,d=b.length;c<d;c++)k[b[c][f]]=b[c];for(c=0,d=b.length;c<d;c++){var j=k[b[c][i]];if(j&&b[c][f]!=b[c][i]){var o=e.nodeChildren(a,j);o||(o=e.nodeChildren(a,j,[]));o.push(b[c])}else g.push(b[c])}return g}else return[b]}},n={bindEvent:function(a){for(var b=0,c=y.length;b<c;b++)y[b].apply(this,arguments)},unbindEvent:function(a){for(var b=0,c=z.length;b<c;b++)z[b].apply(this,arguments)},bindTree:function(a){var b={treeId:a.treeId},c=a.treeObj; +a.view.txtSelectedEnable||c.bind("selectstart",v).css({"-moz-user-select":"-moz-none"});c.bind("click",b,n.proxy);c.bind("dblclick",b,n.proxy);c.bind("mouseover",b,n.proxy);c.bind("mouseout",b,n.proxy);c.bind("mousedown",b,n.proxy);c.bind("mouseup",b,n.proxy);c.bind("contextmenu",b,n.proxy)},unbindTree:function(a){a.treeObj.unbind("selectstart",v).unbind("click",n.proxy).unbind("dblclick",n.proxy).unbind("mouseover",n.proxy).unbind("mouseout",n.proxy).unbind("mousedown",n.proxy).unbind("mouseup", +n.proxy).unbind("contextmenu",n.proxy)},doProxy:function(a){for(var b=[],c=0,d=u.length;c<d;c++){var e=u[c].apply(this,arguments);b.push(e);if(e.stop)break}return b},proxy:function(a){var b=e.getSetting(a.data.treeId);if(!h.uCanDo(b,a))return!0;for(var b=n.doProxy(a),c=!0,d=0,f=b.length;d<f;d++){var i=b[d];i.nodeEventCallback&&(c=i.nodeEventCallback.apply(i,[a,i.node])&&c);i.treeEventCallback&&(c=i.treeEventCallback.apply(i,[a,i.node])&&c)}return c}};J=function(a,b){var c=e.getSetting(a.data.treeId); +if(b.open){if(h.apply(c.callback.beforeCollapse,[c.treeId,b],!0)==!1)return!0}else if(h.apply(c.callback.beforeExpand,[c.treeId,b],!0)==!1)return!0;e.getRoot(c).expandTriggerFlag=!0;j.switchNode(c,b);return!0};K=function(a,b){var c=e.getSetting(a.data.treeId),d=c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&e.isSelectedNode(c,b)?0:c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&c.view.selectedMulti?2:1;if(h.apply(c.callback.beforeClick,[c.treeId,b,d],!0)==!1)return!0;d===0?j.cancelPreSelectedNode(c, +b):j.selectNode(c,b,d===2);c.treeObj.trigger(g.event.CLICK,[a,c.treeId,b,d]);return!0};L=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseDown,[c.treeId,b],!0)&&h.apply(c.callback.onMouseDown,[a,c.treeId,b]);return!0};M=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseUp,[c.treeId,b],!0)&&h.apply(c.callback.onMouseUp,[a,c.treeId,b]);return!0};N=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeDblClick,[c.treeId,b],!0)&& +h.apply(c.callback.onDblClick,[a,c.treeId,b]);return!0};O=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeRightClick,[c.treeId,b],!0)&&h.apply(c.callback.onRightClick,[a,c.treeId,b]);return typeof c.callback.onRightClick!="function"};v=function(a){a=a.originalEvent.srcElement.nodeName.toLowerCase();return a==="input"||a==="textarea"};var h={apply:function(a,b,c){return typeof a=="function"?a.apply(Q,b?b:[]):c},canAsync:function(a,b){var c=e.nodeChildren(a,b),d=e.nodeIsParent(a, +b);return a.async.enable&&b&&d&&!(b.zAsync||c&&c.length>0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&& +a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d<e;d++)if(h.eqs(b.tagName,c[d].tagName)&&b.getAttribute(c[d].attrName)!==null)return b;b=b.parentNode}return null},getNodeMainDom:function(a){return r(a).parent("li").get(0)||r(a).parentsUntil("li").parent().get(0)}, +isChildOrSelf:function(a,b){return r(a).closest("#"+b).length>0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+ +1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s<n;s++){var p=c[s];i&&(o=(f===0||h.length==c.length)&&s==0,l=f<0&&s==c.length-1,e.initNode(a,b,p,d,o,l,g),e.addNodeCache(a,p));o=e.nodeIsParent(a,p);l=[];var I=e.nodeChildren(a,p);I&&I.length>0&&(l=j.appendNodes(a,b+1,I,p,-1, +i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&& +f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam); +for(f=0,i=k.length;b&&f<i;f++){var q=k[f].split("="),o=q;q.length>1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f<i;f+=2)m[k[f]]=k[f+1];else for(var n in k)m[n]=k[n];var s=e.getRoot(a)._ver;r.ajax({contentType:a.async.contentType,cache:!1,type:a.async.type,url:h.apply(a.async.url,[a.treeId,b],a.async.url),data:a.async.contentType.indexOf("application/json")>-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers, +xhrFields:a.async.xhrFields,success:function(i){if(s==e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR, +[a.treeId,b,c,d,i])}}});return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom, +[a.treeId,c]);a.callback.onNodeCreated&&a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a), +n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c= +l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])): +c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h<l;h++)i[h]&&j.expandCollapseSonNode(a, +i[h],c,g);e.getRoot(a).expandTriggerFlag=k;j.expandCollapseNode(a,b,c,d,f)},isSelectedNode:function(a,b){if(!b)return!1;var c=e.getRoot(a).curSelectedList,d;for(d=c.length-1;d>=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");a.push("<span id='",c.tId,g.id.ICON,"' title='' treeNode",g.id.ICON," class='",j.makeNodeIcoClass(b,c),"' style='",j.makeNodeIcoStyle(b,c),"'></span><span id='", +c.tId,g.id.SPAN,"' class='",g.className.NAME,"'>",d,"</span>")},makeDOMNodeLine:function(a,b,c){a.push("<span id='",c.tId,g.id.SWITCH,"' title='' class='",j.makeNodeLineClass(b,c),"' treeNode",g.id.SWITCH,"></span>")},makeDOMNodeMainAfter:function(a){a.push("</li>")},makeDOMNodeMainBefore:function(a,b,c){a.push("<li id='",c.tId,"' class='",g.className.LEVEL,c.level,"' tabindex='0' hidefocus='true' treenode>")},makeDOMNodeNameAfter:function(a){a.push("</a>")},makeDOMNodeNameBefore:function(a,b,c){var d= +e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("<a id='",c.tId,g.id.A,"' class='",g.className.LEVEL,c.level,"' treeNode",g.id.A,' onclick="',c.click||"",'" ',f!=null&&f.length>0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">"),"'");a.push(">")},makeNodeFontCss:function(a, +b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(", +d,") 0 0 no-repeat;");(a.view.showIcon==!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")}, +makeNodeLineClassEx:function(a){return g.className.BUTTON+" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("<ul id='",b.tId,g.id.UL,"' class='",g.className.LEVEL,b.level," ",j.makeUlLineClass(a,b),"' style='display:",b.open?"block":"none","'>");c.push(d);c.push("</ul>")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode? +g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.removeSelectedNode(a);delete b[a.data.key.children];a.data.keep.parent?l(b,g.id.UL,a).empty():(e.nodeIsParent(a,b,!1),b.open=!1,c=l(b,g.id.SWITCH,a),d=l(b,g.id.ICON,a),j.replaceSwitchClass(b,c,g.folder.DOCU),j.replaceIcoClass(b,d,g.folder.DOCU),l(b,g.id.UL,a).remove())}}},scrollIntoView:function(a,b){if(b)if(typeof Element==="undefined"){var c=a.treeObj.get(0).getBoundingClientRect(), +d=b.getBoundingClientRect();(d.top<c.top||d.bottom>c.bottom||d.right>c.right||d.left<c.left)&&b.scrollIntoView()}else{if(!Element.prototype.scrollIntoViewIfNeeded)Element.prototype.scrollIntoViewIfNeeded=function(a){function b(a,c){return{start:a,length:c,end:a+c}}function c(b,d){return!1===a||d.start<b.end&&b.start<d.end?Math.max(b.end-d.length,Math.min(d.start,b.start)):(b.start+b.end-d.length)/2}function d(a,b){return{x:a,y:b,translate:function(c,i){return d(a+c,b+i)}}}function e(a,b){for(;a;)b= +b.translate(a.offsetLeft,a.offsetTop),a=a.offsetParent;return b}for(var g=e(this,d(0,0)),j=d(this.offsetWidth,this.offsetHeight),h=this.parentNode,l;h instanceof HTMLElement;)l=e(h,d(h.clientLeft,h.clientTop)),h.scrollLeft=c(b(g.x-l.x,j.x),b(h.scrollLeft,h.clientWidth)),h.scrollTop=c(b(g.y-l.y,j.y),b(h.scrollTop,h.clientHeight)),g=g.translate(-h.scrollLeft,-h.scrollTop),h=h.parentNode};b.scrollIntoViewIfNeeded()}},setFirstNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[0].isFirstNode= +!0},setLastNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i<h;i++)if(f[i].tId==b.tId){f.splice(i,1);break}j.setFirstNode(a,d);j.setLastNode(a, +d);var k,i=f.length;if(!a.data.keep.parent&&i==0)e.nodeIsParent(a,d,!1),d.open=!1,delete d[a.data.key.children],i=l(d,g.id.UL,a),h=l(d,g.id.SWITCH,a),k=l(d,g.id.ICON,a),j.replaceSwitchClass(d,h,g.folder.DOCU),j.replaceIcoClass(d,k,g.folder.DOCU),i.css("display","none");else if(a.view.showLine&&i>0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q, +h,g.line.BOTTOM)):j.replaceSwitchClass(q,h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+ +c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH, +a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle, +[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button", +LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open", +CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)? +c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d, +a)},destroy:function(){j.destroy(d)},expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(), +b,!1);if(b===a.open&&!c)return null;e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a, +b,c){return!a?null:e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c<f;c++)if(b[c]==a)return c;return-1},getSelectedNodes:function(){for(var a=[],b=e.getRoot(d).curSelectedList,c=0,f=b.length;c<f;c++)a.push(b[c]); +return a},isSelectedNode:function(a){return e.isSelectedNode(d,a)},reAsyncChildNodesPromise:function(a,b,c){return new Promise(function(d,e){try{f.reAsyncChildNodes(a,b,c,function(){d(a)})}catch(g){e(g)}})},reAsyncChildNodes:function(a,b,c,f){if(this.setting.async.enable){var h=!a;h&&(a=e.getRoot(d));if(b=="refresh"){for(var b=e.nodeChildren(d,a),n=0,r=b?b.length:0;n<r;n++)e.removeNodeCache(d,b[n]);e.removeSelectedNode(d);e.nodeChildren(d,a,[]);h?this.setting.treeObj.empty():l(a,g.id.UL,d).empty()}j.asyncNode(this.setting, +h?null:a,!!c,f)}},refresh:function(){this.setting.treeObj.empty();var a=e.getRoot(d),b=e.nodeChildren(d,a);e.initRoot(d);e.nodeChildren(d,a,b);e.initCache(d);j.createNodes(d,0,e.nodeChildren(d,a),null,-1)},removeChildNodes:function(a){if(!a)return null;var b=e.nodeChildren(d,a);j.removeChildNodes(d,a);return b?b:null},removeNode:function(a,b){a&&(b=!!b,b&&h.apply(d.callback.beforeRemove,[d.treeId,a],!0)==!1||(j.removeNode(d,a),b&&this.setting.treeObj.trigger(g.event.REMOVE,[d.treeId,a])))},selectNode:function(a, +b,c){function e(){if(!c){var b=l(a,d).get(0);j.scrollIntoView(d,b)}}if(a&&h.uCanDo(d)){b=d.view.selectedMulti&&b;if(a.parentTId)j.expandCollapseParentNode(d,a.getParentNode(),!0,!1,e);else if(!c)try{l(a,d).focus().blur()}catch(f){}j.selectNode(d,a,b)}},transformTozTreeNodes:function(a){return e.transformTozTreeFormat(d,a)},transformToArray:function(a){return e.transformToArrayFormat(d,a)},updateNode:function(a){a&&l(a,d).get(0)&&h.uCanDo(d)&&(j.setNodeName(d,a),j.setNodeTarget(d,a),j.setNodeUrl(d, +a),j.setNodeLineIcos(d,a),j.setNodeFontCss(d,a))}};a.treeTools=f;e.setZTreeTools(d,f);(c=e.nodeChildren(d,a))&&c.length>0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); + +/* + * JQuery zTree excheck v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(m){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c, +a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=f.nodeChecked(b,a);f.nodeChecked(b,a,!d);e.checkNodeRelation(b,a);d=n(a,h.id.CHECK,b);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c, +a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,o);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=f.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=f.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=f.nodeChecked(c,b);k&&b!=a&&(f.nodeChecked(c,b,!1),g.splice(d,1),e.setChkClass(c, +n(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&e.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():f.getRoot(c);g=f.nodeChildren(c,g);for(d=0,j=g.length;d<j;d++)if(b=g[d],(k=f.nodeChecked(c,b))&&b!=a)f.nodeChecked(c,b,!1),e.setChkClass(c,n(b,h.id.CHECK,c),b)}else if(c.check.radioType==d.TYPE_ALL)for(d=0,j=g.length;d<j;d++)if(a==g[d]){g.splice(d,1);break}}else g=f.nodeChildren(c,a),b&&(!g||g.length==0||c.check.chkboxType.Y.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a, +!0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=f.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART: +a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=f.getRoot(c),b=f.nodeChildren(c,b),d=0,j=b.length;d<j;d++){var g=b[d];g.nocheck!==!0&&g.chkDisabled!==!0&&f.nodeChecked(c,g,a);e.setSonNodeCheckBox(c,g,a)}},repairChkClass:function(c,a){if(a&&(f.makeChkFlag(c,a),a.nocheck!==!0)){var b= +n(a,h.id.CHECK,c);e.setChkClass(c,b,a)}},repairParentChkClass:function(c,a){if(a&&a.parentTId){var b=a.getParentNode();e.repairChkClass(c,b);e.repairParentChkClass(c,b)}},repairParentChkClassWithSelf:function(c,a){if(a){var b=f.nodeChildren(c,a);b&&b.length>0?e.repairParentChkClass(c,b[0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;e.repairChkClass(c,a);if((a=f.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j<g;j++)e.repairSonChkDisabled(c, +a[j],b,d)}},repairParentChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b&&d)a.chkDisabled=b;e.repairChkClass(c,a);e.repairParentChkDisabled(c,a.getParentNode(),b,d)}},setChkClass:function(c,a,b){a&&(b.nocheck===!0?a.hide():a.show(),a.attr("class",e.makeChkClass(c,b)))},setParentNodeCheckBox:function(c,a,b,d){var j=n(a,h.id.CHECK,c);d||(d=a);f.makeChkFlag(c,a);a.nocheck!==!0&&a.chkDisabled!==!0&&(f.nodeChecked(c,a,b),e.setChkClass(c,j,a),c.check.autoCheckTrigger&&a!=d&&c.treeObj.trigger(h.event.CHECK, +[null,c.treeId,a]));if(a.parentTId){j=!0;if(!b)for(var g=f.nodeChildren(c,a.getParentNode()),k=0,w=g.length;k<w;k++){var l=g[k],i=f.nodeChecked(c,l);if(l.nocheck!==!0&&l.chkDisabled!==!0&&i||(l.nocheck===!0||l.chkDisabled===!0)&&l.check_Child_State>0){j=!1;break}}j&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=n(a,h.id.CHECK,c);d||(d=a);var g=!1,k=f.nodeChildren(c,a);if(k)for(var i=0,l=k.length;i<l;i++){var m=k[i];e.setSonNodeCheckBox(c,m,b,d); +m.chkDisabled===!0&&(g=!0)}if(a!=f.getRoot(c)&&a.chkDisabled!==!0){g&&a.nocheck!==!0&&f.makeChkFlag(c,a);if(a.nocheck!==!0&&a.chkDisabled!==!0){if(f.nodeChecked(c,a,b),!g)a.check_Child_State=k&&k.length>0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=f.getRoot(c).radioCheckedList,b=0,d=a.length;b<d;b++)f.getNodeCache(c, +a[b].tId)||(a.splice(b,1),b--,d--);return a},getCheckStatus:function(c,a){if(!c.check.enable||a.nocheck||a.chkDisabled)return null;var b=f.nodeChecked(c,a);return{checked:b,half:a.halfCheck?a.halfCheck:c.check.chkStyle==h.radio.STYLE?a.check_Child_State===2:b?a.check_Child_State>-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,e=a.length;g<e;g++){var i= +a[g],l=f.nodeChildren(c,i),m=f.nodeChecked(c,i);if(i.nocheck!==!0&&i.chkDisabled!==!0&&m==b&&(d.push(i),j))break;f.getTreeCheckedNodes(c,l,b,d);if(j&&d.length>0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d<j;d++){var g=a[d],e=f.nodeChildren(c,g),h=f.nodeChecked(c,g);g.nocheck!==!0&&g.chkDisabled!==!0&&h!=g.checkedOld&&b.push(g);f.getTreeChangeCheckedNodes(c,e,b)}return b},makeChkFlag:function(c,a){if(a){var b=-1,d=f.nodeChildren(c,a); +if(d)for(var j=0,g=d.length;j<g;j++){var e=d[j],i=f.nodeChecked(c,e),l=-1;if(c.check.chkStyle==h.radio.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?2:i?2:e.check_Child_State>0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?1:i?e.check_Child_State===-1||e.check_Child_State===2?2:1:e.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!== +b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var m=m.fn.zTree,i=m._z.tools,h=m.consts,e=m._z.view,f=m._z.data,n=i.$;f.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"?(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b):a[c]=typeof a[c]=="string"?i.eqs(a[c],"true"):!!a[c];return a[c]};f.exSetting(v);f.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a, +d,e])})});f.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)});f.addInitCache(function(){});f.addInitNode(function(c,a,b,d){if(b){a=f.nodeChecked(c,b);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck, +"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return f.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&f.getRoot(c).radioCheckedList.push(b)}});f.addInitProxy(function(c){var a=c.target,b=f.getSetting(c.data.treeId),d="",e=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type, +"mouseout")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(e=f.getNodeCache(b,d),g){case "checkNode":k=p;break;case "mouseoverCheck":k=q;break;case "mouseoutCheck":k=r}return{stop:g==="checkNode",node:e,nodeEventType:g,nodeEventCallback:k, +treeEventType:"",treeEventCallback:null}},!0);f.addInitRoot(function(c){f.getRoot(c).radioCheckedList=[]});f.addBeforeA(function(c,a,b){c.check.enable&&(f.makeChkFlag(c,a),b.push("<span ID='",a.tId,h.id.CHECK,"' class='",e.makeChkClass(c,a),"' treeNode",h.id.CHECK,a.nocheck===!0?" style='display:none;'":"","></span>"))});f.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var m=f.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!m),k=!!k,(m!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck, +[this.setting.treeId,a],!0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))f.nodeChecked(c,a,b),b=n(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b= +f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,f){b=!!b;c=!!c;e.repairSonChkDisabled(this.setting,a,b,!!f);e.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&n(c,this.setting).get(0)&& +i.uCanDo(this.setting)){var g=n(c,h.id.CHECK,this.setting);(f==!0||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,g,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d,f){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode=function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))}; +var u=e.appendNodes;e.appendNodes=function(c,a,b,d,h,g,i){var m="";u&&(m=u.apply(e,arguments));d&&f.makeChkFlag(c,d);return m}})(jQuery); + +/* + * JQuery zTree exedit v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a= +i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)<f.confirm.drag.minMoveSize&&Math.abs(O-a.clientY)<f.confirm.drag.minMoveSize)return!0;var b,c,g,j;L.css("cursor","pointer");if(m.dragFlag==0){if(k.apply(f.callback.beforeDrag,[f.treeId,n],!0)==!1)return l(a),!0;for(b=0,c=n.length; b<c; b++){if(b==0)m.dragNodeShowBefore=[]; +g=n[b];i.nodeIsParent(f,g)&&g.open?(e.expandCollapseNode(f,g,!g.open),m.dragNodeShowBefore[g.tId]=!0):m.dragNodeShowBefore[g.tId]=!1}m.dragFlag=1;y.showHoverDom=!1;k.showIfameMask(f,!0);j=!0;var p=-1;if(n.length>1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b<c;b++)if(m.dragNodeShowBefore[o[b].tId]!==void 0&&(j&&p>-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("<ul class='zTreeDragUL'></ul>", +f);for(b=0,c=n.length;b<c;b++)g=n[b],g.editNameFlag=!1,e.selectNode(f,g,b>0),e.removeTreeDom(f,g),b>f.confirm.drag.maxShowNodeNum-1||(j=q("<li id='"+g.tId+"_tmp'></li>",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.confirm.drag.maxShowNodeNum-1&&(j=q("<li id='"+g.tId+"_moretmp'><a> ... </a></li>",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("<span class='tmpzTreeMove_arrow'></span>", +f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER)); +w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].confirm.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=c<f.confirm.drag.borderMax&&c>f.confirm.drag.borderMin,o=E<f.confirm.drag.borderMax&& +E>f.confirm.drag.borderMin,F=r<f.confirm.drag.borderMax&&r>f.confirm.drag.borderMin,v=s<f.confirm.drag.borderMax&&s>f.confirm.drag.borderMin,E=c>f.confirm.drag.borderMin&&E>f.confirm.drag.borderMin&&r>f.confirm.drag.borderMin&&s>f.confirm.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target; D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!= +h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b<c;b++)if(g=n[b],D.id===g.tId){R=!1;break}else if(q(g,f).find("#"+D.id).length>0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+ +10);t&&t!=h.treeObj&&t.offset().left<h.treeObj.offset().left&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+t.offset().left-h.treeObj.offset().left)}C.css({top:a.clientY+z+3+"px",left:a.clientX+j+3+"px"});b=j=0;if(t&&t.attr("id")!=h.treeId){var A=w==null?null:i.getNodeCache(h,w),p=(a.ctrlKey||a.metaKey)&&f.confirm.drag.isMove&&f.confirm.drag.isCopy||!f.confirm.drag.isMove&&f.confirm.drag.isCopy;c=!!(H&&w===H.tId);F=!!(Q&&w===Q.tId);o=g.parentTId&&g.parentTId==w;g=(p||!F)&&k.apply(h.confirm.drag.prev,[h.treeId,n,A], +!!h.confirm.drag.prev);c=(p||!c)&&k.apply(h.confirm.drag.next,[h.treeId,n,A],!!h.confirm.drag.next);p=(p||!o)&&!(h.data.keep.leaf&&!i.nodeIsParent(f,A))&&k.apply(h.confirm.drag.inner,[h.treeId,n,A],!!h.confirm.drag.inner);o=function(){t=null;w="";x=d.move.TYPE_INNER;u.css({display:"none"});if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null};if(!g&&!c&&!p)o();else if(F=B("#"+w+d.id.A,t),v=A.isLastNode?null:B("#"+A.getNextNode().tId+d.id.A,t.next()),E=F.offset().top,r= +F.offset().left,s=g?p?0.25:c?0.5:1:-1,M=c?p?0.75:g?0.5:0:-1,z=(a.clientY+z-E)/F.height(),(s==1||z<=s&&z>=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f, +A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.confirm.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.confirm.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND, +[h.treeId,A]))},h.confirm.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.confirm.drag.inner,[h.treeId,n,null],!!h.confirm.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId= +null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b<j;b++)o=n[b],i.nodeIsParent(f,o)&&m.dragNodeShowBefore[o.tId]&& +!o.open&&(e.expandCollapseNode(f,o,!o.open),delete m.dragNodeShowBefore[o.tId]);C&&C.remove();u&&u.remove();var r=(a.ctrlKey||a.metaKey)&&f.confirm.drag.isMove&&f.confirm.drag.isCopy||!f.confirm.drag.isMove&&f.confirm.drag.isCopy;!r&&t&&w&&n[0].parentTId&&w==n[0].parentTId&&x==d.move.TYPE_INNER&&(t=null);if(t){var p=w==null?null:i.getNodeCache(h,w);if(k.apply(f.callback.beforeDrop,[h.treeId,n,p,x,r],!0)==!1)e.selectNodes(v,n);else{var s=r?k.clone(n):n;b=function(){if(J){if(!r)for(var b=0,c=n.length; b<c; b++)e.removeNode(f, +n[b]);x==d.move.TYPE_INNER?e.addNodes(h,p,-1,s):e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s)}else if(r&&x==d.move.TYPE_INNER)e.addNodes(h,p,-1,s);else if(r)e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s);else if(x!=d.move.TYPE_NEXT)for(b=0,c=s.length;b<c;b++)e.moveNode(h,p,s[b],x,!1);else for(b=-1,c=s.length-1;b<c;c--)e.moveNode(h,p,s[c],x,!1);e.selectNodes(h,s);b=q(s[0],f).get(0);e.scrollIntoView(f,b);f.treeObj.trigger(d.event.DROP, +[a,h.treeId,s,p,x,r])};x==d.move.TYPE_INNER&&k.canAsync(h,p)?e.asyncNode(h,p,!1,b):b()}}else e.selectNodes(v,n),f.treeObj.trigger(d.event.DROP,[a,f.treeId,n,null,null,null])}}function g(){return!1}var o,j,f=i.getSetting(a.data.treeId),m=i.getRoot(f),y=i.getRoots();if(a.button==2||!f.confirm.enable||!f.confirm.drag.isCopy&&!f.confirm.drag.isMove)return!0;var r=a.target,s=i.getRoot(f).curSelectedList,n=[];if(i.isSelectedNode(f,b))for(o=0,j=s.length; o<j; o++){if(s[o].editNameFlag&&k.eqs(r.tagName,"input")&&r.getAttribute("treeNode"+ +d.id.INPUT)!==null)return!0;n.push(s[o]);if(n[0].parentTId!==s[o].parentTId){n=[b];break}}else n=[b];e.editNodeBlur=!0;e.cancelCurEditNode(f);var G=B(f.treeObj.get(0).ownerDocument),L=B(f.treeObj.get(0).ownerDocument.body),C,u,t,J=!1,h=f,v=f,H,Q,S=null,T=null,w=null,x=d.move.TYPE_INNER,N=a.clientX,O=a.clientY,K=(new Date).getTime();k.uCanDo(f)&&G.bind("mousemove",c);G.bind("mouseup",l);G.bind("selectstart",g);return!0}};B.extend(!0,B.fn.zTree.consts,I);B.extend(!0,B.fn.zTree._z,{tools:{getAbs:function(a){a= +a.getBoundingClientRect();return[a.left+(document.body.scrollLeft+document.documentElement.scrollLeft),a.top+(document.body.scrollTop+document.documentElement.scrollTop)]},inputFocus:function(a){a.get(0)&&(a.focus(),k.setCursorPosition(a.get(0),a.val().length))},inputSelect:function(a){a.get(0)&&(a.focus(),a.select())},setCursorPosition:function(a,b){if(a.setSelectionRange)a.focus(),a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0);c.moveEnd("character", +b);c.moveStart("character",b);c.select()}},showIfameMask:function(a,b){for(var c=i.getRoot(a);c.dragMaskList.length>0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g<e;g++){var j=d.get(g),f=k.getAbs(j),j=q("<div id='zTreeMask_"+g+"' class='zTreeMask' style='top:"+f[1]+"px; left:"+f[0]+"px; width:"+j.offsetWidth+"px; height:"+j.offsetHeight+"px;'></div>",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag|| +q(b,d.id.EDIT,a).length>0)&&k.apply(a.confirm.showRenameBtn,[a.treeId,b],a.confirm.showRenameBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" edit' id='"+b.tId+d.id.EDIT+"' title='"+k.apply(a.confirm.renameTitle,[a.treeId,b],a.confirm.renameTitle)+"' treeNode"+d.id.EDIT+" style='display:none;'></span>";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a, + b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.confirm.showRemoveBtn,[a.treeId,b],a.confirm.showRemoveBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" remove' id='"+b.tId+d.id.REMOVE+"' title='"+k.apply(a.confirm.removeTitle,[a.treeId,b],a.confirm.removeTitle)+"' treeNode"+d.id.REMOVE+" style='display:none;'></span>";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE, +[a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.confirm.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a, b, c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT); +o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("<input type=text class='rename' id='"+ +b.tId+d.id.INPUT+"' treeNode"+d.id.INPUT+" >");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.confirm.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l; +c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId= +b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null, +m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j<s;j++)if(v[j].tId==c.tId){y=j;break}y>=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j<s;j++)C[j].tId==b.tId&&(r=j);if(l==d.move.TYPE_INNER){u||(u=i.nodeChildren(a,b,[]));if(u.length>0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode= +u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a, +c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a, +b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a, +b){for(var c=0,d=b.length;c<d;c++)e.selectNode(a,b[c],c>0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b<g;b++)d[b]&&i.setSonNodeLevel(a,c,d[b])}}}});var H=B.fn.zTree,k=H._z.tools,d=H.consts,e=H._z.view,i=H._z.data,q=k.$;i.exSetting({edit:{enable:!1,editNameSelectAll:!1,showRemoveBtn:!0,showRenameBtn:!0,removeTitle:"remove",renameTitle:"rename",drag:{autoExpandTrigger:!1,isCopy:!0,isMove:!0,prev:!0,next:!0,inner:!0, +minMoveSize:5,borderMax:10,borderMin:-5,maxShowNodeNum:5,autoOpenTime:500}},view:{addHoverDom:null,removeHoverDom:null},callback:{beforeDrag:null,beforeDragOpen:null,beforeDrop:null,beforeEditName:null,beforeRename:null,onDrag:null,onDragMove:null,onDrop:null,onRename:null}});i.addInitBind(function(a){var b=a.treeObj,c=d.event;b.bind(c.RENAME,function(b,c,d,e){k.apply(a.callback.onRename,[b,c,d,e])});b.bind(c.DRAG,function(b,c,d,e){k.apply(a.callback.onDrag,[c,d,e])});b.bind(c.DRAGMOVE,function(b, +c,d,e){k.apply(a.callback.onDragMove,[c,d,e])});b.bind(c.DROP,function(b,c,d,e,f,i,q){k.apply(a.callback.onDrop,[c,d,e,f,i,q])})});i.addInitUnBind(function(a){var a=a.treeObj,b=d.event;a.unbind(b.RENAME);a.unbind(b.DRAG);a.unbind(b.DRAGMOVE);a.unbind(b.DROP)});i.addInitCache(function(){});i.addInitNode(function(a,b,c){if(c)c.isHover=!1,c.editNameFlag=!1});i.addInitProxy(function(a){var b=a.target,c=i.getSetting(a.data.treeId),e=a.relatedTarget,g="",o=null,j="",f=null,m=null;if(k.eqs(a.type,"mouseover")){if(m= +k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}]))g=k.getNodeMainDom(m).id,j="hoverOverNode"}else if(k.eqs(a.type,"mouseout"))m=k.getMDom(c,e,[{tagName:"a",attrName:"treeNode"+d.id.A}]),m||(g="remove",j="hoverOutNode");else if(k.eqs(a.type,"mousedown")&&(m=k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}])))g=k.getNodeMainDom(m).id,j="mousedownNode";if(g.length>0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode; +break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b, +l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting, +a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.confirm.enable= +a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d<g;d++)if(!b||b===c[d])if(e.removeTreeDom(a,c[d]),b)break;N&&N.apply(e,arguments)};var O=e.createNodes;e.createNodes=function(a,b,c,d,g){O&&O.apply(e,arguments);c&&e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(a,d)};var V=e.makeNodeUrl;e.makeNodeUrl=function(a,b){return a.confirm.enable?null:V.apply(e,arguments)};var K=e.removeNode;e.removeNode= +function(a,b){var c=i.getRoot(a);if(c.curEditNode===b)c.curEditNode=null;K&&K.apply(e,arguments)};var P=e.selectNode;e.selectNode=function(a,b,c){var d=i.getRoot(a);if(i.isSelectedNode(a,b)&&d.curEditNode==b&&b.editNameFlag)return!1;P&&P.apply(e,arguments);e.addHoverDom(a,b);return!0};var U=k.uCanDo;k.uCanDo=function(a,b){var c=i.getRoot(a);if(b&&(k.eqs(b.type,"mouseover")||k.eqs(b.type,"mouseout")||k.eqs(b.type,"mousedown")||k.eqs(b.type,"mouseup")))return!0;if(c.curEditNode)e.editNodeBlur=!1,c.curEditInput.focus(); +return!c.curEditNode&&(U?U.apply(e,arguments):!0)}})(jQuery); + diff --git a/src/plugins/ztree/js/jquery.ztree.core.js b/src/plugins/ztree/js/jquery.ztree.core.js new file mode 100644 index 0000000..6b21dcc --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.core.js @@ -0,0 +1,1986 @@ +/* + * JQuery zTree core v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + var settings = {}, roots = {}, caches = {}, + //default consts of core + _consts = { + className: { + BUTTON: "button", + LEVEL: "level", + ICO_LOADING: "ico_loading", + SWITCH: "switch", + NAME: 'node_name' + }, + event: { + NODECREATED: "ztree_nodeCreated", + CLICK: "ztree_click", + EXPAND: "ztree_expand", + COLLAPSE: "ztree_collapse", + ASYNC_SUCCESS: "ztree_async_success", + ASYNC_ERROR: "ztree_async_error", + REMOVE: "ztree_remove", + SELECTED: "ztree_selected", + UNSELECTED: "ztree_unselected" + }, + id: { + A: "_a", + ICON: "_ico", + SPAN: "_span", + SWITCH: "_switch", + UL: "_ul" + }, + line: { + ROOT: "root", + ROOTS: "roots", + CENTER: "center", + BOTTOM: "bottom", + NOLINE: "noline", + LINE: "line" + }, + folder: { + OPEN: "open", + CLOSE: "close", + DOCU: "docu" + }, + node: { + CURSELECTED: "curSelectedNode" + } + }, + //default setting of core + _setting = { + treeId: "", + treeObj: null, + view: { + addDiyDom: null, + autoCancelSelected: true, + dblClickExpand: true, + expandSpeed: "fast", + fontCss: {}, + nameIsHTML: false, + selectedMulti: true, + showIcon: true, + showLine: true, + showTitle: true, + txtSelectedEnable: false + }, + data: { + key: { + isParent: "isParent", + children: "children", + name: "name", + title: "", + url: "url", + icon: "icon" + }, + simpleData: { + enable: false, + idKey: "id", + pIdKey: "pId", + rootPId: null + }, + keep: { + parent: false, + leaf: false + } + }, + async: { + enable: false, + contentType: "application/x-www-form-urlencoded", + type: "post", + dataType: "text", + headers: {}, + xhrFields: {}, + url: "", + autoParam: [], + otherParam: [], + dataFilter: null + }, + callback: { + beforeAsync: null, + beforeClick: null, + beforeDblClick: null, + beforeRightClick: null, + beforeMouseDown: null, + beforeMouseUp: null, + beforeExpand: null, + beforeCollapse: null, + beforeRemove: null, + + onAsyncError: null, + onAsyncSuccess: null, + onNodeCreated: null, + onClick: null, + onDblClick: null, + onRightClick: null, + onMouseDown: null, + onMouseUp: null, + onExpand: null, + onCollapse: null, + onRemove: null + } + }, + //default root of core + //zTree use root to save full data + _initRoot = function (setting) { + var r = data.getRoot(setting); + if (!r) { + r = {}; + data.setRoot(setting, r); + } + data.nodeChildren(setting, r, []); + r.expandTriggerFlag = false; + r.curSelectedList = []; + r.noSelection = true; + r.createdNodes = []; + r.zId = 0; + r._ver = (new Date()).getTime(); + }, + //default cache of core + _initCache = function (setting) { + var c = data.getCache(setting); + if (!c) { + c = {}; + data.setCache(setting, c); + } + c.nodes = []; + c.doms = []; + }, + //default bindEvent of core + _bindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.bind(c.NODECREATED, function (event, treeId, node) { + tools.apply(setting.callback.onNodeCreated, [event, treeId, node]); + }); + + o.bind(c.CLICK, function (event, srcEvent, treeId, node, clickFlag) { + tools.apply(setting.callback.onClick, [srcEvent, treeId, node, clickFlag]); + }); + + o.bind(c.EXPAND, function (event, treeId, node) { + tools.apply(setting.callback.onExpand, [event, treeId, node]); + }); + + o.bind(c.COLLAPSE, function (event, treeId, node) { + tools.apply(setting.callback.onCollapse, [event, treeId, node]); + }); + + o.bind(c.ASYNC_SUCCESS, function (event, treeId, node, msg) { + tools.apply(setting.callback.onAsyncSuccess, [event, treeId, node, msg]); + }); + + o.bind(c.ASYNC_ERROR, function (event, treeId, node, XMLHttpRequest, textStatus, errorThrown) { + tools.apply(setting.callback.onAsyncError, [event, treeId, node, XMLHttpRequest, textStatus, errorThrown]); + }); + + o.bind(c.REMOVE, function (event, treeId, treeNode) { + tools.apply(setting.callback.onRemove, [event, treeId, treeNode]); + }); + + o.bind(c.SELECTED, function (event, treeId, node) { + tools.apply(setting.callback.onSelected, [treeId, node]); + }); + o.bind(c.UNSELECTED, function (event, treeId, node) { + tools.apply(setting.callback.onUnSelected, [treeId, node]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.unbind(c.NODECREATED) + .unbind(c.CLICK) + .unbind(c.EXPAND) + .unbind(c.COLLAPSE) + .unbind(c.ASYNC_SUCCESS) + .unbind(c.ASYNC_ERROR) + .unbind(c.REMOVE) + .unbind(c.SELECTED) + .unbind(c.UNSELECTED); + }, + //default event proxy of core + _eventProxy = function (event) { + var target = event.target, + setting = data.getSetting(event.data.treeId), + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null, + tmp = null; + + if (tools.eqs(event.type, "mousedown")) { + treeEventType = "mousedown"; + } else if (tools.eqs(event.type, "mouseup")) { + treeEventType = "mouseup"; + } else if (tools.eqs(event.type, "contextmenu")) { + treeEventType = "contextmenu"; + } else if (tools.eqs(event.type, "click")) { + if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "switchNode"; + } else { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "clickNode"; + } + } + } else if (tools.eqs(event.type, "dblclick")) { + treeEventType = "dblclick"; + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "switchNode"; + } + } + if (treeEventType.length > 0 && tId.length == 0) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + } + } + // event to node + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "switchNode" : + var isParent = data.nodeIsParent(setting, node); + if (!isParent) { + nodeEventType = ""; + } else if (tools.eqs(event.type, "click") + || (tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [setting.treeId, node], setting.view.dblClickExpand))) { + nodeEventCallback = handler.onSwitchNode; + } else { + nodeEventType = ""; + } + break; + case "clickNode" : + nodeEventCallback = handler.onClickNode; + break; + } + } + // event to zTree + switch (treeEventType) { + case "mousedown" : + treeEventCallback = handler.onZTreeMousedown; + break; + case "mouseup" : + treeEventCallback = handler.onZTreeMouseup; + break; + case "dblclick" : + treeEventCallback = handler.onZTreeDblclick; + break; + case "contextmenu" : + treeEventCallback = handler.onZTreeContextmenu; + break; + } + var proxyResult = { + stop: false, + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of core + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + var r = data.getRoot(setting), + children = data.nodeChildren(setting, n); + n.level = level; + n.tId = setting.treeId + "_" + (++r.zId); + n.parentTId = parentNode ? parentNode.tId : null; + n.open = (typeof n.open == "string") ? tools.eqs(n.open, "true") : !!n.open; + var isParent = data.nodeIsParent(setting, n); + if (tools.isArray(children)) { + data.nodeIsParent(setting, n, true); + n.zAsync = true; + } else { + isParent = data.nodeIsParent(setting, n, isParent); + n.open = (isParent && !setting.async.enable) ? n.open : false; + n.zAsync = !isParent; + } + n.isFirstNode = isFirstNode; + n.isLastNode = isLastNode; + n.getParentNode = function () { + return data.getNodeCache(setting, n.parentTId); + }; + n.getPreNode = function () { + return data.getPreNode(setting, n); + }; + n.getNextNode = function () { + return data.getNextNode(setting, n); + }; + n.getIndex = function () { + return data.getNodeIndex(setting, n); + }; + n.getPath = function () { + return data.getNodePath(setting, n); + }; + n.isAjaxing = false; + data.fixPIdKeyValue(setting, n); + }, + _init = { + bind: [_bindEvent], + unbind: [_unbindEvent], + caches: [_initCache], + nodes: [_initNode], + proxys: [_eventProxy], + roots: [_initRoot], + beforeA: [], + afterA: [], + innerBeforeA: [], + innerAfterA: [], + zTreeTools: [] + }, + //method of operate data + data = { + addNodeCache: function (setting, node) { + data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node; + }, + getNodeCacheId: function (tId) { + return tId.substring(tId.lastIndexOf("_") + 1); + }, + addAfterA: function (afterA) { + _init.afterA.push(afterA); + }, + addBeforeA: function (beforeA) { + _init.beforeA.push(beforeA); + }, + addInnerAfterA: function (innerAfterA) { + _init.innerAfterA.push(innerAfterA); + }, + addInnerBeforeA: function (innerBeforeA) { + _init.innerBeforeA.push(innerBeforeA); + }, + addInitBind: function (bindEvent) { + _init.bind.push(bindEvent); + }, + addInitUnBind: function (unbindEvent) { + _init.unbind.push(unbindEvent); + }, + addInitCache: function (initCache) { + _init.caches.push(initCache); + }, + addInitNode: function (initNode) { + _init.nodes.push(initNode); + }, + addInitProxy: function (initProxy, isFirst) { + if (!!isFirst) { + _init.proxys.splice(0, 0, initProxy); + } else { + _init.proxys.push(initProxy); + } + }, + addInitRoot: function (initRoot) { + _init.roots.push(initRoot); + }, + addNodesData: function (setting, parentNode, index, nodes) { + var children = data.nodeChildren(setting, parentNode), params; + if (!children) { + children = data.nodeChildren(setting, parentNode, []); + index = -1; + } else if (index >= children.length) { + index = -1; + } + + if (children.length > 0 && index === 0) { + children[0].isFirstNode = false; + view.setNodeLineIcos(setting, children[0]); + } else if (children.length > 0 && index < 0) { + children[children.length - 1].isLastNode = false; + view.setNodeLineIcos(setting, children[children.length - 1]); + } + data.nodeIsParent(setting, parentNode, true); + + if (index < 0) { + data.nodeChildren(setting, parentNode, children.concat(nodes)); + } else { + params = [index, 0].concat(nodes); + children.splice.apply(children, params); + } + }, + addSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + if (!data.isSelectedNode(setting, node)) { + root.curSelectedList.push(node); + } + }, + addCreatedNode: function (setting, node) { + if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { + var root = data.getRoot(setting); + root.createdNodes.push(node); + } + }, + addZTreeTools: function (zTreeTools) { + _init.zTreeTools.push(zTreeTools); + }, + exSetting: function (s) { + $.extend(true, _setting, s); + }, + fixPIdKeyValue: function (setting, node) { + if (setting.data.simpleData.enable) { + node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId; + } + }, + getAfterA: function (setting, node, array) { + for (var i = 0, j = _init.afterA.length; i < j; i++) { + _init.afterA[i].apply(this, arguments); + } + }, + getBeforeA: function (setting, node, array) { + for (var i = 0, j = _init.beforeA.length; i < j; i++) { + _init.beforeA[i].apply(this, arguments); + } + }, + getInnerAfterA: function (setting, node, array) { + for (var i = 0, j = _init.innerAfterA.length; i < j; i++) { + _init.innerAfterA[i].apply(this, arguments); + } + }, + getInnerBeforeA: function (setting, node, array) { + for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) { + _init.innerBeforeA[i].apply(this, arguments); + } + }, + getCache: function (setting) { + return caches[setting.treeId]; + }, + getNodeIndex: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length - 1; i <= l; i++) { + if (children[i] === node) { + return i; + } + } + return -1; + }, + getNextNode: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length - 1; i <= l; i++) { + if (children[i] === node) { + return (i == l ? null : children[i + 1]); + } + } + return null; + }, + getNodeByParam: function (setting, nodes, key, value) { + if (!nodes || !key) return null; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (node[key] == value) { + return nodes[i]; + } + var children = data.nodeChildren(setting, node); + var tmp = data.getNodeByParam(setting, children, key, value); + if (tmp) return tmp; + } + return null; + }, + getNodeCache: function (setting, tId) { + if (!tId) return null; + var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)]; + return n ? n : null; + }, + getNodePath: function (setting, node) { + if (!node) return null; + + var path; + if (node.parentTId) { + path = node.getParentNode().getPath(); + } else { + path = []; + } + + if (path) { + path.push(node); + } + + return path; + }, + getNodes: function (setting) { + return data.nodeChildren(setting, data.getRoot(setting)); + }, + getNodesByParam: function (setting, nodes, key, value) { + if (!nodes || !key) return []; + var result = []; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (node[key] == value) { + result.push(node); + } + var children = data.nodeChildren(setting, node); + result = result.concat(data.getNodesByParam(setting, children, key, value)); + } + return result; + }, + getNodesByParamFuzzy: function (setting, nodes, key, value) { + if (!nodes || !key) return []; + var result = []; + value = value.toLowerCase(); + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) { + result.push(node); + } + var children = data.nodeChildren(setting, node); + result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value)); + } + return result; + }, + getNodesByFilter: function (setting, nodes, filter, isSingle, invokeParam) { + if (!nodes) return (isSingle ? null : []); + var result = isSingle ? null : []; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (tools.apply(filter, [node, invokeParam], false)) { + if (isSingle) { + return node; + } + result.push(node); + } + var children = data.nodeChildren(setting, node); + var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam); + if (isSingle && !!tmpResult) { + return tmpResult; + } + result = isSingle ? tmpResult : result.concat(tmpResult); + } + return result; + }, + getPreNode: function (setting, node) { + if (!node) return null; + var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), + children = data.nodeChildren(setting, p); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i] === node) { + return (i == 0 ? null : children[i - 1]); + } + } + return null; + }, + getRoot: function (setting) { + return setting ? roots[setting.treeId] : null; + }, + getRoots: function () { + return roots; + }, + getSetting: function (treeId) { + return settings[treeId]; + }, + getSettings: function () { + return settings; + }, + getZTreeTools: function (treeId) { + var r = this.getRoot(this.getSetting(treeId)); + return r ? r.treeTools : null; + }, + initCache: function (setting) { + for (var i = 0, j = _init.caches.length; i < j; i++) { + _init.caches[i].apply(this, arguments); + } + }, + initNode: function (setting, level, node, parentNode, preNode, nextNode) { + for (var i = 0, j = _init.nodes.length; i < j; i++) { + _init.nodes[i].apply(this, arguments); + } + }, + initRoot: function (setting) { + for (var i = 0, j = _init.roots.length; i < j; i++) { + _init.roots[i].apply(this, arguments); + } + }, + isSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + for (var i = 0, j = root.curSelectedList.length; i < j; i++) { + if (node === root.curSelectedList[i]) return true; + } + return false; + }, + nodeChildren: function (setting, node, newChildren) { + if (!node) { + return null; + } + var key = setting.data.key.children; + if (typeof newChildren !== 'undefined') { + node[key] = newChildren; + } + return node[key]; + }, + nodeIsParent: function (setting, node, newIsParent) { + if (!node) { + return false; + } + var key = setting.data.key.isParent; + if (typeof newIsParent !== 'undefined') { + if (typeof newIsParent === "string") { + newIsParent = tools.eqs(newIsParent, "true"); + } + newIsParent = !!newIsParent; + node[key] = newIsParent; + } else if (typeof node[key] == "string"){ + node[key] = tools.eqs(node[key], "true"); + } else { + node[key] = !!node[key]; + } + return node[key]; + }, + nodeName: function (setting, node, newName) { + var key = setting.data.key.name; + if (typeof newName !== 'undefined') { + node[key] = newName; + } + return "" + node[key]; + }, + nodeTitle: function (setting, node) { + var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title; + return "" + node[t]; + }, + removeNodeCache: function (setting, node) { + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + data.removeNodeCache(setting, children[i]); + } + } + data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null; + }, + removeSelectedNode: function (setting, node) { + var root = data.getRoot(setting); + for (var i = 0, j = root.curSelectedList.length; i < j; i++) { + if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) { + root.curSelectedList.splice(i, 1); + setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, node]); + i--; + j--; + } + } + }, + setCache: function (setting, cache) { + caches[setting.treeId] = cache; + }, + setRoot: function (setting, root) { + roots[setting.treeId] = root; + }, + setZTreeTools: function (setting, zTreeTools) { + for (var i = 0, j = _init.zTreeTools.length; i < j; i++) { + _init.zTreeTools[i].apply(this, arguments); + } + }, + transformToArrayFormat: function (setting, nodes) { + if (!nodes) return []; + var r = []; + if (tools.isArray(nodes)) { + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + _do(node); + } + } else { + _do(nodes); + } + return r; + + function _do(_node) { + r.push(_node); + var children = data.nodeChildren(setting, _node); + if (children) { + r = r.concat(data.transformToArrayFormat(setting, children)); + } + } + }, + transformTozTreeFormat: function (setting, sNodes) { + var i, l, + key = setting.data.simpleData.idKey, + parentKey = setting.data.simpleData.pIdKey; + if (!key || key == "" || !sNodes) return []; + + if (tools.isArray(sNodes)) { + var r = []; + var tmpMap = {}; + for (i = 0, l = sNodes.length; i < l; i++) { + tmpMap[sNodes[i][key]] = sNodes[i]; + } + for (i = 0, l = sNodes.length; i < l; i++) { + var p = tmpMap[sNodes[i][parentKey]]; + if (p && sNodes[i][key] != sNodes[i][parentKey]) { + var children = data.nodeChildren(setting, p); + if (!children) { + children = data.nodeChildren(setting, p, []); + } + children.push(sNodes[i]); + } else { + r.push(sNodes[i]); + } + } + return r; + } else { + return [sNodes]; + } + } + }, + //method of event proxy + event = { + bindEvent: function (setting) { + for (var i = 0, j = _init.bind.length; i < j; i++) { + _init.bind[i].apply(this, arguments); + } + }, + unbindEvent: function (setting) { + for (var i = 0, j = _init.unbind.length; i < j; i++) { + _init.unbind[i].apply(this, arguments); + } + }, + bindTree: function (setting) { + var eventParam = { + treeId: setting.treeId + }, + o = setting.treeObj; + if (!setting.view.txtSelectedEnable) { + // for can't select text + o.bind('selectstart', handler.onSelectStart).css({ + "-moz-user-select": "-moz-none" + }); + } + o.bind('click', eventParam, event.proxy); + o.bind('dblclick', eventParam, event.proxy); + o.bind('mouseover', eventParam, event.proxy); + o.bind('mouseout', eventParam, event.proxy); + o.bind('mousedown', eventParam, event.proxy); + o.bind('mouseup', eventParam, event.proxy); + o.bind('contextmenu', eventParam, event.proxy); + }, + unbindTree: function (setting) { + var o = setting.treeObj; + o.unbind('selectstart', handler.onSelectStart) + .unbind('click', event.proxy) + .unbind('dblclick', event.proxy) + .unbind('mouseover', event.proxy) + .unbind('mouseout', event.proxy) + .unbind('mousedown', event.proxy) + .unbind('mouseup', event.proxy) + .unbind('contextmenu', event.proxy); + }, + doProxy: function (e) { + var results = []; + for (var i = 0, j = _init.proxys.length; i < j; i++) { + var proxyResult = _init.proxys[i].apply(this, arguments); + results.push(proxyResult); + if (proxyResult.stop) { + break; + } + } + return results; + }, + proxy: function (e) { + var setting = data.getSetting(e.data.treeId); + if (!tools.uCanDo(setting, e)) return true; + var results = event.doProxy(e), + r = true, x = false; + for (var i = 0, l = results.length; i < l; i++) { + var proxyResult = results[i]; + if (proxyResult.nodeEventCallback) { + x = true; + r = proxyResult.nodeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; + } + if (proxyResult.treeEventCallback) { + x = true; + r = proxyResult.treeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; + } + } + return r; + } + }, + //method of event handler + handler = { + onSwitchNode: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (node.open) { + if (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false) return true; + data.getRoot(setting).expandTriggerFlag = true; + view.switchNode(setting, node); + } else { + if (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false) return true; + data.getRoot(setting).expandTriggerFlag = true; + view.switchNode(setting, node); + } + return true; + }, + onClickNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + clickFlag = ((setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey)) && data.isSelectedNode(setting, node)) ? 0 : (setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti) ? 2 : 1; + if (tools.apply(setting.callback.beforeClick, [setting.treeId, node, clickFlag], true) == false) return true; + if (clickFlag === 0) { + view.cancelPreSelectedNode(setting, node); + } else { + view.selectNode(setting, node, clickFlag === 2); + } + setting.treeObj.trigger(consts.event.CLICK, [event, setting.treeId, node, clickFlag]); + return true; + }, + onZTreeMousedown: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeMouseDown, [setting.treeId, node], true)) { + tools.apply(setting.callback.onMouseDown, [event, setting.treeId, node]); + } + return true; + }, + onZTreeMouseup: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeMouseUp, [setting.treeId, node], true)) { + tools.apply(setting.callback.onMouseUp, [event, setting.treeId, node]); + } + return true; + }, + onZTreeDblclick: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeDblClick, [setting.treeId, node], true)) { + tools.apply(setting.callback.onDblClick, [event, setting.treeId, node]); + } + return true; + }, + onZTreeContextmenu: function (event, node) { + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeRightClick, [setting.treeId, node], true)) { + tools.apply(setting.callback.onRightClick, [event, setting.treeId, node]); + } + return (typeof setting.callback.onRightClick) != "function"; + }, + onSelectStart: function (e) { + var n = e.originalEvent.srcElement.nodeName.toLowerCase(); + return (n === "input" || n === "textarea"); + } + }, + //method of tools for zTree + tools = { + apply: function (fun, param, defaultValue) { + if ((typeof fun) == "function") { + return fun.apply(zt, param ? param : []); + } + return defaultValue; + }, + canAsync: function (setting, node) { + var children = data.nodeChildren(setting, node); + var isParent = data.nodeIsParent(setting, node); + return (setting.async.enable && node && isParent && !(node.zAsync || (children && children.length > 0))); + }, + clone: function (obj) { + if (obj === null) return null; + var o = tools.isArray(obj) ? [] : {}; + for (var i in obj) { + o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()) : (typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i]); + } + return o; + }, + eqs: function (str1, str2) { + return str1.toLowerCase() === str2.toLowerCase(); + }, + isArray: function (arr) { + return Object.prototype.toString.apply(arr) === "[object Array]"; + }, + isElement: function (o) { + return ( + typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 + o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string" + ); + }, + $: function (node, exp, setting) { + if (!!exp && typeof exp != "string") { + setting = exp; + exp = ""; + } + if (typeof node == "string") { + return $(node, setting ? setting.treeObj.get(0).ownerDocument : null); + } else { + return $("#" + node.tId + exp, setting ? setting.treeObj : null); + } + }, + getMDom: function (setting, curDom, targetExpr) { + if (!curDom) return null; + while (curDom && curDom.id !== setting.treeId) { + for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) { + if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) { + return curDom; + } + } + curDom = curDom.parentNode; + } + return null; + }, + getNodeMainDom: function (target) { + return ($(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0)); + }, + isChildOrSelf: function (dom, parentId) { + return ($(dom).closest("#" + parentId).length > 0); + }, + uCanDo: function (setting, e) { + return true; + } + }, + //method of operate ztree dom + view = { + addNodes: function (setting, parentNode, index, newNodes, isSilent) { + var isParent = data.nodeIsParent(setting, parentNode); + if (setting.data.keep.leaf && parentNode && !isParent) { + return; + } + if (!tools.isArray(newNodes)) { + newNodes = [newNodes]; + } + if (setting.data.simpleData.enable) { + newNodes = data.transformTozTreeFormat(setting, newNodes); + } + if (parentNode) { + var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), + target_icoObj = $$(parentNode, consts.id.ICON, setting), + target_ulObj = $$(parentNode, consts.id.UL, setting); + + if (!parentNode.open) { + view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE); + view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE); + parentNode.open = false; + target_ulObj.css({ + "display": "none" + }); + } + + data.addNodesData(setting, parentNode, index, newNodes); + view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index); + if (!isSilent) { + view.expandCollapseParentNode(setting, parentNode, true); + } + } else { + data.addNodesData(setting, data.getRoot(setting), index, newNodes); + view.createNodes(setting, 0, newNodes, null, index); + } + }, + appendNodes: function (setting, level, nodes, parentNode, index, initFlag, openFlag) { + if (!nodes) return []; + var html = []; + + var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), + tmpPChild = data.nodeChildren(setting, tmpPNode), + isFirstNode, isLastNode; + + if (!tmpPChild || index >= tmpPChild.length - nodes.length) { + index = -1; + } + + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + if (initFlag) { + isFirstNode = ((index === 0 || tmpPChild.length == nodes.length) && (i == 0)); + isLastNode = (index < 0 && i == (nodes.length - 1)); + data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag); + data.addNodeCache(setting, node); + } + var isParent = data.nodeIsParent(setting, node); + + var childHtml = []; + var children = data.nodeChildren(setting, node); + if (children && children.length > 0) { + //make child html first, because checkType + childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open); + } + if (openFlag) { + view.makeDOMNodeMainBefore(html, setting, node); + view.makeDOMNodeLine(html, setting, node); + data.getBeforeA(setting, node, html); + view.makeDOMNodeNameBefore(html, setting, node); + data.getInnerBeforeA(setting, node, html); + view.makeDOMNodeIcon(html, setting, node); + data.getInnerAfterA(setting, node, html); + view.makeDOMNodeNameAfter(html, setting, node); + data.getAfterA(setting, node, html); + if (isParent && node.open) { + view.makeUlHtml(setting, node, html, childHtml.join('')); + } + view.makeDOMNodeMainAfter(html, setting, node); + data.addCreatedNode(setting, node); + } + } + return html; + }, + appendParentULDom: function (setting, node) { + var html = [], + nObj = $$(node, setting); + if (!nObj.get(0) && !!node.parentTId) { + view.appendParentULDom(setting, node.getParentNode()); + nObj = $$(node, setting); + } + var ulObj = $$(node, consts.id.UL, setting); + if (ulObj.get(0)) { + ulObj.remove(); + } + var children = data.nodeChildren(setting, node), + childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true); + view.makeUlHtml(setting, node, html, childHtml.join('')); + nObj.append(html.join('')); + }, + asyncNode: function (setting, node, isSilent, callback) { + var i, l; + var isParent = data.nodeIsParent(setting, node); + if (node && !isParent) { + tools.apply(callback); + return false; + } else if (node && node.isAjaxing) { + return false; + } else if (tools.apply(setting.callback.beforeAsync, [setting.treeId, node], true) == false) { + tools.apply(callback); + return false; + } + if (node) { + node.isAjaxing = true; + var icoObj = $$(node, consts.id.ICON, setting); + icoObj.attr({"style": "", "class": consts.className.BUTTON + " " + consts.className.ICO_LOADING}); + } + + var tmpParam = {}; + var autoParam = tools.apply(setting.async.autoParam, [setting.treeId, node], setting.async.autoParam); + for (i = 0, l = autoParam.length; node && i < l; i++) { + var pKey = autoParam[i].split("="), spKey = pKey; + if (pKey.length > 1) { + spKey = pKey[1]; + pKey = pKey[0]; + } + tmpParam[spKey] = node[pKey]; + } + var otherParam = tools.apply(setting.async.otherParam, [setting.treeId, node], setting.async.otherParam); + if (tools.isArray(otherParam)) { + for (i = 0, l = otherParam.length; i < l; i += 2) { + tmpParam[otherParam[i]] = otherParam[i + 1]; + } + } else { + for (var p in otherParam) { + tmpParam[p] = otherParam[p]; + } + } + + var _tmpV = data.getRoot(setting)._ver; + $.ajax({ + contentType: setting.async.contentType, + cache: false, + type: setting.async.type, + url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url), + data: setting.async.contentType.indexOf('application/json') > -1 ? JSON.stringify(tmpParam) : tmpParam, + dataType: setting.async.dataType, + headers: setting.async.headers, + xhrFields: setting.async.xhrFields, + success: function (msg) { + if (_tmpV != data.getRoot(setting)._ver) { + return; + } + var newNodes = []; + try { + if (!msg || msg.length == 0) { + newNodes = []; + } else if (typeof msg == "string") { + newNodes = eval("(" + msg + ")"); + } else { + newNodes = msg; + } + } catch (err) { + newNodes = msg; + } + + if (node) { + node.isAjaxing = null; + node.zAsync = true; + } + view.setNodeLineIcos(setting, node); + if (newNodes && newNodes !== "") { + newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes); + view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent); + } else { + view.addNodes(setting, node, -1, [], !!isSilent); + } + setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]); + tools.apply(callback); + }, + error: function (XMLHttpRequest, textStatus, errorThrown) { + if (_tmpV != data.getRoot(setting)._ver) { + return; + } + if (node) node.isAjaxing = null; + view.setNodeLineIcos(setting, node); + setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]); + } + }); + return true; + }, + cancelPreSelectedNode: function (setting, node, excludeNode) { + var list = data.getRoot(setting).curSelectedList, + i, n; + for (i = list.length - 1; i >= 0; i--) { + n = list[i]; + if (node === n || (!node && (!excludeNode || excludeNode !== n))) { + $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED); + if (node) { + data.removeSelectedNode(setting, node); + break; + } else { + list.splice(i, 1); + setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, n]); + } + } + } + }, + createNodeCallback: function (setting) { + if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { + var root = data.getRoot(setting); + while (root.createdNodes.length > 0) { + var node = root.createdNodes.shift(); + tools.apply(setting.view.addDiyDom, [setting.treeId, node]); + if (!!setting.callback.onNodeCreated) { + setting.treeObj.trigger(consts.event.NODECREATED, [setting.treeId, node]); + } + } + } + }, + createNodes: function (setting, level, nodes, parentNode, index) { + if (!nodes || nodes.length == 0) return; + var root = data.getRoot(setting), + openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0); + root.createdNodes = []; + var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), + parentObj, nextObj; + + if (!parentNode) { + parentObj = setting.treeObj; + //setting.treeObj.append(zTreeHtml.join('')); + } else { + var ulObj = $$(parentNode, consts.id.UL, setting); + if (ulObj.get(0)) { + parentObj = ulObj; + //ulObj.append(zTreeHtml.join('')); + } + } + if (parentObj) { + if (index >= 0) { + nextObj = parentObj.children()[index]; + } + if (index >= 0 && nextObj) { + $(nextObj).before(zTreeHtml.join('')); + } else { + parentObj.append(zTreeHtml.join('')); + } + } + + view.createNodeCallback(setting); + }, + destroy: function (setting) { + if (!setting) return; + data.initCache(setting); + data.initRoot(setting); + event.unbindTree(setting); + event.unbindEvent(setting); + setting.treeObj.empty(); + delete settings[setting.treeId]; + }, + expandCollapseNode: function (setting, node, expandFlag, animateFlag, callback) { + var root = data.getRoot(setting); + var tmpCb, _callback; + if (!node) { + tools.apply(callback, []); + return; + } + var children = data.nodeChildren(setting, node); + var isParent = data.nodeIsParent(setting, node); + if (root.expandTriggerFlag) { + _callback = callback; + tmpCb = function () { + if (_callback) _callback(); + if (node.open) { + setting.treeObj.trigger(consts.event.EXPAND, [setting.treeId, node]); + } else { + setting.treeObj.trigger(consts.event.COLLAPSE, [setting.treeId, node]); + } + }; + callback = tmpCb; + root.expandTriggerFlag = false; + } + if (!node.open && isParent && ((!$$(node, consts.id.UL, setting).get(0)) || (children && children.length > 0 && !$$(children[0], setting).get(0)))) { + view.appendParentULDom(setting, node); + view.createNodeCallback(setting); + } + if (node.open == expandFlag) { + tools.apply(callback, []); + return; + } + var ulObj = $$(node, consts.id.UL, setting), + switchObj = $$(node, consts.id.SWITCH, setting), + icoObj = $$(node, consts.id.ICON, setting); + + if (isParent) { + node.open = !node.open; + if (node.iconOpen && node.iconClose) { + icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); + } + + if (node.open) { + view.replaceSwitchClass(node, switchObj, consts.folder.OPEN); + view.replaceIcoClass(node, icoObj, consts.folder.OPEN); + if (animateFlag == false || setting.view.expandSpeed == "") { + ulObj.show(); + tools.apply(callback, []); + } else { + if (children && children.length > 0) { + ulObj.slideDown(setting.view.expandSpeed, callback); + } else { + ulObj.show(); + tools.apply(callback, []); + } + } + } else { + view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE); + view.replaceIcoClass(node, icoObj, consts.folder.CLOSE); + if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) { + ulObj.hide(); + tools.apply(callback, []); + } else { + ulObj.slideUp(setting.view.expandSpeed, callback); + } + } + } else { + tools.apply(callback, []); + } + }, + expandCollapseParentNode: function (setting, node, expandFlag, animateFlag, callback) { + if (!node) return; + if (!node.parentTId) { + view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); + return; + } else { + view.expandCollapseNode(setting, node, expandFlag, animateFlag); + } + if (node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback); + } + }, + expandCollapseSonNode: function (setting, node, expandFlag, animateFlag, callback) { + var root = data.getRoot(setting), + treeNodes = (node) ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), + selfAnimateSign = (node) ? false : animateFlag, + expandTriggerFlag = data.getRoot(setting).expandTriggerFlag; + data.getRoot(setting).expandTriggerFlag = false; + if (treeNodes) { + for (var i = 0, l = treeNodes.length; i < l; i++) { + if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign); + } + } + data.getRoot(setting).expandTriggerFlag = expandTriggerFlag; + view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); + }, + isSelectedNode: function (setting, node) { + if (!node) { + return false; + } + var list = data.getRoot(setting).curSelectedList, + i; + for (i = list.length - 1; i >= 0; i--) { + if (node === list[i]) { + return true; + } + } + return false; + }, + makeDOMNodeIcon: function (html, setting, node) { + var nameStr = data.nodeName(setting, node), + name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + html.push("<span id='", node.tId, consts.id.ICON, + "' title='' treeNode", consts.id.ICON, " class='", view.makeNodeIcoClass(setting, node), + "' style='", view.makeNodeIcoStyle(setting, node), "'></span><span id='", node.tId, consts.id.SPAN, + "' class='", consts.className.NAME, + "'>", name, "</span>"); + }, + makeDOMNodeLine: function (html, setting, node) { + html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>"); + }, + makeDOMNodeMainAfter: function (html, setting, node) { + html.push("</li>"); + }, + makeDOMNodeMainBefore: function (html, setting, node) { + html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>"); + }, + makeDOMNodeNameAfter: function (html, setting, node) { + html.push("</a>"); + }, + makeDOMNodeNameBefore: function (html, setting, node) { + var title = data.nodeTitle(setting, node), + url = view.makeNodeUrl(setting, node), + fontcss = view.makeNodeFontCss(setting, node), + fontStyle = []; + for (var f in fontcss) { + fontStyle.push(f, ":", fontcss[f], ";"); + } + html.push("<a id='", node.tId, consts.id.A, "' class='", consts.className.LEVEL, node.level, "' treeNode", consts.id.A, " onclick=\"", (node.click || ''), + "\" ", ((url != null && url.length > 0) ? "href='" + url + "'" : ""), " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(''), + "'"); + if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle) && title) { + html.push("title='", title.replace(/'/g, "'").replace(/</g, '<').replace(/>/g, '>'), "'"); + } + html.push(">"); + }, + makeNodeFontCss: function (setting, node) { + var fontCss = tools.apply(setting.view.fontCss, [setting.treeId, node], setting.view.fontCss); + return (fontCss && ((typeof fontCss) != "function")) ? fontCss : {}; + }, + makeNodeIcoClass: function (setting, node) { + var icoCss = ["ico"]; + if (!node.isAjaxing) { + var isParent = data.nodeIsParent(setting, node); + icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0]; + if (isParent) { + icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); + } else { + icoCss.push(consts.folder.DOCU); + } + } + return consts.className.BUTTON + " " + icoCss.join('_'); + }, + makeNodeIcoStyle: function (setting, node) { + var icoStyle = []; + if (!node.isAjaxing) { + var isParent = data.nodeIsParent(setting, node); + var icon = (isParent && node.iconOpen && node.iconClose) ? (node.open ? node.iconOpen : node.iconClose) : node[setting.data.key.icon]; + if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;"); + if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [setting.treeId, node], true)) { + icoStyle.push("width:0px;height:0px;"); + } + } + return icoStyle.join(''); + }, + makeNodeLineClass: function (setting, node) { + var lineClass = []; + if (setting.view.showLine) { + if (node.level == 0 && node.isFirstNode && node.isLastNode) { + lineClass.push(consts.line.ROOT); + } else if (node.level == 0 && node.isFirstNode) { + lineClass.push(consts.line.ROOTS); + } else if (node.isLastNode) { + lineClass.push(consts.line.BOTTOM); + } else { + lineClass.push(consts.line.CENTER); + } + } else { + lineClass.push(consts.line.NOLINE); + } + if (data.nodeIsParent(setting, node)) { + lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); + } else { + lineClass.push(consts.folder.DOCU); + } + return view.makeNodeLineClassEx(node) + lineClass.join('_'); + }, + makeNodeLineClassEx: function (node) { + return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " "; + }, + makeNodeTarget: function (node) { + return (node.target || "_blank"); + }, + makeNodeUrl: function (setting, node) { + var urlKey = setting.data.key.url; + return node[urlKey] ? node[urlKey] : null; + }, + makeUlHtml: function (setting, node, html, content) { + html.push("<ul id='", node.tId, consts.id.UL, "' class='", consts.className.LEVEL, node.level, " ", view.makeUlLineClass(setting, node), "' style='display:", (node.open ? "block" : "none"), "'>"); + html.push(content); + html.push("</ul>"); + }, + makeUlLineClass: function (setting, node) { + return ((setting.view.showLine && !node.isLastNode) ? consts.line.LINE : ""); + }, + removeChildNodes: function (setting, node) { + if (!node) return; + var nodes = data.nodeChildren(setting, node); + if (!nodes) return; + + for (var i = 0, l = nodes.length; i < l; i++) { + data.removeNodeCache(setting, nodes[i]); + } + data.removeSelectedNode(setting); + delete node[setting.data.key.children]; + + if (!setting.data.keep.parent) { + data.nodeIsParent(setting, node, false); + node.open = false; + var tmp_switchObj = $$(node, consts.id.SWITCH, setting), + tmp_icoObj = $$(node, consts.id.ICON, setting); + view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU); + $$(node, consts.id.UL, setting).remove(); + } else { + $$(node, consts.id.UL, setting).empty(); + } + }, + scrollIntoView: function (setting, dom) { + if (!dom) { + return; + } + // support IE 7 + if (typeof Element === 'undefined') { + var contRect = setting.treeObj.get(0).getBoundingClientRect(), + findMeRect = dom.getBoundingClientRect(); + if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom + || findMeRect.right > contRect.right || findMeRect.left < contRect.left) { + dom.scrollIntoView(); + } + return; + } + // CC-BY jocki84@googlemail.com, https://gist.github.com/jocki84/6ffafd003387179a988e + if (!Element.prototype.scrollIntoViewIfNeeded) { + Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { + "use strict"; + + function makeRange(start, length) { + return {"start": start, "length": length, "end": start + length}; + } + + function coverRange(inner, outer) { + if ( + false === centerIfNeeded || + (outer.start < inner.end && inner.start < outer.end) + ) { + return Math.max( + inner.end - outer.length, + Math.min(outer.start, inner.start) + ); + } + return (inner.start + inner.end - outer.length) / 2; + } + + function makePoint(x, y) { + return { + "x": x, + "y": y, + "translate": function translate(dX, dY) { + return makePoint(x + dX, y + dY); + } + }; + } + + function absolute(elem, pt) { + while (elem) { + pt = pt.translate(elem.offsetLeft, elem.offsetTop); + elem = elem.offsetParent; + } + return pt; + } + + var target = absolute(this, makePoint(0, 0)), + extent = makePoint(this.offsetWidth, this.offsetHeight), + elem = this.parentNode, + origin; + + while (elem instanceof HTMLElement) { + // Apply desired scroll amount. + origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop)); + elem.scrollLeft = coverRange( + makeRange(target.x - origin.x, extent.x), + makeRange(elem.scrollLeft, elem.clientWidth) + ); + elem.scrollTop = coverRange( + makeRange(target.y - origin.y, extent.y), + makeRange(elem.scrollTop, elem.clientHeight) + ); + + // Determine actual scroll amount by reading back scroll properties. + target = target.translate(-elem.scrollLeft, -elem.scrollTop); + elem = elem.parentNode; + } + }; + } + dom.scrollIntoViewIfNeeded(); + }, + setFirstNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + if (children.length > 0) { + children[0].isFirstNode = true; + } + }, + setLastNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + if (children.length > 0) { + children[children.length - 1].isLastNode = true; + } + }, + removeNode: function (setting, node) { + var root = data.getRoot(setting), + parentNode = (node.parentTId) ? node.getParentNode() : root; + + node.isFirstNode = false; + node.isLastNode = false; + node.getPreNode = function () { + return null; + }; + node.getNextNode = function () { + return null; + }; + + if (!data.getNodeCache(setting, node.tId)) { + return; + } + + $$(node, setting).remove(); + data.removeNodeCache(setting, node); + data.removeSelectedNode(setting, node); + + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].tId == node.tId) { + children.splice(i, 1); + break; + } + } + view.setFirstNode(setting, parentNode); + view.setLastNode(setting, parentNode); + + var tmp_ulObj, tmp_switchObj, tmp_icoObj, + childLength = children.length; + + //repair nodes old parent + if (!setting.data.keep.parent && childLength == 0) { + //old parentNode has no child nodes + data.nodeIsParent(setting, parentNode, false); + parentNode.open = false; + delete parentNode[setting.data.key.children]; + tmp_ulObj = $$(parentNode, consts.id.UL, setting); + tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting); + tmp_icoObj = $$(parentNode, consts.id.ICON, setting); + view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU); + tmp_ulObj.css("display", "none"); + + } else if (setting.view.showLine && childLength > 0) { + //old parentNode has child nodes + var newLast = children[childLength - 1]; + tmp_ulObj = $$(newLast, consts.id.UL, setting); + tmp_switchObj = $$(newLast, consts.id.SWITCH, setting); + tmp_icoObj = $$(newLast, consts.id.ICON, setting); + if (parentNode == root) { + if (children.length == 1) { + //node was root, and ztree has only one root after move node + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT); + } else { + var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting); + view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS); + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); + } + } else { + view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); + } + tmp_ulObj.removeClass(consts.line.LINE); + } + }, + replaceIcoClass: function (node, obj, newName) { + if (!obj || node.isAjaxing) return; + var tmpName = obj.attr("class"); + if (tmpName == undefined) return; + var tmpList = tmpName.split("_"); + switch (newName) { + case consts.folder.OPEN: + case consts.folder.CLOSE: + case consts.folder.DOCU: + tmpList[tmpList.length - 1] = newName; + break; + } + obj.attr("class", tmpList.join("_")); + }, + replaceSwitchClass: function (node, obj, newName) { + if (!obj) return; + var tmpName = obj.attr("class"); + if (tmpName == undefined) return; + var tmpList = tmpName.split("_"); + switch (newName) { + case consts.line.ROOT: + case consts.line.ROOTS: + case consts.line.CENTER: + case consts.line.BOTTOM: + case consts.line.NOLINE: + tmpList[0] = view.makeNodeLineClassEx(node) + newName; + break; + case consts.folder.OPEN: + case consts.folder.CLOSE: + case consts.folder.DOCU: + tmpList[1] = newName; + break; + } + obj.attr("class", tmpList.join("_")); + if (newName !== consts.folder.DOCU) { + obj.removeAttr("disabled"); + } else { + obj.attr("disabled", "disabled"); + } + }, + selectNode: function (setting, node, addFlag) { + if (!addFlag) { + view.cancelPreSelectedNode(setting, null, node); + } + $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED); + data.addSelectedNode(setting, node); + setting.treeObj.trigger(consts.event.SELECTED, [setting.treeId, node]); + }, + setNodeFontCss: function (setting, treeNode) { + var aObj = $$(treeNode, consts.id.A, setting), + fontCss = view.makeNodeFontCss(setting, treeNode); + if (fontCss) { + aObj.css(fontCss); + } + }, + setNodeLineIcos: function (setting, node) { + if (!node) return; + var switchObj = $$(node, consts.id.SWITCH, setting), + ulObj = $$(node, consts.id.UL, setting), + icoObj = $$(node, consts.id.ICON, setting), + ulLine = view.makeUlLineClass(setting, node); + if (ulLine.length == 0) { + ulObj.removeClass(consts.line.LINE); + } else { + ulObj.addClass(ulLine); + } + switchObj.attr("class", view.makeNodeLineClass(setting, node)); + if (data.nodeIsParent(setting, node)) { + switchObj.removeAttr("disabled"); + } else { + switchObj.attr("disabled", "disabled"); + } + icoObj.removeAttr("style"); + icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); + icoObj.attr("class", view.makeNodeIcoClass(setting, node)); + }, + setNodeName: function (setting, node) { + var title = data.nodeTitle(setting, node), + nObj = $$(node, consts.id.SPAN, setting); + nObj.empty(); + if (setting.view.nameIsHTML) { + nObj.html(data.nodeName(setting, node)); + } else { + nObj.text(data.nodeName(setting, node)); + } + if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle)) { + var aObj = $$(node, consts.id.A, setting); + aObj.attr("title", !title ? "" : title); + } + }, + setNodeTarget: function (setting, node) { + var aObj = $$(node, consts.id.A, setting); + aObj.attr("target", view.makeNodeTarget(node)); + }, + setNodeUrl: function (setting, node) { + var aObj = $$(node, consts.id.A, setting), + url = view.makeNodeUrl(setting, node); + if (url == null || url.length == 0) { + aObj.removeAttr("href"); + } else { + aObj.attr("href", url); + } + }, + switchNode: function (setting, node) { + if (node.open || !tools.canAsync(setting, node)) { + view.expandCollapseNode(setting, node, !node.open); + } else if (setting.async.enable) { + if (!view.asyncNode(setting, node)) { + view.expandCollapseNode(setting, node, !node.open); + return; + } + } else if (node) { + view.expandCollapseNode(setting, node, !node.open); + } + } + }; + // zTree defind + $.fn.zTree = { + consts: _consts, + _z: { + tools: tools, + view: view, + event: event, + data: data + }, + getZTreeObj: function (treeId) { + var o = data.getZTreeTools(treeId); + return o ? o : null; + }, + destroy: function (treeId) { + if (!!treeId && treeId.length > 0) { + view.destroy(data.getSetting(treeId)); + } else { + for (var s in settings) { + view.destroy(settings[s]); + } + } + }, + init: function (obj, zSetting, zNodes) { + var setting = tools.clone(_setting); + $.extend(true, setting, zSetting); + setting.treeId = obj.attr("id"); + setting.treeObj = obj; + setting.treeObj.empty(); + settings[setting.treeId] = setting; + //For some older browser,(e.g., ie6) + if (typeof document.body.style.maxHeight === "undefined") { + setting.view.expandSpeed = ""; + } + data.initRoot(setting); + var root = data.getRoot(setting); + zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [zNodes]) : []; + if (setting.data.simpleData.enable) { + data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes)); + } else { + data.nodeChildren(setting, root, zNodes); + } + + data.initCache(setting); + event.unbindTree(setting); + event.bindTree(setting); + event.unbindEvent(setting); + event.bindEvent(setting); + + var zTreeTools = { + setting: setting, + addNodes: function (parentNode, index, newNodes, isSilent) { + if (!parentNode) parentNode = null; + var isParent = data.nodeIsParent(setting, parentNode); + if (parentNode && !isParent && setting.data.keep.leaf) return null; + + var i = parseInt(index, 10); + if (isNaN(i)) { + isSilent = !!newNodes; + newNodes = index; + index = -1; + } else { + index = i; + } + if (!newNodes) return null; + + + var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [newNodes]); + + function addCallback() { + view.addNodes(setting, parentNode, index, xNewNodes, (isSilent == true)); + } + + if (tools.canAsync(setting, parentNode)) { + view.asyncNode(setting, parentNode, isSilent, addCallback); + } else { + addCallback(); + } + return xNewNodes; + }, + cancelSelectedNode: function (node) { + view.cancelPreSelectedNode(setting, node); + }, + destroy: function () { + view.destroy(setting); + }, + expandAll: function (expandFlag) { + expandFlag = !!expandFlag; + view.expandCollapseSonNode(setting, null, expandFlag, true); + return expandFlag; + }, + expandNode: function (node, expandFlag, sonSign, focus, callbackFlag) { + if (!node || !data.nodeIsParent(setting, node)) return null; + if (expandFlag !== true && expandFlag !== false) { + expandFlag = !node.open; + } + callbackFlag = !!callbackFlag; + + if (callbackFlag && expandFlag && (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false)) { + return null; + } else if (callbackFlag && !expandFlag && (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false)) { + return null; + } + if (expandFlag && node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false); + } + if (expandFlag === node.open && !sonSign) { + return null; + } + + data.getRoot(setting).expandTriggerFlag = callbackFlag; + if (!tools.canAsync(setting, node) && sonSign) { + view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus); + } else { + node.open = !expandFlag; + view.switchNode(this.setting, node); + showNodeFocus(); + } + return expandFlag; + + function showNodeFocus() { + var a = $$(node, setting).get(0); + if (a && focus !== false) { + view.scrollIntoView(setting, a); + } + } + }, + getNodes: function () { + return data.getNodes(setting); + }, + getNodeByParam: function (key, value, parentNode) { + if (!key) return null; + return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodeByTId: function (tId) { + return data.getNodeCache(setting, tId); + }, + getNodesByParam: function (key, value, parentNode) { + if (!key) return null; + return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodesByParamFuzzy: function (key, value, parentNode) { + if (!key) return null; + return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); + }, + getNodesByFilter: function (filter, isSingle, parentNode, invokeParam) { + isSingle = !!isSingle; + if (!filter || (typeof filter != "function")) return (isSingle ? null : []); + return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam); + }, + getNodeIndex: function (node) { + if (!node) return null; + var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children.length; i < l; i++) { + if (children[i] == node) return i; + } + return -1; + }, + getSelectedNodes: function () { + var r = [], list = data.getRoot(setting).curSelectedList; + for (var i = 0, l = list.length; i < l; i++) { + r.push(list[i]); + } + return r; + }, + isSelectedNode: function (node) { + return data.isSelectedNode(setting, node); + }, + reAsyncChildNodesPromise: function (parentNode, reloadType, isSilent) { + var promise = new Promise(function (resolve, reject) { + try { + zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, function () { + resolve(parentNode); + }); + } catch (e) { + reject(e); + } + }); + return promise; + }, + reAsyncChildNodes: function (parentNode, reloadType, isSilent, callback) { + if (!this.setting.async.enable) return; + var isRoot = !parentNode; + if (isRoot) { + parentNode = data.getRoot(setting); + } + if (reloadType == "refresh") { + var children = data.nodeChildren(setting, parentNode); + for (var i = 0, l = children ? children.length : 0; i < l; i++) { + data.removeNodeCache(setting, children[i]); + } + data.removeSelectedNode(setting); + data.nodeChildren(setting, parentNode, []); + if (isRoot) { + this.setting.treeObj.empty(); + } else { + var ulObj = $$(parentNode, consts.id.UL, setting); + ulObj.empty(); + } + } + view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback); + }, + refresh: function () { + this.setting.treeObj.empty(); + var root = data.getRoot(setting), + nodes = data.nodeChildren(setting, root); + data.initRoot(setting); + data.nodeChildren(setting, root, nodes); + data.initCache(setting); + view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1); + }, + removeChildNodes: function (node) { + if (!node) return null; + var nodes = data.nodeChildren(setting, node); + view.removeChildNodes(setting, node); + return nodes ? nodes : null; + }, + removeNode: function (node, callbackFlag) { + if (!node) return; + callbackFlag = !!callbackFlag; + if (callbackFlag && tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return; + view.removeNode(setting, node); + if (callbackFlag) { + this.setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); + } + }, + selectNode: function (node, addFlag, isSilent) { + if (!node) return; + if (tools.uCanDo(setting)) { + addFlag = setting.view.selectedMulti && addFlag; + if (node.parentTId) { + view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus); + } else if (!isSilent) { + try { + $$(node, setting).focus().blur(); + } catch (e) { + } + } + view.selectNode(setting, node, addFlag); + } + + function showNodeFocus() { + if (isSilent) { + return; + } + var a = $$(node, setting).get(0); + view.scrollIntoView(setting, a); + } + }, + transformTozTreeNodes: function (simpleNodes) { + return data.transformTozTreeFormat(setting, simpleNodes); + }, + transformToArray: function (nodes) { + return data.transformToArrayFormat(setting, nodes); + }, + updateNode: function (node, checkTypeFlag) { + if (!node) return; + var nObj = $$(node, setting); + if (nObj.get(0) && tools.uCanDo(setting)) { + view.setNodeName(setting, node); + view.setNodeTarget(setting, node); + view.setNodeUrl(setting, node); + view.setNodeLineIcos(setting, node); + view.setNodeFontCss(setting, node); + } + } + }; + root.treeTools = zTreeTools; + data.setZTreeTools(setting, zTreeTools); + var children = data.nodeChildren(setting, root); + if (children && children.length > 0) { + view.createNodes(setting, 0, children, null, -1); + } else if (setting.async.enable && setting.async.url && setting.async.url !== '') { + view.asyncNode(setting); + } + return zTreeTools; + } + }; + + var zt = $.fn.zTree, + $$ = tools.$, + consts = zt.consts; +})(jQuery); \ No newline at end of file diff --git a/src/plugins/ztree/js/jquery.ztree.core.min.js b/src/plugins/ztree/js/jquery.ztree.core.min.js new file mode 100644 index 0000000..0b01dc8 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.core.min.js @@ -0,0 +1,75 @@ +/* + * JQuery zTree core v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", +dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, +function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, +[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= +e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=function(){return e.getNextNode(a,c)}; +c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id, +i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,f)?h.eqs(a.type,"click")||h.eqs(a.type, +"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=!0;b.createdNodes=[];b.zId=0;b._ver= +(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},addInitProxy:function(a, +b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);e.isSelectedNode(a,b)|| +c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d<e;d++)E[d].apply(this,arguments)},getBeforeA:function(a,b,c){for(var d= +0,e=D.length;d<e;d++)D[d].apply(this,arguments)},getInnerAfterA:function(a,b,c){for(var d=0,e=G.length;d<e;d++)G[d].apply(this,arguments)},getInnerBeforeA:function(a,b,c){for(var d=0,e=F.length;d<e;d++)F[d].apply(this,arguments)},getCache:function(a){return x[a.treeId]},getNodeIndex:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d;return-1},getNextNode:function(a,b){if(!b)return null;for(var c= +b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d==f?null:c[d+1];return null},getNodeByParam:function(a,b,c,d){if(!b||!c)return null;for(var f=0,i=b.length;f<i;f++){var m=b[f];if(m[c]==d)return b[f];m=e.nodeChildren(a,m);if(m=e.getNodeByParam(a,m,c,d))return m}return null},getNodeCache:function(a,b){if(!b)return null;var c=x[a.treeId].nodes[e.getNodeCacheId(b)];return c?c:null},getNodePath:function(a,b){if(!b)return null;var c;(c=b.parentTId? +b.getParentNode().getPath():[])&&c.push(b);return c},getNodes:function(a){return e.nodeChildren(a,e.getRoot(a))},getNodesByParam:function(a,b,c,d){if(!b||!c)return[];for(var f=[],i=0,m=b.length;i<m;i++){var k=b[i];k[c]==d&&f.push(k);k=e.nodeChildren(a,k);f=f.concat(e.getNodesByParam(a,k,c,d))}return f},getNodesByParamFuzzy:function(a,b,c,d){if(!b||!c)return[];for(var f=[],d=d.toLowerCase(),i=0,m=b.length;i<m;i++){var k=b[i];typeof k[c]=="string"&&b[i][c].toLowerCase().indexOf(d)>-1&&f.push(k);k=e.nodeChildren(a, +k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m<k;m++){var g=b[m];if(h.apply(c,[g,f],!1)){if(d)return g;i.push(g)}g=e.nodeChildren(a,g);g=e.getNodesByFilter(a,g,c,d,f);if(d&&g)return g;i=d?g:i.concat(g)}return i},getPreNode:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length;d<f;d++)if(c[d]===b)return d==0?null:c[d-1];return null}, +getRoot:function(a){return a?w[a.treeId]:null},getRoots:function(){return w},getSetting:function(a){return t[a]},getSettings:function(){return t},getZTreeTools:function(a){return(a=this.getRoot(this.getSetting(a)))?a.treeTools:null},initCache:function(a){for(var b=0,c=A.length;b<c;b++)A[b].apply(this,arguments)},initNode:function(a,b,c,d,e,i){for(var m=0,g=B.length;m<g;m++)B[m].apply(this,arguments)},initRoot:function(a){for(var b=0,c=C.length;b<c;b++)C[b].apply(this,arguments)},isSelectedNode:function(a, +b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d])return!0;return!1},nodeChildren:function(a,b,c){if(!b)return null;a=a.data.key.children;typeof c!=="undefined"&&(b[a]=c);return b[a]},nodeIsParent:function(a,b,c){if(!b)return!1;a=a.data.key.isParent;typeof c!=="undefined"?(typeof c==="string"&&(c=h.eqs(c,"true")),b[a]=!!c):b[a]=typeof b[a]=="string"?h.eqs(b[a],"true"):!!b[a];return b[a]},nodeName:function(a,b,c){a=a.data.key.name;typeof c!=="undefined"&& +(b[a]=c);return""+b[a]},nodeTitle:function(a,b){return""+b[a.data.key.title===""?a.data.key.name:a.data.key.title]},removeNodeCache:function(a,b){var c=e.nodeChildren(a,b);if(c)for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=null},removeSelectedNode:function(a,b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d]||!e.getNodeCache(a,c.curSelectedList[d].tId))c.curSelectedList.splice(d,1),a.treeObj.trigger(g.event.UNSELECTED, +[a.treeId,b]),d--,f--},setCache:function(a,b){x[a.treeId]=b},setRoot:function(a,b){w[a.treeId]=b},setZTreeTools:function(a,b){for(var c=0,d=H.length;c<d;c++)H[c].apply(this,arguments)},transformToArrayFormat:function(a,b){function c(b){d.push(b);(b=e.nodeChildren(a,b))&&(d=d.concat(e.transformToArrayFormat(a,b)))}if(!b)return[];var d=[];if(h.isArray(b))for(var f=0,i=b.length;f<i;f++)c(b[f]);else c(b);return d},transformTozTreeFormat:function(a,b){var c,d,f=a.data.simpleData.idKey,i=a.data.simpleData.pIdKey; +if(!f||f==""||!b)return[];if(h.isArray(b)){var g=[],k={};for(c=0,d=b.length;c<d;c++)k[b[c][f]]=b[c];for(c=0,d=b.length;c<d;c++){var j=k[b[c][i]];if(j&&b[c][f]!=b[c][i]){var o=e.nodeChildren(a,j);o||(o=e.nodeChildren(a,j,[]));o.push(b[c])}else g.push(b[c])}return g}else return[b]}},n={bindEvent:function(a){for(var b=0,c=y.length;b<c;b++)y[b].apply(this,arguments)},unbindEvent:function(a){for(var b=0,c=z.length;b<c;b++)z[b].apply(this,arguments)},bindTree:function(a){var b={treeId:a.treeId},c=a.treeObj; +a.view.txtSelectedEnable||c.bind("selectstart",v).css({"-moz-user-select":"-moz-none"});c.bind("click",b,n.proxy);c.bind("dblclick",b,n.proxy);c.bind("mouseover",b,n.proxy);c.bind("mouseout",b,n.proxy);c.bind("mousedown",b,n.proxy);c.bind("mouseup",b,n.proxy);c.bind("contextmenu",b,n.proxy)},unbindTree:function(a){a.treeObj.unbind("selectstart",v).unbind("click",n.proxy).unbind("dblclick",n.proxy).unbind("mouseover",n.proxy).unbind("mouseout",n.proxy).unbind("mousedown",n.proxy).unbind("mouseup", +n.proxy).unbind("contextmenu",n.proxy)},doProxy:function(a){for(var b=[],c=0,d=u.length;c<d;c++){var e=u[c].apply(this,arguments);b.push(e);if(e.stop)break}return b},proxy:function(a){var b=e.getSetting(a.data.treeId);if(!h.uCanDo(b,a))return!0;for(var b=n.doProxy(a),c=!0,d=0,f=b.length;d<f;d++){var i=b[d];i.nodeEventCallback&&(c=i.nodeEventCallback.apply(i,[a,i.node])&&c);i.treeEventCallback&&(c=i.treeEventCallback.apply(i,[a,i.node])&&c)}return c}};J=function(a,b){var c=e.getSetting(a.data.treeId); +if(b.open){if(h.apply(c.callback.beforeCollapse,[c.treeId,b],!0)==!1)return!0}else if(h.apply(c.callback.beforeExpand,[c.treeId,b],!0)==!1)return!0;e.getRoot(c).expandTriggerFlag=!0;j.switchNode(c,b);return!0};K=function(a,b){var c=e.getSetting(a.data.treeId),d=c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&e.isSelectedNode(c,b)?0:c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&c.view.selectedMulti?2:1;if(h.apply(c.callback.beforeClick,[c.treeId,b,d],!0)==!1)return!0;d===0?j.cancelPreSelectedNode(c, +b):j.selectNode(c,b,d===2);c.treeObj.trigger(g.event.CLICK,[a,c.treeId,b,d]);return!0};L=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseDown,[c.treeId,b],!0)&&h.apply(c.callback.onMouseDown,[a,c.treeId,b]);return!0};M=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseUp,[c.treeId,b],!0)&&h.apply(c.callback.onMouseUp,[a,c.treeId,b]);return!0};N=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeDblClick,[c.treeId,b],!0)&& +h.apply(c.callback.onDblClick,[a,c.treeId,b]);return!0};O=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeRightClick,[c.treeId,b],!0)&&h.apply(c.callback.onRightClick,[a,c.treeId,b]);return typeof c.callback.onRightClick!="function"};v=function(a){a=a.originalEvent.srcElement.nodeName.toLowerCase();return a==="input"||a==="textarea"};var h={apply:function(a,b,c){return typeof a=="function"?a.apply(Q,b?b:[]):c},canAsync:function(a,b){var c=e.nodeChildren(a,b),d=e.nodeIsParent(a, +b);return a.async.enable&&b&&d&&!(b.zAsync||c&&c.length>0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&& +a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d<e;d++)if(h.eqs(b.tagName,c[d].tagName)&&b.getAttribute(c[d].attrName)!==null)return b;b=b.parentNode}return null},getNodeMainDom:function(a){return r(a).parent("li").get(0)||r(a).parentsUntil("li").parent().get(0)}, +isChildOrSelf:function(a,b){return r(a).closest("#"+b).length>0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+ +1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s<n;s++){var p=c[s];i&&(o=(f===0||h.length==c.length)&&s==0,l=f<0&&s==c.length-1,e.initNode(a,b,p,d,o,l,g),e.addNodeCache(a,p));o=e.nodeIsParent(a,p);l=[];var I=e.nodeChildren(a,p);I&&I.length>0&&(l=j.appendNodes(a,b+1,I,p,-1, +i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&& +f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam); +for(f=0,i=k.length;b&&f<i;f++){var q=k[f].split("="),o=q;q.length>1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f<i;f+=2)m[k[f]]=k[f+1];else for(var n in k)m[n]=k[n];var s=e.getRoot(a)._ver;r.ajax({contentType:a.async.contentType,cache:!1,type:a.async.type,url:h.apply(a.async.url,[a.treeId,b],a.async.url),data:a.async.contentType.indexOf("application/json")>-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers, +xhrFields:a.async.xhrFields,success:function(i){if(s==e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR, +[a.treeId,b,c,d,i])}}});return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom, +[a.treeId,c]);a.callback.onNodeCreated&&a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a), +n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c= +l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])): +c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h<l;h++)i[h]&&j.expandCollapseSonNode(a, +i[h],c,g);e.getRoot(a).expandTriggerFlag=k;j.expandCollapseNode(a,b,c,d,f)},isSelectedNode:function(a,b){if(!b)return!1;var c=e.getRoot(a).curSelectedList,d;for(d=c.length-1;d>=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");a.push("<span id='",c.tId,g.id.ICON,"' title='' treeNode",g.id.ICON," class='",j.makeNodeIcoClass(b,c),"' style='",j.makeNodeIcoStyle(b,c),"'></span><span id='", +c.tId,g.id.SPAN,"' class='",g.className.NAME,"'>",d,"</span>")},makeDOMNodeLine:function(a,b,c){a.push("<span id='",c.tId,g.id.SWITCH,"' title='' class='",j.makeNodeLineClass(b,c),"' treeNode",g.id.SWITCH,"></span>")},makeDOMNodeMainAfter:function(a){a.push("</li>")},makeDOMNodeMainBefore:function(a,b,c){a.push("<li id='",c.tId,"' class='",g.className.LEVEL,c.level,"' tabindex='0' hidefocus='true' treenode>")},makeDOMNodeNameAfter:function(a){a.push("</a>")},makeDOMNodeNameBefore:function(a,b,c){var d= +e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("<a id='",c.tId,g.id.A,"' class='",g.className.LEVEL,c.level,"' treeNode",g.id.A,' onclick="',c.click||"",'" ',f!=null&&f.length>0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">"),"'");a.push(">")},makeNodeFontCss:function(a, +b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(", +d,") 0 0 no-repeat;");(a.view.showIcon==!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")}, +makeNodeLineClassEx:function(a){return g.className.BUTTON+" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("<ul id='",b.tId,g.id.UL,"' class='",g.className.LEVEL,b.level," ",j.makeUlLineClass(a,b),"' style='display:",b.open?"block":"none","'>");c.push(d);c.push("</ul>")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode? +g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.removeSelectedNode(a);delete b[a.data.key.children];a.data.keep.parent?l(b,g.id.UL,a).empty():(e.nodeIsParent(a,b,!1),b.open=!1,c=l(b,g.id.SWITCH,a),d=l(b,g.id.ICON,a),j.replaceSwitchClass(b,c,g.folder.DOCU),j.replaceIcoClass(b,d,g.folder.DOCU),l(b,g.id.UL,a).remove())}}},scrollIntoView:function(a,b){if(b)if(typeof Element==="undefined"){var c=a.treeObj.get(0).getBoundingClientRect(), +d=b.getBoundingClientRect();(d.top<c.top||d.bottom>c.bottom||d.right>c.right||d.left<c.left)&&b.scrollIntoView()}else{if(!Element.prototype.scrollIntoViewIfNeeded)Element.prototype.scrollIntoViewIfNeeded=function(a){function b(a,c){return{start:a,length:c,end:a+c}}function c(b,d){return!1===a||d.start<b.end&&b.start<d.end?Math.max(b.end-d.length,Math.min(d.start,b.start)):(b.start+b.end-d.length)/2}function d(a,b){return{x:a,y:b,translate:function(c,i){return d(a+c,b+i)}}}function e(a,b){for(;a;)b= +b.translate(a.offsetLeft,a.offsetTop),a=a.offsetParent;return b}for(var g=e(this,d(0,0)),j=d(this.offsetWidth,this.offsetHeight),h=this.parentNode,l;h instanceof HTMLElement;)l=e(h,d(h.clientLeft,h.clientTop)),h.scrollLeft=c(b(g.x-l.x,j.x),b(h.scrollLeft,h.clientWidth)),h.scrollTop=c(b(g.y-l.y,j.y),b(h.scrollTop,h.clientHeight)),g=g.translate(-h.scrollLeft,-h.scrollTop),h=h.parentNode};b.scrollIntoViewIfNeeded()}},setFirstNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[0].isFirstNode= +!0},setLastNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i<h;i++)if(f[i].tId==b.tId){f.splice(i,1);break}j.setFirstNode(a,d);j.setLastNode(a, +d);var k,i=f.length;if(!a.data.keep.parent&&i==0)e.nodeIsParent(a,d,!1),d.open=!1,delete d[a.data.key.children],i=l(d,g.id.UL,a),h=l(d,g.id.SWITCH,a),k=l(d,g.id.ICON,a),j.replaceSwitchClass(d,h,g.folder.DOCU),j.replaceIcoClass(d,k,g.folder.DOCU),i.css("display","none");else if(a.view.showLine&&i>0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q, +h,g.line.BOTTOM)):j.replaceSwitchClass(q,h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+ +c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH, +a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle, +[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button", +LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open", +CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)? +c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d, +a)},destroy:function(){j.destroy(d)},expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(), +b,!1);if(b===a.open&&!c)return null;e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a, +b,c){return!a?null:e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c<f;c++)if(b[c]==a)return c;return-1},getSelectedNodes:function(){for(var a=[],b=e.getRoot(d).curSelectedList,c=0,f=b.length;c<f;c++)a.push(b[c]); +return a},isSelectedNode:function(a){return e.isSelectedNode(d,a)},reAsyncChildNodesPromise:function(a,b,c){return new Promise(function(d,e){try{f.reAsyncChildNodes(a,b,c,function(){d(a)})}catch(g){e(g)}})},reAsyncChildNodes:function(a,b,c,f){if(this.setting.async.enable){var h=!a;h&&(a=e.getRoot(d));if(b=="refresh"){for(var b=e.nodeChildren(d,a),n=0,r=b?b.length:0;n<r;n++)e.removeNodeCache(d,b[n]);e.removeSelectedNode(d);e.nodeChildren(d,a,[]);h?this.setting.treeObj.empty():l(a,g.id.UL,d).empty()}j.asyncNode(this.setting, +h?null:a,!!c,f)}},refresh:function(){this.setting.treeObj.empty();var a=e.getRoot(d),b=e.nodeChildren(d,a);e.initRoot(d);e.nodeChildren(d,a,b);e.initCache(d);j.createNodes(d,0,e.nodeChildren(d,a),null,-1)},removeChildNodes:function(a){if(!a)return null;var b=e.nodeChildren(d,a);j.removeChildNodes(d,a);return b?b:null},removeNode:function(a,b){a&&(b=!!b,b&&h.apply(d.callback.beforeRemove,[d.treeId,a],!0)==!1||(j.removeNode(d,a),b&&this.setting.treeObj.trigger(g.event.REMOVE,[d.treeId,a])))},selectNode:function(a, +b,c){function e(){if(!c){var b=l(a,d).get(0);j.scrollIntoView(d,b)}}if(a&&h.uCanDo(d)){b=d.view.selectedMulti&&b;if(a.parentTId)j.expandCollapseParentNode(d,a.getParentNode(),!0,!1,e);else if(!c)try{l(a,d).focus().blur()}catch(f){}j.selectNode(d,a,b)}},transformTozTreeNodes:function(a){return e.transformTozTreeFormat(d,a)},transformToArray:function(a){return e.transformToArrayFormat(d,a)},updateNode:function(a){a&&l(a,d).get(0)&&h.uCanDo(d)&&(j.setNodeName(d,a),j.setNodeTarget(d,a),j.setNodeUrl(d, +a),j.setNodeLineIcos(d,a),j.setNodeFontCss(d,a))}};a.treeTools=f;e.setZTreeTools(d,f);(c=e.nodeChildren(d,a))&&c.length>0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); diff --git a/src/plugins/ztree/js/jquery.ztree.excheck.js b/src/plugins/ztree/js/jquery.ztree.excheck.js new file mode 100644 index 0000000..c4cfff6 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.excheck.js @@ -0,0 +1,651 @@ +/* + * JQuery zTree excheck v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + //default consts of excheck + var _consts = { + event: { + CHECK: "ztree_check" + }, + id: { + CHECK: "_check" + }, + checkbox: { + STYLE: "checkbox", + DEFAULT: "chk", + DISABLED: "disable", + FALSE: "false", + TRUE: "true", + FULL: "full", + PART: "part", + FOCUS: "focus" + }, + radio: { + STYLE: "radio", + TYPE_ALL: "all", + TYPE_LEVEL: "level" + } + }, + //default setting of excheck + _setting = { + check: { + enable: false, + autoCheckTrigger: false, + chkStyle: _consts.checkbox.STYLE, + nocheckInherit: false, + chkDisabledInherit: false, + radioType: _consts.radio.TYPE_LEVEL, + chkboxType: { + "Y": "ps", + "N": "ps" + } + }, + data: { + key: { + checked: "checked" + } + }, + callback: { + beforeCheck: null, + onCheck: null + } + }, + //default root of excheck + _initRoot = function (setting) { + var r = data.getRoot(setting); + r.radioCheckedList = []; + }, + //default cache of excheck + _initCache = function (treeId) { + }, + //default bind event of excheck + _bindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.bind(c.CHECK, function (event, srcEvent, treeId, node) { + event.srcEvent = srcEvent; + tools.apply(setting.callback.onCheck, [event, treeId, node]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj, + c = consts.event; + o.unbind(c.CHECK); + }, + //default event proxy of excheck + _eventProxy = function (e) { + var target = e.target, + setting = data.getSetting(e.data.treeId), + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null; + + if (tools.eqs(e.type, "mouseover")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "mouseoverCheck"; + } + } else if (tools.eqs(e.type, "mouseout")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "mouseoutCheck"; + } + } else if (tools.eqs(e.type, "click")) { + if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { + tId = tools.getNodeMainDom(target).id; + nodeEventType = "checkNode"; + } + } + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "checkNode" : + nodeEventCallback = _handler.onCheckNode; + break; + case "mouseoverCheck" : + nodeEventCallback = _handler.onMouseoverCheck; + break; + case "mouseoutCheck" : + nodeEventCallback = _handler.onMouseoutCheck; + break; + } + } + var proxyResult = { + stop: nodeEventType === "checkNode", + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of excheck + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + var checked = data.nodeChecked(setting, n); + n.checkedOld = checked; + if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true"); + n.nocheck = !!n.nocheck || (setting.check.nocheckInherit && parentNode && !!parentNode.nocheck); + if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true"); + n.chkDisabled = !!n.chkDisabled || (setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled); + if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true"); + n.halfCheck = !!n.halfCheck; + n.check_Child_State = -1; + n.check_Focus = false; + n.getCheckStatus = function () { + return data.getCheckStatus(setting, n); + }; + + if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) { + var r = data.getRoot(setting); + r.radioCheckedList.push(n); + } + }, + //add dom for check + _beforeA = function (setting, node, html) { + if (setting.check.enable) { + data.makeChkFlag(setting, node); + html.push("<span ID='", node.tId, consts.id.CHECK, "' class='", view.makeChkClass(setting, node), "' treeNode", consts.id.CHECK, (node.nocheck === true ? " style='display:none;'" : ""), "></span>"); + } + }, + //update zTreeObj, add method of check + _zTreeTools = function (setting, zTreeTools) { + zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) { + var nodeChecked = data.nodeChecked(setting, node); + if (node.chkDisabled === true) return; + if (checked !== true && checked !== false) { + checked = !nodeChecked; + } + callbackFlag = !!callbackFlag; + + if (nodeChecked === checked && !checkTypeFlag) { + return; + } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) { + return; + } + if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) { + data.nodeChecked(setting, node, checked); + var checkObj = $$(node, consts.id.CHECK, this.setting); + if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); + view.setChkClass(this.setting, checkObj, node); + view.repairParentChkClassWithSelf(this.setting, node); + if (callbackFlag) { + this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]); + } + } + } + + zTreeTools.checkAllNodes = function (checked) { + view.repairAllChk(this.setting, !!checked); + } + + zTreeTools.getCheckedNodes = function (checked) { + var checked = (checked !== false); + var children = data.nodeChildren(setting, data.getRoot(this.setting)); + return data.getTreeCheckedNodes(this.setting, children, checked); + } + + zTreeTools.getChangeCheckedNodes = function () { + var children = data.nodeChildren(setting, data.getRoot(this.setting)); + return data.getTreeChangeCheckedNodes(this.setting, children); + } + + zTreeTools.setChkDisabled = function (node, disabled, inheritParent, inheritChildren) { + disabled = !!disabled; + inheritParent = !!inheritParent; + inheritChildren = !!inheritChildren; + view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren); + view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent); + } + + var _updateNode = zTreeTools.updateNode; + zTreeTools.updateNode = function (node, checkTypeFlag) { + if (_updateNode) _updateNode.apply(zTreeTools, arguments); + if (!node || !this.setting.check.enable) return; + var nObj = $$(node, this.setting); + if (nObj.get(0) && tools.uCanDo(this.setting)) { + var checkObj = $$(node, consts.id.CHECK, this.setting); + if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); + view.setChkClass(this.setting, checkObj, node); + view.repairParentChkClassWithSelf(this.setting, node); + } + } + }, + //method of operate data + _data = { + getRadioCheckedList: function (setting) { + var checkedList = data.getRoot(setting).radioCheckedList; + for (var i = 0, j = checkedList.length; i < j; i++) { + if (!data.getNodeCache(setting, checkedList[i].tId)) { + checkedList.splice(i, 1); + i--; + j--; + } + } + return checkedList; + }, + getCheckStatus: function (setting, node) { + if (!setting.check.enable || node.nocheck || node.chkDisabled) return null; + var checked = data.nodeChecked(setting, node), + r = { + checked: checked, + half: node.halfCheck ? node.halfCheck : (setting.check.chkStyle == consts.radio.STYLE ? (node.check_Child_State === 2) : (checked ? (node.check_Child_State > -1 && node.check_Child_State < 2) : (node.check_Child_State > 0))) + }; + return r; + }, + getTreeCheckedNodes: function (setting, nodes, checked, results) { + if (!nodes) return []; + var onlyOne = (checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL); + results = !results ? [] : results; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + var children = data.nodeChildren(setting, node); + var nodeChecked = data.nodeChecked(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) { + results.push(node); + if (onlyOne) { + break; + } + } + data.getTreeCheckedNodes(setting, children, checked, results); + if (onlyOne && results.length > 0) { + break; + } + } + return results; + }, + getTreeChangeCheckedNodes: function (setting, nodes, results) { + if (!nodes) return []; + results = !results ? [] : results; + for (var i = 0, l = nodes.length; i < l; i++) { + var node = nodes[i]; + var children = data.nodeChildren(setting, node); + var nodeChecked = data.nodeChecked(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) { + results.push(node); + } + data.getTreeChangeCheckedNodes(setting, children, results); + } + return results; + }, + makeChkFlag: function (setting, node) { + if (!node) return; + var chkFlag = -1; + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + var cNode = children[i]; + var nodeChecked = data.nodeChecked(setting, cNode); + var tmp = -1; + if (setting.check.chkStyle == consts.radio.STYLE) { + if (cNode.nocheck === true || cNode.chkDisabled === true) { + tmp = cNode.check_Child_State; + } else if (cNode.halfCheck === true) { + tmp = 2; + } else if (nodeChecked) { + tmp = 2; + } else { + tmp = cNode.check_Child_State > 0 ? 2 : 0; + } + if (tmp == 2) { + chkFlag = 2; + break; + } else if (tmp == 0) { + chkFlag = 0; + } + } else if (setting.check.chkStyle == consts.checkbox.STYLE) { + if (cNode.nocheck === true || cNode.chkDisabled === true) { + tmp = cNode.check_Child_State; + } else if (cNode.halfCheck === true) { + tmp = 1; + } else if (nodeChecked) { + tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1; + } else { + tmp = (cNode.check_Child_State > 0) ? 1 : 0; + } + if (tmp === 1) { + chkFlag = 1; + break; + } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) { + chkFlag = 1; + break; + } else if (chkFlag === 2 && tmp > -1 && tmp < 2) { + chkFlag = 1; + break; + } else if (tmp > -1) { + chkFlag = tmp; + } + } + } + } + node.check_Child_State = chkFlag; + } + }, + //method of event proxy + _event = {}, + //method of event handler + _handler = { + onCheckNode: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId); + if (tools.apply(setting.callback.beforeCheck, [setting.treeId, node], true) == false) return true; + var nodeChecked = data.nodeChecked(setting, node); + data.nodeChecked(setting, node, !nodeChecked); + view.checkNodeRelation(setting, node); + var checkObj = $$(node, consts.id.CHECK, setting); + view.setChkClass(setting, checkObj, node); + view.repairParentChkClassWithSelf(setting, node); + setting.treeObj.trigger(consts.event.CHECK, [event, setting.treeId, node]); + return true; + }, + onMouseoverCheck: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId), + checkObj = $$(node, consts.id.CHECK, setting); + node.check_Focus = true; + view.setChkClass(setting, checkObj, node); + return true; + }, + onMouseoutCheck: function (event, node) { + if (node.chkDisabled === true) return false; + var setting = data.getSetting(event.data.treeId), + checkObj = $$(node, consts.id.CHECK, setting); + node.check_Focus = false; + view.setChkClass(setting, checkObj, node); + return true; + } + }, + //method of tools for zTree + _tools = {}, + //method of operate ztree dom + _view = { + checkNodeRelation: function (setting, node) { + var pNode, i, l, + r = consts.radio; + var nodeChecked = data.nodeChecked(setting, node); + if (setting.check.chkStyle == r.STYLE) { + var checkedList = data.getRadioCheckedList(setting); + if (nodeChecked) { + if (setting.check.radioType == r.TYPE_ALL) { + for (i = checkedList.length - 1; i >= 0; i--) { + pNode = checkedList[i]; + var pNodeChecked = data.nodeChecked(setting, pNode); + if (pNodeChecked && pNode != node) { + data.nodeChecked(setting, pNode, false); + checkedList.splice(i, 1); + + view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); + if (pNode.parentTId != node.parentTId) { + view.repairParentChkClassWithSelf(setting, pNode); + } + } + } + checkedList.push(node); + } else { + var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); + var children = data.nodeChildren(setting, parentNode); + for (i = 0, l = children.length; i < l; i++) { + pNode = children[i]; + var pNodeChecked = data.nodeChecked(setting, pNode); + if (pNodeChecked && pNode != node) { + data.nodeChecked(setting, pNode, false); + view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); + } + } + } + } else if (setting.check.radioType == r.TYPE_ALL) { + for (i = 0, l = checkedList.length; i < l; i++) { + if (node == checkedList[i]) { + checkedList.splice(i, 1); + break; + } + } + } + + } else { + var children = data.nodeChildren(setting, node); + if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) { + view.setSonNodeCheckBox(setting, node, true); + } + if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) { + view.setSonNodeCheckBox(setting, node, false); + } + if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) { + view.setParentNodeCheckBox(setting, node, true); + } + if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) { + view.setParentNodeCheckBox(setting, node, false); + } + } + }, + makeChkClass: function (setting, node) { + var c = consts.checkbox, r = consts.radio, + fullStyle = ""; + var nodeChecked = data.nodeChecked(setting, node); + if (node.chkDisabled === true) { + fullStyle = c.DISABLED; + } else if (node.halfCheck) { + fullStyle = c.PART; + } else if (setting.check.chkStyle == r.STYLE) { + fullStyle = (node.check_Child_State < 1) ? c.FULL : c.PART; + } else { + fullStyle = nodeChecked ? ((node.check_Child_State === 2 || node.check_Child_State === -1) ? c.FULL : c.PART) : ((node.check_Child_State < 1) ? c.FULL : c.PART); + } + var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle; + chkName = (node.check_Focus && node.chkDisabled !== true) ? chkName + "_" + c.FOCUS : chkName; + return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName; + }, + repairAllChk: function (setting, checked) { + if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) { + var root = data.getRoot(setting); + var children = data.nodeChildren(setting, root); + for (var i = 0, l = children.length; i < l; i++) { + var node = children[i]; + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, checked); + } + view.setSonNodeCheckBox(setting, node, checked); + } + } + }, + repairChkClass: function (setting, node) { + if (!node) return; + data.makeChkFlag(setting, node); + if (node.nocheck !== true) { + var checkObj = $$(node, consts.id.CHECK, setting); + view.setChkClass(setting, checkObj, node); + } + }, + repairParentChkClass: function (setting, node) { + if (!node || !node.parentTId) return; + var pNode = node.getParentNode(); + view.repairChkClass(setting, pNode); + view.repairParentChkClass(setting, pNode); + }, + repairParentChkClassWithSelf: function (setting, node) { + if (!node) return; + var children = data.nodeChildren(setting, node); + if (children && children.length > 0) { + view.repairParentChkClass(setting, children[0]); + } else { + view.repairParentChkClass(setting, node); + } + }, + repairSonChkDisabled: function (setting, node, chkDisabled, inherit) { + if (!node) return; + if (node.chkDisabled != chkDisabled) { + node.chkDisabled = chkDisabled; + } + view.repairChkClass(setting, node); + var children = data.nodeChildren(setting, node); + if (children && inherit) { + for (var i = 0, l = children.length; i < l; i++) { + var sNode = children[i]; + view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit); + } + } + }, + repairParentChkDisabled: function (setting, node, chkDisabled, inherit) { + if (!node) return; + if (node.chkDisabled != chkDisabled && inherit) { + node.chkDisabled = chkDisabled; + } + view.repairChkClass(setting, node); + view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit); + }, + setChkClass: function (setting, obj, node) { + if (!obj) return; + if (node.nocheck === true) { + obj.hide(); + } else { + obj.show(); + } + obj.attr('class', view.makeChkClass(setting, node)); + }, + setParentNodeCheckBox: function (setting, node, value, srcNode) { + var checkObj = $$(node, consts.id.CHECK, setting); + if (!srcNode) srcNode = node; + data.makeChkFlag(setting, node); + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, value); + view.setChkClass(setting, checkObj, node); + if (setting.check.autoCheckTrigger && node != srcNode) { + setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); + } + } + if (node.parentTId) { + var pSign = true; + if (!value) { + var pNodes = data.nodeChildren(setting, node.getParentNode()); + for (var i = 0, l = pNodes.length; i < l; i++) { + var pNode = pNodes[i]; + var nodeChecked = data.nodeChecked(setting, pNode); + if ((pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked) + || ((pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0)) { + pSign = false; + break; + } + } + } + if (pSign) { + view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode); + } + } + }, + setSonNodeCheckBox: function (setting, node, value, srcNode) { + if (!node) return; + var checkObj = $$(node, consts.id.CHECK, setting); + if (!srcNode) srcNode = node; + + var hasDisable = false; + var children = data.nodeChildren(setting, node); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + var sNode = children[i]; + view.setSonNodeCheckBox(setting, sNode, value, srcNode); + if (sNode.chkDisabled === true) hasDisable = true; + } + } + + if (node != data.getRoot(setting) && node.chkDisabled !== true) { + if (hasDisable && node.nocheck !== true) { + data.makeChkFlag(setting, node); + } + if (node.nocheck !== true && node.chkDisabled !== true) { + data.nodeChecked(setting, node, value); + if (!hasDisable) node.check_Child_State = (children && children.length > 0) ? (value ? 2 : 0) : -1; + } else { + node.check_Child_State = -1; + } + view.setChkClass(setting, checkObj, node); + if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) { + setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); + } + } + + } + }, + + _z = { + tools: _tools, + view: _view, + event: _event, + data: _data + }; + $.extend(true, $.fn.zTree.consts, _consts); + $.extend(true, $.fn.zTree._z, _z); + + var zt = $.fn.zTree, + tools = zt._z.tools, + consts = zt.consts, + view = zt._z.view, + data = zt._z.data, + event = zt._z.event, + $$ = tools.$; + + data.nodeChecked = function (setting, node, newChecked) { + if (!node) { + return false; + } + var key = setting.data.key.checked; + if (typeof newChecked !== 'undefined') { + if (typeof newChecked === "string") { + newChecked = tools.eqs(newChecked, "true"); + } + newChecked = !!newChecked; + node[key] = newChecked; + } else if (typeof node[key] == "string"){ + node[key] = tools.eqs(node[key], "true"); + } else { + node[key] = !!node[key]; + } + return node[key]; + }; + + data.exSetting(_setting); + data.addInitBind(_bindEvent); + data.addInitUnBind(_unbindEvent); + data.addInitCache(_initCache); + data.addInitNode(_initNode); + data.addInitProxy(_eventProxy, true); + data.addInitRoot(_initRoot); + data.addBeforeA(_beforeA); + data.addZTreeTools(_zTreeTools); + + var _createNodes = view.createNodes; + view.createNodes = function (setting, level, nodes, parentNode, index) { + if (_createNodes) _createNodes.apply(view, arguments); + if (!nodes) return; + view.repairParentChkClassWithSelf(setting, parentNode); + } + var _removeNode = view.removeNode; + view.removeNode = function (setting, node) { + var parentNode = node.getParentNode(); + if (_removeNode) _removeNode.apply(view, arguments); + if (!node || !parentNode) return; + view.repairChkClass(setting, parentNode); + view.repairParentChkClass(setting, parentNode); + } + + var _appendNodes = view.appendNodes; + view.appendNodes = function (setting, level, nodes, parentNode, index, initFlag, openFlag) { + var html = ""; + if (_appendNodes) { + html = _appendNodes.apply(view, arguments); + } + if (parentNode) { + data.makeChkFlag(setting, parentNode); + } + return html; + } +})(jQuery); \ No newline at end of file diff --git a/src/plugins/ztree/js/jquery.ztree.excheck.min.js b/src/plugins/ztree/js/jquery.ztree.excheck.min.js new file mode 100644 index 0000000..9089c77 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.excheck.min.js @@ -0,0 +1,34 @@ +/* + * JQuery zTree excheck v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(m){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c, +a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=f.nodeChecked(b,a);f.nodeChecked(b,a,!d);e.checkNodeRelation(b,a);d=n(a,h.id.CHECK,b);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c, +a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,o);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=f.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=f.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=f.nodeChecked(c,b);k&&b!=a&&(f.nodeChecked(c,b,!1),g.splice(d,1),e.setChkClass(c, +n(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&e.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():f.getRoot(c);g=f.nodeChildren(c,g);for(d=0,j=g.length;d<j;d++)if(b=g[d],(k=f.nodeChecked(c,b))&&b!=a)f.nodeChecked(c,b,!1),e.setChkClass(c,n(b,h.id.CHECK,c),b)}else if(c.check.radioType==d.TYPE_ALL)for(d=0,j=g.length;d<j;d++)if(a==g[d]){g.splice(d,1);break}}else g=f.nodeChildren(c,a),b&&(!g||g.length==0||c.check.chkboxType.Y.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a, +!0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=f.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART: +a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=f.getRoot(c),b=f.nodeChildren(c,b),d=0,j=b.length;d<j;d++){var g=b[d];g.nocheck!==!0&&g.chkDisabled!==!0&&f.nodeChecked(c,g,a);e.setSonNodeCheckBox(c,g,a)}},repairChkClass:function(c,a){if(a&&(f.makeChkFlag(c,a),a.nocheck!==!0)){var b= +n(a,h.id.CHECK,c);e.setChkClass(c,b,a)}},repairParentChkClass:function(c,a){if(a&&a.parentTId){var b=a.getParentNode();e.repairChkClass(c,b);e.repairParentChkClass(c,b)}},repairParentChkClassWithSelf:function(c,a){if(a){var b=f.nodeChildren(c,a);b&&b.length>0?e.repairParentChkClass(c,b[0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;e.repairChkClass(c,a);if((a=f.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j<g;j++)e.repairSonChkDisabled(c, +a[j],b,d)}},repairParentChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b&&d)a.chkDisabled=b;e.repairChkClass(c,a);e.repairParentChkDisabled(c,a.getParentNode(),b,d)}},setChkClass:function(c,a,b){a&&(b.nocheck===!0?a.hide():a.show(),a.attr("class",e.makeChkClass(c,b)))},setParentNodeCheckBox:function(c,a,b,d){var j=n(a,h.id.CHECK,c);d||(d=a);f.makeChkFlag(c,a);a.nocheck!==!0&&a.chkDisabled!==!0&&(f.nodeChecked(c,a,b),e.setChkClass(c,j,a),c.check.autoCheckTrigger&&a!=d&&c.treeObj.trigger(h.event.CHECK, +[null,c.treeId,a]));if(a.parentTId){j=!0;if(!b)for(var g=f.nodeChildren(c,a.getParentNode()),k=0,w=g.length;k<w;k++){var l=g[k],i=f.nodeChecked(c,l);if(l.nocheck!==!0&&l.chkDisabled!==!0&&i||(l.nocheck===!0||l.chkDisabled===!0)&&l.check_Child_State>0){j=!1;break}}j&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=n(a,h.id.CHECK,c);d||(d=a);var g=!1,k=f.nodeChildren(c,a);if(k)for(var i=0,l=k.length;i<l;i++){var m=k[i];e.setSonNodeCheckBox(c,m,b,d); +m.chkDisabled===!0&&(g=!0)}if(a!=f.getRoot(c)&&a.chkDisabled!==!0){g&&a.nocheck!==!0&&f.makeChkFlag(c,a);if(a.nocheck!==!0&&a.chkDisabled!==!0){if(f.nodeChecked(c,a,b),!g)a.check_Child_State=k&&k.length>0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=f.getRoot(c).radioCheckedList,b=0,d=a.length;b<d;b++)f.getNodeCache(c, +a[b].tId)||(a.splice(b,1),b--,d--);return a},getCheckStatus:function(c,a){if(!c.check.enable||a.nocheck||a.chkDisabled)return null;var b=f.nodeChecked(c,a);return{checked:b,half:a.halfCheck?a.halfCheck:c.check.chkStyle==h.radio.STYLE?a.check_Child_State===2:b?a.check_Child_State>-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,e=a.length;g<e;g++){var i= +a[g],l=f.nodeChildren(c,i),m=f.nodeChecked(c,i);if(i.nocheck!==!0&&i.chkDisabled!==!0&&m==b&&(d.push(i),j))break;f.getTreeCheckedNodes(c,l,b,d);if(j&&d.length>0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d<j;d++){var g=a[d],e=f.nodeChildren(c,g),h=f.nodeChecked(c,g);g.nocheck!==!0&&g.chkDisabled!==!0&&h!=g.checkedOld&&b.push(g);f.getTreeChangeCheckedNodes(c,e,b)}return b},makeChkFlag:function(c,a){if(a){var b=-1,d=f.nodeChildren(c,a); +if(d)for(var j=0,g=d.length;j<g;j++){var e=d[j],i=f.nodeChecked(c,e),l=-1;if(c.check.chkStyle==h.radio.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?2:i?2:e.check_Child_State>0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?1:i?e.check_Child_State===-1||e.check_Child_State===2?2:1:e.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!== +b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var m=m.fn.zTree,i=m._z.tools,h=m.consts,e=m._z.view,f=m._z.data,n=i.$;f.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"?(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b):a[c]=typeof a[c]=="string"?i.eqs(a[c],"true"):!!a[c];return a[c]};f.exSetting(v);f.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a, +d,e])})});f.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)});f.addInitCache(function(){});f.addInitNode(function(c,a,b,d){if(b){a=f.nodeChecked(c,b);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck, +"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return f.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&f.getRoot(c).radioCheckedList.push(b)}});f.addInitProxy(function(c){var a=c.target,b=f.getSetting(c.data.treeId),d="",e=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type, +"mouseout")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(e=f.getNodeCache(b,d),g){case "checkNode":k=p;break;case "mouseoverCheck":k=q;break;case "mouseoutCheck":k=r}return{stop:g==="checkNode",node:e,nodeEventType:g,nodeEventCallback:k, +treeEventType:"",treeEventCallback:null}},!0);f.addInitRoot(function(c){f.getRoot(c).radioCheckedList=[]});f.addBeforeA(function(c,a,b){c.check.enable&&(f.makeChkFlag(c,a),b.push("<span ID='",a.tId,h.id.CHECK,"' class='",e.makeChkClass(c,a),"' treeNode",h.id.CHECK,a.nocheck===!0?" style='display:none;'":"","></span>"))});f.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var m=f.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!m),k=!!k,(m!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck, +[this.setting.treeId,a],!0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))f.nodeChecked(c,a,b),b=n(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b= +f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,f){b=!!b;c=!!c;e.repairSonChkDisabled(this.setting,a,b,!!f);e.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&n(c,this.setting).get(0)&& +i.uCanDo(this.setting)){var g=n(c,h.id.CHECK,this.setting);(f==!0||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,g,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d,f){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode=function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))}; +var u=e.appendNodes;e.appendNodes=function(c,a,b,d,h,g,i){var m="";u&&(m=u.apply(e,arguments));d&&f.makeChkFlag(c,d);return m}})(jQuery); diff --git a/src/plugins/ztree/js/jquery.ztree.exedit.js b/src/plugins/ztree/js/jquery.ztree.exedit.js new file mode 100644 index 0000000..195911e --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.exedit.js @@ -0,0 +1,1203 @@ +/* + * JQuery zTree exedit v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + //default consts of exedit + var _consts = { + event: { + DRAG: "ztree_drag", + DROP: "ztree_drop", + RENAME: "ztree_rename", + DRAGMOVE: "ztree_dragmove" + }, + id: { + EDIT: "_edit", + INPUT: "_input", + REMOVE: "_remove" + }, + move: { + TYPE_INNER: "inner", + TYPE_PREV: "prev", + TYPE_NEXT: "next" + }, + node: { + CURSELECTED_EDIT: "curSelectedNode_Edit", + TMPTARGET_TREE: "tmpTargetzTree", + TMPTARGET_NODE: "tmpTargetNode" + } + }, + //default setting of exedit + _setting = { + edit: { + enable: false, + editNameSelectAll: false, + showRemoveBtn: true, + showRenameBtn: true, + removeTitle: "remove", + renameTitle: "rename", + drag: { + autoExpandTrigger: false, + isCopy: true, + isMove: true, + prev: true, + next: true, + inner: true, + minMoveSize: 5, + borderMax: 10, + borderMin: -5, + maxShowNodeNum: 5, + autoOpenTime: 500 + } + }, + view: { + addHoverDom: null, + removeHoverDom: null + }, + callback: { + beforeDrag: null, + beforeDragOpen: null, + beforeDrop: null, + beforeEditName: null, + beforeRename: null, + onDrag: null, + onDragMove: null, + onDrop: null, + onRename: null + } + }, + //default root of exedit + _initRoot = function (setting) { + var r = data.getRoot(setting), rs = data.getRoots(); + r.curEditNode = null; + r.curEditInput = null; + r.curHoverNode = null; + r.dragFlag = 0; + r.dragNodeShowBefore = []; + r.dragMaskList = new Array(); + rs.showHoverDom = true; + }, + //default cache of exedit + _initCache = function (treeId) { + }, + //default bind event of exedit + _bindEvent = function (setting) { + var o = setting.treeObj; + var c = consts.event; + o.bind(c.RENAME, function (event, treeId, treeNode, isCancel) { + tools.apply(setting.callback.onRename, [event, treeId, treeNode, isCancel]); + }); + + o.bind(c.DRAG, function (event, srcEvent, treeId, treeNodes) { + tools.apply(setting.callback.onDrag, [srcEvent, treeId, treeNodes]); + }); + + o.bind(c.DRAGMOVE, function (event, srcEvent, treeId, treeNodes) { + tools.apply(setting.callback.onDragMove, [srcEvent, treeId, treeNodes]); + }); + + o.bind(c.DROP, function (event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) { + tools.apply(setting.callback.onDrop, [srcEvent, treeId, treeNodes, targetNode, moveType, isCopy]); + }); + }, + _unbindEvent = function (setting) { + var o = setting.treeObj; + var c = consts.event; + o.unbind(c.RENAME); + o.unbind(c.DRAG); + o.unbind(c.DRAGMOVE); + o.unbind(c.DROP); + }, + //default event proxy of exedit + _eventProxy = function (e) { + var target = e.target, + setting = data.getSetting(e.data.treeId), + relatedTarget = e.relatedTarget, + tId = "", node = null, + nodeEventType = "", treeEventType = "", + nodeEventCallback = null, treeEventCallback = null, + tmp = null; + + if (tools.eqs(e.type, "mouseover")) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "hoverOverNode"; + } + } else if (tools.eqs(e.type, "mouseout")) { + tmp = tools.getMDom(setting, relatedTarget, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (!tmp) { + tId = "remove"; + nodeEventType = "hoverOutNode"; + } + } else if (tools.eqs(e.type, "mousedown")) { + tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); + if (tmp) { + tId = tools.getNodeMainDom(tmp).id; + nodeEventType = "mousedownNode"; + } + } + if (tId.length > 0) { + node = data.getNodeCache(setting, tId); + switch (nodeEventType) { + case "mousedownNode" : + nodeEventCallback = _handler.onMousedownNode; + break; + case "hoverOverNode" : + nodeEventCallback = _handler.onHoverOverNode; + break; + case "hoverOutNode" : + nodeEventCallback = _handler.onHoverOutNode; + break; + } + } + var proxyResult = { + stop: false, + node: node, + nodeEventType: nodeEventType, + nodeEventCallback: nodeEventCallback, + treeEventType: treeEventType, + treeEventCallback: treeEventCallback + }; + return proxyResult + }, + //default init node of exedit + _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + if (!n) return; + n.isHover = false; + n.editNameFlag = false; + }, + //update zTreeObj, add method of edit + _zTreeTools = function (setting, zTreeTools) { + zTreeTools.cancelEditName = function (newName) { + var root = data.getRoot(this.setting); + if (!root.curEditNode) return; + view.cancelCurEditNode(this.setting, newName ? newName : null, true); + } + zTreeTools.copyNode = function (targetNode, node, moveType, isSilent) { + if (!node) return null; + var isParent = data.nodeIsParent(setting, targetNode); + if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null; + var _this = this, + newNode = tools.clone(node); + if (!targetNode) { + targetNode = null; + moveType = consts.move.TYPE_INNER; + } + if (moveType == consts.move.TYPE_INNER) { + function copyCallback() { + view.addNodes(_this.setting, targetNode, -1, [newNode], isSilent); + } + + if (tools.canAsync(this.setting, targetNode)) { + view.asyncNode(this.setting, targetNode, isSilent, copyCallback); + } else { + copyCallback(); + } + } else { + view.addNodes(this.setting, targetNode.parentNode, -1, [newNode], isSilent); + view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent); + } + return newNode; + } + zTreeTools.editName = function (node) { + if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return; + if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true); + view.editNode(this.setting, node) + } + zTreeTools.moveNode = function (targetNode, node, moveType, isSilent) { + if (!node) return node; + var isParent = data.nodeIsParent(setting, targetNode); + if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) { + return null; + } else if (targetNode && ((node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER) || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) { + return null; + } else if (!targetNode) { + targetNode = null; + } + var _this = this; + + function moveCallback() { + view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent); + } + + if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) { + view.asyncNode(this.setting, targetNode, isSilent, moveCallback); + } else { + moveCallback(); + } + return node; + } + zTreeTools.setEditable = function (editable) { + this.setting.confirm.enable = editable; + return this.refresh(); + } + }, + //method of operate data + _data = { + setSonNodeLevel: function (setting, parentNode, node) { + if (!node) return; + var children = data.nodeChildren(setting, node); + node.level = (parentNode) ? parentNode.level + 1 : 0; + if (!children) return; + for (var i = 0, l = children.length; i < l; i++) { + if (children[i]) data.setSonNodeLevel(setting, node, children[i]); + } + } + }, + //method of event proxy + _event = {}, + //method of event handler + _handler = { + onHoverOverNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + root = data.getRoot(setting); + if (root.curHoverNode != node) { + _handler.onHoverOutNode(event); + } + root.curHoverNode = node; + view.addHoverDom(setting, node); + }, + onHoverOutNode: function (event, node) { + var setting = data.getSetting(event.data.treeId), + root = data.getRoot(setting); + if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) { + view.removeTreeDom(setting, root.curHoverNode); + root.curHoverNode = null; + } + }, + onMousedownNode: function (eventMouseDown, _node) { + var i, l, + setting = data.getSetting(eventMouseDown.data.treeId), + root = data.getRoot(setting), roots = data.getRoots(); + //right click can't drag & drop + if (eventMouseDown.button == 2 || !setting.confirm.enable || (!setting.confirm.drag.isCopy && !setting.confirm.drag.isMove)) return true; + + //input of edit node name can't drag & drop + var target = eventMouseDown.target, + _nodes = data.getRoot(setting).curSelectedList, + nodes = []; + if (!data.isSelectedNode(setting, _node)) { + nodes = [_node]; + } else { + for (i = 0, l = _nodes.length; i < l; i++) { + if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) { + return true; + } + nodes.push(_nodes[i]); + if (nodes[0].parentTId !== _nodes[i].parentTId) { + nodes = [_node]; + break; + } + } + } + + view.editNodeBlur = true; + view.cancelCurEditNode(setting); + + var doc = $(setting.treeObj.get(0).ownerDocument), + body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, + isOtherTree = false, + targetSetting = setting, + sourceSetting = setting, + preNode, nextNode, + preTmpTargetNodeId = null, + preTmpMoveType = null, + tmpTargetNodeId = null, + moveType = consts.move.TYPE_INNER, + mouseDownX = eventMouseDown.clientX, + mouseDownY = eventMouseDown.clientY, + startTime = (new Date()).getTime(); + + if (tools.uCanDo(setting)) { + doc.bind("mousemove", _docMouseMove); + } + + function _docMouseMove(event) { + //avoid start drag after click node + if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.confirm.drag.minMoveSize + && Math.abs(mouseDownY - event.clientY) < setting.confirm.drag.minMoveSize) { + return true; + } + var i, l, tmpNode, tmpDom, tmpNodes; + body.css("cursor", "pointer"); + + if (root.dragFlag == 0) { + if (tools.apply(setting.callback.beforeDrag, [setting.treeId, nodes], true) == false) { + _docMouseUp(event); + return true; + } + + for (i = 0, l = nodes.length; i < l; i++) { + if (i == 0) { + root.dragNodeShowBefore = []; + } + tmpNode = nodes[i]; + if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) { + view.expandCollapseNode(setting, tmpNode, !tmpNode.open); + root.dragNodeShowBefore[tmpNode.tId] = true; + } else { + root.dragNodeShowBefore[tmpNode.tId] = false; + } + } + + root.dragFlag = 1; + roots.showHoverDom = false; + tools.showIfameMask(setting, true); + + //sort + var isOrder = true, lastIndex = -1; + if (nodes.length > 1) { + var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting); + tmpNodes = []; + for (i = 0, l = pNodes.length; i < l; i++) { + if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) { + if (isOrder && lastIndex > -1 && (lastIndex + 1) !== i) { + isOrder = false; + } + tmpNodes.push(pNodes[i]); + lastIndex = i; + } + if (nodes.length === tmpNodes.length) { + nodes = tmpNodes; + break; + } + } + } + if (isOrder) { + preNode = nodes[0].getPreNode(); + nextNode = nodes[nodes.length - 1].getNextNode(); + } + + //set node in selected + curNode = $$("<ul class='zTreeDragUL'></ul>", setting); + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + tmpNode.editNameFlag = false; + view.selectNode(setting, tmpNode, i > 0); + view.removeTreeDom(setting, tmpNode); + + if (i > setting.confirm.drag.maxShowNodeNum - 1) { + continue; + } + + tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting); + tmpDom.append($$(tmpNode, consts.id.A, setting).clone()); + tmpDom.css("padding", "0"); + tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED); + curNode.append(tmpDom); + if (i == setting.confirm.drag.maxShowNodeNum - 1) { + tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting); + curNode.append(tmpDom); + } + } + curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp"); + curNode.addClass(setting.treeObj.attr("class")); + curNode.appendTo(body); + + tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting); + tmpArrow.attr("id", "zTreeMove_arrow_tmp"); + tmpArrow.appendTo(body); + + setting.treeObj.trigger(consts.event.DRAG, [event, setting.treeId, nodes]); + } + + if (root.dragFlag == 1) { + if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && (event.clientX + doc.scrollLeft() + 2) > ($("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left)) { + var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget); + event.target = (xT.length > 0) ? xT.get(0) : event.target; + } else if (tmpTarget) { + tmpTarget.removeClass(consts.node.TMPTARGET_TREE); + if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) + .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); + } + tmpTarget = null; + tmpTargetNodeId = null; + + //judge drag & drop in multi ztree + isOtherTree = false; + targetSetting = setting; + var settings = data.getSettings(); + for (var s in settings) { + if (settings[s].treeId && settings[s].confirm.enable && settings[s].treeId != setting.treeId + && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) { + isOtherTree = true; + targetSetting = settings[s]; + } + } + + var docScrollTop = doc.scrollTop(), + docScrollLeft = doc.scrollLeft(), + treeOffset = targetSetting.treeObj.offset(), + scrollHeight = targetSetting.treeObj.get(0).scrollHeight, + scrollWidth = targetSetting.treeObj.get(0).scrollWidth, + dTop = (event.clientY + docScrollTop - treeOffset.top), + dBottom = (targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop), + dLeft = (event.clientX + docScrollLeft - treeOffset.left), + dRight = (targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft), + isTop = (dTop < setting.confirm.drag.borderMax && dTop > setting.confirm.drag.borderMin), + isBottom = (dBottom < setting.confirm.drag.borderMax && dBottom > setting.confirm.drag.borderMin), + isLeft = (dLeft < setting.confirm.drag.borderMax && dLeft > setting.confirm.drag.borderMin), + isRight = (dRight < setting.confirm.drag.borderMax && dRight > setting.confirm.drag.borderMin), + isTreeInner = dTop > setting.confirm.drag.borderMin && dBottom > setting.confirm.drag.borderMin && dLeft > setting.confirm.drag.borderMin && dRight > setting.confirm.drag.borderMin, + isTreeTop = (isTop && targetSetting.treeObj.scrollTop() <= 0), + isTreeBottom = (isBottom && (targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10) >= scrollHeight), + isTreeLeft = (isLeft && targetSetting.treeObj.scrollLeft() <= 0), + isTreeRight = (isRight && (targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10) >= scrollWidth); + + if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) { + //get node <li> dom + var targetObj = event.target; + while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) { + targetObj = targetObj.parentNode; + } + + var canMove = true; + //don't move to self or children of self + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + if (targetObj.id === tmpNode.tId) { + canMove = false; + break; + } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) { + canMove = false; + break; + } + } + if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) { + tmpTarget = $(targetObj); + tmpTargetNodeId = targetObj.id; + } + } + + //the mouse must be in zTree + tmpNode = nodes[0]; + if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) { + //judge mouse move in root of ztree + if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || (!isOtherTree && tmpNode.parentTId))) { + tmpTarget = targetSetting.treeObj; + } + //auto scroll top + if (isTop) { + targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10); + } else if (isBottom) { + targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10); + } + if (isLeft) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10); + } else if (isRight) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10); + } + //auto scroll left + if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) { + targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left); + } + } + + curNode.css({ + "top": (event.clientY + docScrollTop + 3) + "px", + "left": (event.clientX + docScrollLeft + 3) + "px" + }); + + var dX = 0; + var dY = 0; + if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) { + var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), + isCopy = ((event.ctrlKey || event.metaKey) && setting.confirm.drag.isMove && setting.confirm.drag.isCopy) || (!setting.confirm.drag.isMove && setting.confirm.drag.isCopy), + isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), + isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), + isInner = (tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId), + canPrev = (isCopy || !isNext) && tools.apply(targetSetting.confirm.drag.prev, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.prev), + canNext = (isCopy || !isPrev) && tools.apply(targetSetting.confirm.drag.next, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.next), + canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.confirm.drag.inner, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.confirm.drag.inner); + + function clearMove() { + tmpTarget = null; + tmpTargetNodeId = ""; + moveType = consts.move.TYPE_INNER; + tmpArrow.css({ + "display": "none" + }); + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null + } + } + + if (!canPrev && !canNext && !canInner) { + clearMove(); + } else { + var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), + tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), + tmpTop = tmpTargetA.offset().top, + tmpLeft = tmpTargetA.offset().left, + prevPercent = canPrev ? (canInner ? 0.25 : (canNext ? 0.5 : 1)) : -1, + nextPercent = canNext ? (canInner ? 0.75 : (canPrev ? 0.5 : 0)) : -1, + dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height(); + + if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) { + dX = 1 - tmpArrow.width(); + dY = tmpTop - tmpArrow.height() / 2; + moveType = consts.move.TYPE_PREV; + } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) { + dX = 1 - tmpArrow.width(); + dY = (tmpNextA == null || (data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open)) ? (tmpTop + tmpTargetA.height() - tmpArrow.height() / 2) : (tmpNextA.offset().top - tmpArrow.height() / 2); + moveType = consts.move.TYPE_NEXT; + } else if (canInner) { + dX = 5 - tmpArrow.width(); + dY = tmpTop; + moveType = consts.move.TYPE_INNER; + } else { + clearMove(); + } + + if (tmpTarget) { + tmpArrow.css({ + "display": "block", + "top": dY + "px", + "left": (tmpLeft + dX) + "px" + }); + tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType); + + if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) { + startTime = (new Date()).getTime(); + } + if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) { + var startTimer = true; + if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) { + startTimer = false; + } + if (startTimer) { + window.zTreeMoveTimer = setTimeout(function () { + if (moveType != consts.move.TYPE_INNER) return; + if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date()).getTime() - startTime > targetSetting.confirm.drag.autoOpenTime + && tools.apply(targetSetting.callback.beforeDragOpen, [targetSetting.treeId, tmpTargetNode], true)) { + view.switchNode(targetSetting, tmpTargetNode); + if (targetSetting.confirm.drag.autoExpandTrigger) { + targetSetting.treeObj.trigger(consts.event.EXPAND, [targetSetting.treeId, tmpTargetNode]); + } + } + }, targetSetting.confirm.drag.autoOpenTime + 50); + window.zTreeMoveTargetNodeTId = tmpTargetNode.tId; + } + } + } + } + } else { + moveType = consts.move.TYPE_INNER; + if (tmpTarget && tools.apply(targetSetting.confirm.drag.inner, [targetSetting.treeId, nodes, null], !!targetSetting.confirm.drag.inner)) { + tmpTarget.addClass(consts.node.TMPTARGET_TREE); + } else { + tmpTarget = null; + } + tmpArrow.css({ + "display": "none" + }); + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } + } + preTmpTargetNodeId = tmpTargetNodeId; + preTmpMoveType = moveType; + + setting.treeObj.trigger(consts.event.DRAGMOVE, [event, setting.treeId, nodes]); + } + return false; + } + + doc.bind("mouseup", _docMouseUp); + + function _docMouseUp(event) { + if (window.zTreeMoveTimer) { + clearTimeout(window.zTreeMoveTimer); + window.zTreeMoveTargetNodeTId = null; + } + preTmpTargetNodeId = null; + preTmpMoveType = null; + doc.unbind("mousemove", _docMouseMove); + doc.unbind("mouseup", _docMouseUp); + doc.unbind("selectstart", _docSelect); + body.css("cursor", ""); + if (tmpTarget) { + tmpTarget.removeClass(consts.node.TMPTARGET_TREE); + if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) + .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); + } + tools.showIfameMask(setting, false); + + roots.showHoverDom = true; + if (root.dragFlag == 0) return; + root.dragFlag = 0; + + var i, l, tmpNode; + for (i = 0, l = nodes.length; i < l; i++) { + tmpNode = nodes[i]; + if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) { + view.expandCollapseNode(setting, tmpNode, !tmpNode.open); + delete root.dragNodeShowBefore[tmpNode.tId]; + } + } + + if (curNode) curNode.remove(); + if (tmpArrow) tmpArrow.remove(); + + var isCopy = ((event.ctrlKey || event.metaKey) && setting.confirm.drag.isMove && setting.confirm.drag.isCopy) || (!setting.confirm.drag.isMove && setting.confirm.drag.isCopy); + if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) { + tmpTarget = null; + } + if (tmpTarget) { + var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId); + if (tools.apply(setting.callback.beforeDrop, [targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy], true) == false) { + view.selectNodes(sourceSetting, nodes); + return; + } + var newNodes = isCopy ? tools.clone(nodes) : nodes; + + function dropCallback() { + if (isOtherTree) { + if (!isCopy) { + for (var i = 0, l = nodes.length; i < l; i++) { + view.removeNode(setting, nodes[i]); + } + } + if (moveType == consts.move.TYPE_INNER) { + view.addNodes(targetSetting, dragTargetNode, -1, newNodes); + } else { + view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); + } + } else { + if (isCopy && moveType == consts.move.TYPE_INNER) { + view.addNodes(targetSetting, dragTargetNode, -1, newNodes); + } else if (isCopy) { + view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); + } else { + if (moveType != consts.move.TYPE_NEXT) { + for (i = 0, l = newNodes.length; i < l; i++) { + view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false); + } + } else { + for (i = -1, l = newNodes.length - 1; i < l; l--) { + view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false); + } + } + } + } + view.selectNodes(targetSetting, newNodes); + + var a = $$(newNodes[0], setting).get(0); + view.scrollIntoView(setting, a); + + setting.treeObj.trigger(consts.event.DROP, [event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy]); + } + + if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) { + view.asyncNode(targetSetting, dragTargetNode, false, dropCallback); + } else { + dropCallback(); + } + + } else { + view.selectNodes(sourceSetting, nodes); + setting.treeObj.trigger(consts.event.DROP, [event, setting.treeId, nodes, null, null, null]); + } + } + + doc.bind("selectstart", _docSelect); + + function _docSelect() { + return false; + } + + // 2018-03-30 FireFox has fixed this issue. + //Avoid FireFox's Bug + //If zTree Div CSS set 'overflow', so drag node outside of zTree, and event.target is error. + // if(eventMouseDown.preventDefault) { + // eventMouseDown.preventDefault(); + // } + return true; + } + }, + //method of tools for zTree + _tools = { + getAbs: function (obj) { + var oRect = obj.getBoundingClientRect(), + scrollTop = document.body.scrollTop + document.documentElement.scrollTop, + scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft; + return [oRect.left + scrollLeft, oRect.top + scrollTop]; + }, + inputFocus: function (inputObj) { + if (inputObj.get(0)) { + inputObj.focus(); + tools.setCursorPosition(inputObj.get(0), inputObj.val().length); + } + }, + inputSelect: function (inputObj) { + if (inputObj.get(0)) { + inputObj.focus(); + inputObj.select(); + } + }, + setCursorPosition: function (obj, pos) { + if (obj.setSelectionRange) { + obj.focus(); + obj.setSelectionRange(pos, pos); + } else if (obj.createTextRange) { + var range = obj.createTextRange(); + range.collapse(true); + range.moveEnd('character', pos); + range.moveStart('character', pos); + range.select(); + } + }, + showIfameMask: function (setting, showSign) { + var root = data.getRoot(setting); + //clear full mask + while (root.dragMaskList.length > 0) { + root.dragMaskList[0].remove(); + root.dragMaskList.shift(); + } + if (showSign) { + //show mask + var iframeList = $$("iframe", setting); + for (var i = 0, l = iframeList.length; i < l; i++) { + var obj = iframeList.get(i), + r = tools.getAbs(obj), + dragMask = $$("<div id='zTreeMask_" + i + "' class='zTreeMask' style='top:" + r[1] + "px; left:" + r[0] + "px; width:" + obj.offsetWidth + "px; height:" + obj.offsetHeight + "px;'></div>", setting); + dragMask.appendTo($$("body", setting)); + root.dragMaskList.push(dragMask); + } + } + } + }, + //method of operate ztree dom + _view = { + addEditBtn: function (setting, node) { + if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) { + return; + } + if (!tools.apply(setting.confirm.showRenameBtn, [setting.treeId, node], setting.confirm.showRenameBtn)) { + return; + } + var aObj = $$(node, consts.id.A, setting), + editStr = "<span class='" + consts.className.BUTTON + " edit' id='" + node.tId + consts.id.EDIT + "' title='" + tools.apply(setting.confirm.renameTitle, [setting.treeId, node], setting.confirm.renameTitle) + "' treeNode" + consts.id.EDIT + " style='display:none;'></span>"; + aObj.append(editStr); + + $$(node, consts.id.EDIT, setting).bind('click', + function () { + if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [setting.treeId, node], true) == false) return false; + view.editNode(setting, node); + return false; + } + ).show(); + }, + addRemoveBtn: function (setting, node) { + if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) { + return; + } + if (!tools.apply(setting.confirm.showRemoveBtn, [setting.treeId, node], setting.confirm.showRemoveBtn)) { + return; + } + var aObj = $$(node, consts.id.A, setting), + removeStr = "<span class='" + consts.className.BUTTON + " remove' id='" + node.tId + consts.id.REMOVE + "' title='" + tools.apply(setting.confirm.removeTitle, [setting.treeId, node], setting.confirm.removeTitle) + "' treeNode" + consts.id.REMOVE + " style='display:none;'></span>"; + aObj.append(removeStr); + + $$(node, consts.id.REMOVE, setting).bind('click', + function () { + if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return false; + view.removeNode(setting, node); + setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); + return false; + } + ).bind('mousedown', + function (eventMouseDown) { + return true; + } + ).show(); + }, + addHoverDom: function (setting, node) { + if (data.getRoots().showHoverDom) { + node.isHover = true; + if (setting.confirm.enable) { + view.addEditBtn(setting, node); + view.addRemoveBtn(setting, node); + } + tools.apply(setting.view.addHoverDom, [setting.treeId, node]); + } + }, + cancelCurEditNode: function (setting, forceName, isCancel) { + var root = data.getRoot(setting), + node = root.curEditNode; + + if (node) { + var inputObj = root.curEditInput, + newName = forceName ? forceName : (isCancel ? data.nodeName(setting, node) : inputObj.val()); + if (tools.apply(setting.callback.beforeRename, [setting.treeId, node, newName, isCancel], true) === false) { + return false; + } + data.nodeName(setting, node, newName); + var aObj = $$(node, consts.id.A, setting); + aObj.removeClass(consts.node.CURSELECTED_EDIT); + inputObj.unbind(); + view.setNodeName(setting, node); + node.editNameFlag = false; + root.curEditNode = null; + root.curEditInput = null; + view.selectNode(setting, node, false); + setting.treeObj.trigger(consts.event.RENAME, [setting.treeId, node, isCancel]); + } + root.noSelection = true; + return true; + }, + editNode: function (setting, node) { + var root = data.getRoot(setting); + view.editNodeBlur = false; + if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { + setTimeout(function () { + tools.inputFocus(root.curEditInput); + }, 0); + return; + } + node.editNameFlag = true; + view.removeTreeDom(setting, node); + view.cancelCurEditNode(setting); + view.selectNode(setting, node, false); + $$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >"); + var inputObj = $$(node, consts.id.INPUT, setting); + inputObj.attr("value", data.nodeName(setting, node)); + if (setting.confirm.editNameSelectAll) { + tools.inputSelect(inputObj); + } else { + tools.inputFocus(inputObj); + } + + inputObj.bind('blur', function (event) { + if (!view.editNodeBlur) { + view.cancelCurEditNode(setting); + } + }).bind('keydown', function (event) { + if (event.keyCode == "13") { + view.editNodeBlur = true; + view.cancelCurEditNode(setting); + } else if (event.keyCode == "27") { + view.cancelCurEditNode(setting, null, true); + } + }).bind('click', function (event) { + return false; + }).bind('dblclick', function (event) { + return false; + }); + + $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT); + root.curEditInput = inputObj; + root.noSelection = false; + root.curEditNode = node; + }, + moveNode: function (setting, targetNode, node, moveType, animateFlag, isSilent) { + var root = data.getRoot(setting); + if (targetNode == node) return; + if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return; + var oldParentNode = (node.parentTId ? node.getParentNode() : root), + targetNodeIsRoot = (targetNode === null || targetNode == root); + if (targetNodeIsRoot && targetNode === null) targetNode = root; + if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER; + var targetParentNode = (targetNode.parentTId ? targetNode.getParentNode() : root); + + if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) { + moveType = consts.move.TYPE_INNER; + } + + if (moveType == consts.move.TYPE_INNER) { + if (targetNodeIsRoot) { + //parentTId of root node is null + node.parentTId = null; + } else { + if (!data.nodeIsParent(setting, targetNode)) { + data.nodeIsParent(setting, targetNode, true); + targetNode.open = !!targetNode.open; + view.setNodeLineIcos(setting, targetNode); + } + node.parentTId = targetNode.tId; + } + } + + //move node Dom + var targetObj, target_ulObj; + if (targetNodeIsRoot) { + targetObj = setting.treeObj; + target_ulObj = targetObj; + } else { + if (!isSilent && moveType == consts.move.TYPE_INNER) { + view.expandCollapseNode(setting, targetNode, true, false); + } else if (!isSilent) { + view.expandCollapseNode(setting, targetNode.getParentNode(), true, false); + } + targetObj = $$(targetNode, setting); + target_ulObj = $$(targetNode, consts.id.UL, setting); + if (!!targetObj.get(0) && !target_ulObj.get(0)) { + var ulstr = []; + view.makeUlHtml(setting, targetNode, ulstr, ''); + targetObj.append(ulstr.join('')); + } + target_ulObj = $$(targetNode, consts.id.UL, setting); + } + var nodeDom = $$(node, setting); + if (!nodeDom.get(0)) { + nodeDom = view.appendNodes(setting, node.level, [node], null, -1, false, true).join(''); + } else if (!targetObj.get(0)) { + nodeDom.remove(); + } + if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) { + target_ulObj.append(nodeDom); + } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) { + targetObj.before(nodeDom); + } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) { + targetObj.after(nodeDom); + } + + //repair the data after move + var i, l, + tmpSrcIndex = -1, + tmpTargetIndex = 0, + oldNeighbor = null, + newNeighbor = null, + oldLevel = node.level; + var oldChildren = data.nodeChildren(setting, oldParentNode); + var targetParentChildren = data.nodeChildren(setting, targetParentNode); + var targetChildren = data.nodeChildren(setting, targetNode); + if (node.isFirstNode) { + tmpSrcIndex = 0; + if (oldChildren.length > 1) { + oldNeighbor = oldChildren[1]; + oldNeighbor.isFirstNode = true; + } + } else if (node.isLastNode) { + tmpSrcIndex = oldChildren.length - 1; + oldNeighbor = oldChildren[tmpSrcIndex - 1]; + oldNeighbor.isLastNode = true; + } else { + for (i = 0, l = oldChildren.length; i < l; i++) { + if (oldChildren[i].tId == node.tId) { + tmpSrcIndex = i; + break; + } + } + } + if (tmpSrcIndex >= 0) { + oldChildren.splice(tmpSrcIndex, 1); + } + if (moveType != consts.move.TYPE_INNER) { + for (i = 0, l = targetParentChildren.length; i < l; i++) { + if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i; + } + } + if (moveType == consts.move.TYPE_INNER) { + if (!targetChildren) { + targetChildren = data.nodeChildren(setting, targetNode, []); + } + if (targetChildren.length > 0) { + newNeighbor = targetChildren[targetChildren.length - 1]; + newNeighbor.isLastNode = false; + } + targetChildren.splice(targetChildren.length, 0, node); + node.isLastNode = true; + node.isFirstNode = (targetChildren.length == 1); + } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) { + targetParentChildren.splice(tmpTargetIndex, 0, node); + newNeighbor = targetNode; + newNeighbor.isFirstNode = false; + node.parentTId = targetNode.parentTId; + node.isFirstNode = true; + node.isLastNode = false; + + } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) { + targetParentChildren.splice(tmpTargetIndex + 1, 0, node); + newNeighbor = targetNode; + newNeighbor.isLastNode = false; + node.parentTId = targetNode.parentTId; + node.isFirstNode = false; + node.isLastNode = true; + + } else { + if (moveType == consts.move.TYPE_PREV) { + targetParentChildren.splice(tmpTargetIndex, 0, node); + } else { + targetParentChildren.splice(tmpTargetIndex + 1, 0, node); + } + node.parentTId = targetNode.parentTId; + node.isFirstNode = false; + node.isLastNode = false; + } + data.fixPIdKeyValue(setting, node); + data.setSonNodeLevel(setting, node.getParentNode(), node); + + //repair node what been moved + view.setNodeLineIcos(setting, node); + view.repairNodeLevelClass(setting, node, oldLevel); + + //repair node's old parentNode dom + if (!setting.data.keep.parent && oldChildren.length < 1) { + //old parentNode has no child nodes + data.nodeIsParent(setting, oldParentNode, false); + oldParentNode.open = false; + var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), + tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), + tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting); + view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU); + view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU); + tmp_ulObj.css("display", "none"); + + } else if (oldNeighbor) { + //old neigbor node + view.setNodeLineIcos(setting, oldNeighbor); + } + + //new neigbor node + if (newNeighbor) { + view.setNodeLineIcos(setting, newNeighbor); + } + + //repair checkbox / radio + if (!!setting.check && setting.check.enable && view.repairChkClass) { + view.repairChkClass(setting, oldParentNode); + view.repairParentChkClassWithSelf(setting, oldParentNode); + if (oldParentNode != node.parent) + view.repairParentChkClassWithSelf(setting, node); + } + + //expand parents after move + if (!isSilent) { + view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag); + } + }, + removeEditBtn: function (setting, node) { + $$(node, consts.id.EDIT, setting).unbind().remove(); + }, + removeRemoveBtn: function (setting, node) { + $$(node, consts.id.REMOVE, setting).unbind().remove(); + }, + removeTreeDom: function (setting, node) { + node.isHover = false; + view.removeEditBtn(setting, node); + view.removeRemoveBtn(setting, node); + tools.apply(setting.view.removeHoverDom, [setting.treeId, node]); + }, + repairNodeLevelClass: function (setting, node, oldLevel) { + if (oldLevel === node.level) return; + var liObj = $$(node, setting), + aObj = $$(node, consts.id.A, setting), + ulObj = $$(node, consts.id.UL, setting), + oldClass = consts.className.LEVEL + oldLevel, + newClass = consts.className.LEVEL + node.level; + liObj.removeClass(oldClass); + liObj.addClass(newClass); + aObj.removeClass(oldClass); + aObj.addClass(newClass); + ulObj.removeClass(oldClass); + ulObj.addClass(newClass); + }, + selectNodes: function (setting, nodes) { + for (var i = 0, l = nodes.length; i < l; i++) { + view.selectNode(setting, nodes[i], i > 0); + } + } + }, + + _z = { + tools: _tools, + view: _view, + event: _event, + data: _data + }; + $.extend(true, $.fn.zTree.consts, _consts); + $.extend(true, $.fn.zTree._z, _z); + + var zt = $.fn.zTree, + tools = zt._z.tools, + consts = zt.consts, + view = zt._z.view, + data = zt._z.data, + event = zt._z.event, + $$ = tools.$; + + data.exSetting(_setting); + data.addInitBind(_bindEvent); + data.addInitUnBind(_unbindEvent); + data.addInitCache(_initCache); + data.addInitNode(_initNode); + data.addInitProxy(_eventProxy); + data.addInitRoot(_initRoot); + data.addZTreeTools(_zTreeTools); + + var _cancelPreSelectedNode = view.cancelPreSelectedNode; + view.cancelPreSelectedNode = function (setting, node) { + var list = data.getRoot(setting).curSelectedList; + for (var i = 0, j = list.length; i < j; i++) { + if (!node || node === list[i]) { + view.removeTreeDom(setting, list[i]); + if (node) break; + } + } + if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments); + } + + var _createNodes = view.createNodes; + view.createNodes = function (setting, level, nodes, parentNode, index) { + if (_createNodes) { + _createNodes.apply(view, arguments); + } + if (!nodes) return; + if (view.repairParentChkClassWithSelf) { + view.repairParentChkClassWithSelf(setting, parentNode); + } + } + + var _makeNodeUrl = view.makeNodeUrl; + view.makeNodeUrl = function (setting, node) { + return setting.confirm.enable ? null : (_makeNodeUrl.apply(view, arguments)); + } + + var _removeNode = view.removeNode; + view.removeNode = function (setting, node) { + var root = data.getRoot(setting); + if (root.curEditNode === node) root.curEditNode = null; + if (_removeNode) { + _removeNode.apply(view, arguments); + } + } + + var _selectNode = view.selectNode; + view.selectNode = function (setting, node, addFlag) { + var root = data.getRoot(setting); + if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { + return false; + } + if (_selectNode) _selectNode.apply(view, arguments); + view.addHoverDom(setting, node); + return true; + } + + var _uCanDo = tools.uCanDo; + tools.uCanDo = function (setting, e) { + var root = data.getRoot(setting); + if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) { + return true; + } + if (root.curEditNode) { + view.editNodeBlur = false; + root.curEditInput.focus(); + } + return (!root.curEditNode) && (_uCanDo ? _uCanDo.apply(view, arguments) : true); + } +})(jQuery); diff --git a/src/plugins/ztree/js/jquery.ztree.exedit.min.js b/src/plugins/ztree/js/jquery.ztree.exedit.min.js new file mode 100644 index 0000000..0dac575 --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.exedit.min.js @@ -0,0 +1,53 @@ +/* + * JQuery zTree exedit v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a= +i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)<f.confirm.drag.minMoveSize&&Math.abs(O-a.clientY)<f.confirm.drag.minMoveSize)return!0;var b,c,g,j;L.css("cursor","pointer");if(m.dragFlag==0){if(k.apply(f.callback.beforeDrag,[f.treeId,n],!0)==!1)return l(a),!0;for(b=0,c=n.length; b<c; b++){if(b==0)m.dragNodeShowBefore=[]; +g=n[b];i.nodeIsParent(f,g)&&g.open?(e.expandCollapseNode(f,g,!g.open),m.dragNodeShowBefore[g.tId]=!0):m.dragNodeShowBefore[g.tId]=!1}m.dragFlag=1;y.showHoverDom=!1;k.showIfameMask(f,!0);j=!0;var p=-1;if(n.length>1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b<c;b++)if(m.dragNodeShowBefore[o[b].tId]!==void 0&&(j&&p>-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("<ul class='zTreeDragUL'></ul>", +f);for(b=0,c=n.length;b<c;b++)g=n[b],g.editNameFlag=!1,e.selectNode(f,g,b>0),e.removeTreeDom(f,g),b>f.confirm.drag.maxShowNodeNum-1||(j=q("<li id='"+g.tId+"_tmp'></li>",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.confirm.drag.maxShowNodeNum-1&&(j=q("<li id='"+g.tId+"_moretmp'><a> ... </a></li>",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("<span class='tmpzTreeMove_arrow'></span>", +f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER)); +w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].confirm.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=c<f.confirm.drag.borderMax&&c>f.confirm.drag.borderMin,o=E<f.confirm.drag.borderMax&& +E>f.confirm.drag.borderMin,F=r<f.confirm.drag.borderMax&&r>f.confirm.drag.borderMin,v=s<f.confirm.drag.borderMax&&s>f.confirm.drag.borderMin,E=c>f.confirm.drag.borderMin&&E>f.confirm.drag.borderMin&&r>f.confirm.drag.borderMin&&s>f.confirm.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target; D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!= +h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b<c;b++)if(g=n[b],D.id===g.tId){R=!1;break}else if(q(g,f).find("#"+D.id).length>0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+ +10);t&&t!=h.treeObj&&t.offset().left<h.treeObj.offset().left&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+t.offset().left-h.treeObj.offset().left)}C.css({top:a.clientY+z+3+"px",left:a.clientX+j+3+"px"});b=j=0;if(t&&t.attr("id")!=h.treeId){var A=w==null?null:i.getNodeCache(h,w),p=(a.ctrlKey||a.metaKey)&&f.confirm.drag.isMove&&f.confirm.drag.isCopy||!f.confirm.drag.isMove&&f.confirm.drag.isCopy;c=!!(H&&w===H.tId);F=!!(Q&&w===Q.tId);o=g.parentTId&&g.parentTId==w;g=(p||!F)&&k.apply(h.confirm.drag.prev,[h.treeId,n,A], +!!h.confirm.drag.prev);c=(p||!c)&&k.apply(h.confirm.drag.next,[h.treeId,n,A],!!h.confirm.drag.next);p=(p||!o)&&!(h.data.keep.leaf&&!i.nodeIsParent(f,A))&&k.apply(h.confirm.drag.inner,[h.treeId,n,A],!!h.confirm.drag.inner);o=function(){t=null;w="";x=d.move.TYPE_INNER;u.css({display:"none"});if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null};if(!g&&!c&&!p)o();else if(F=B("#"+w+d.id.A,t),v=A.isLastNode?null:B("#"+A.getNextNode().tId+d.id.A,t.next()),E=F.offset().top,r= +F.offset().left,s=g?p?0.25:c?0.5:1:-1,M=c?p?0.75:g?0.5:0:-1,z=(a.clientY+z-E)/F.height(),(s==1||z<=s&&z>=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f, +A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.confirm.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.confirm.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND, +[h.treeId,A]))},h.confirm.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.confirm.drag.inner,[h.treeId,n,null],!!h.confirm.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId= +null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b<j;b++)o=n[b],i.nodeIsParent(f,o)&&m.dragNodeShowBefore[o.tId]&& +!o.open&&(e.expandCollapseNode(f,o,!o.open),delete m.dragNodeShowBefore[o.tId]);C&&C.remove();u&&u.remove();var r=(a.ctrlKey||a.metaKey)&&f.confirm.drag.isMove&&f.confirm.drag.isCopy||!f.confirm.drag.isMove&&f.confirm.drag.isCopy;!r&&t&&w&&n[0].parentTId&&w==n[0].parentTId&&x==d.move.TYPE_INNER&&(t=null);if(t){var p=w==null?null:i.getNodeCache(h,w);if(k.apply(f.callback.beforeDrop,[h.treeId,n,p,x,r],!0)==!1)e.selectNodes(v,n);else{var s=r?k.clone(n):n;b=function(){if(J){if(!r)for(var b=0,c=n.length; b<c; b++)e.removeNode(f, +n[b]);x==d.move.TYPE_INNER?e.addNodes(h,p,-1,s):e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s)}else if(r&&x==d.move.TYPE_INNER)e.addNodes(h,p,-1,s);else if(r)e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s);else if(x!=d.move.TYPE_NEXT)for(b=0,c=s.length;b<c;b++)e.moveNode(h,p,s[b],x,!1);else for(b=-1,c=s.length-1;b<c;c--)e.moveNode(h,p,s[c],x,!1);e.selectNodes(h,s);b=q(s[0],f).get(0);e.scrollIntoView(f,b);f.treeObj.trigger(d.event.DROP, +[a,h.treeId,s,p,x,r])};x==d.move.TYPE_INNER&&k.canAsync(h,p)?e.asyncNode(h,p,!1,b):b()}}else e.selectNodes(v,n),f.treeObj.trigger(d.event.DROP,[a,f.treeId,n,null,null,null])}}function g(){return!1}var o,j,f=i.getSetting(a.data.treeId),m=i.getRoot(f),y=i.getRoots();if(a.button==2||!f.confirm.enable||!f.confirm.drag.isCopy&&!f.confirm.drag.isMove)return!0;var r=a.target,s=i.getRoot(f).curSelectedList,n=[];if(i.isSelectedNode(f,b))for(o=0,j=s.length; o<j; o++){if(s[o].editNameFlag&&k.eqs(r.tagName,"input")&&r.getAttribute("treeNode"+ +d.id.INPUT)!==null)return!0;n.push(s[o]);if(n[0].parentTId!==s[o].parentTId){n=[b];break}}else n=[b];e.editNodeBlur=!0;e.cancelCurEditNode(f);var G=B(f.treeObj.get(0).ownerDocument),L=B(f.treeObj.get(0).ownerDocument.body),C,u,t,J=!1,h=f,v=f,H,Q,S=null,T=null,w=null,x=d.move.TYPE_INNER,N=a.clientX,O=a.clientY,K=(new Date).getTime();k.uCanDo(f)&&G.bind("mousemove",c);G.bind("mouseup",l);G.bind("selectstart",g);return!0}};B.extend(!0,B.fn.zTree.consts,I);B.extend(!0,B.fn.zTree._z,{tools:{getAbs:function(a){a= +a.getBoundingClientRect();return[a.left+(document.body.scrollLeft+document.documentElement.scrollLeft),a.top+(document.body.scrollTop+document.documentElement.scrollTop)]},inputFocus:function(a){a.get(0)&&(a.focus(),k.setCursorPosition(a.get(0),a.val().length))},inputSelect:function(a){a.get(0)&&(a.focus(),a.select())},setCursorPosition:function(a,b){if(a.setSelectionRange)a.focus(),a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0);c.moveEnd("character", +b);c.moveStart("character",b);c.select()}},showIfameMask:function(a,b){for(var c=i.getRoot(a);c.dragMaskList.length>0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g<e;g++){var j=d.get(g),f=k.getAbs(j),j=q("<div id='zTreeMask_"+g+"' class='zTreeMask' style='top:"+f[1]+"px; left:"+f[0]+"px; width:"+j.offsetWidth+"px; height:"+j.offsetHeight+"px;'></div>",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag|| +q(b,d.id.EDIT,a).length>0)&&k.apply(a.confirm.showRenameBtn,[a.treeId,b],a.confirm.showRenameBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" edit' id='"+b.tId+d.id.EDIT+"' title='"+k.apply(a.confirm.renameTitle,[a.treeId,b],a.confirm.renameTitle)+"' treeNode"+d.id.EDIT+" style='display:none;'></span>";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a, + b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.confirm.showRemoveBtn,[a.treeId,b],a.confirm.showRemoveBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" remove' id='"+b.tId+d.id.REMOVE+"' title='"+k.apply(a.confirm.removeTitle,[a.treeId,b],a.confirm.removeTitle)+"' treeNode"+d.id.REMOVE+" style='display:none;'></span>";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE, +[a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.confirm.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a, b, c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT); +o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("<input type=text class='rename' id='"+ +b.tId+d.id.INPUT+"' treeNode"+d.id.INPUT+" >");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.confirm.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l; +c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId= +b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null, +m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j<s;j++)if(v[j].tId==c.tId){y=j;break}y>=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j<s;j++)C[j].tId==b.tId&&(r=j);if(l==d.move.TYPE_INNER){u||(u=i.nodeChildren(a,b,[]));if(u.length>0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode= +u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a, +c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a, +b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a, +b){for(var c=0,d=b.length;c<d;c++)e.selectNode(a,b[c],c>0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b<g;b++)d[b]&&i.setSonNodeLevel(a,c,d[b])}}}});var H=B.fn.zTree,k=H._z.tools,d=H.consts,e=H._z.view,i=H._z.data,q=k.$;i.exSetting({edit:{enable:!1,editNameSelectAll:!1,showRemoveBtn:!0,showRenameBtn:!0,removeTitle:"remove",renameTitle:"rename",drag:{autoExpandTrigger:!1,isCopy:!0,isMove:!0,prev:!0,next:!0,inner:!0, +minMoveSize:5,borderMax:10,borderMin:-5,maxShowNodeNum:5,autoOpenTime:500}},view:{addHoverDom:null,removeHoverDom:null},callback:{beforeDrag:null,beforeDragOpen:null,beforeDrop:null,beforeEditName:null,beforeRename:null,onDrag:null,onDragMove:null,onDrop:null,onRename:null}});i.addInitBind(function(a){var b=a.treeObj,c=d.event;b.bind(c.RENAME,function(b,c,d,e){k.apply(a.callback.onRename,[b,c,d,e])});b.bind(c.DRAG,function(b,c,d,e){k.apply(a.callback.onDrag,[c,d,e])});b.bind(c.DRAGMOVE,function(b, +c,d,e){k.apply(a.callback.onDragMove,[c,d,e])});b.bind(c.DROP,function(b,c,d,e,f,i,q){k.apply(a.callback.onDrop,[c,d,e,f,i,q])})});i.addInitUnBind(function(a){var a=a.treeObj,b=d.event;a.unbind(b.RENAME);a.unbind(b.DRAG);a.unbind(b.DRAGMOVE);a.unbind(b.DROP)});i.addInitCache(function(){});i.addInitNode(function(a,b,c){if(c)c.isHover=!1,c.editNameFlag=!1});i.addInitProxy(function(a){var b=a.target,c=i.getSetting(a.data.treeId),e=a.relatedTarget,g="",o=null,j="",f=null,m=null;if(k.eqs(a.type,"mouseover")){if(m= +k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}]))g=k.getNodeMainDom(m).id,j="hoverOverNode"}else if(k.eqs(a.type,"mouseout"))m=k.getMDom(c,e,[{tagName:"a",attrName:"treeNode"+d.id.A}]),m||(g="remove",j="hoverOutNode");else if(k.eqs(a.type,"mousedown")&&(m=k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}])))g=k.getNodeMainDom(m).id,j="mousedownNode";if(g.length>0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode; +break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b, +l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting, +a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.confirm.enable= +a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d<g;d++)if(!b||b===c[d])if(e.removeTreeDom(a,c[d]),b)break;N&&N.apply(e,arguments)};var O=e.createNodes;e.createNodes=function(a,b,c,d,g){O&&O.apply(e,arguments);c&&e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(a,d)};var V=e.makeNodeUrl;e.makeNodeUrl=function(a,b){return a.confirm.enable?null:V.apply(e,arguments)};var K=e.removeNode;e.removeNode= +function(a,b){var c=i.getRoot(a);if(c.curEditNode===b)c.curEditNode=null;K&&K.apply(e,arguments)};var P=e.selectNode;e.selectNode=function(a,b,c){var d=i.getRoot(a);if(i.isSelectedNode(a,b)&&d.curEditNode==b&&b.editNameFlag)return!1;P&&P.apply(e,arguments);e.addHoverDom(a,b);return!0};var U=k.uCanDo;k.uCanDo=function(a,b){var c=i.getRoot(a);if(b&&(k.eqs(b.type,"mouseover")||k.eqs(b.type,"mouseout")||k.eqs(b.type,"mousedown")||k.eqs(b.type,"mouseup")))return!0;if(c.curEditNode)e.editNodeBlur=!1,c.curEditInput.focus(); +return!c.curEditNode&&(U?U.apply(e,arguments):!0)}})(jQuery); diff --git a/src/plugins/ztree/js/jquery.ztree.exhide.js b/src/plugins/ztree/js/jquery.ztree.exhide.js new file mode 100644 index 0000000..57971fa --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.exhide.js @@ -0,0 +1,404 @@ +/* + * JQuery zTree exHideNodes v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function ($) { + var _setting = { + data: { + key: { + isHidden: "isHidden" + } + } + }; + //default init node of exLib + var _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { + var isHidden = data.isHidden(setting, n); + data.isHidden(setting, n, isHidden); + data.initHideForExCheck(setting, n); + }, + //add dom for check + _beforeA = function (setting, node, html) { + }, + //update zTreeObj, add method of exLib + _zTreeTools = function (setting, zTreeTools) { + zTreeTools.showNodes = function (nodes, options) { + view.showNodes(setting, nodes, options); + } + zTreeTools.showNode = function (node, options) { + if (!node) { + return; + } + view.showNodes(setting, [node], options); + } + zTreeTools.hideNodes = function (nodes, options) { + view.hideNodes(setting, nodes, options); + } + zTreeTools.hideNode = function (node, options) { + if (!node) { + return; + } + view.hideNodes(setting, [node], options); + } + + var _checkNode = zTreeTools.checkNode; + if (_checkNode) { + zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) { + if (!!node && !!data.isHidden(setting, node)) { + return; + } + _checkNode.apply(zTreeTools, arguments); + } + } + }, + //method of operate data + _data = { + initHideForExCheck: function (setting, n) { + var isHidden = data.isHidden(setting, n); + if (isHidden && setting.check && setting.check.enable) { + if (typeof n._nocheck == "undefined") { + n._nocheck = !!n.nocheck + n.nocheck = true; + } + n.check_Child_State = -1; + if (view.repairParentChkClassWithSelf) { + view.repairParentChkClassWithSelf(setting, n); + } + } + }, + initShowForExCheck: function (setting, n) { + var isHidden = data.isHidden(setting, n); + if (!isHidden && setting.check && setting.check.enable) { + if (typeof n._nocheck != "undefined") { + n.nocheck = n._nocheck; + delete n._nocheck; + } + if (view.setChkClass) { + var checkObj = $$(n, consts.id.CHECK, setting); + view.setChkClass(setting, checkObj, n); + } + if (view.repairParentChkClassWithSelf) { + view.repairParentChkClassWithSelf(setting, n); + } + } + } + }, + //method of operate ztree dom + _view = { + clearOldFirstNode: function (setting, node) { + var n = node.getNextNode(); + while (!!n) { + if (n.isFirstNode) { + n.isFirstNode = false; + view.setNodeLineIcos(setting, n); + break; + } + if (n.isLastNode) { + break; + } + n = n.getNextNode(); + } + }, + clearOldLastNode: function (setting, node, openFlag) { + var n = node.getPreNode(); + while (!!n) { + if (n.isLastNode) { + n.isLastNode = false; + if (openFlag) { + view.setNodeLineIcos(setting, n); + } + break; + } + if (n.isFirstNode) { + break; + } + n = n.getPreNode(); + } + }, + makeDOMNodeMainBefore: function (html, setting, node) { + var isHidden = data.isHidden(setting, node); + html.push("<li ", (isHidden ? "style='display:none;' " : ""), "id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>"); + }, + showNode: function (setting, node, options) { + data.isHidden(setting, node, false); + data.initShowForExCheck(setting, node); + $$(node, setting).show(); + }, + showNodes: function (setting, nodes, options) { + if (!nodes || nodes.length == 0) { + return; + } + var pList = {}, i, j; + for (i = 0, j = nodes.length; i < j; i++) { + var n = nodes[i]; + if (!pList[n.parentTId]) { + var pn = n.getParentNode(); + pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode(); + } + view.showNode(setting, n, options); + } + for (var tId in pList) { + var children = data.nodeChildren(setting, pList[tId]); + view.setFirstNodeForShow(setting, children); + view.setLastNodeForShow(setting, children); + } + }, + hideNode: function (setting, node, options) { + data.isHidden(setting, node, true); + node.isFirstNode = false; + node.isLastNode = false; + data.initHideForExCheck(setting, node); + view.cancelPreSelectedNode(setting, node); + $$(node, setting).hide(); + }, + hideNodes: function (setting, nodes, options) { + if (!nodes || nodes.length == 0) { + return; + } + var pList = {}, i, j; + for (i = 0, j = nodes.length; i < j; i++) { + var n = nodes[i]; + if ((n.isFirstNode || n.isLastNode) && !pList[n.parentTId]) { + var pn = n.getParentNode(); + pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode(); + } + view.hideNode(setting, n, options); + } + for (var tId in pList) { + var children = data.nodeChildren(setting, pList[tId]); + view.setFirstNodeForHide(setting, children); + view.setLastNodeForHide(setting, children); + } + }, + setFirstNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + var isHidden = data.isHidden(setting, children[0], false); + if (children.length > 0 && !isHidden) { + children[0].isFirstNode = true; + } else if (children.length > 0) { + view.setFirstNodeForHide(setting, children); + } + }, + setLastNode: function (setting, parentNode) { + var children = data.nodeChildren(setting, parentNode); + var isHidden = data.isHidden(setting, children[0]); + if (children.length > 0 && !isHidden) { + children[children.length - 1].isLastNode = true; + } else if (children.length > 0) { + view.setLastNodeForHide(setting, children); + } + }, + setFirstNodeForHide: function (setting, nodes) { + var n, i, j; + for (i = 0, j = nodes.length; i < j; i++) { + n = nodes[i]; + if (n.isFirstNode) { + break; + } + var isHidden = data.isHidden(setting, n); + if (!isHidden && !n.isFirstNode) { + n.isFirstNode = true; + view.setNodeLineIcos(setting, n); + break; + } else { + n = null; + } + } + return n; + }, + setFirstNodeForShow: function (setting, nodes) { + var n, i, j, first, old; + for (i = 0, j = nodes.length; i < j; i++) { + n = nodes[i]; + var isHidden = data.isHidden(setting, n); + if (!first && !isHidden && n.isFirstNode) { + first = n; + break; + } else if (!first && !isHidden && !n.isFirstNode) { + n.isFirstNode = true; + first = n; + view.setNodeLineIcos(setting, n); + } else if (first && n.isFirstNode) { + n.isFirstNode = false; + old = n; + view.setNodeLineIcos(setting, n); + break; + } else { + n = null; + } + } + return {"new": first, "old": old}; + }, + setLastNodeForHide: function (setting, nodes) { + var n, i; + for (i = nodes.length - 1; i >= 0; i--) { + n = nodes[i]; + if (n.isLastNode) { + break; + } + var isHidden = data.isHidden(setting, n); + if (!isHidden && !n.isLastNode) { + n.isLastNode = true; + view.setNodeLineIcos(setting, n); + break; + } else { + n = null; + } + } + return n; + }, + setLastNodeForShow: function (setting, nodes) { + var n, i, j, last, old; + for (i = nodes.length - 1; i >= 0; i--) { + n = nodes[i]; + var isHidden = data.isHidden(setting, n); + if (!last && !isHidden && n.isLastNode) { + last = n; + break; + } else if (!last && !isHidden && !n.isLastNode) { + n.isLastNode = true; + last = n; + view.setNodeLineIcos(setting, n); + } else if (last && n.isLastNode) { + n.isLastNode = false; + old = n; + view.setNodeLineIcos(setting, n); + break; + } else { + n = null; + } + } + return {"new": last, "old": old}; + } + }, + + _z = { + view: _view, + data: _data + }; + $.extend(true, $.fn.zTree._z, _z); + + var zt = $.fn.zTree, + tools = zt._z.tools, + consts = zt.consts, + view = zt._z.view, + data = zt._z.data, + event = zt._z.event, + $$ = tools.$; + + data.isHidden = function (setting, node, newIsHidden) { + if (!node) { + return false; + } + var key = setting.data.key.isHidden; + if (typeof newIsHidden !== 'undefined') { + if (typeof newIsHidden === "string") { + newIsHidden = tools.eqs(newIsHidden, "true"); + } + newIsHidden = !!newIsHidden; + node[key] = newIsHidden; + } else if (typeof node[key] == "string"){ + node[key] = tools.eqs(node[key], "true"); + } else { + node[key] = !!node[key]; + } + return node[key]; + }; + + data.exSetting(_setting); + data.addInitNode(_initNode); + data.addBeforeA(_beforeA); + data.addZTreeTools(_zTreeTools); + +// Override method in core + var _dInitNode = data.initNode; + data.initNode = function (setting, level, node, parentNode, isFirstNode, isLastNode, openFlag) { + var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), + children = tmpPNode[setting.data.key.children]; + data.tmpHideFirstNode = view.setFirstNodeForHide(setting, children); + data.tmpHideLastNode = view.setLastNodeForHide(setting, children); + if (openFlag) { + view.setNodeLineIcos(setting, data.tmpHideFirstNode); + view.setNodeLineIcos(setting, data.tmpHideLastNode); + } + isFirstNode = (data.tmpHideFirstNode === node); + isLastNode = (data.tmpHideLastNode === node); + if (_dInitNode) _dInitNode.apply(data, arguments); + if (openFlag && isLastNode) { + view.clearOldLastNode(setting, node, openFlag); + } + }; + + var _makeChkFlag = data.makeChkFlag; + if (!!_makeChkFlag) { + data.makeChkFlag = function (setting, node) { + if (!!node && !!data.isHidden(setting, node)) { + return; + } + _makeChkFlag.apply(data, arguments); + } + } + + var _getTreeCheckedNodes = data.getTreeCheckedNodes; + if (!!_getTreeCheckedNodes) { + data.getTreeCheckedNodes = function (setting, nodes, checked, results) { + if (!!nodes && nodes.length > 0) { + var p = nodes[0].getParentNode(); + if (!!p && !!data.isHidden(setting, p)) { + return []; + } + } + return _getTreeCheckedNodes.apply(data, arguments); + } + } + + var _getTreeChangeCheckedNodes = data.getTreeChangeCheckedNodes; + if (!!_getTreeChangeCheckedNodes) { + data.getTreeChangeCheckedNodes = function (setting, nodes, results) { + if (!!nodes && nodes.length > 0) { + var p = nodes[0].getParentNode(); + if (!!p && !!data.isHidden(setting, p)) { + return []; + } + } + return _getTreeChangeCheckedNodes.apply(data, arguments); + } + } + + var _expandCollapseSonNode = view.expandCollapseSonNode; + if (!!_expandCollapseSonNode) { + view.expandCollapseSonNode = function (setting, node, expandFlag, animateFlag, callback) { + if (!!node && !!data.isHidden(setting, node)) { + return; + } + _expandCollapseSonNode.apply(view, arguments); + } + } + + var _setSonNodeCheckBox = view.setSonNodeCheckBox; + if (!!_setSonNodeCheckBox) { + view.setSonNodeCheckBox = function (setting, node, value, srcNode) { + if (!!node && !!data.isHidden(setting, node)) { + return; + } + _setSonNodeCheckBox.apply(view, arguments); + } + } + + var _repairParentChkClassWithSelf = view.repairParentChkClassWithSelf; + if (!!_repairParentChkClassWithSelf) { + view.repairParentChkClassWithSelf = function (setting, node) { + if (!!node && !!data.isHidden(setting, node)) { + return; + } + _repairParentChkClassWithSelf.apply(view, arguments); + } + } +})(jQuery); \ No newline at end of file diff --git a/src/plugins/ztree/js/jquery.ztree.exhide.min.js b/src/plugins/ztree/js/jquery.ztree.exhide.min.js new file mode 100644 index 0000000..85125ef --- /dev/null +++ b/src/plugins/ztree/js/jquery.ztree.exhide.min.js @@ -0,0 +1,23 @@ +/* + * JQuery zTree exHideNodes v3.5.40 + * http://treejs.cn/ + * + * Copyright (c) 2010 Hunter.z + * + * Licensed same as jquery - MIT License + * http://www.opensource.org/licenses/mit-license.php + * + * email: hunter.z@263.net + * Date: 2019-01-18 + */ +(function(j){j.extend(!0,j.fn.zTree._z,{view:{clearOldFirstNode:function(c,a){for(var b=a.getNextNode();b;){if(b.isFirstNode){b.isFirstNode=!1;e.setNodeLineIcos(c,b);break}if(b.isLastNode)break;b=b.getNextNode()}},clearOldLastNode:function(c,a,b){for(a=a.getPreNode();a;){if(a.isLastNode){a.isLastNode=!1;b&&e.setNodeLineIcos(c,a);break}if(a.isFirstNode)break;a=a.getPreNode()}},makeDOMNodeMainBefore:function(c,a,b){a=d.isHidden(a,b);c.push("<li ",a?"style='display:none;' ":"","id='",b.tId,"' class='", +m.className.LEVEL,b.level,"' tabindex='0' hidefocus='true' treenode>")},showNode:function(c,a){d.isHidden(c,a,!1);d.initShowForExCheck(c,a);k(a,c).show()},showNodes:function(c,a,b){if(a&&a.length!=0){var f={},g,i;for(g=0,i=a.length;g<i;g++){var h=a[g];if(!f[h.parentTId]){var u=h.getParentNode();f[h.parentTId]=u===null?d.getRoot(c):h.getParentNode()}e.showNode(c,h,b)}for(var j in f)a=d.nodeChildren(c,f[j]),e.setFirstNodeForShow(c,a),e.setLastNodeForShow(c,a)}},hideNode:function(c,a){d.isHidden(c,a, +!0);a.isFirstNode=!1;a.isLastNode=!1;d.initHideForExCheck(c,a);e.cancelPreSelectedNode(c,a);k(a,c).hide()},hideNodes:function(c,a,b){if(a&&a.length!=0){var f={},g,i;for(g=0,i=a.length;g<i;g++){var h=a[g];if((h.isFirstNode||h.isLastNode)&&!f[h.parentTId]){var j=h.getParentNode();f[h.parentTId]=j===null?d.getRoot(c):h.getParentNode()}e.hideNode(c,h,b)}for(var k in f)a=d.nodeChildren(c,f[k]),e.setFirstNodeForHide(c,a),e.setLastNodeForHide(c,a)}},setFirstNode:function(c,a){var b=d.nodeChildren(c,a),f= +d.isHidden(c,b[0],!1);b.length>0&&!f?b[0].isFirstNode=!0:b.length>0&&e.setFirstNodeForHide(c,b)},setLastNode:function(c,a){var b=d.nodeChildren(c,a),f=d.isHidden(c,b[0]);b.length>0&&!f?b[b.length-1].isLastNode=!0:b.length>0&&e.setLastNodeForHide(c,b)},setFirstNodeForHide:function(c,a){var b,f,g;for(f=0,g=a.length;f<g;f++){b=a[f];if(b.isFirstNode)break;if(!d.isHidden(c,b)&&!b.isFirstNode){b.isFirstNode=!0;e.setNodeLineIcos(c,b);break}else b=null}return b},setFirstNodeForShow:function(c,a){var b,f, +g,i,h;for(f=0,g=a.length;f<g;f++){b=a[f];var j=d.isHidden(c,b);if(!i&&!j&&b.isFirstNode){i=b;break}else if(!i&&!j&&!b.isFirstNode)b.isFirstNode=!0,i=b,e.setNodeLineIcos(c,b);else if(i&&b.isFirstNode){b.isFirstNode=!1;h=b;e.setNodeLineIcos(c,b);break}}return{"new":i,old:h}},setLastNodeForHide:function(c,a){var b,f;for(f=a.length-1;f>=0;f--){b=a[f];if(b.isLastNode)break;if(!d.isHidden(c,b)&&!b.isLastNode){b.isLastNode=!0;e.setNodeLineIcos(c,b);break}else b=null}return b},setLastNodeForShow:function(c, +a){var b,f,g,i;for(f=a.length-1;f>=0;f--){b=a[f];var h=d.isHidden(c,b);if(!g&&!h&&b.isLastNode){g=b;break}else if(!g&&!h&&!b.isLastNode)b.isLastNode=!0,g=b,e.setNodeLineIcos(c,b);else if(g&&b.isLastNode){b.isLastNode=!1;i=b;e.setNodeLineIcos(c,b);break}}return{"new":g,old:i}}},data:{initHideForExCheck:function(c,a){if(d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck=="undefined")a._nocheck=!!a.nocheck,a.nocheck=!0;a.check_Child_State=-1;e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c, +a)}},initShowForExCheck:function(c,a){if(!d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck!="undefined")a.nocheck=a._nocheck,delete a._nocheck;if(e.setChkClass){var b=k(a,m.id.CHECK,c);e.setChkClass(c,b,a)}e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c,a)}}}});var j=j.fn.zTree,l=j._z.tools,m=j.consts,e=j._z.view,d=j._z.data,k=l.$;d.isHidden=function(c,a,b){if(!a)return!1;c=c.data.key.isHidden;typeof b!=="undefined"?(typeof b==="string"&&(b=l.eqs(b,"true")),a[c]=!!b): +a[c]=typeof a[c]=="string"?l.eqs(a[c],"true"):!!a[c];return a[c]};d.exSetting({data:{key:{isHidden:"isHidden"}}});d.addInitNode(function(c,a,b){a=d.isHidden(c,b);d.isHidden(c,b,a);d.initHideForExCheck(c,b)});d.addBeforeA(function(){});d.addZTreeTools(function(c,a){a.showNodes=function(a,b){e.showNodes(c,a,b)};a.showNode=function(a,b){a&&e.showNodes(c,[a],b)};a.hideNodes=function(a,b){e.hideNodes(c,a,b)};a.hideNode=function(a,b){a&&e.hideNodes(c,[a],b)};var b=a.checkNode;if(b)a.checkNode=function(f, +e,i,h){(!f||!d.isHidden(c,f))&&b.apply(a,arguments)}});var n=d.initNode;d.initNode=function(c,a,b,f,g,i,h){var j=(f?f:d.getRoot(c))[c.data.key.children];d.tmpHideFirstNode=e.setFirstNodeForHide(c,j);d.tmpHideLastNode=e.setLastNodeForHide(c,j);h&&(e.setNodeLineIcos(c,d.tmpHideFirstNode),e.setNodeLineIcos(c,d.tmpHideLastNode));g=d.tmpHideFirstNode===b;i=d.tmpHideLastNode===b;n&&n.apply(d,arguments);h&&i&&e.clearOldLastNode(c,b,h)};var o=d.makeChkFlag;if(o)d.makeChkFlag=function(c,a){(!a||!d.isHidden(c, +a))&&o.apply(d,arguments)};var p=d.getTreeCheckedNodes;if(p)d.getTreeCheckedNodes=function(c,a,b,f){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return p.apply(d,arguments)};var q=d.getTreeChangeCheckedNodes;if(q)d.getTreeChangeCheckedNodes=function(c,a,b){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return q.apply(d,arguments)};var r=e.expandCollapseSonNode;if(r)e.expandCollapseSonNode=function(c,a,b,f,g){(!a||!d.isHidden(c,a))&&r.apply(e, +arguments)};var s=e.setSonNodeCheckBox;if(s)e.setSonNodeCheckBox=function(c,a,b,f){(!a||!d.isHidden(c,a))&&s.apply(e,arguments)};var t=e.repairParentChkClassWithSelf;if(t)e.repairParentChkClassWithSelf=function(c,a){(!a||!d.isHidden(c,a))&&t.apply(e,arguments)}})(jQuery); diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 8911c89..cd3beaf 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -2,7 +2,7 @@ import router, { constantRoutes, dynamicRoutes } from '@/router' import { getRouters } from '@/api/menu' import Layout from '@/layout/index' -import ParentView from '@/components/ParentView' +import ParentView from '@/components/RuoYi/ParentView' import InnerLink from '@/layout/components/InnerLink' const permission = { diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 0d437c8..3538789 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,6 +1,6 @@ import { login, logout, getInfo } from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' -import log from "@/views/monitor/job/log"; +import {encrypt} from '@/utils/jsencrypt' const user = { state: { @@ -33,7 +33,8 @@ // 鐧诲綍 Login({ commit }, userInfo) { const username = userInfo.username.trim() - const password = userInfo.password + // const password = userInfo.password + const password = encrypt(userInfo.password) const code = userInfo.code const uuid = userInfo.uuid const loginType = userInfo.loginType diff --git a/src/utils/base.js b/src/utils/base.js new file mode 100644 index 0000000..53ae97e --- /dev/null +++ b/src/utils/base.js @@ -0,0 +1,14 @@ +// Base Url +export function getBaseUrl() { + return globalConf.baseUrl +} + +// Ftp Url +export function getFtpUrl() { + return globalConf.ftpUrl +} + +// Ftp 涓婁紶鍦板潃 +export function getUploadUrl() { + return getBaseUrl() + '/v1/base/upload/file/fileUpload' +} diff --git a/src/utils/date.js b/src/utils/date.js new file mode 100644 index 0000000..cfff353 --- /dev/null +++ b/src/utils/date.js @@ -0,0 +1,77 @@ +export function formatDate(date, fmt) { + try { + if (!(date instanceof Date)) { + date = new Date(date) + } + if (fmt == undefined || fmt == '') { + fmt = 'yyyy-MM-dd hh:mm:ss' + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + } + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + const str = o[k] + '' + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str)) + } + } + return fmt + } catch (e) { + console.log(e) + return '-' + } +} + +function padLeftZero(str) { + return ('00' + str).substr(str.length) +} + +/** + * @Author wh + * @Date 2022/2/25 - 14:35 + * @Description //鏃ユ湡姣旇緝 + **/ +export function compare(date1, date2) { + const dates1 = new Date(date1) + const dates2 = new Date(date2) + if (dates1 > dates2) { + return true + } else { + return false + } +} + +/** + * @Author wh + * @Date 2022/5/13 - 15:43 + * @Description //鏃堕棿鏍煎紡杞崲 + * 浼犲�兼椂鑷姩璋冪敤浜唗oJSON()鍑芥暟锛屾墜鍔ㄨ浆鎴愪綘鎯宠鐨勫瓧绗︿覆鏍煎紡 + **/ +export function FormatTime(t, date) { + var date = new Date(date) + var o = { + 'M+': date.getMonth() + 1, // 鏈堜唤 + 'd+': date.getDate(), // 鏃� + 'h+': date.getHours(), // 灏忔椂 + 'm+': date.getMinutes(), // 鍒� + 's+': date.getSeconds(), // 绉� + 'q+': Math.floor((date.getMonth() + 3) / 3), // 瀛e害 + 'S': date.getMilliseconds() // 姣 + } + if (/(y+)/.test(t)) { + t = t.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (var k in o) { + if (new RegExp('(' + k + ')').test(t)) { + t = t.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) + } + } + return t +} diff --git a/src/utils/jsencrypt.js b/src/utils/jsencrypt.js index 78d9523..ef31c94 100644 --- a/src/utils/jsencrypt.js +++ b/src/utils/jsencrypt.js @@ -2,8 +2,7 @@ // 瀵嗛挜瀵圭敓鎴� http://web.chacuo.net/netrsakeypair -const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + - 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' +const publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCTREknOkrusbeH7kBe3mSw4AwVT438IWmX/jKmcvYxaAWRrBJiMl7gk37L78HBG/ZstLLcdKBYYdj/5cvVWDQfv+uxbv/piZhOmQej98jWIXEA8aFEk724nFRJ7nfcEhHSWfzbTfgZw0KDO1mWdjWHnHIx/MtD0HIFFIyzg3aO7wIDAQAB' const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + @@ -21,7 +20,7 @@ return encryptor.encrypt(txt) // 瀵规暟鎹繘琛屽姞瀵� } -// 瑙e瘑 +// 瑙e瘑锛堝鎴风涓嶄細瀹炵幇瑙e瘑锛�2023-04-07锛� export function decrypt(txt) { const encryptor = new JSEncrypt() encryptor.setPrivateKey(privateKey) // 璁剧疆绉侀挜 diff --git a/src/utils/tools.js b/src/utils/tools.js new file mode 100644 index 0000000..02f9d1f --- /dev/null +++ b/src/utils/tools.js @@ -0,0 +1,228 @@ +/** + * 瀵硅薄娣卞害鎷疯礉 + * @param obj + * @returns {Array} + */ +export function objClone(obj) { + const result = Array.isArray(obj) ? [] : {} + if (obj == undefined) { + return result + } + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + if (typeof obj[key] === 'object') { + result[key] = objClone(obj[key]) // 閫掑綊澶嶅埗 + } else { + result[key] = obj[key] + } + } + } + return result +} + +/* 妫�鏌ョ┖ */ +export function isBlank(str) { + return str === undefined || str === 'undefined' || str === null || str === '' || str === 'null' || str === '[]' || str === '{}' || str === null || str === JSON.stringify({}) || str === JSON.stringify([]) +} + +export function isNotBlank(str) { + return !isBlank(str) +} + +/** + * 涓ゆ暟鐩稿姞 arg1 + arg2 + * @param arg1 + * @param arg2 + * @returns {number} + */ +export function add(arg1, arg2) { + let t = 0 + arg1 = arg1 ? arg1.toString() : '0' + arg2 = arg2 ? arg2.toString() : '0' + if (arg1.includes('.')) { + t = arg1.split('.')[1].length + } + if (arg2.includes('.')) { + t = Math.max(arg2.split('.')[1].length, t) + } + const m = Math.pow(10, t) + return (multiply(arg1, m) + multiply(arg2, m)) / m +} + +/** + * 涓ゆ暟鐩稿噺 arg1 - arg2 + * @param arg1 + * @param arg2 + * @returns {number} + */ +export function subtract(arg1, arg2) { + let t = 0 + arg1 = arg1 ? arg1.toString() : '0' + arg2 = arg2 ? arg2.toString() : '0' + if (arg1.includes('.')) { + t = arg1.split('.')[1].length + } + if (arg2.includes('.')) { + t = Math.max(arg2.split('.')[1].length, t) + } + const m = Math.pow(10, t) + return Number(((multiply(arg1, m) - multiply(arg2, m)) / m).toFixed(t)) +} + +/** + * 涓ゆ暟鐩镐箻 arg1 * arg2 + * @param arg1 + * @param arg2 + * @returns {number} + */ +export function multiply(arg1, arg2) { + let t = 0 + arg1 = arg1 ? arg1.toString() : '0' + arg2 = arg2 ? arg2.toString() : '0' + if (arg1.includes('.')) { + t += arg1.split('.')[1].length + } + if (arg2.includes('.')) { + t += arg2.split('.')[1].length + } + const r1 = Number(arg1.replace('.', '')) + const r2 = Number(arg2.replace('.', '')) + return (r1 * r2) / Math.pow(10, t) +} + +/** + * 涓ゆ暟鐩搁櫎 arg1 / arg2 + * @param arg1 + * @param arg2 + * @returns {number} + */ +export function abs(arg1, arg2) { + let t = 0 + arg1 = arg1 ? arg1.toString() : '0' + arg2 = arg2 ? arg2.toString() : '0' + if (arg2.includes('.')) { + t = arg2.split('.')[1].length + } + if (arg1.includes('.')) { + t -= arg1.split('.')[1].length + } + const r1 = Number(arg1.replace('.', '')) + const r2 = Number(arg2.replace('.', '')) + return multiply((r1 / r2), Math.pow(10, t)) +} + +/** + * array杞琒tr + * @param array + * @returns {*} + */ +export function array2Str(array) { + if (array == null || array.length == 0) { + return null + } + return array.length == 0 ? null : JSON.stringify(array) +} + +/** + * Str杞珹rray + * @param array + * @returns {*} + */ +export function str2Array(str) { + if (!str) { + return [] + } + if (typeof (str) == 'object') { + return str + } + return JSON.parse(str) +} + +/* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-08-16 10:52 + * @Description :uuid + */ +export function guid() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0 + const v = c == 'x' ? r : (r & 0x3 | 0x8) + return v.toString(16) + }) +} + +/** + * @author Lx + * @description 璇︽儏鏄剧ず闄勪欢灞曠ず + * @return 杩斿洖涓�涓璞★紝鐢╥sShow鍒ゆ柇闄勪欢鏄惁涓虹┖锛� 鐢╠ata寰幆闄勪欢鏁版嵁 + * */ +export function showAppendix(appendix) { + const appendixArray = JSON.parse(appendix) + // 闄勪欢鏁版嵁 + const appendixData = [] + // 鍒ゆ柇闄勪欢鏄惁涓虹┖,濡傛灉涓嶄负绌虹粍缁囨暟鎹� + let isShow = false + if (appendix) { + isShow = true + appendixArray.forEach(item => { + appendixData.push({ + path: globalConf.ftpUrl + item.path, + name: item.name + }) + }) + } + return { + isShow: isShow, + data: appendixData + } +} + +export function showImage(appendix) { + const appendixArray = JSON.parse(appendix) + // 闄勪欢鏁版嵁 + const appendixData = [] + // 鍒ゆ柇闄勪欢鏄惁涓虹┖,濡傛灉涓嶄负绌虹粍缁囨暟鎹� + let isShow = false + if (appendix) { + isShow = true + appendixArray.forEach(item => { + appendixData.push({ + path: item.path, + name: item.name + }) + }) + } + return { + isShow: isShow, + data: appendixData + } +} + +export function uuid(len, radix) { + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') + var uuid = []; var i + radix = radix || chars.length + + if (len) { + // Compact form + for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix] + } else { + // rfc4122, version 4 form + var r + + // rfc4122 requires these characters + uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-' + uuid[14] = '4' + + // Fill in random data. At i==19 set the high bits of clock sequence as + // per rfc4122, sec. 4.1.5 + for (i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | Math.random() * 16 + uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r] + } + } + } + + return uuid.join('') +} diff --git a/src/views/components/buttonSelect/index.vue b/src/views/components/buttonSelect/index.vue new file mode 100644 index 0000000..dfbdded --- /dev/null +++ b/src/views/components/buttonSelect/index.vue @@ -0,0 +1,42 @@ +<template> + <a-dropdown style="margin-left: 5px;" :trigger="['click','hover']"> + <a-button size="small"> + 鏇村 + <a-icon type="down" /> + </a-button> + <a-menu slot="overlay"> + <a-menu-item key="1"> + <span @click="testC(1)">1st item</span> + </a-menu-item> + <a-menu-item key="2"> + <span @click="testC(2)">1st item</span> + </a-menu-item> + <a-menu-item key="3"> + <span @click="testC(3)">1st item</span> + </a-menu-item> + </a-menu> + </a-dropdown> +</template> +<script> +export default { + methods: { + testC(e) { + console.log('click', e) + } + } +} +</script> +<style scoped> + .a-button-cus{ + font-size: 12px; + } + .ant-btn-sm { + padding: 0px 7px; + font-size: 12px; + border-radius: 3px; + height: 20px; + } + .ant-btn > .anticon + span, .ant-btn > span + .anticon { + margin-left: unset; + } +</style> diff --git a/src/views/components/chooseAddress.vue b/src/views/components/chooseAddress.vue new file mode 100644 index 0000000..fa5a6dd --- /dev/null +++ b/src/views/components/chooseAddress.vue @@ -0,0 +1,206 @@ +<template> + <div> + <el-row :gutter="20" style="margin-bottom: 10px"> + <el-col :span="18"> + <!--<el-form :inline="true" :model="myForm">--> + <!--<el-form-item label="鍦板潃">--> + <el-input id="place" v-model="myForm.address" type="textarea" :rows="1" placeholder="杈撳叆鍙互妫�绱㈠湴鍧�" /> + <span style="color: #F56C6C;">鑷姩璇嗗埆鐨勫湴鍧�瀛樺湪璇樊銆傚鏈夐敊璇紝璇疯嚜琛屾洿姝o紒</span> + <!--</el-form-item>--> + <!--<el-form-item>--> + <!--</el-form-item>--> + <!--</el-form>--> + </el-col> + <el-col :span="6"> + <el-button type="primary" @click="save">纭畾</el-button> + </el-col> + </el-row> + <!--<el-form :inline="true" label-width="100px" :model="myForm" class="demo-form-inline">--> + <!--<!–<el-form-item label="妫�绱㈠湴鍧�">–>--> + <!--<!–<el-input id="place" v-model="myForm.address" placeholder="妫�绱㈠湴鍧�" />–>--> + <!--<!–</el-form-item>–>--> + <!--<el-form-item label="鐪�">--> + <!--<el-input v-model="myForm.prov" />--> + <!--</el-form-item>--> + <!--<el-form-item label="甯�">--> + <!--<el-input v-model="myForm.city" />--> + <!--</el-form-item>--> + <!--<el-form-item label="鍖�">--> + <!--<el-input v-model="myForm.area" />--> + <!--</el-form-item>--> + <!--<el-form-item label="缁忓害">--> + <!--<el-input v-model="myForm.lat" />--> + <!--</el-form-item>--> + <!--<el-form-item label="缁村害">--> + <!--<el-input v-model="myForm.lng" />--> + <!--</el-form-item>--> + <!--<el-form-item>--> + <!--<el-button type="primary" @click="save">纭畾</el-button>--> + <!--</el-form-item>--> + <!--</el-form>--> + <div id="container" style="width: 100%;height: 500px" /> + </div> +</template> + +<script> +export default { + data() { + return { + myForm: { + prov: '', + city: '', + area: '', + address: '', + lat: '', + lng: '' + } + } + }, + created() { + + }, + mounted() { + this.init() + }, + methods: { + init() { + // console.log(this.myForm) + const that = this + const center = new window.qq.maps.LatLng(39.916527, 116.397128) // 鍦板浘鐨勪腑蹇冨湴鐞嗗潗鏍囥�� + const map = new window.qq.maps.Map(document.getElementById('container'), { + center: center, + zoom: 13 + }) + // 鑾峰彇鍩庡競鍒楄〃鎺ュ彛璁剧疆涓績鐐� + const citylocation = new window.qq.maps.CityService({ + complete: function(result) { + map.setCenter(result.detailWin.latLng) + } + }) + // 璋冪敤searchLocalCity();鏂规硶 鏍规嵁鐢ㄦ埛IP鏌ヨ鍩庡競淇℃伅銆� + citylocation.searchLocalCity() + + const geocoder = new window.qq.maps.Geocoder() + // 璁剧疆鏈嶅姟璇锋眰鎴愬姛鐨勫洖璋冨嚱鏁� + geocoder.setComplete(function(result) { + // console.log('閫嗗湴鍧�瑙f瀽', result) + const addressComponents = result.detailWin.addressComponents + that.myForm.prov = addressComponents.province + that.myForm.city = addressComponents.city + that.myForm.area = addressComponents.district + const location = result.detailWin.location + that.myForm.lat = location.lat + that.myForm.lng = location.lng + const nearPois = result.detailWin.nearPois + that.myForm.address = nearPois[0].address + ' ' + nearPois[0].name + + var marker = new window.qq.maps.Marker({ + position: location, + map: map + }) + window.qq.maps.event.addListener(map, 'click', function(event) { + marker.setMap(null) + }) + + map.setCenter(location) + map.zoomTo(18) + + // console.log(JSON.stringify(that.myForm)) + }) + + // 娣诲姞鐩戝惉浜嬩欢 鑾峰彇榧犳爣鐐瑰嚮浜嬩欢 + window.qq.maps.event.addListener(map, 'click', function(event) { + // var marker = new qq.maps.Marker({ + // position: event.latLng, + // map: map + // }) + // qq.maps.event.addListener(map, 'click', function(event) { + // marker.setMap(null) + // }) + // // 娣诲姞鍒版彁绀虹獥 + // const info = new qq.maps.InfoWindow({ + // map: map + // }) + // // 娣诲姞鏍囪鐐瑰嚮浜嬩欢 + // qq.maps.event.addListener(marker, 'click', function() { + // info.open() + // info.setContent('<div style="text-align:center;white-space:nowrap;' + + // 'margin:10px;">鍗曞嚮鏍囪</div>') + // info.setPosition(event.latLng) + // }) + + geocoder.getAddress(event.latLng) + }) + + var ap = new window.qq.maps.place.Autocomplete(document.getElementById('place'), { + zIndex: 999999 + }) + var keyword = '' + // 璋冪敤Poi妫�绱㈢被銆傜敤浜庤繘琛屾湰鍦版绱€�佸懆杈规绱㈢瓑鏈嶅姟銆� + var searchService = new qq.maps.SearchService({ + complete: function(results) { + // console.log(results) + if (results.type === 'CITY_LIST') { + searchService.setLocation(results.detailWin.cities[0].cityName) + searchService.search(keyword) + return + } + var pois = results.detailWin.pois + var latlngBounds = new qq.maps.LatLngBounds() + + geocoder.getAddress(pois[0].latLng) + + // for (var i = 0, l = pois.length; i < l; i++) { + + // var poi = pois[i] + // if (i == 0) { + // geocoder.getAddress(poi.latLng) + // + // // that.myForm.address = poi.address + ' ' + poi.name + // } + // latlngBounds.extend(poi.latLng) + // var marker = new qq.maps.Marker({ + // map: map, + // position: poi.latLng + // }) + // + // // 娣诲姞鍒版彁绀虹獥 + // const info = new qq.maps.InfoWindow({ + // map: map + // }) + // + // // 娣诲姞鏍囪鐐瑰嚮浜嬩欢 + // qq.maps.event.addListener(marker, 'click', function() { + // info.open() + // info.setContent('<div style="text-align:center;white-space:nowrap;' + + // 'margin:10px;">鍗曞嚮鏍囪</div>') + // info.setPosition(poi.latLng) + // }) + // + // marker.setTitle(poi.name) + // } + map.fitBounds(latlngBounds) + } + }) + // 娣诲姞鐩戝惉浜嬩欢 + window.qq.maps.event.addListener(ap, 'confirm', function(res) { + keyword = res.value + searchService.search(keyword) + }) + }, + save() { + if (this.myForm.lat == '' || this.myForm.lat == '') { + this.$message.error('璇峰厛鏍囪鍦板浘浣嶇疆锛�') + return false + } + this.$emit('save', this.myForm) + } + } +} +</script> + +<style scoped> +body >div:last-child{ + z-index: 1000000000 !important; +} +</style> diff --git a/src/views/components/dateSelector/index.vue b/src/views/components/dateSelector/index.vue new file mode 100644 index 0000000..a6895a2 --- /dev/null +++ b/src/views/components/dateSelector/index.vue @@ -0,0 +1,508 @@ +<template> + <el-date-picker + v-model="timeArr" + :type="mySetting.type" + :picker-options="pickerOptions" + :placeholder="mySetting.placeholder" + :range-separator="mySetting.separator" + :start-placeholder="mySetting.startPlaceholder" + :end-placeholder="mySetting.endPlaceholder" + :format="mySetting.format" + :value-format="mySetting.valueFormat" + :default-time="mySetting.defaultTime" + :align="mySetting.align" + :clearable="mySetting.clearable" + :editable="mySetting.editable" + :disabled="mySetting.disabled" + :readonly="mySetting.readonly" + :unlink-panels="mySetting.unLink" + :style="defaultStyle" + @change="change" + /> +</template> +<script> +/** + daterange 鏃ユ湡鑼冨洿閫夋嫨 (榛樿) + date 鏃ユ湡鍗曢�� + datetimerange 鏃ユ湡鏃堕棿鑼冨洿閫夋嫨 + datetime 鏃ユ湡鏃堕棿鍗曢�� + monthrange 鏈堜唤鑼冨洿閫夋嫨 + */ +export default { + props: { + setting: { + type: Object, + default: () => { + return {} + } + }, + options: { + type: Object, + default: () => { + return {} + } + }, + value: { + // type: [Array, String], + required: true + }, + myStyle: { + type: Object, + default: () => { + return {} + } + } + }, + data() { + return { + timeArr: null, + mySetting: { + shortcut: true, // 浣跨敤蹇嵎閫夐」 + shortcuts: [], // 浣跨敤鐨勯璁剧殑蹇嵎閫夐」 (褰搒hortcut涓� true 涓旀湭鑷畾涔夊揩鎹烽�夐」鏃舵湁鏁�) 鏁扮粍鍊间负shortcutObj瀹氫箟鐨刱ey + clearable: true, // 鍙竻绌� + editable: true, // 鍙紪杈� + disabled: false, // 绂佺敤 + readonly: false, // 鍙 + afterToday: false, // 鍙兘閫夋嫨涔嬪悗鐨勬棩鏈� + beforeToday: false, // 鍙兘閫夋嫨涔嬪墠鐨勬棩鏈� + unLink: true, // 鍙栨秷澶氫釜鏃ユ湡闈㈡澘鐨勮仈鍔� + type: 'daterange', // 绫诲瀷 鍙�夐」 year/month/date/dates/ week/datetime/datetimerange/daterange/monthrange + format: 'yyyy-MM-dd', // 鏄剧ず鍦ㄨ緭鍏ユ鐨勬牸寮忓寲绫诲瀷 + valueFormat: 'yyyy-MM-dd HH:mm:ss', // 缁戝畾鍊肩殑鏍煎紡鍖栫被鍨� + align: 'right', // 瀵归綈鏂瑰紡 鍙�夐」 left, center, right + placeholder: '璇烽�夋嫨鏃ユ湡', + separator: '鑷�', // 鑼冨洿閫夋嫨鏃剁殑鍒嗛殧绗� + startPlaceholder: '寮�濮嬫棩鏈�', // 鑼冨洿閫夋嫨鏃跺紑濮嬪崰浣嶆枃鏈� + endPlaceholder: '缁撴潫鏃ユ湡', // 鑼冨洿閫夋嫨鏃剁粨鏉熷崰浣嶆枃鏈� + defaultTime: ['00:00:00', '23:59:59'] // 鑼冨洿閫夋嫨鏃堕�変腑鏃ユ湡鎵�浣跨敤鐨勫綋鏃ュ唴鍏蜂綋鏃跺埢 + }, + pickerOptions: { // 缁勪欢閰嶇疆 璇︽儏鍙傝�冨畼缃� + shortcuts: null, // 璁剧疆蹇嵎閫夐」锛岄渶瑕佷紶鍏� { text, onClick } type: Array + disabledDate: null, // 璁剧疆绂佺敤鐘舵�侊紝鍙傛暟涓哄綋鍓嶆棩鏈燂紝瑕佹眰杩斿洖 Boolean type: Function + firstDayOfWeek: 7, // 鍛ㄨ捣濮嬫棩 1 鍒� 7 type: number + onPick: null // 閫変腑鏃ユ湡鍚庝細鎵ц鐨勫洖璋冿紝鍙湁褰揹aterange鎴杁atetimerange鎵嶇敓鏁� type:Function({ maxDate, minDate }) + }, + defaultStyle: {} // 榛樿鏍峰紡 + } + }, + watch: { + value(val) { + this.init(val) + } + }, + created() { + this.init(this.value) + }, + mounted() { + window.zxc = this + }, + methods: { + /** + * 鏍规嵁type 鍒濆鍖栭粯璁ら厤缃俊鎭� + * @author zxc + * @Date 2019/7/9 11:19 + **/ + init(obj) { + /** **********************************************鍒濆鍖栭厤缃俊鎭�************************************************************/ + const type = this.setting.type || this.mySetting.type + switch (type) { + case 'datetimerange': // 鏃ユ湡鏃堕棿鑼冨洿 + this.mySetting.format = 'yyyy-MM-dd HH:mm:ss' + if (obj.length > 0 && obj.every(item => item)) { + this.timeArr = [].concat(obj) + } else { + this.timeArr = null + } + break + case 'daterange': // 鏃ユ湡鑼冨洿 + this.mySetting.format = 'yyyy-MM-dd' + if (obj.length > 0 && obj.every(item => item)) { + this.timeArr = [].concat(obj) + } else { + this.timeArr = null + } + break + case 'monthrange': // 鏃ユ湡鑼冨洿 + this.mySetting.format = 'yyyy-MM' + if (obj.length > 0 && obj.every(item => item)) { + this.timeArr = [].concat(obj) + } else { + this.timeArr = null + } + break + case 'datetime': + this.mySetting.format = 'yyyy-MM-dd HH:mm:ss' + this.mySetting.defaultTime = null // 涓嶇疆绌轰細鎶ラ敊 + this.timeArr = this.value + break + case 'date': + this.mySetting.format = 'yyyy-MM-dd' + this.mySetting.defaultTime = null // 涓嶇疆绌轰細鎶ラ敊 + this.timeArr = this.value + break + default: + break + } + Object.assign(this.mySetting, this.setting) + Object.assign(this.defaultStyle, this.myStyle) + Object.assign(this.pickerOptions, this.options) + defaultTime = this.mySetting.defaultTime + /** **********************************************鍒濆绂佺敤椤�************************************************************/ + if (this.pickerOptions.disabledDate == null) { + if (this.mySetting.afterToday) { // 鍙兘閫夋嫨涔嬪悗鐨勬棩鏈� + this.pickerOptions.disabledDate = (date) => { + let da = new Date() + switch (type) { + case 'date': + case 'datetime': + case 'datetimerange': + case 'daterange': + da = new Date(da.getFullYear(), da.getMonth(), da.getDate()) + break + case 'monthrange': + da = new Date(da.getFullYear(), da.getMonth()) + break + } + return da > date + } + } else if (this.mySetting.beforeToday) { // 鍙兘閫夋嫨涔嬪墠鐨勬棩鏈� + this.pickerOptions.disabledDate = (date) => { + let da = new Date() + switch (type) { + case 'date': + case 'datetime': + case 'datetimerange': + case 'daterange': + da = new Date(da.getFullYear(), da.getMonth(), da.getDate(), 23, 59, 59) + break + case 'monthrange': // 鏈堜唤璁剧疆 鏃ユ椂鍒嗙涓� 0 + da = new Date(da.getFullYear(), da.getMonth() + 1, 0, 23, 59, 59) + break + } + return da < date + } + } + } + /** **********************************************鍒濆鍖栧揩鎹烽�夐」************************************************************/ + // 浣跨敤蹇嵎閫夐」 涓� 鏈畾涔夐�夐」鏃惰祴浜堥粯璁ゅ�� + if (this.mySetting.shortcut && this.pickerOptions.shortcuts == null) { + if (this.mySetting.shortcuts.length > 0) { + this.pickerOptions.shortcuts = shortcut(this.mySetting.shortcuts) + } else if (this.mySetting.afterToday) { // 涔嬪悗鏃ユ湡蹇嵎閫夐」 + switch (this.mySetting.type) { + case 'datetimerange': + case 'daterange': + this.pickerOptions.shortcuts = shortcut(['DA1W', 'DA1M', 'DA3M', 'DATYe']) + break + case 'monthrange': + this.pickerOptions.shortcuts = shortcut(['MTT', 'MA6M', 'MA1Y', 'MATYe']) + break + } + } else if (this.mySetting.beforeToday) { // 涔嬪墠鏃ユ湡蹇嵎閫夐」 + switch (this.mySetting.type) { + case 'datetimerange': + case 'daterange': + this.pickerOptions.shortcuts = shortcut(['DB1W', 'DB1M', 'DB3M', 'DBYbT']) + break + case 'monthrange': + this.pickerOptions.shortcuts = shortcut(['MTT', 'MB6M', 'MB1Y', 'MBYbT']) + break + } + } else { // 榛樿蹇嵎閫夐」 + switch (this.mySetting.type) { + case 'datetimerange': + case 'daterange': + this.pickerOptions.shortcuts = shortcut(['DB1W', 'DB1M', 'DB3M', 'DBYbT']) + break + case 'monthrange': + this.pickerOptions.shortcuts = shortcut(['MTT', 'MB6M', 'MB1Y', 'MBYbT']) + break + } + } + } + }, + /** + * 閫変腑鍚庣殑鍥炶皟 + * @author zxc + * @Date 2019/7/9 11:17 + **/ + change(val) { + switch (this.mySetting.type) { + case 'monthrange': + if (val == null) { + this.value.length = 0 + } else { + // 鏈堜唤缁撴潫鏃ユ湡璁句负褰撴湀鏈�鍚庝竴澶� (榛樿涓� 1鍙�) + const d = new Date(val[1]) + d.setMonth(d.getMonth() + 1) + d.setDate(d.getDate() - 1) + val[1] = this.formatDate(d, this.mySetting.valueFormat) + for (const i in val) { + this.value[i] = val[i] + } + } + break + case 'datetimerange': + case 'daterange': + if (val == null) { + this.value.length = 0 + } else { + for (const i in val) { + this.value[i] = val[i] + } + } + break + case 'datetime': // 椤荤粦瀹歝hange浜嬩欢 | 璋冪敤 getContent 鏂规硶鑾峰彇閫変腑鏃堕棿 + break + } + console.log(val) + this.$emit('change', val) + }, + /** + * 鏃ユ湡鏍煎紡鍖� + * @author zxc + * @Date 2019/8/28 19:17 + **/ + formatDate(date, fmt) { + try { + if (!(date instanceof Date)) { + date = new Date(date) + } + if (fmt == undefined || fmt == '') { + fmt = 'yyyy-MM-dd HH:mm:ss' + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + } + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + const str = o[k] + '' + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : this.padLeftZero(str)) + } + } + return fmt + } catch (e) { + console.log(e) + return '-' + } + }, + padLeftZero(str) { + return ('00' + str).substr(str.length) + }, + /** + * 鑾峰彇閫変腑鏃ユ湡 + * 杩斿洖鍊肩被鍨嬩笌type鐩稿叧 閫氳繃 this.$refs['refVal'].getContent() 璋冪敤 + * @author zxc + * @Date 2019/7/9 11:18 + **/ + getContent() { + return this.timeArr + } + } +} + +let defaultTime = null +/** + * 璁剧疆蹇嵎閫夐」 + * @author zxc + * @Date 2019/8/28 19:18 + **/ +function shortcut(arr) { + const returnArr = [] + for (const a of arr) { + if (shortcutObj[a]) { + returnArr.push(shortcutObj[a]) + } + } + return returnArr.length > 0 ? returnArr : null +} +/** + * 璁剧疆榛樿鏃堕棿 + * @author zxc + * @Date 2019/8/28 19:17 + **/ +function setTime(start, end) { + if (Array.isArray(defaultTime)) { + // beginTime + const s = (defaultTime[0]).split(':') + start.setHours(Number(s[0])) + start.setMinutes(Number(s[1])) + start.setSeconds(Number(s[2])) + // endTime + const e = (defaultTime[1]).split(':') + end.setHours(Number(e[0])) + end.setMinutes(Number(e[1])) + end.setSeconds(Number(e[2])) + } +} +/** + * 蹇嵎閫夐」key鍛藉悕瑙勫垯: + * 绗竴浣�: T/D/M/Y T:鏃堕棿鑼冨洿閫夋嫨 D:鏃ユ湡鑼冨洿閫夋嫨 M:鏈堜唤鑼冨洿閫夋嫨 Y:骞翠唤鑼冨洿閫夋嫨 (鏆傛棤) + * 绗簩浣�: A/B/T A:璇ラ�夐」鏄箣鍚庣殑鏃ユ湡(鏈潵) B:璇ラ�夐」鏄箣鍓嶇殑鏃ユ湡(鏈�杩�) T:璇ラ�夐」鏄綋鍓嶇殑鏃ユ湡 (鏈�) + * 绗笁浣嶄箣鍚�: m/H/D/W/M/Y/T m:鍒� H:鏃� D:澶� W:鍛� M:鏈� Y:骞� (涓庢暟瀛楃粍鎴愬叿浣撴椂闂存) T:褰撳墠鏃ユ湡 + * Wb:鍛ㄥ垵 We:鍛ㄦ湯 Mb:鏈堝垵 Me:鏈堟湯 Yb:骞村垵 Ye: 骞存湯 (鎼厤 T 浣跨敤) + * @author zxc + * @Date 2019/8/25 10:13 + **/ +const shortcutObj = { + 'DA1W': { + text: '鏈潵涓�鍛�', + onClick: (picker) => { + const start = new Date() + const end = new Date(start) + end.setDate(start.getDate() + 6) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DA1M': { + text: '鏈潵涓�涓湀', + onClick: (picker) => { + const start = new Date() + const end = new Date(start) + end.setMonth(start.getMonth() + 1) + end.setDate(start.getDate() - 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DA3M': { + text: '鏈潵涓変釜鏈�', + onClick: (picker) => { + const start = new Date() + const end = new Date(start) + end.setMonth(start.getMonth() + 3) + end.setDate(start.getDate() - 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DATYe': { + text: '浠婃棩鑷冲勾鏈�', + onClick: (picker) => { + const start = new Date() + const end = new Date(start.getFullYear() + 1, 0, 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MTT': { + text: '鏈湀', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth(), 1) + const end = new Date(temp.getFullYear(), temp.getMonth(), 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MA6M': { + text: '鏈潵鍗婂勾', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth(), 1) + const end = new Date(temp.getFullYear(), temp.getMonth() + 5, 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MA1Y': { + text: '鏈潵涓�骞�', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth(), 1) + const end = new Date(temp.getFullYear(), temp.getMonth() + 11, 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MATYe': { + text: '鏈湀鑷冲勾鏈�', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth(), 1) + const end = new Date(temp.getFullYear(), 11, 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DB1W': { + text: '鏈�杩戜竴鍛�', + onClick: (picker) => { + const end = new Date() + const start = new Date(end) + start.setDate(end.getDate() - 6) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DB1M': { + text: '鏈�杩戜竴涓湀', + onClick: (picker) => { + const end = new Date() + const start = new Date(end) + start.setMonth(end.getMonth() - 1) + start.setDate(end.getDate() + 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DB3M': { + text: '鏈�杩戜笁涓湀', + onClick: (picker) => { + const end = new Date() + const start = new Date(end) + start.setMonth(end.getMonth() - 3) + start.setDate(end.getDate() + 1) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'DBYbT': { + text: '浠婂勾鑷充粖', + onClick: (picker) => { + const end = new Date() + const start = new Date(end.getFullYear(), 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MB6M': { + text: '鏈�杩戝崐骞�', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth() - 5, 1) + const end = new Date(temp.getFullYear(), temp.getMonth(), 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MB1Y': { + text: '鏈�杩戜竴骞�', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), temp.getMonth() - 11, 1) + const end = new Date(temp.getFullYear(), temp.getMonth(), 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + }, + 'MBYbT': { + text: '浠婂勾鑷充粖', + onClick: (picker) => { + const temp = new Date() + const start = new Date(temp.getFullYear(), 0, 1) + const end = new Date(temp.getFullYear(), temp.getMonth(), 0) + setTime(start, end) + picker.$emit('pick', [start, end]) + } + } +} +</script> diff --git a/src/views/components/editableCell.vue b/src/views/components/editableCell.vue new file mode 100644 index 0000000..2dca69e --- /dev/null +++ b/src/views/components/editableCell.vue @@ -0,0 +1,161 @@ +<template> + <div class="edit-cell" @click="onFieldClick"> + <el-tooltip + v-if="!editMode && !showInput" + :placement="toolTipPlacement" + :open-delay="toolTipDelay" + :content="toolTipContent" + > + <div + tabindex="0" + class="cell-content" + :class="{'edit-enabled-cell': canEdit}" + > + <!-- @keyup.enter="onFieldClick"--> + <slot name="content" /> + </div> + + </el-tooltip> + <!--@focus="onFieldClick"--> + <el-input + v-if="editMode || showInput" + ref="input" + v-model="model" + placeholder="璇疯緭鍏ュ唴瀹�" + :class="error" + @keyup.enter.native="onInputEnter" + v-on="listeners" + /> + </div> +</template> + +<script> +import { multiply, abs } from '@/utils/tools' +import { validInteger } from '@/utils/validate' +export default { + name: 'EditableCell', + inheritAttrs: false, + props: { + value: { + type: String, + default: '' + }, + toolTipContent: { + type: String, + default: '鐐瑰嚮缂栬緫' + }, + toolTipDelay: { + type: Number, + default: 500 + }, + toolTipPlacement: { + type: String, + default: 'top-start' + }, + showInput: { + type: Boolean, + default: false + }, + editableComponent: { + type: String, + default: 'el-input' + }, + closeEvent: { + type: String, + default: 'blur' + }, + canEdit: { + type: Boolean, + default: false + }, + rowData: { + type: Object, + default: function() { + return {} + } + }, + flag: { + type: String + } + }, + data() { + return { + editMode: false, + error: '' + } + }, + computed: { + model: { + get() { + return this.value + }, + set(val) { + this.$emit('input', val) + } + }, + listeners() { + return { + [this.closeEvent]: this.onInputExit, + ...this.$listeners + } + } + }, + methods: { + onFieldClick() { + if (this.canEdit) { + this.editMode = true + this.$nextTick(() => { + const inputRef = this.$refs.input + if (inputRef && inputRef.focus) { + inputRef.focus() + } + }) + } + }, + onInputEnter() { + // enter 瑙﹀彂blur + this.$refs.input.blur() + }, + // 鍦ㄨ繖閲屽仛鑷畾涔夋牎楠� + onInputExit() { + this.error = '' + console.log(this.rowData) + if (this.flag == 'bargain') { + const rate = this.rowData.minEarningRate + const price = abs(this.rowData.negotiatedPrice * (1 + abs(rate, 100)), 100) + console.log('鎺у埗浠凤細', price) + console.log('杈撳叆浠凤細', this.model) + if (this.model < price) { + this.$refs.input.focus() + this.$message.error('涓嶈兘灏忎簬鏈�浣庣泩鍒╃巼') + this.error = 'error' + return false + } + } else { + const ratio = this.rowData.batchRatio + if (!validInteger(ratio)) { + this.$message.error('璇疯緭鍏ユ暣鏁�') + return false + } + if (ratio < 0 || ratio > 100) { + this.$message.error('璇疯緭鍏�0锝�100涔嬮棿鐨勬暟瀛�') + return false + } + } + this.editMode = false + return false + } + } +} +</script> +<style> + .cell-content { + min-height: 28px; + padding-left: 5px; + padding-top: 2px; + border: 1px solid transparent; + } + .error input{ + border-color: red!important; + } +</style> diff --git a/src/views/components/generalRemark/index.vue b/src/views/components/generalRemark/index.vue new file mode 100644 index 0000000..1f5ba37 --- /dev/null +++ b/src/views/components/generalRemark/index.vue @@ -0,0 +1,94 @@ +<template> + <win2 :title="setting.type == 1 ? '澶囨敞' : '娌熼�氳褰�'" @close="close"> + <el-form ref="formData" :model="formData" :rules="rules" label-width="100px"> + <el-form-item :label="setting.type == 1 ? '澶囨敞' : '娌熼�氳褰�' + '锛�'" prop="content"> + <el-input + v-model="formData.content" + type="textarea" + :rows="3" + maxlength="500" + show-word-limit + /> + </el-form-item> + <el-form-item label="闄勪欢锛�"> + <upload ref="appendix" :settings="settings" :values="formData.appendix" /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button-v2 name="鍙栨秷" site="form" @click="close" /> + <my-button-v2 name="淇濆瓨" site="form" @click="save" /> + </div> + </win2> +</template> + +<script> +import win2 from '@/views/components/win2' +import upload from '@/views/components/upload' +import myButtonV2 from '@/views/components/myButtonV2' +import { getUploadUrl } from '@/utils/base' +import { saveRemark } from '@/api/common.js' +export default { + components: { win2, upload, myButtonV2 }, + props: { + setting: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + settings: { + uploadUrl: getUploadUrl(), + num: 1, + accept: '.jpg,.jpeg,.png,.bmp,.pdf,.doc,.docx,.xls,.xlsx,.zip,' // 闄愬埗鏍煎紡 + }, + formData: { + id: null, + businessType: null, + businessId: null, + type: null, + content: null, + appendix: [] + }, + rules: { + content: [ + { required: true, message: '蹇呭~椤�', trigger: 'blur' } + ] + } + } + }, + created() { + Object.assign(this.formData, this.setting) + }, + methods: { + close() { + this.$emit('close') + }, + save() { + this.$refs.formData.validate(valid => { + if (valid) { + const params = Object.assign({}, this.formData) + const appendix = this.$refs.appendix.getContent() + if (appendix.length > 0) { + params.appendix = JSON.stringify(appendix) + } + if (!params.businessType || !params.businessId || !params.type) { + this.$message.error('缂哄皯涓氬姟ID锛屼笟鍔$被鍨嬶紝澶囨敞绫诲瀷锛�') + return false + } + saveRemark(params).then(response => { + if (response.code == 10000 && response.data > 0) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + } else { + this.$message.error(response.description || '淇濆瓨澶辫触锛�') + } + }) + } + }) + } + } +} +</script> diff --git a/src/views/components/generalRemark/query.vue b/src/views/components/generalRemark/query.vue new file mode 100644 index 0000000..6c4b295 --- /dev/null +++ b/src/views/components/generalRemark/query.vue @@ -0,0 +1,73 @@ +<template> + <div class="app-container"> + <el-timeline> + <el-timeline-item v-for="(item ,idx) in activities" :key="idx"> + <h4>{{ item.content }}</h4> + <p v-if="showAppendix(item.appendix)"><el-link target="_blank" :href="getAppendix(item.appendix).path" type="primary">{{ getAppendix(item.appendix).name }}</el-link></p> + <p class="timeline-user"><span>{{ item.createUserName }}</span> <span>{{ getFormatDate(item.createTime) }}</span></p> + </el-timeline-item> + </el-timeline> + </div> +</template> + +<script> +import { getReamrkList } from '@/api/common.js' +import { formatDate } from '@/utils/date.js' +export default { + props: { + setting: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + activities: [] + } + }, + watch: { + setting: { + handler(v, o) { + if (v.businessId !== o.businessId) { + this.init() + } + }, + deep: true + } + }, + created() { + this.init() + }, + methods: { + init() { + if (this.setting.businessType && this.setting.businessId && this.setting.type) { + getReamrkList(this.setting).then(res => { + this.activities = res.data + }) + } + }, + showAppendix(appendix) { + if (appendix) { + return true + } + return false + }, + getAppendix(appendix) { + const appendixArray = JSON.parse(appendix) + return { + path: globalConf.ftpUrl + appendixArray[0].path, + name: appendixArray[0].name + } + }, + getFormatDate(time) { + return formatDate(time, 'yyyy-MM-dd hh:mm:ss') + } + } +} +</script> + +<style scoped> + +</style> diff --git a/src/views/components/help/index.vue b/src/views/components/help/index.vue new file mode 100644 index 0000000..44a49f3 --- /dev/null +++ b/src/views/components/help/index.vue @@ -0,0 +1,34 @@ +<template> + <el-tooltip class="item" effect="dark" placement="top-start"> + <div slot="content" v-html="contents" /> + <svg-icon icon-class="help" /> + </el-tooltip> +</template> + +<script> +export default { + props: { + content: { + type: String, + default: '' + } + }, + data() { + return { + contents: this.content + } + }, + watch: { + content(v) { + this.contents = v + } + }, + created() { + this.contents = this.content + } +} +</script> + +<style scoped> + +</style> diff --git a/src/views/components/myBlockTable.vue b/src/views/components/myBlockTable.vue new file mode 100644 index 0000000..171675a --- /dev/null +++ b/src/views/components/myBlockTable.vue @@ -0,0 +1,315 @@ +<template> + <div> + <!--宸ュ叿鏉�--> + <div class="table-tool-bar"> + <!--鑷畾涔夊伐鍏�--> + <my-button-v2 + v-for="(custom,idx) in myTable.tools.custom" + :key="idx" + :check-permission="custom.checkPermission" + :name="custom.name" + site="tools" + @click="custom.click" + /> + </div> + <!--table鍒楄〃--> + <el-row :gutter="20" style="margin: 10px 0;"> + <el-col v-for="(item,index) in myTable.rows" :key="index" :span="4"> + <div> + <!-- 寮瑰嚭妗� --> + <el-popover placement="right" width="190" trigger="hover" transition="none"> + <ul> + <li> + 濮撳悕锛� + <span>{{ item.name }}</span> + </li> + <li> + 鑱屽姟锛� + <span>{{ item.duties }}</span> + </li> + <li> + 鑱岀О锛� + <span>{{ item.title }}</span> + </li> + <li> + 鎵嬫満鍙凤細 + <span>{{ item.tel }}</span> + </li> + </ul> + <!-- 娴嬭瘯鍥剧墖 --> + <img v-if="item.sex===2" slot="reference" :src="item.photo ? getImagePath(item.photo) : womanHeadSculpture" class="image" @click="clickInfo(item)"> + <img v-else slot="reference" :src="item.photo ? getImagePath(item.photo) : manHeadSculpture" class="image" @click="clickInfo(item)"> + </el-popover> + <div style="padding: 10px 5px;"> + <span>{{ item.name }}({{ item.duties }})</span> + <div class="bottom clearfix"> + <!-- 鎿嶄綔鎸夐挳閮ㄥ垎 --> + <div class="operation"> + <template v-for="(custom,idx) in myTable.operation.attr"> + <my-button-v2 + :key="idx" + :name="custom.title" + site="operation" + @click="custom.events(item)" + /> + </template> + + <template v-if="myTable.operation.more && myTable.operation.more.length>0"> + <a-dropdown + :trigger="['hover','click']" + :overlay-style="{'z-index':'999999!important'}" + > + <a-button style="margin-left: 8px" size="small"> + 鏇村 + <a-icon type="down" /> + </a-button> + <a-menu slot="overlay"> + <template v-for="(m,i) in myTable.operation.more"> + <a-menu-item :key="i" @click="m.events(item)"> + <my-button-v2 :name="m.title" :check-permission="m.checkPermission" /> + </a-menu-item> + </template> + </a-menu> + </a-dropdown> + </template> + + </div> + </div> + </div> + </div> + </el-col> + </el-row> + <el-pagination + :current-page="myTable.paging.page.pageNumber" + :page-size="myTable.paging.page.pageSize" + :page-sizes="[24, 24*2 ,24*5,24*10]" + :small="myTable.paging.page.small" + :total="myTable.paging.page.total" + layout="total, sizes, prev, pager, next, jumper" + @current-change="handleCurrentChange" + @size-change="handleSizeChange" + /> + </div> +</template> + +<script> +import request from '@/utils/request' +import myButtonV2 from '@/views/components/myButtonV2' +import { str2Array } from '@/utils/tools' +import femaleImg from '@/assets/images/staff-female.jpg' +import maleImg from '@/assets/images/staff-male.jpg' +export default { + components: { myButtonV2 }, + props: { + table: { + type: Object, + default() { + return null + } + }, + filter: { + type: Object, + default() { + return null + } + } + }, + data() { + return { + /** table鍒楄〃鏁版嵁*/ + myTable: { + url: '', + // 宸ュ叿鏉� + tools: { + custom: [] + }, + rows: [], + operation: { + attr: [], // 鎿嶄綔 + more: [] // 鏇村 + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNumber: 1, + pageSize: 24, + total: 0 + } + } + }, + // 鐢ㄦ埛涓虹敺鎬х殑澶村儚 + manHeadSculpture: maleImg, + // 鐢ㄦ埛涓哄コ鎬х殑澶村儚 + womanHeadSculpture: femaleImg + } + }, + created() { + if (this.table != null) { + Object.assign(this.myTable, this.table) + if (this.myTable.paging.page == undefined) { + this.$set(this.myTable.paging, 'page', { + small: false, + pageNumber: 1, + pageSize: 10, + total: 0 + }) + } + this.$nextTick(() => { + this.search({}) + }) + } + }, + methods: { + search(param) { + this.$nextTick(() => { + this.myTable.loading = true + const params = Object.assign({}, this.filter) + params.pageSize = this.myTable.paging.page.pageSize + if (param && param.pageNumber) { + this.myTable.paging.page.pageNumber = param.pageNumber + } + params.pageNumber = this.myTable.paging.page.pageNumber + request({ + url: this.myTable.url, + method: 'get', + params: params + }).then(res => { + this.$set(this.myTable, 'rows', res.data.rows) + this.$set( + this.myTable.paging, + 'page', + Object.assign(this.myTable.paging.page, { + pageSize: res.data.pageSize, + pageNumber: res.data.pageNumber, + total: res.data.total + }) + ) + this.myTable.loading = false + }) + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageSize + */ + handleSizeChange(pageSize) { + this.myTable.paging.page.pageSize = pageSize + this.search({ pageNumber: 1 }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageNumber + */ + handleCurrentChange(pageNumber) { + this.myTable.paging.page.pageNumber = pageNumber + this.search() + }, + getImagePath(str) { + const strArray = str2Array(str) + return globalConf.ftpUrl + strArray[0].path + }, + clickInfo(params) { + this.$emit('clickInfo', params) + } + } +} +</script> + +<style scoped> +/*璇︽儏琛ㄥ崟*/ +.demo-table-expand .el-form-item { + width: 100%; +} +.el-col-4 { + margin: 10px 0; +} +.el-col-4 > div { + border: 1px solid rgb(242, 242, 242); +} +.table-tool-bar { + text-align: left; +} +/* 鍒楄〃鍧� */ +.grid-content bg-purple { + text-align: center; +} +.el-card__body img { + width: 80%; + margin-top: 10px; +} +.el-card__body > div { + text-align: center; + font-size: 16px; +} +/* 鎿嶄綔鎸夐挳鍖哄煙 */ +.operation .el-button--mini:nth-of-type(1) { + margin-left: 10px; +} +.operation .el-button--mini { + padding: 2px 5px; + margin-left: 5px; +} +.ant-dropdown-trigger{ + margin-left: 2px!important; +} +.ant-dropdown-menu-item .el-button--mini{ + padding: 2px 7px!important; +} +/* 寮瑰嚭灞傛牱寮� */ +.el-popover ul { + list-style: none; + margin: 0; + padding-left: 10px; +} +.el-popover ul li { + color: rgb(51, 51, 51); + font-size: 13px; + margin-bottom: 20px; +} +.el-popover ul li:last-of-type { + margin-bottom: 0; +} +/*鍒楄〃鍐呮枃瀛楄繃闀垮姞鐪佺暐*/ +.content-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/*鍒嗛〉涓婅竟璺�*/ +.el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #303133; + font-weight: 700; + margin-top: 10px; +} +.el-radio { + margin-right: 10px; +} +.el-radio__label { + font-size: 14px; + padding-left: 2px !important; +} + +.a-button-cus { + font-size: 12px; +} +.ant-btn-sm { + padding: 0px 7px; + font-size: 12px; + border-radius: 3px; + height: 20px; +} +.ant-btn > .anticon + span, +.ant-btn > span + .anticon { + margin-left: unset; +} +.ant-dropdown { + z-index: 9999 !important; +} +</style> diff --git a/src/views/components/myButton.vue b/src/views/components/myButton.vue new file mode 100644 index 0000000..96a694d --- /dev/null +++ b/src/views/components/myButton.vue @@ -0,0 +1,172 @@ +<template> + <el-button v-if="show" :loading="loading" :icon="myIcon" :round="myRound" :plain="myPlain" :size="mySize" :type="myType" @click="click"> + {{ myName }} + </el-button> +</template> +<script> +export default { + name: 'MyButton', + props: { + checkPermission: { + type: String, + default: '' + }, + type: { + type: String, + default: '' + }, + name: { + type: String, + default: '鎸夐挳' + }, + icon: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + plain: { + type: Boolean, + default: true + }, + clazz: { + type: String, + default: '' + } + }, + data() { + return { + loading: false, + myType: this.type, // 鎸夐挳绫诲瀷 + myName: this.name, // 鎸夐挳鍚嶇О + myIcon: this.icon, // 鎸夐挳鍥炬爣 + mySize: this.size, // 鎸夐挳澶у皬 + myRound: false, // 鏄惁鍦嗚鎸夐挳 + myPlain: this.plain, // 鏄惁鏈寸礌鎸夐挳 + show: true, // 鏄惁鏄剧ず + myClazz: this.clazz + } + }, + created() { + if (this.checkPermission != '' && this.$store.getters.myButtonPermission && this.$store.getters.myButtonPermission.indexOf(this.checkPermission) < 0) { + this.show = false + } + const name = this.myName + + if (this.myClazz == 'tools') { + if (name == '娣诲姞') { + this.setDefault({ + myIcon: 'el-icon-circle-plus-outline', + mySize: 'small' + }) + } else if (name.includes('瀵煎叆')) { + this.setDefault({ + myIcon: 'el-icon-upload2', + mySize: 'small' + }) + } else if (name.includes('瀵煎嚭')) { + this.setDefault({ + myIcon: 'el-icon-download', + mySize: 'small' + }) + } + return + } + if (name == '鎼滅储') { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-search', + mySize: 'small' + }) + } else if (name == '閲嶇疆') { + this.setDefault({ + myType: 'success', + myIcon: 'el-icon-refresh', + mySize: 'small' + }) + } else if (name == '淇濆瓨' || name == '淇� 瀛�') { + this.setDefault({ + myType: 'primary', + mySize: 'small' + }) + } else if (name == '娣诲姞') { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-edit', + mySize: 'small' + }) + } else if (name == '鍙戝竷') { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-plus', + mySize: 'small' + }) + } else if (name == '纭畾' || name == '纭� 瀹�') { + this.setDefault({ + myType: 'primary', + mySize: 'small' + }) + } else if (name.includes('瀵煎叆')) { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-upload2', + mySize: 'small' + }) + } else if (name.includes('瀵煎嚭')) { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-download', + mySize: 'small' + }) + } else if (name == '鎵归噺鍒犻櫎') { + this.setDefault({ + myType: 'danger', + myIcon: 'el-icon-delete', + mySize: 'small' + }) + } else if (name == '缂栬緫') { + this.setDefault({ + myType: 'primary', + mySize: 'mini', + myPlain: true + }) + } else if (name == '鍒犻櫎') { + this.setDefault({ + myType: 'danger', + mySize: 'mini', + myPlain: true + }) + } else if (name == '涓婃灦鍟嗗搧') { + this.setDefault({ + myType: 'primary', + myIcon: 'el-icon-edit', + mySize: 'small' + }) + } else { + this.setDefault({ + myType: 'primary', + mySize: 'small', + myPlain: false + }) + } + }, + methods: { + click() { + this.loading = true + this.$emit('click') + setTimeout(() => { + this.loading = false + }, 1000)// 涓�绉掑唴涓嶈兘閲嶅鐐瑰嚮 + }, + setDefault(param) { + Object.keys(param).forEach(key => { + if (this[key] == '') { + this[key] = param[key] + } + }) + } + } +} +</script> diff --git a/src/views/components/myButtonV2.vue b/src/views/components/myButtonV2.vue new file mode 100644 index 0000000..0053304 --- /dev/null +++ b/src/views/components/myButtonV2.vue @@ -0,0 +1,428 @@ +<template> + <el-link + v-if="site==='operation'&&show" + style="padding: 0 10px" + :icon="myIcon" + :loading="loading" + :plain="myPlain" + :size="mySize" + :type="myType" + @click="click" + >{{ myName }} + </el-link> + <el-button + v-else-if="show" + :icon="myIcon" + :loading="loading" + :plain="myPlain" + :size="mySize" + :type="myType" + @click="click" + >{{ myName }} + </el-button> +</template> +<script> +export default { + name: 'MyButtonV2', + props: { + checkPermission: { // 鎸夐挳鏉冮檺 + type: String, + default: '' + }, + site: { // filter 鎼滅储鏉★紝tools 宸ュ叿鏉★紝operation 鎿嶄綔鏍忥紝form 琛ㄥ崟 + type: String, + default: '' + }, + type: {// 鎸夐挳绫诲瀷 + type: String, + default: '' + }, + name: {// 鎸夐挳鍚嶇О + type: String, + default: '' + }, + icons: {// 鍥炬爣 + type: String, + default: null + } + }, + data() { + return { + filter: {// 鎼滅储鏉′笂鐨勬寜閽悕绉伴泦鍚� + size: 'small', + plain: false, + other: { + '鎼滅储': { + type: 'primary', + icon: 'el-icon-search' + }, + '閲嶇疆': { + type: '', + icon: 'el-icon-refresh' + }, + '瀹岀粨': { + type: 'warning', + icon: 'el-icon-warning-outline' + }, + '杩涘叆绯荤粺': { + type: '', + icon: 'el-icon-login' + } + } + }, + tools: {// 宸ュ叿鏉′笂鐨勬寜閽泦鍚� + size: 'mini', + plain: false, + type: 'default', + other: { + '娣诲姞': { + icon: 'el-icon-edit-outline' + }, + '鎵归噺鍒犻櫎': { + icon: 'el-icon-delete' + }, + '鎵归噺鍚敤': { + icon: 'el-icon-refresh' + }, + '瀵煎叆': { + icon: 'el-icon-upload2' + }, + '瀵煎叆妯℃澘涓嬭浇': { + icon: 'el-icon-download' + }, + '鎵归噺瀵煎叆': { + icon: 'el-icon-upload2' + }, + '瀵煎嚭': { + icon: 'el-icon-download' + }, + '鎵归噺涓嬫灦': { + icon: 'el-icon-edit-outline' + }, + '鎵归噺寤舵湡': { + icon: 'el-icon-date' + }, + '鏌ラ噸': { + icon: 'el-icon-s-help' + }, + '鎵撳嵃': { + icon: 'el-icon-printer' + }, + '瀵煎嚭EXCEL': { + icon: 'el-icon-download' + }, + '瀵煎嚭EXCEL(涓嶅垎椤�)': { + icon: 'el-icon-download' + }, + '瀵煎嚭EXCEL(鍒嗛〉)': { + icon: 'el-icon-download' + }, + '瀵煎嚭WORD': { + icon: 'el-icon-download' + }, + '瀵煎嚭PDF': { + icon: 'el-icon-download' + } + } + }, + operation: {// 鎿嶄綔鏍忎笂鐨勬寜閽泦鍚� + size: 'mini', + plain: true, + other: { + '缂栬緫': { + type: 'success' + }, + '澶勭悊': { + type: 'primary' + }, + '瀹℃壒': { + type: 'success' + }, + '浜嬪姟鍙嶉': { + type: 'primary' + }, + '鍙戝竷': { + type: 'primary' + }, + '鍒犻櫎': { + type: 'primary' + }, + '鏉冮檺': { + type: 'warning' + }, + '瑙掕壊': { + type: 'info' + }, + '閲嶇疆瀵嗙爜': { + type: 'warning' + }, + '缁勭粐鏋舵瀯': { + type: 'danger' + }, + '浜哄憳': { + type: 'success' + }, + '涓婃灦': { + type: 'success' + }, + '涓嬫灦': { + type: 'danger' + }, + '寤舵湡': { + type: 'warning' + }, + '澶囦欢闇�姹�': { + type: 'warning' + }, + '缁翠慨/鏀归��': { + type: 'success' + }, + '澶囨敞': { + type: 'warning' + }, + '娌熼�氳褰�': { + type: 'success' + }, + '鏌ョ湅澶囨敞': { + type: 'info' + }, + '鏌ョ湅娌熼�氳褰�': { + type: 'success' + }, + '鍚敤': { + type: 'success' + }, + '绂佺敤': { + type: 'warning' + }, + '鍚敤榛戝悕鍗�': { + type: 'success' + }, + '鍔犲叆榛戝悕鍗�': { + type: 'danger' + }, + '鎺堟潈鐢ㄦ埛': { + type: 'danger' + }, + '鏌ョ湅': { + type: 'success' + }, + '鏌ョ湅璇︽儏': { + type: 'info' + }, + '璁板綍': { + type: 'primary' + }, + '璁剧疆鍒╂鼎鐜�': { + type: 'success' + }, + '瀹℃牳': { + type: 'success' + }, + '閲囪喘': { + type: 'success' + }, + '璐ㄦ纭': { + type: 'success' + }, + '鍏宠仈瀹㈡埛缁忕悊': { + type: 'primary' + }, + '澶勭悊纭': { + type: 'primary' + }, + '璇︽儏': { + type: 'success' + }, + '濮斿鍔犲伐': { + type: 'primary' + }, + '鍒堕�犺繘搴�': { + type: 'warning' + }, + '鍏ュ簱纭': { + type: 'warning' + }, + '瀹氫环': { + type: 'danger' + }, + '铏氭嫙鍏ュ簱': { + type: 'primary' + }, + '鍙楃悊瀹℃牳': { + type: 'primary' + }, + '鏌ョ湅璁板綍': { + type: 'info' + }, + '鍏宠仈璇ュ晢鍝�': { + type: 'info' + }, + '璁环澶勭悊': { + type: 'warning' + }, + '鍒嗘湡瀹℃壒': { + type: 'success' + }, + '绛惧悎鍚�': { + type: 'success' + }, + '璁捐': { + type: 'primary' + }, + '娴嬮噺': { + type: 'success' + }, + '寮�绁�': { + type: 'success' + }, + '鍙楃悊纭': { + type: 'success' + }, + '鍞悗澶勭悊': { + type: 'success' + }, + '纭鏀粯': { + type: 'warning' + }, + '涓婁紶鍙戠エ': { + type: 'primary' + }, + '纭鏀舵': { + type: 'warning' + }, + '鏀舵璇︾粏': { + type: 'success' + }, + '棰勮': { + type: 'warning' + } + } + }, + form: { // 琛ㄥ崟涓婄殑鎸夐挳 + size: 'small', + plain: false, + other: { + '鎻愪氦': { + type: 'primary' + }, + '鍙戝竷': { + type: 'primary' + }, + '鍏抽棴': { + type: 'default' + }, + '淇濆瓨': { + type: 'primary' + }, + '鍙栨秷': { + type: 'default' + }, + '閲嶇疆': { + type: 'default' + }, + '鏆傚瓨': { + type: 'warning' + }, + '鏌ヨ': { + type: 'primary' + }, + '鍏宠仈璇ョ敤鎴�': { + type: 'success' + }, + '纭': { + type: 'primary' + }, + '纭畾': { + type: 'primary' + }, + '鎶ヤ环': { + type: 'success' + }, + '涓嬩竴姝�': { + type: 'primary' + }, + '涓婁竴姝�': { + type: 'default' + }, + '閫夋嫨': { + type: 'primary' + }, + '椹冲洖': { + type: 'primary' + }, + '閫氳繃': { + type: 'success' + } + } + }, + text: { // 琛ㄥ崟涓婄殑鎸夐挳 + size: 'mini', + type: 'text', + icon: '', + other: { + '娣诲姞': { + icon: 'el-icon-circle-plus-outline' + } + } + }, + loading: false, + myType: this.type, // 鎸夐挳绫诲瀷 + myName: this.name, // 鎸夐挳鍚嶇О + myIcon: this.icon, // 鎸夐挳鍥炬爣 + mySize: this.size, // 鎸夐挳澶у皬 + myPlain: this.plain, // 鏄惁鏈寸礌鎸夐挳 + show: true // 鏄惁鏄剧ず + } + }, + created() { + if (this.checkPermission != '' && this.$store.getters.myButtonPermission.indexOf(this.checkPermission) < 0) { + this.show = false + return + } + this.myName = this.name + if (this.site == 'filter') { + this.mySize = this.filter.size + this.myPlain = this.filter.plain + this.myType = (this && this.type) || this.filter.other[this.myName].type + this.myIcon = this.filter.other[this.myName].icon + } else if (this.site == 'tools') { + this.mySize = this.tools.size + this.myPlain = this.tools.plain + this.myType = (this && this.type) || this.tools.type + if (this.icons != null) { + this.myIcon = this.icons + } else { + this.myIcon = this.tools.other[this.myName].icon + } + } else if (this.site == 'operation') { + this.mySize = this.operation.size + this.myPlain = this.operation.plain + this.myType = this.type || (this.operation.other[this.myName] ? this.operation.other[this.myName].type : '') + } else if (this.site == 'form') { + this.mySize = this.form.size + this.myPlain = this.form.plain + this.myType = (this && this.type) || this.form.other[this.myName].type + } else if (this.site == 'text') { + this.mySize = this.text.size + this.myType = (this && this.type) || this.text.type + this.myIcon = this.text.other[this.myName].icon + } else { + this.mySize = 'mini' + this.myPlain = false + this.myType = 'text' + } + }, + methods: { + click() { + if (this.site == 'form') { + this.loading = true + } + this.$emit('click') + setTimeout(() => { + this.loading = false + }, 1500)// 1.5绉掑唴涓嶈兘閲嶅鐐瑰嚮 + } + } +} +</script> diff --git a/src/views/components/myImport.vue b/src/views/components/myImport.vue new file mode 100644 index 0000000..e0bd3e8 --- /dev/null +++ b/src/views/components/myImport.vue @@ -0,0 +1,147 @@ +<template> + <el-dialog + v-if="dialogShow" + width="40%" + :center="true" + :close-on-click-modal="false" + :close-on-press-escape="false" + :title="dialogTitle" + :before-close="beforeClose" + :visible="dialogShow" + > + <el-row v-loading="loading" element-loading-text="鏁版嵁瀵煎叆涓�"> + <el-col :span="24"> + <el-form> + <el-form-item v-if="templateSettings.templateUrl != null" label="涓嬭浇妯℃澘锛�" prop="lon"> + <a class="blue-txt" style="color:#409EFF" :href="templateSettings.templateUrl" target="_blank">{{ templateSettings.templateName }}</a> + </el-form-item> + <el-form-item label="閫夊彇鏂囦欢锛�" prop="lon"> + <el-upload + :ref="fileSettings.ref" + class="upload-demo" + name="file" + :action="fileSettings.uploadUrl" + :before-upload="beforeAvatarUpload" + :on-success="handleUploadSuccess" + :on-change="file" + :multiple="fileSettings.multiple" + :limit="fileSettings.num" + :accept="fileSettings.accept" + :auto-upload="fileSettings.autoUpload" + > + <el-button size="small" type="primary">{{ fileSettings.title }}</el-button> + <div slot="tip" class="el-upload__tip">鍙兘涓婁紶{{ fileSettings.num }}涓牸寮忎负{{ fileSettings.accept }}鐨勬枃浠讹紝涓斾笉瓒呰繃{{ fileSettings.max }}kb</div> + </el-upload> + </el-form-item> + <el-form-item label="瀵煎叆鏁版嵁锛�" prop="lon"> + <el-button style="margin-left: 10px;" size="small" type="success" @click="handleSubmit">寮�濮嬪鍏�</el-button> + </el-form-item> + </el-form> + </el-col> + </el-row> + </el-dialog> +</template> +<script> +export default { + props: { + importSetting: { + type: Object, + default: () => { + return {} + } + }, + dialogShow: { + type: Boolean, + default: false + }, + dialogTitle: { + type: String, + default: '' + } + }, + data() { + return { + + loading: false, + /* 鏂囦欢涓婁紶 */ + fileSettings: { + ref: 'myFile', + title: '鐐瑰嚮涓婁紶', + max: 1024, // 鏈�澶уぇ灏忥紝鍗曚綅kb + num: 1, // 鏀寔涓婁紶鏂囦欢涓暟 + accept: '.csv', // 闄愬埗鏍煎紡 + uploadUrl: '', // 涓婁紶璺緞 + type: 'text', // text/picture + multiple: false, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + autoUpload: false, // 鏄惁鍦ㄩ�夊彇鏂囦欢鍚庣珛鍗宠繘琛屼笂浼� + onSuccess: null // 涓婁紶鎴愬姛鍥炶皟 + }, + isUpload:false, + /* 妯℃澘涓嬭浇*/ + templateSettings: { + templateName: '妯℃澘涓嬭浇', // 鍚嶇О + templateUrl: null // 涓嬭浇鍦板潃 + } + } + }, + watch: { + dialogShow(val) { + console.log('dialogShow') + if (val) { + this.fileSettings = Object.assign(this.fileSettings, this.importSetting.fileSettings) + this.templateSettings = Object.assign(this.templateSettings, this.importSetting.templateSettings) + console.log(this.templateSettings) + this.fileSettings.onSuccess = this.importSetting.onSuccess + } + } + }, + methods: { + /* 鍏抽棴绐楀彛 */ + beforeClose() { + if (this.loading) { + this.$confirm('姝e湪鎵ц瀵煎叆,纭鍏抽棴锛�').then(() => { + this.importSetting.dialogShow = false + this.loading=false + }).catch() + } else { + this.importSetting.dialogShow = false + } + }, + /* 鏍¢獙鏂囦欢 */ + beforeAvatarUpload(file) { + const isFormat = this.fileSettings.accept.split(',').indexOf(file.name.substr(file.name.lastIndexOf('.'), file.name.length).toLocaleString()) > -1 + if (!isFormat) { + this.$message.error(`涓婁紶鏂囦欢鍙兘鏄� ${this.fileSettings.accept} 鏍煎紡!`) + } + const isLtMaxKB = file.size / 1024 < this.fileSettings.max + + if (!isLtMaxKB) { + this.$message.error('涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ' + this.fileSettings.max + 'kb!') + } + return isFormat && isLtMaxKB + }, + /* 寮�濮嬪鍏� */ + handleSubmit() { + if(!this.isUpload){ + this.$message.error(`璇蜂笂浼犳枃浠禶) + }else { + this.$refs[this.fileSettings.ref].submit() + } + }, + file(file,list){ + if(file){ + this.isUpload=true + } + + }, + /* 涓婁紶鎴愬姛鎵ц瀵煎叆 */ + handleUploadSuccess(response, file, fileList) { + if (this.fileSettings.onSuccess) { + this.loading = true + this.fileSettings.onSuccess(response, () => { this.loading = false; this.importSetting.dialogShow = false }) + } + } + } +} +</script> diff --git a/src/views/components/myPaging.vue b/src/views/components/myPaging.vue new file mode 100644 index 0000000..a3c53e4 --- /dev/null +++ b/src/views/components/myPaging.vue @@ -0,0 +1,64 @@ +<!-- +璋冪敤椤荤煡锛� +@search 涓烘悳绱㈡柟娉曪細鍙傛暟{pageSize:10,pageNumber:1} +:page 鍒嗛〉灞炴�� + { + small: false, // 鏄惁浣跨敤灏忓瀷鍒嗛〉 + total: 0, // 鎬绘潯鏁� + pageNumber: 1, // 绗嚑椤� + pageSize: 10 // 姣忛〉澶氬皯鏉� + } +--> +<template> + <div> + <el-pagination + :small="pages.small" + :current-page="pages.pageNumber" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="pages.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="pages.total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> +</template> +<script> +export default { + props: { + page: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + pages: { + small: false, // 鏄惁浣跨敤灏忓瀷鍒嗛〉 + total: 0, // 鎬绘潯鏁� + pageNumber: 1, // 绗嚑椤� + pageSize: 10 // 姣忛〉澶氬皯鏉� + } + } + }, + created() { + // Object.assign(this.pages, this.page) + this.pages = this.page + }, + methods: { + // 鍒囨崲pageSize + handleSizeChange(pageSize) { + this.pages.pageSize = pageSize + this.pages.pageNumber = 1 + this.$emit('search', { pageSize: this.pages.pageSize, pageNumber: this.pages.pageNumber }) + }, + // 鍒囨崲pageNumber + handleCurrentChange(pageNumber) { + this.pages.pageNumber = pageNumber + this.$emit('search', { pageSize: this.pages.pageSize, pageNumber: this.pages.pageNumber }) + } + } +} +</script> diff --git a/src/views/components/mySwitch.vue b/src/views/components/mySwitch.vue new file mode 100644 index 0000000..73af24c --- /dev/null +++ b/src/views/components/mySwitch.vue @@ -0,0 +1,55 @@ +<template> + <div> + <span @click.stop="click"> + <!-- disabled: 涓诲姩绂佺敤 permission: 鏉冮檺 switchable: 鎿嶄綔鍚庝竴瀹氭椂闂村唴绂佺敤 --> + <el-switch + :disabled="disabled || permission() || switchable" + :value="value" + active-color="#bd1a2d" + inactive-color="#f2f2f2" + /> + </span> + </div> +</template> + +<script> +export default { + props: { + checkPermission: { + type: String, + default: '' + }, + value: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + } + }, + data() { + return { + switchable: false + } + }, + methods: { + click() { + if (!(this.disabled || this.permission() || this.switchable)) { + this.switchable = true + this.$emit('click') + setTimeout(() => { + this.switchable = false + }, 1000)// 涓�绉掑唴涓嶈兘閲嶅鐐瑰嚮 + } + }, + // 妫�鏌ユ寜閽潈闄� + permission() { + if (this.checkPermission && this.$store.getters.myButtonPermission.indexOf(this.checkPermission) < 0) { + return true + } + return false + } + } +} +</script> diff --git a/src/views/components/myTable.vue b/src/views/components/myTable.vue new file mode 100644 index 0000000..21fefb8 --- /dev/null +++ b/src/views/components/myTable.vue @@ -0,0 +1,434 @@ +<template> + <el-card shadow="never"> + <el-table + :key="timeStamp" + :ref="myTable.ref" + v-loading="myLoading" + :data="myTable.rows" + :max-height="myTable.maxHeight" + :height="myTable.height" + :size="myTable.size" + :cell-class-name="className" + selection-change="handleSelectionChange" + @select="handleSelect" + @select-all="handleSelectAll" + @cell-click="cellClick" + > + <el-table-column v-if="myTable.expand" type="expand"> + <template slot-scope="{row}"> + <el-form size="mini" label-position="left" :inline="false" class="demo-table-expand"> + <template> + <el-form-item + v-for="(more,index) in columnHidden" + :key="index" + size="mini" + :label="more.title+'锛�'" + > + <template v-if="more.tag"> + <el-tag size="mini" :type="more.tag(row).type"> + {{ more.tag(row).value }} {{ more }} + </el-tag> + </template> + <template v-else> + <span v-if="more.formatter">{{ more.formatter(row) }}</span> + <span v-else-if="more.formatterRate">{{ more.formatterRate(row) }}</span> + <span v-else-if="more.formatterHigh">{{ more.formatterHigh(row).value }}</span> + <span v-else-if="more.switch">{{ more.switch(row).label }}</span> + <span v-else>{{ row[more.field] }}</span> + </template> + </el-form-item> + </template> + </el-form> + </template> + </el-table-column> + + <el-table-column + v-if="myTable.showCheckBox" + type="selection" + width="55" + /> + <!--搴忓彿 鏈夊垎椤垫椂--> + <el-table-column + v-if="myTable.showIndex && myTable.page.pageSize!=undefined" + label="搴忓彿" + align="center" + width="50" + > + <template slot-scope="scope"> + <span> + {{ scope.$index+(myTable.page.pageNumber - 1) * myTable.page.pageSize + 1 }} + </span> + </template> + </el-table-column> + <!--搴忓彿 鏃犲垎椤垫椂--> + <el-table-column + v-if="myTable.showIndex && myTable.page.pageSize==undefined" + type="index" + label="搴忓彿" + align="center" + width="60" + /> + + <!--show-overflow-tooltip--> + <template v-for="(column, index) in columnNotHidden"> + <el-table-column + v-if="!(column.hidden||false)" + :key="index" + :sortable="column.sortable" + :label="column.title" + :type="column.type" + :width="column.width" + :min-width="column.minWidth" + :align="column.align" + :header-align="column.align" + > + <template slot-scope="scope"> + <template v-if="column.tag"> + <el-tag size="mini" :type="column.tag(scope.row).type"> + {{ column.tag(scope.row).value }} + </el-tag> + </template> + <template v-else-if="column.switch"> + <my-switch + :value="column.switch(scope.row).value" + :check-permission="column.checkPermission" + :disabled="column.switch(scope.row).disabled" + @click="switchClick(column.switch(scope.row).click)" + /> + </template> + <template v-else-if="column.formatterHigh"> + <span slot="reference" class="content-text" :style="setStyle(column.formatterHigh(scope.row))" @click="handleClick(column.formatterHigh(scope.row))">{{ column.formatterHigh(scope.row).value }}</span> + </template> + <template v-else> + <el-popover + placement="top-start" + trigger="click" + :content="getPopoverContent(scope.row,column)" + > + <span v-if="column.formatter" slot="reference" class="content-text">{{ column.formatter(scope.row) }}</span> + <span v-else-if="column.formatterRate" slot="reference" class="content-text"><el-rate :value="column.formatterRate(scope.row)" disabled /></span> + <span v-else slot="reference" class="content-text">{{ scope.row[column.field] }}</span> + </el-popover> + </template> + </template> + </el-table-column> + </template> + + <el-table-column + v-if="myTable.operation.length>0" + label="鎿嶄綔" + align="center" + :width="colWidth" + > + <template slot-scope="scope"> + <template> + <div v-for="(operation, index) in myTable.operation" :key="index" style="display:inline-block"> + <my-button + v-if="!(operation.hidden && operation.hidden(scope.row))" + + :name="operation.title" + size="mini" + :type="operation.type" + :check-permission="operation.checkPermission" + @click="operation.events(scope.row)" + /> + </div> + <!--<el-button--> + <!--v-if="!(operation.hidden && operation.hidden(scope.row))"--> + <!--:key="index"--> + <!--type="text"--> + <!--size="small"--> + <!--@click="operation.events(scope.row)"--> + <!-->{{ operation.title }}</el-button>--> + </template> + </template> + </el-table-column> + </el-table> + <div v-if="myTable.paging" style="margin-top: 10px;"> + <my-paging :page="myTable.page" @search="search" /> + </div> + </el-card> +</template> + +<script> +import myPaging from './myPaging' +import mySwitch from './mySwitch' +import myButton from '@/views/components/myButton' + +export default { + components: { myPaging, myButton, mySwitch }, + props: { + // 鍔犺浇 + loading: { + type: Boolean, + default: false + }, + table: { // 鍒楄〃鏁版嵁 + type: Object, + default() { + return {} + } + }, + parentSelectionsObject: { // 榛樿閫変腑鐨勬暟鎹� + type: Array, + default() { + return [] + } + }, + parentSelection: { // 榛樿閫変腑鐨勬暟鎹甶d + type: Array, + default() { + return [] + } + } + }, + data() { + return { + xx: true, + myLoading: false, // 鍔犺浇 + selection: [], // 瀛樺偍澶嶉�夋閫変腑鐨処D + selectionObject: [], // 瀛樺偍澶嶉�夋閫変腑鐨勫璞� + myTable: { + ref: 'myTable', // table鐨勫悕绉� + expand: true, // 鏄惁鏄剧ず灞曞紑琛� + // height: 500, // 榛樿楂樺害鑷姩鍗曚綅px + // maxHeight: 500, //榛樿涓嶈缃崟浣峱x + size: 'medium', // Table 鐨勫昂瀵� medium / small / mini + showCheckBox: false, // 鏄惁鏄剧ず澶嶉�夋 + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + columns: [], + rows: [], + operation: [], + paging: true, + page: {} + }, + colWidth: 172, // 鎿嶄綔鍒楃殑榛樿瀹藉害 + timeStamp: new Date().getTime() + } + }, + computed: { + // 閫氳繃璁$畻灞炴�ц繃婊ゆ帀鍒楄〃涓笉闇�瑕佹樉绀虹殑椤圭洰 + columnHidden: function() { + return this.myTable.columns.filter(function(x) { + return x.hidden + }) + }, + columnNotHidden: function() { + return this.myTable.columns.filter(function(x) { + return !x.hidden + }) + } + }, + watch: { + loading(v) { + this.myLoading = v + }, + parentSelectionsObject(e) { + // 鍒濆鍖栭粯璁ら�変腑鐨勫垪 + this.selectionObject = e + this.selectionObject.forEach(sel => { + if (!this.selection.includes(sel.id)) { + this.selection.push(sel.id) + } + }) + }, + table(e) { + Object.assign(this.myTable, e) + this.reloadCheckBox() + } + }, + mounted() { + const changeTipClass = () => { + } + const Fun = function(e) { + e = e || window.event + if (e.wheelDelta) { + // IE/Opera/Chrome + changeTipClass() + } else if (e.detailWin) { + // FireFox + changeTipClass() + } + } + if (document.addEventListener) { + document.addEventListener('DOMMouseScroll', Fun, false) + } // FireFox + window.onmousewheel = document.onmousewheel = Fun // IE/Opera/Chrome + }, + created() { + const that = this + + window.onresize = function() { + that.timeStamp = new Date().getTime() + } + this.myLoading = this.loading + this.selection = this.parentSelection + // 鍒濆鍖栭粯璁ら�変腑鐨勫垪(濡傛灉selectionObject锛宻election鍚屾椂瀛樺湪鍒欎互selectionObject涓轰富) + this.selectionObject = this.parentSelectionsObject + this.selectionObject.forEach(sel => { + this.selection.push(sel.id) + }) + this.reloadCheckBox() + // 鍒濆鍖杢able鏁版嵁 + Object.assign(this.myTable, this.table) + this.changeOperWidth() + }, + methods: { + handleHover() { + console.log('婊�') + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-12 18:15 + * @Description : 璁剧疆楂樼骇鏍煎紡鍖� formatterHigh鐨勯鑹� + */ + setStyle(format) { + let styles = '' + if (format.click != undefined) { + styles += 'cursor: pointer;' + } + if (format.type != undefined) { + if (format.type == 'primary') { + styles += 'color:#409EFF;' + } else if (format.type == 'danger') { + styles += 'color:#F56C6C;' + } else if (format.type == 'success') { + styles += 'color:#67C23A;' + } else if (format.type == 'warning') { + styles += 'color:#E6A23C;' + } else if (format.type == 'info') { + styles += 'color:#909399;' + } + } + return styles + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-12 18:36 + * @Description锛歠ormatterHigh鐐瑰嚮 + */ + handleClick(format) { + if (format.click != undefined) { + format.click() + } + }, + switchClick(click) { + if (typeof click === 'function') { + click() + } + }, + search(param) { + this.$emit('search', param) + }, + // 鍗曢�� + handleSelect(selection, row) { + // 妫�鏌election涓槸鍚﹀寘鍚玶ow锛屽鏋滃寘鍚垯涓洪�変腑锛屽惁鍒欏彇娑堥�変腑 + let _b = false + selection.forEach(sel => { + if (sel.id === row.id) { + _b = true + return false + } + }) + if (_b) { // 鍖呭惈=閫変腑 + this.selection.push(row.id) + this.selectionObject.push(row) + } else { // 涓嶅寘鍚�=鍙栨秷閫変腑 + this.selectionObject = this.selectionObject.filter(({ id }) => id !== row.id) + this.selection = this.selection.filter(id => id !== row.id) + // for (let m = 0; m < this.selection.length; m++) { + // if (row.id === this.selection[m]) { + // this.selection.splice(m, 1) + // this.selectionObject.splice(m, 1) + // break + // } + // } + } + }, + // 鍏ㄩ�� + handleSelectAll(selection) { + // 濡傛灉selection.length>0閬嶅巻锛屽瓨鍦ㄥ垯蹇界暐锛屼笉瀛樺湪鍒欐坊鍔�. 鍚﹀垯绉婚櫎鏈〉鎵�鏈夋暟鎹�� + if (selection.length > 0) { // 鍏ㄩ�� + // 閬嶅巻 涓嶅瓨鍦ㄥ垯鍔犲叆 + selection.forEach(sel => { + if (this.selection.indexOf(sel.id) < 0) { + this.selection.push(sel.id) + this.selectionObject.push(sel) + } + }) + } else { // 鍏ㄤ笉閫� + this.myTable.rows.forEach(row => { + const index = this.selection.indexOf(row.id) + if (index > -1) { + this.selection.splice(index, 1) + this.selectionObject.splice(index, 1) + } + }) + } + }, + reloadCheckBox() { + setTimeout(() => { + // 閲嶆柊鍕鹃�夎閫変腑椤� + this.$refs[this.myTable.ref].clearSelection() + this.selectionObject.length = 0 + if (this.selection.length > 0) { + this.myTable.rows.forEach(row => { + for (let m = 0; m < this.selection.length; m++) { + if (row.id == this.selection[m]) { + this.$refs[this.myTable.ref].toggleRowSelection(row, true) + this.selectionObject.push(row) + } + } + }) + } + }, 1) + }, + cellClick(row, column, cell, event) { + this.$emit('rowClick', { row, column, cell, event }) + }, + + getPopoverContent(row, column) { + if (column.formatterHigh) { + return column.formatterHigh(row).value + '' + } else if (column.formatter) { + return column.formatter(row) + '' + } else { + return row[column.field] + '' + } + }, + // 鏀瑰彉鎿嶄綔鍒楃殑瀹藉害 + changeOperWidth() { + if (this.myTable.operation.length > 2) { + this.colWidth = this.colWidth + 50 * (this.myTable.operation.length - 2) + } + }, + getChedkIds() { + return this.selection + }, + getChedkObject() { + return this.selectionObject + }, + className({ row, column, rowIndex, columnIndex }) { + if (column.label == '鎿嶄綔') { + return 'oper' + } else { + return '' + } + } + } +} +</script> +<style scoped> + .demo-table-expand .el-form-item{ + width: 100%; + } + .content-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap + } + .oper>.cell{ + white-space: nowrap; + word-break:normal; + } +</style> diff --git a/src/views/components/myTableTree/myTableTree.vue b/src/views/components/myTableTree/myTableTree.vue new file mode 100644 index 0000000..0c99599 --- /dev/null +++ b/src/views/components/myTableTree/myTableTree.vue @@ -0,0 +1,328 @@ +<template> + <el-card shadow="never"> + <!--宸ュ叿鏉�--> + <div class="table-tool-bar"> + <!--鑷畾涔夊伐鍏�--> + <my-button + v-for="(custom,idx) in myTable.tools.custom" + :key="idx" + :check-permission="custom.checkPermission" + :name="custom.name" + site="tools" + @click="custom.click" + /> + <!--鍒楁帶鍒�--> + <el-popover + placement="bottom" + style="float: right;" + trigger="click" + width="150" + > + <el-form label-width="10px" style="max-height: 500px;overflow-y: auto;"> + <el-form-item label=""> + <el-checkbox-group v-model="checkColumns" @change="changeColumns"> + <el-checkbox v-for="(column,index) in myTable.columns" :key="index" :label="index">{{ column.title }} + </el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-form> + <el-button slot="reference" icon="el-icon-setting" size="mini">璁剧疆鍒�</el-button> + </el-popover> + </div> + <!--table鍒楄〃--> + <el-table + ref="myTable" + v-loading="myTable.loading" + :data="myTable.data" + row-key="id" + :default-expand-all="myTable.expandAll" + :tree-props="{children: 'children'}" + :fit="false" + :highlight-current-row="true" + border + size="medium" + > + <!--鍒楀唴瀹�--> + <el-table-column + v-for="(column, index) in myTable.columns" + v-if="!column.hidden" + :key="index" + :align="column.align" + :header-align="column.align" + :label="column.title" + :min-width="column.width" + :sortable="column.sortable" + :type="column.type" + :width="column.width" + > + <template slot-scope="scope"> + <!--鍥剧墖灞曠ず--> + <template v-if="column.img"> + <preview-picture img-style="width:40px;height:40px;" :imgs="column.img(scope.row).imgs" /> + </template> + <!--寮�鍏筹紙鐢熸垚寮�鍏虫寜閽級--> + <template v-else-if="column.switch"> + <my-switch + :check-permission="column.checkPermission" + :disabled="column.switch(scope.row).disabled" + :value="column.switch(scope.row).value" + @click="switchClick(column.switch(scope.row).click)" + /> + </template> + <!--鏍煎紡鍖栵紙鏄剧ず棰滆壊锛屽唴瀹癸紝鐐瑰嚮浜嬩欢鎺у埗锛�--> + <template v-else-if="column.formatter"> + <span + slot="reference" + :style="setStyle(column.formatter(scope.row))" + class="content-text" + @click="handleClick(column.formatter(scope.row))" + >{{ column.formatter(scope.row).value }}</span> + </template> + <template v-else> + <!--鐐瑰嚮寮瑰嚭鍗曞厓鏍煎唴瀹�--> + <el-popover + :content="getPopoverContent(scope.row,column)" + placement="top-start" + trigger="click" + > + <span slot="reference" class="content-text">{{ scope.row[column.field] }}</span> + </el-popover> + </template> + </template> + </el-table-column> + + <!--鎿嶄綔鍒�--> + <el-table-column + v-if="myTable.operation.show" + :width="myTable.operation.width" + align="center" + label="鎿嶄綔" + > + <template slot-scope="scope"> + <template v-for="(operation, index) in myTable.operation.attr"> + <my-button-v2 + v-if="!(operation.hidden && operation.hidden(scope.row))" + :key="index" + :check-permission="operation.checkPermission" + :name="operation.title" + :type="operation.type" + site="operation" + @click="operation.events(scope.row)" + /> + </template> + <template v-if="myTable.operation.more && myTable.operation.more.length>0"> + <a-dropdown :trigger="['click']" style="margin-left: 5px;"> + <a-button size="small"> + 鏇村 + <a-icon type="down" /> + </a-button> + <a-menu slot="overlay"> + <template v-for="(m,i) in myTable.operation.more"> + <a-menu-item :key="i" @click="m.events(scope.row)"> + <my-button-v2 + v-if="!(m.hidden && m.hidden(scope.row))" + :check-permission="m.checkPermission" + :name="m.title" + /> + </a-menu-item> + </template> + </a-menu> + </a-dropdown> + </template> + </template> + </el-table-column> + </el-table> + </el-card> +</template> + +<script> +import myButton from '@/views/components/myButton' +import myButtonV2 from '@/views/components/myButtonV2' +import mySwitch from '@/views/components/mySwitch' +import request from '@/utils/request' +import previewPicture from '@/views/components/previewPicture' + +export default { + components: { myButton, mySwitch, previewPicture, myButtonV2 }, + props: { + table: { + type: Object, + default() { + return null + } + }, + filter: { + type: Object, + default() { + return null + } + } + }, + data() { + return { + /** table鍒楄〃鏁版嵁*/ + myTable: { + url: '', + params: {}, + expandAll: true, // 灞曞紑 + loading: false, // 鍔犺浇鏁堟灉 + size: 'small', // Table 鐨勫昂瀵� medium / small / mini + // 宸ュ叿鏉� + tools: { + custom: [] // 鑷畾涔夊伐鍏锋潯鎸夐挳 + }, + columns: [], // 鍒楀睘鎬ч厤缃� + operation: { // 鎿嶄綔鍒� + show: false, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 瀹藉害 + attr: [], // 鎿嶄綔 + more: []// 鏇村 + }, + data: [], // 鍒楄〃鏁版嵁 + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNumber: 1, + pageSize: 10, + total: 0 + } + } + }, + checkColumns: [] // 璁板綍鍒楁帶鍒朵腑閫変腑鐨勫垪 + } + }, + watch: { + filter: { + handler() { + this.search() + }, + deep: true + } + }, + created() { + if (this.table != null) { + Object.assign(this.myTable, this.table) + this.myTable.columns.forEach((column, idx) => { + if (!column.hidden) { + this.checkColumns.push(idx) + } + }) + } + }, + methods: { + // 鎼滅储 + search() { + this.myTable.loading = true + const params = Object.assign({}, this.filter) + request({ + url: this.myTable.url, + method: 'get', + params: params + }).then(res => { + this.$set(this.myTable, 'data', res.data) + this.myTable.loading = false + }) + }, + // 鑾峰彇璁剧疆鍒楄〃寮瑰眰鍐呭 + getPopoverContent(row, column) { + if (column.formatterHigh) { + return column.formatterHigh(row).value + '' + } else if (column.formatter) { + return column.formatter(row) + '' + } else { + return row[column.field] + '' + } + }, + // 鍗曞厓鏍煎唴瀹规牸寮忓寲鏍峰紡 + setStyle(format) { + let styles = '' + if (format.click != undefined) { + styles += 'cursor: pointer;' + } + if (format.type != undefined) { + if (format.type == 'primary') { + styles += 'color:#409EFF;' + } else if (format.type == 'danger') { + styles += 'color:#F56C6C;' + } else if (format.type == 'success') { + styles += 'color:#67C23A;' + } else if (format.type == 'warning') { + styles += 'color:#E6A23C;' + } else if (format.type == 'info') { + styles += 'color:#909399;' + } + } + return styles + }, + // formatter 鐐瑰嚮浜嬩欢 + handleClick(format) { + if (format.click != undefined) { + format.click() + } + }, + // 寮�鍏崇偣鍑讳簨浠� + switchClick(click) { + if (typeof click === 'function') { + click() + } + }, + // 鍒楁帶鍒� + changeColumns() { + this.myTable.columns.forEach((column, idx) => { + if (this.checkColumns.includes(idx)) { + column.hidden = false + } else { + column.hidden = true + } + this.$set(this.myTable.columns, idx, column) + }) + } + } +} +</script> + +<style scoped> + /*璇︽儏琛ㄥ崟*/ + .demo-table-expand .el-form-item{ + width: 100%; + } + + /*鍒楄〃鍐呮枃瀛楄繃闀垮姞鐪佺暐*/ + .content-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap + } + + /*鍒嗛〉涓婅竟璺�*/ + .el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #303133; + font-weight: 700; + margin-top: 10px; + } + .el-radio { + margin-right: 10px; + } + .el-radio__label { + font-size: 14px; + padding-left: 2px !important; + } + + .a-button-cus{ + font-size: 12px; + } + .ant-btn-sm { + padding: 0px 7px; + font-size: 12px; + border-radius: 3px; + height: 20px; + } + .ant-btn > .anticon + span, .ant-btn > span + .anticon { + margin-left: unset; + } + +</style> diff --git a/src/views/components/myTableTree/tree/index.js b/src/views/components/myTableTree/tree/index.js new file mode 100644 index 0000000..d695929 --- /dev/null +++ b/src/views/components/myTableTree/tree/index.js @@ -0,0 +1,4 @@ +import MSDataTransfer from './tableTreeUtil.js' +export default { + MSDataTransfer +} diff --git a/src/views/components/myTableTree/tree/tableTreeUtil.js b/src/views/components/myTableTree/tree/tableTreeUtil.js new file mode 100644 index 0000000..d52f9aa --- /dev/null +++ b/src/views/components/myTableTree/tree/tableTreeUtil.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +function DataTransfer(data) { + if (!(this instanceof DataTransfer)) { + return new DataTransfer(data, null, null) + } +} + +DataTransfer.treeToArray = function(data, parent, level, expandedAll) { + let tmp = [] + Array.from(data).forEach(function(record) { + if (record._expanded === undefined) { + Vue.set(record, '_expanded', expandedAll) + } + if (parent) { + Vue.set(record, '_parent', parent) + } + let _level = 0 + if (level !== undefined && level !== null) { + _level = level + 1 + } + Vue.set(record, '_level', _level) + tmp.push(record) + if (record.child && record.child.length > 0) { + const child = DataTransfer.treeToArray(record.child, record, _level, expandedAll) + // delete record['child'] + tmp = tmp.concat(child) + } + }) + return tmp +} + +export default DataTransfer diff --git a/src/views/components/myTableV2.vue b/src/views/components/myTableV2.vue new file mode 100644 index 0000000..2b635bc --- /dev/null +++ b/src/views/components/myTableV2.vue @@ -0,0 +1,420 @@ +<template> + <el-card shadow="never"> + <el-table + :ref="myTable.ref" + v-loading="myLoading" + :data="myTable.rows" + :max-height="myTable.maxHeight" + :height="myTable.height" + :size="myTable.size" + :cell-class-name="className" + selection-change="handleSelectionChange" + @select="handleSelect" + @select-all="handleSelectAll" + @cell-click="cellClick" + > + <el-table-column v-if="myTable.expand" type="expand"> + <template slot-scope="{row}"> + <el-form size="mini" label-position="left" :inline="false" class="demo-table-expand"> + <template> + <el-form-item + v-for="(more,index) in columnHidden" + :key="index" + size="mini" + :label="more.title+'锛�'" + > + <template v-if="more.tag"> + <el-tag size="mini" :type="more.tag(row).type"> + {{ more.tag(row).value }} {{ more }} + </el-tag> + </template> + <template v-else> + <span v-if="more.formatter">{{ more.formatter(row) }}</span> + <span v-else-if="more.formatterRate">{{ more.formatterRate(row) }}</span> + <span v-else-if="more.formatterHigh">{{ more.formatterHigh(row).value }}</span> + <span v-else-if="more.switch">{{ more.switch(row).label }}</span> + <span v-else>{{ row[more.field] }}</span> + </template> + </el-form-item> + </template> + </el-form> + </template> + </el-table-column> + + <el-table-column + v-if="myTable.showCheckBox" + type="selection" + width="55" + /> + + <el-table-column + v-if="myTable.showIndex && myTable.page.pageSize!=undefined" + label="搴忓彿" + width="50" + > + <template slot-scope="scope"> + <span> + {{ scope.$index+(myTable.page.pageNumber - 1) * myTable.page.pageSize + 1 }} + </span> + </template> + </el-table-column> + <el-table-column + v-if="myTable.showIndex && myTable.page.pageSize==undefined" + type="index" + label="搴忓彿" + width="50" + /> + + <!--show-overflow-tooltip--> + <template v-for="(column, index) in columnNotHidden"> + <el-table-column + v-if="!(column.hidden||false)" + :key="index" + :sortable="column.sortable" + :label="column.title" + :type="column.type" + :width="column.width" + :align="column.align" + :header-align="column.align" + > + <template slot-scope="scope"> + <template v-if="column.tag"> + <el-tag size="mini" :type="column.tag(scope.row).type"> + {{ column.tag(scope.row).value }} + </el-tag> + </template> + <template v-else-if="column.switch"> + <my-switch + :value="column.switch(scope.row).value" + :check-permission="column.checkPermission" + :disabled="column.switch(scope.row).disabled" + @click="switchClick(column.switch(scope.row).click)" + /> + </template> + <template v-else-if="column.formatterHigh"> + <span slot="reference" class="content-text" :style="setStyle(column.formatterHigh(scope.row))" @click="handleClick(column.formatterHigh(scope.row))">{{ column.formatterHigh(scope.row).value }}</span> + </template> + <template v-else> + <el-popover + placement="top-start" + trigger="click" + :content="getPopoverContent(scope.row,column)" + > + <span v-if="column.formatter" slot="reference" class="content-text">{{ column.formatter(scope.row) }}</span> + <span v-else-if="column.formatterRate" slot="reference" class="content-text"><el-rate :value="column.formatterRate(scope.row)" disabled :colors="['#99A9BF', '#F7BA2A', '#FF9900']" /></span> + <span v-else slot="reference" class="content-text">{{ scope.row[column.field] }}</span> + </el-popover> + </template> + </template> + </el-table-column> + </template> + + <el-table-column + v-if="myTable.operation.length>0" + label="鎿嶄綔" + align="center" + :width="colWidth" + > + <template slot-scope="scope"> + <template> + <div v-for="(operation, index) in myTable.operation" :key="index" style="display: inline-block"> + <my-button + v-if="!(operation.hidden && operation.hidden(scope.row))" + :name="operation.title" + size="mini" + :type="operation.type" + :check-permission="operation.checkPermission" + @click="operation.events(scope.row)" + /> + </div> + </template> + </template> + </el-table-column> + </el-table> + <div v-if="myTable.paging" style="margin-top: 10px;"> + <my-paging :page="myTable.page" @search="search" /> + </div> + </el-card> +</template> + +<script> +import myPaging from './myPaging' +import mySwitch from './mySwitch' +import myButton from '@/views/components/myButton' + +export default { + components: { myPaging, myButton, mySwitch }, + props: { + // 鍔犺浇 + loading: { + type: Boolean, + default: false + }, + table: { // 鍒楄〃鏁版嵁 + type: Object, + default() { + return {} + } + }, + parentSelectionsObject: { // 榛樿閫変腑鐨勬暟鎹� + type: Array, + default() { + return [] + } + }, + parentSelection: { // 榛樿閫変腑鐨勬暟鎹甶d + type: Array, + default() { + return [] + } + } + }, + data() { + return { + myLoading: false, // 鍔犺浇 + selection: [], // 瀛樺偍澶嶉�夋閫変腑鐨処D + selectionObject: [], // 瀛樺偍澶嶉�夋閫変腑鐨勫璞� + myTable: { + ref: 'myTable', // table鐨勫悕绉� + expand: true, // 鏄惁鏄剧ず灞曞紑琛� + // height: 500, // 榛樿楂樺害鑷姩鍗曚綅px + // maxHeight: 500, //榛樿涓嶈缃崟浣峱x + size: 'medium', // Table 鐨勫昂瀵� medium / small / mini + showCheckBox: false, // 鏄惁鏄剧ず澶嶉�夋 + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + columns: [], + rows: [], + operation: [], + paging: true, + page: {} + }, + colWidth: 172// 鎿嶄綔鍒楃殑榛樿瀹藉害 + } + }, + computed: { + // 閫氳繃璁$畻灞炴�ц繃婊ゆ帀鍒楄〃涓笉闇�瑕佹樉绀虹殑椤圭洰 + columnHidden: function() { + return this.myTable.columns.filter(function(x) { + return x.hidden + }) + }, + columnNotHidden: function() { + return this.myTable.columns.filter(function(x) { + return !x.hidden + }) + } + }, + watch: { + loading(v) { + this.myLoading = v + }, + table(e) { + Object.assign(this.myTable, e) + this.reloadCheckBox() + } + }, + mounted() { + const changeTipClass = () => { + } + const Fun = function(e) { + e = e || window.event + if (e.wheelDelta) { + // IE/Opera/Chrome + changeTipClass() + } else if (e.detailWin) { + // FireFox + changeTipClass() + } + } + if (document.addEventListener) { + document.addEventListener('DOMMouseScroll', Fun, false) + } // FireFox + window.onmousewheel = document.onmousewheel = Fun // IE/Opera/Chrome + }, + created() { + this.myLoading = this.loading + // 鎺ュ彈鐖剁粍浠朵紶鏉ョ殑 閫変腑瀵硅薄 锛岃В鏋愪负鑷繁鍙互鐢ㄧ殑鏁版嵁 + const psobj = Object.assign([], this.parentSelectionsObject) + if (psobj.length > 0) { + psobj.forEach(pso => { + this.selection.push(pso.id)// 瀛樺偍澶嶉�夋閫変腑鐨処D + this.selectionObject.push(pso)// 瀛樺偍澶嶉�夋閫変腑鐨勫璞� + }) + } + + // 鍒濆鍖杢able鏁版嵁 + Object.assign(this.myTable, this.table) + this.changeOperWidth() + this.reloadCheckBox() + }, + methods: { + handleHover() { + console.log('婊�') + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-12 18:15 + * @Description : 璁剧疆楂樼骇鏍煎紡鍖� formatterHigh鐨勯鑹� + */ + setStyle(format) { + let styles = '' + if (format.click != undefined) { + styles += 'cursor: pointer;' + } + if (format.type != undefined) { + if (format.type == 'primary') { + styles += 'color:#409EFF;' + } else if (format.type == 'danger') { + styles += 'color:#F56C6C;' + } else if (format.type == 'success') { + styles += 'color:#67C23A;' + } else if (format.type == 'warning') { + styles += 'color:#E6A23C;' + } else if (format.type == 'info') { + styles += 'color:#909399;' + } + } + return styles + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-12 18:36 + * @Description锛歠ormatterHigh鐐瑰嚮 + */ + handleClick(format) { + if (format.click != undefined) { + format.click() + } + }, + switchClick(click) { + if (typeof click === 'function') { + click() + } + }, + search(param) { + this.$emit('search', param) + }, + // 鍗曢�� + handleSelect(selection, row) { + // 妫�鏌election涓槸鍚﹀寘鍚玶ow锛屽鏋滃寘鍚垯涓洪�変腑锛屽惁鍒欏彇娑堥�変腑 + let _b = false + selection.forEach(sel => { + if (sel.id === row.id) { + _b = true + return false + } + }) + if (_b) { // 鍖呭惈=閫変腑 + if (!this.selection.includes(row.id)) { + this.selection.push(row.id) + this.selectionObject.push(row) + } + } else { // 涓嶅寘鍚�=鍙栨秷閫変腑 + for (let m = 0; m < this.selection.length; m++) { + if (row.id === this.selection[m]) { + if (this.selection.includes(row.id)) { + this.selection.splice(m, 1) + this.selectionObject.splice(m, 1) + break + } + } + } + } + }, + // 鍏ㄩ�� + handleSelectAll(selection) { + // 濡傛灉selection.length>0閬嶅巻锛屽瓨鍦ㄥ垯蹇界暐锛屼笉瀛樺湪鍒欐坊鍔�. 鍚﹀垯绉婚櫎鏈〉鎵�鏈夋暟鎹�� + if (selection.length > 0) { // 鍏ㄩ�� + // 閬嶅巻 涓嶅瓨鍦ㄥ垯鍔犲叆 + selection.forEach(sel => { + if (!this.selection.includes(sel.id)) { + this.selection.push(sel.id) + this.selectionObject.push(sel) + } + }) + } else { // 鍏ㄤ笉閫� + this.myTable.rows.forEach(row => { + const index = this.selection.indexOf(row.id) + if (index > -1) { + this.selection.splice(index, 1) + this.selectionObject.splice(index, 1) + } + }) + } + }, + reloadCheckBox() { + setTimeout(() => { + // 閲嶆柊鍕鹃�夎閫変腑椤� + try { + this.$refs[this.myTable.ref].clearSelection() + if (this.selection.length > 0) { + this.myTable.rows.forEach(row => { + for (let m = 0; m < this.selection.length; m++) { + if (row.id == this.selection[m]) { + this.$refs[this.myTable.ref].toggleRowSelection(row, true) + } + } + }) + } + } catch (e) { console.error(e) } + }, 1) + }, + cellClick(row, column, cell, event) { + this.$emit('rowClick', { row, column, cell, event }) + }, + + getPopoverContent(row, column) { + if (column.formatterHigh) { + return column.formatterHigh(row).value + '' + } else if (column.formatter) { + return column.formatter(row) + '' + } else { + return row[column.field] + '' + } + }, + // 鏀瑰彉鎿嶄綔鍒楃殑瀹藉害 + changeOperWidth() { + if (this.myTable.operation.length > 2) { + this.colWidth = this.colWidth + 50 * (this.myTable.operation.length - 2) + } + }, + className({ row, column, rowIndex, columnIndex }) { + if (column.label == '鎿嶄綔') { + return 'oper' + } else { + return '' + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-13 13:46 + * @Description : 鑾峰彇閫変腑椤� + */ + getCheckedRows() { + return this.selectionObject + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-13 13:46 + * @Description : 鑾峰彇閫変腑椤筰d + */ + getCheckedIds() { + return this.selection + } + } +} +</script> +<style scoped> + .demo-table-expand .el-form-item{ + width: 100%; + } + .content-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap + } + .oper>.cell{ + white-space: nowrap; + word-break:normal; + } +</style> diff --git a/src/views/components/myTableV3.vue b/src/views/components/myTableV3.vue new file mode 100644 index 0000000..e852263 --- /dev/null +++ b/src/views/components/myTableV3.vue @@ -0,0 +1,645 @@ +<template> + <el-card shadow="never"> + <!--宸ュ叿鏉�--> + <div v-if="!myTable.isTopFrame" class="table-tool-bar" style="overflow: hidden"> + <!--鑷畾涔夊伐鍏�--> + <my-button + v-for="(custom, idx) in myTable.tools.custom" + :key="idx" + site="tools" + :check-permission="custom.checkPermission" + :name="custom.name" + @click="custom.click" + /> + <!--瀵煎嚭--> + <el-popover v-model="visible" placement="right-start" width="250" trigger="click"> + <el-form ref="exportParams" :model="exportParams" :rules="rules" label-position="right" size="mini" label-width="65px"> + <el-form-item label="鍚嶇О" prop="fileName"><el-input v-model="exportParams.fileName" /></el-form-item> + <el-form-item label="鏍煎紡" class="require"> + <el-radio-group v-model="exportParams.fileFormat" size="mini"><el-radio label=".xls">.xls</el-radio></el-radio-group> + </el-form-item> + <el-form-item label="鏁版嵁" class="require"> + <el-radio-group v-model="exportParams.page" size="mini" @change="changePageSize"> + <el-radio label="1">鏈〉</el-radio> + <el-radio label="2">鍏ㄩ儴</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="椤电爜" style="display: none;" prop="pageNumber"><el-input v-model="exportParams.pageNumber" /></el-form-item> + <el-form-item label="姝ラ暱" style="display: none;" prop="pageSize"><el-input v-model="exportParams.pageSize" /></el-form-item> + </el-form> + <div style="text-align: right; margin: 0"> + <el-button size="mini" type="default" @click="visible = false">鍙栨秷</el-button> + <el-button type="primary" size="mini" @click="_export_">纭畾</el-button> + </div> + <my-button v-if="myTable.tools.generalExport.show" slot="reference" site="tools" name="瀵煎嚭" /> + </el-popover> + + <!--鍒楁帶鍒�--> + <el-popover v-if="myTable.tools.columnsCtrl.show" style="float: right;" trigger="click" placement="bottom" width="150"> + <el-form label-width="10px" style="max-height: 500px;overflow-y: auto;"> + <el-form-item label=""> + <el-checkbox-group v-model="checkColumns" @change="changeColumns"> + <el-checkbox v-for="(column, index) in myTable.columns" :key="index" :label="index">{{ column.title }}</el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-form> + <el-button slot="reference" icon="el-icon-setting" size="mini">璁剧疆鍒�</el-button> + </el-popover> + </div> + <!--table鍒楄〃--> + <el-table + :key="timeStamp" + :ref="myTable.ref" + v-loading="myTable.loading" + :data="myTable.rows" + :max-height="myTable.maxHeight" + :height="myTable.height" + :size="myTable.size" + :fit="false" + :highlight-current-row="true" + border + > + <!--璇︽儏--> + <el-table-column v-if="myTable.expand" width="50" type="expand"> + <template slot-scope="{ row }"> + <el-form size="mini" label-position="left" :inline="false" class="demo-table-expand"> + <el-form-item v-for="(more, index) in columnHidden" :key="index" size="mini" :label="more.title + '锛�'"> + <template v-if="more.tag"> + <el-tag size="mini" :type="more.tag(row).type">{{ more.tag(row).value }} {{ more }}</el-tag> + </template> + <template v-else> + <span v-if="more.formatter">{{ more.formatter(row).value }}</span> + <span v-else-if="more.switch">{{ more.switch(row).label }}</span> + <span v-else>{{ row[more.field] }}</span> + </template> + </el-form-item> + </el-form> + </template> + </el-table-column> + + <!--搴忓彿 鏈夊垎椤垫椂--> + <el-table-column v-if="myTable.showIndex && myTable.paging.page.pageSize != undefined" label="搴忓彿" align="center" width="60"> + <template slot-scope="scope"> + <span>{{ scope.$index + (myTable.paging.page.pageNumber - 1) * myTable.paging.page.pageSize + 1 }}</span> + </template> + </el-table-column> + + <!--搴忓彿 鏃犲垎椤垫椂--> + <el-table-column v-if="myTable.showIndex && myTable.paging.page.pageSize == undefined" type="index" align="center" label="搴忓彿" width="60" /> + <template v-for="(column,index) in columnNotHidden"> + <!--鍒楀唴瀹�--> + <el-table-column + v-if="!(column.hidden||false)" + :key="index" + :sortable="column.sortable" + :label="column.title" + :type="column.type" + :width="column.width" + :min-width="column.minWidth" + :align="column.align" + :header-align="column.align" + > + <template slot-scope="scope"> + <!--寮�鍏筹紙鐢熸垚寮�鍏虫寜閽級--> + <template v-if="column.switch"> + <my-switch + :value="column.switch(scope.row).value" + :check-permission="column.checkPermission" + :disabled="column.switch(scope.row).disabled" + @click="switchClick(column.switch(scope.row).click)" + /> + </template> + <template v-else-if="column.tag"> + <el-tag size="mini" :type="column.tag(scope.row).type">{{ column.tag(scope.row).value }}</el-tag> + </template> + <template v-else-if="column.img"> + <preview-picture img-style="width:40px;height:40px;" :imgs="column.img(scope.row).imgs" /> + </template> + <!--鏍煎紡鍖栵紙鏄剧ず棰滆壊锛屽唴瀹癸紝鐐瑰嚮浜嬩欢鎺у埗锛�--> + <template v-else-if="column.formatter"> + <span slot="reference" class="content-text" :style="setStyle(column.formatter(scope.row))" @click="handleClick(column.formatter(scope.row))" v-html="column.formatter(scope.row).value" /> + </template> + <template v-else> + <!--鐐瑰嚮寮瑰嚭鍗曞厓鏍煎唴瀹�--> + <el-popover placement="top-start" trigger="click" :content="getPopoverContent(scope.row, column)"> + <span slot="reference" class="content-text">{{ scope.row[column.field] }}</span> + </el-popover> + </template> + </template> + </el-table-column> + </template> + + <!--鎿嶄綔鍒�--> + <el-table-column + v-if="myTable.operation.show" + label="鎿嶄綔" + align="center" + :width="myTable.operation.width" + fixed="right" + > + <template slot-scope="scope"> + <template v-for="(operation, index) in myTable.operation.attr"> + <my-button-v2 + v-if="!(operation.hidden && operation.hidden(scope.row))" + :key="index" + :name="operation.title" + site="operation" + :type="operation.type" + :check-permission="operation.checkPermission" + @click="operation.events(scope.row)" + /> + </template> + <template v-if="myTable.operation.more && myTable.operation.more.length > 0"> + <el-dropdown style="margin-left: 5px;" trigger="click"> + <el-button size="small" type="text"> + 鏇村 + <i class="el-icon-arrow-down el-icon--right" /> + </el-button> + <el-dropdown-menu slot="dropdown"> + <template v-for="(m, i) in myTable.operation.more"> + <el-dropdown-item v-if="!(m.hidden && m.hidden(scope.row))" :key="i"> + <my-button-v2 + :name="m.title" + site="operation" + :type="m.type" + :check-permission="m.checkPermission" + @click="m.events(scope.row)" + /> + </el-dropdown-item> + </template> + </el-dropdown-menu> + </el-dropdown> + </template> + </template> + </el-table-column> + </el-table> + <el-pagination + :small="myTable.paging.page.small" + :current-page="myTable.paging.page.pageNumber" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="myTable.paging.page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="myTable.paging.page.total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </el-card> +</template> + +<script> +import myButtonV2 from '@/views/components/myButtonV2' +import myButton from '@/views/components/myButton' +import mySwitch from './mySwitch' +import request from '@/utils/request' +import * as valid from '@/utils/validate' +import previewPicture from '@/views/components/previewPicture' +export default { + components: { myButtonV2, myButton, mySwitch, previewPicture }, + props: { + table: { + type: Object, + default() { + return null + } + }, + // 褰撶偣鍑婚噸缃寜閽椂,filter鎸囧悜鏀瑰彉鏃朵笉闇�瑕佹墜鍔ㄨ皟鐢╯earch鏂规硶, 浠呮敼鍙榝ilter鍐呴儴鍊兼椂闇�鎵嬪姩璋冪敤search + // 濡�: this.filter = {} 涓嶉渶瑕佽皟鐢╯earch this.filter.name = null 鏃堕渶璋冪敤search + filter: { + type: Object, + default() { + return null + } + } + }, + data() { + const validatepageNumber = (rule, value, callback) => { + if (!valid.isNotEmpty(this.exportParams.pageNumber)) { + callback(new Error('璇疯緭鍏ラ〉鐮�')) + } else if (!valid.isInteger(this.exportParams.pageNumber)) { + callback(new Error('椤电爜涓烘鏁存暟')) + } else { + callback() + } + } + const validatepageSize = (rule, value, callback) => { + if (!valid.isNotEmpty(this.exportParams.pageSize)) { + callback(new Error('璇疯緭鍏ユ闀�')) + } else if (!valid.isInteger(this.exportParams.pageSize)) { + callback(new Error('姝ラ暱涓烘鏁存暟')) + } else if (this.exportParams.pageSize > 20000 || this.exportParams.pageSize < 1) { + callback(new Error('鍗曟瀵煎嚭姝ラ暱鑼冨洿1锝�20000')) + } else { + callback() + } + } + const validatefileName = (rule, value, callback) => { + if (!valid.isNotEmpty(this.exportParams.fileName)) { + callback(new Error('璇疯緭鍏ユ枃浠跺悕绉�')) + } else if (this.exportParams.fileName.length < 1 || this.exportParams.fileName.length > 10) { + callback(new Error('鏂囦欢鍚嶇О闀垮害鑼冨洿1锝�10')) + } else { + callback() + } + } + return { + /** table鍒楄〃鏁版嵁*/ + myTable: { + autoLoad: true, + url: '', + params: {}, + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: true, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + loading: false, // 鍔犺浇鏁堟灉 + // height: 500, // 榛樿楂樺害鑷姩鍗曚綅px + // maxHeight: 500, //榛樿涓嶈缃崟浣峱x + size: 'medium', // Table 鐨勫昂瀵� medium / small / mini + showCheckBox: false, // 鏄惁鏄剧ず澶嶉�夋 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + custom: [] // 鑷畾涔夊伐鍏锋潯鎸夐挳 + }, + columns: [], // 鍒楀睘鎬ч厤缃甤ustom + operation: { + // 鎿嶄綔鍒� + show: false, // 鏄剧ず鎿嶄綔鍒� + showMoreSize: 3, // 瓒呭嚭鍑犱釜鏄剧ず鏇村鎸夐挳 + width: '250', // 瀹藉害 + align: 'center', + attr: [], // 鎿嶄綔 + more: [] // 鏇村 + }, + rows: [], // 鍒楄〃鏁版嵁 + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNumber: 1, + pageSize: 10, + total: 0 + } + } + }, + checkColumns: [], // 璁板綍鍒楁帶鍒朵腑閫変腑鐨勫垪 + // 瀵煎嚭鍔熻兘鎵�闇�鍙傛暟 + visible: false, // 鎺у埗瀵煎嚭琛ㄥ崟鐨勯殣钘� + exportParams: { + fileName: '', + fileFormat: '.xls', + page: '2', + pageNumber: 1, + pageSize: 20000 + }, + // 瀵煎嚭琛ㄥ崟鏍¢獙 + rules: { + fileName: [{ required: true, validator: validatefileName, trigger: 'blur' }], + pageNumber: [{ required: true, validator: validatepageNumber, trigger: 'blur' }], + pageSize: [{ required: true, validator: validatepageSize, trigger: 'blur' }] + }, + timeStamp: new Date().getTime() + } + }, + computed: { + // 閫氳繃璁$畻灞炴�ц繃婊ゆ帀鍒楄〃涓笉闇�瑕佹樉绀虹殑椤圭洰 + columnHidden: function() { + return this.myTable.columns.filter(function(x) { + return x.hidden + }) + }, + columnNotHidden: function() { + return this.myTable.columns.filter(function(x) { + return !x.hidden + }) + }, + operButtons() { + const that = this + return function(row) { + const arr = [] + that.myTable.operation.attr.map(item => { + console.log(item) + console.log(!(item.hidden && item.hidden(row)) && item.checkPermission) + if (!(item.hidden && item.hidden(row)) && item.checkPermission) { + arr.push(item) + } + }) + return arr + } + } + }, + watch: { + filter(val) { + this.search({ pageNumber: 1 }) + } + }, + created() { + const that = this + + window.onresize = function() { + that.timeStamp = new Date().getTime() + } + this.initTable() + }, + methods: { + initTable() { + if (this.table !== null) { + Object.assign(this.myTable, this.table) + if (this.myTable.paging.page === undefined) { + this.$set(this.myTable.paging, 'page', { + small: false, + pageNumber: 1, + pageSize: 10, + total: 0 + }) + } + this.myTable.columns.forEach((column, idx) => { + if (!column.hidden) { + this.checkColumns.push(idx) + } + }) + this.$nextTick(() => { + if (this.myTable.autoLoad) { + this.search({ pageNumber: 1 }) + } + }) + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 10:52 + * @Description : 鍒楄〃鎼滅储 + */ + search(param) { + this.$nextTick(() => { + this.myTable.loading = true + const params = Object.assign({}, this.filter) + params.pageSize = this.myTable.paging.page.pageSize + if (param && param.pageNumber) { + this.myTable.paging.page.pageNumber = param.pageNumber + } + params.pageNumber = this.myTable.paging.page.pageNumber + request({ + url: this.myTable.url, + method: 'get', + params: params + }).then(res => { + if (res.data.rows) { + this.$set(this.myTable, 'rows', res.data.rows) + } + this.$set( + this.myTable.paging, + 'page', + Object.assign(this.myTable.paging.page, { + pageSize: res.data.pageSize, + pageNumber: res.data.pageNumber, + total: res.data.total + }) + ) + this.myTable.loading = false + }).catch(() => { + this.myTable.loading = false + }) + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 10:48 + * @Description : 鑾峰彇璁剧疆鍒楄〃寮瑰眰鍐呭 + */ + getPopoverContent(row, column) { + if (column.formatterHigh) { + return column.formatterHigh(row).value + '' + } else if (column.formatter) { + return column.formatter(row) + '' + } else { + return row[column.field] + '' + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 11:39 + * @Description :鍗曞厓鏍煎唴瀹规牸寮忓寲鏍峰紡 + */ + setStyle(format) { + let styles = '' + if (format.click != undefined) { + styles += 'cursor: pointer;' + } + if (format.type != undefined) { + if (format.type == 'primary') { + styles += 'color:#409EFF;' + } else if (format.type == 'danger') { + styles += 'color:#F56C6C;' + } else if (format.type == 'success') { + styles += 'color:#67C23A;' + } else if (format.type == 'warning') { + styles += 'color:#E6A23C;' + } else if (format.type == 'info') { + styles += 'color:#909399;' + } + } + return styles + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 12:20 + * @Description : formatter 鐐瑰嚮浜嬩欢 + */ + handleClick(format) { + if (format.click != undefined) { + format.click() + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 12:21 + * @Description : 寮�鍏崇偣鍑讳簨浠� + */ + switchClick(click) { + if (typeof click === 'function') { + click() + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageSize + */ + handleSizeChange(pageSize) { + this.myTable.paging.page.pageSize = pageSize + this.search({ pageNumber: 1 }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageNumber + */ + handleCurrentChange(pageNumber) { + this.myTable.paging.page.pageNumber = pageNumber + this.search({ pageNumber: pageNumber }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:52 + * @Description :鍒楁帶鍒� + */ + changeColumns() { + this.myTable.columns.forEach((column, idx) => { + if (this.checkColumns.includes(idx)) { + column.hidden = false + } else { + column.hidden = true + } + this.$set(this.myTable.columns, idx, column) + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-23 10:44 + * @Description : 淇敼瀵煎嚭 pageSize + */ + changePageSize() { + if (this.exportParams.page == 1) { + this.exportParams.pageSize = this.myTable.paging.page.pageSize + } else if (this.exportParams.page == 2) { + this.exportParams.pageSize = 20000 + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 16:38 + * @Description :閫氱敤瀵煎嚭 + */ + _export_() { + this.$refs['exportParams'].validate(valid => { + if (valid) { + // 鍒ゆ柇鎬绘潯鏁版槸鍚﹀ぇ浜庢渶澶ф敮鎸佹潯鏁� + if (this.myTable.paging.page.total > 20000) { + this.$confirm(`褰撳墠绛涢�夋暟鎹潯鏁�${this.myTable.paging.page.total},鏈�澶ф敮鎸佸鍑烘潯鏁�20000,鏄惁缁х画瀵煎嚭锛焋, '鎻愮ず', { + confirmButtonText: '鏄�', + cancelButtonText: '鍚�', + type: 'warning' + }) + .then(() => { + this._export_m() + }) + .catch(() => { + return false + }) + } else { + this._export_m() + } + } else { + return false + } + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-23 11:22 + * @Description : 鐪熸鐨勫鍑� + */ + _export_m() { + const loading = this.$loading({ + lock: true, + text: '姝e湪瀵煎嚭...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }) + + this.visible = false + const params = {} + params.url = this.myTable.url + const columns = [] + this.myTable.columns.forEach(c => { + if (!c.hidden || c.export) { + columns.push({ + title: c.title, + field: c.field + }) + } + }) + params.columns = encodeURI(JSON.stringify(columns)) + params.filter = encodeURI( + JSON.stringify( + Object.assign( + { + pageNumber: this.exportParams.pageNumber, + pageSize: this.exportParams.pageSize + }, + this.filter + ) + ) + ) + params.fileName = encodeURI(this.exportParams.fileName) + if (this.myTable.tools.generalExport.formatter) { + params.formatter = encodeURI(JSON.stringify(this.myTable.tools.generalExport.formatter)) + } + + request({ + url: globalConf.baseUrl + '/v1/base/pc/export/generalExport3', // 璇锋眰鍦板潃, + method: 'post', + data: params + }).then(response => { + if (response.code == 10000) { + const link = globalConf.baseUrl + `/v1/base/web/common/downExcel?key=${response.data}` + window.location.href = link + } else { + this.$message({ + message: '鍝庡憖锛屽嚭鎰忓浜嗐�傘�傘��', + type: 'warning' + }) + } + loading.close() + }) + } + } +} +</script> + +<style scoped> +>>> .el-table__fixed-right { + height: 100% !important; +} + +/*璇︽儏琛ㄥ崟*/ +.demo-table-expand .el-form-item{ + width: 100%; +} + +/*鍒楄〃鍐呮枃瀛楄繃闀垮姞鐪佺暐*/ +.content-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} + +/*鍒嗛〉涓婅竟璺�*/ +.el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #303133; + font-weight: 700; + margin-top: 10px; +} +.el-radio { + margin-right: 10px; +} +.el-radio__label { + font-size: 14px; + padding-left: 2px !important; +} +/deep/.el-table__empty-block { + width: 100%; + text-align: center; + margin: 0 auto; +} + +</style> diff --git a/src/views/components/previewPicture/index.vue b/src/views/components/previewPicture/index.vue new file mode 100644 index 0000000..54fe0dd --- /dev/null +++ b/src/views/components/previewPicture/index.vue @@ -0,0 +1,75 @@ +<template> + <div> + <viewer :images="images"> + <img + v-for="(src,index) in images" + :key="index" + class="v-img" + :src="src.url" + :alt="src.name" + :style="imgStyle" + :onerror="defaultImg" + > + </viewer> + </div> +</template> + +<script> +import { getFtpUrl } from '@/utils/base' +import { str2Array } from '@/utils/tools' +export default { + props: { + imgs: { + type: [Array, String], + default: function() { + return [] + } + }, + imgStyle: { + type: String, + default: 'width:100px; height:100px;' + } + }, + data() { + return { + defaultImg: 'this.src="' + require('../../../assets/404_images/404.png') + '"', + images: [] + } + }, + watch: { + imgs(val) { + if (typeof val === 'string') { + this.images = str2Array(val) + } else { + this.images = val + } + } + }, + created() { + if (typeof this.imgs === 'string') { + this.images = str2Array(this.imgs) + } else { + this.images = this.imgs + } + }, + mounted() { + this.images.forEach(obj => { + if (obj.path != undefined && obj.path.length > 0) { + obj.url = this.getUrl(obj.path) + } + }) + }, + methods: { + getUrl(path) { + return getFtpUrl() + path + } + } +} +</script> + +<style scoped> + /* 鍥剧墖棰勮灞傜骇*/ + .viewer-container { + z-index: 90709102!important; + } +</style> diff --git a/src/views/components/tinymce/components/EditorImage.vue b/src/views/components/tinymce/components/EditorImage.vue new file mode 100644 index 0000000..8841380 --- /dev/null +++ b/src/views/components/tinymce/components/EditorImage.vue @@ -0,0 +1,111 @@ +<template> + <div class="upload-container"> + <el-button :style="{background:color,borderColor:color}" icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true"> + upload + </el-button> + <el-dialog :visible.sync="dialogVisible"> + <el-upload + :multiple="true" + :file-list="fileList" + :show-file-list="true" + :on-remove="handleRemove" + :on-success="handleSuccess" + :before-upload="beforeUpload" + class="editor-slide-upload" + action="https://httpbin.org/post" + list-type="picture-card" + > + <el-button size="small" type="primary"> + Click upload + </el-button> + </el-upload> + <el-button @click="dialogVisible = false"> + Cancel + </el-button> + <el-button type="primary" @click="handleSubmit"> + Confirm + </el-button> + </el-dialog> + </div> +</template> + +<script> +// import { getToken } from 'api/qiniu' + +export default { + name: 'EditorSlideUpload', + props: { + color: { + type: String, + default: '#1890ff' + } + }, + data() { + return { + dialogVisible: false, + listObj: {}, + fileList: [] + } + }, + methods: { + checkAllSuccess() { + return Object.keys(this.listObj).every(item => this.listObj[item].hasSuccess) + }, + handleSubmit() { + const arr = Object.keys(this.listObj).map(v => this.listObj[v]) + if (!this.checkAllSuccess()) { + this.$message('Please wait for all images to be uploaded successfully. If there is a network problem, please refresh the page and upload again!') + return + } + this.$emit('successCBK', arr) + this.listObj = {} + this.fileList = [] + this.dialogVisible = false + }, + handleSuccess(response, file) { + const uid = file.uid + const objKeyArr = Object.keys(this.listObj) + for (let i = 0, len = objKeyArr.length; i < len; i++) { + if (this.listObj[objKeyArr[i]].uid === uid) { + this.listObj[objKeyArr[i]].url = response.files.file + this.listObj[objKeyArr[i]].hasSuccess = true + return + } + } + }, + handleRemove(file) { + const uid = file.uid + const objKeyArr = Object.keys(this.listObj) + for (let i = 0, len = objKeyArr.length; i < len; i++) { + if (this.listObj[objKeyArr[i]].uid === uid) { + delete this.listObj[objKeyArr[i]] + return + } + } + }, + beforeUpload(file) { + const _self = this + const _URL = window.URL || window.webkitURL + const fileName = file.uid + this.listObj[fileName] = {} + return new Promise((resolve, reject) => { + const img = new Image() + img.src = _URL.createObjectURL(file) + img.onload = function() { + _self.listObj[fileName] = { hasSuccess: false, uid: file.uid, width: this.width, height: this.height } + } + resolve(true) + }) + } + } +} +</script> + +<style lang="scss" scoped> + .editor-slide-upload { + margin-bottom: 20px; + .el-upload--picture-card { + width: 100%; + } + } +</style> diff --git a/src/views/components/tinymce/index.vue b/src/views/components/tinymce/index.vue new file mode 100644 index 0000000..7db12cf --- /dev/null +++ b/src/views/components/tinymce/index.vue @@ -0,0 +1,166 @@ +<template> + <div> + <textarea :id="id" /> + <!--<div class="editor-custom-btn-container">--> + <!--<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK" />--> + <!--</div>--> + </div> +</template> +<script> +// import editorImage from './components/EditorImage' +import { getFtpUrl, getUploadUrl } from '@/utils/base' +import { guid } from '@/utils/tools' + +export default { + components: { + // editorImage + }, + props: { + width: { + type: String, + default: '100%' + }, + height: { + type: String, + default: '300px' + }, + value: { + type: String, + default: '' + }, + config: { + type: Object, + default: function() { + return { + imgUploadUrl: getUploadUrl() + } + } + }, + tid: { + type: String, + default: 'edit-' + guid() + } + }, + data() { + return { + id: this.tid + new Date().getTime() + } + }, + watch: { + value(val) { + if (val == null) { val = '' } + window.tinymce.get(this.id).setContent(val) + } + }, + destroyed() { + this.destroyTinymce() + }, + mounted() { + // console.log(111) + this.init() + }, + methods: { + init() { + // console.log(this.id) + const _this = this + window.tinymce.init({ + selector: `#${this.id}`, + body_class: 'panel-body ', + skin: 'oxide', + language: 'zh_CN', + plugins: 'paste preview fullscreen code codesample lists image table hr emoticons', + width: this.width, + height: this.height, + toolbar: [ + 'paste fullscreen preview | undo redo | hr bold italic underline strikethrough | alignleft aligncenter alignright | outdent indent | removeformat subscript superscript', + 'bullist numlist link image charmap anchor pagebreak insertdatetime table emoticons forecolor backcolor' + ], + image_advtab: true, + images_upload_handler: (blobInfo, success, failure) => { + const xhr = new XMLHttpRequest() + xhr.withCredentials = false + xhr.open('POST', _this.config.imgUploadUrl) + const formData = new FormData() + formData.append('file', blobInfo.blob()) + xhr.onload = function(e) { + if (xhr.status != 200) { + failure('HTTP Error: ' + xhr.status) + return + } + const json = JSON.parse(this.responseText) + if (!json || typeof json.data[0].path != 'string') { + failure('Invalid JSON: ' + xhr.responseText) + return + } + success(getFtpUrl() + json.data[0].path) + } + xhr.send(formData) + // const img = 'data:image/jpeg;base64,' + blobInfo.base64() + // success(img) + }, + init_instance_callback: editor => { + if (_this.value) { + editor.setContent(_this.value) + } + _this.hasInit = true + editor.on('NodeChange Change KeyUp SetContent', () => { + // this.hasChange = true + this.$emit('input', editor.getContent()) + }) + } + // external_plugins: { + // 'powerpaste': 'http://www.server.com/application/external_plugins/powerpaste/plugin.js' + // } + }) + }, + destroyTinymce() { + const tinymce = window.tinymce.get(`#${this.id}`) + if (this.fullscreen) { + tinymce.execCommand('mceFullScreen') + } + if (tinymce) { + tinymce.destroy() + } + }, + setContent(value) { + window.tinymce.get(this.id).setContent(value) + }, + getContent() { + return window.tinymce.get(this.id).getContent() + }, + imageSuccessCBK(arr) { + const _this = this + arr.forEach(v => { + window.tinymce.get(_this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`) + }) + } + } +} +</script> + +<style scoped> + .tinymce-container { + position: relative; + line-height: normal; + } + .tinymce-container>>>.mce-fullscreen { + z-index: 10000; + } + .tinymce-textarea { + visibility: hidden; + z-index: -1; + } + .editor-custom-btn-container { + position: absolute; + right: 4px; + top: 4px; + /*z-index: 2005;*/ + } + .fullscreen .editor-custom-btn-container { + z-index: 10000; + position: fixed; + } + .editor-upload-btn { + display: inline-block; + } +</style> diff --git a/src/views/components/upload/index.vue b/src/views/components/upload/index.vue new file mode 100644 index 0000000..03ea112 --- /dev/null +++ b/src/views/components/upload/index.vue @@ -0,0 +1,251 @@ +<template> + <div> + <el-upload + class="upload-demo" + :action="defaultSettings.uploadUrl" + :multiple="defaultSettings.multiple" + name="file" + :accept="defaultSettings.accept" + :file-list="showList" + :list-type="defaultSettings.type" + :limit="defaultSettings.num" + :disabled="defaultSettings.disabled" + :on-exceed="handleExceed" + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-upload="beforeUpload" + :on-success="handleUploadSuccess" + :headers="headers" + :drag="settings.drag" + > + <template v-if="settings.drag"> + <i class="el-icon-upload" /> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + </template> + + <el-button v-if="!settings.drag" size="small" type="primary">{{ defaultSettings.title }}</el-button> + <div v-if="defaultSettings.tip" slot="tip" class="el-upload__tip">{{ defaultSettings.tip }}</div> + <div v-else slot="tip" class="el-upload__tip">鍙兘涓婁紶{{ defaultSettings.num }}涓牸寮忎负[{{ defaultSettings.accept }}]鐨勬枃浠讹紝涓斾笉瓒呰繃{{ defaultSettings.max/1024 }}M + </div> + + </el-upload> + <div id="uploadPreviewImages" style="display:none;"> + <span + v-for="(src,index) in fileList" + :key="index" + > + <img + v-if="checkImg(src.name)" + class="v-img" + :src="src.url" + :alt="src.name" + style="width: 100px;height: 100px;" + > + </span> + </div> + </div> +</template> + +<script> +import { getToken } from '@/utils/auth' +import { sessionToken } from '@/settings' +import { getFtpUrl } from '@/utils/base' +import Viewer from 'viewerjs' +import 'viewerjs/dist/viewer.css' +let viewer = null +export default { + props: { + values: { + type: Array, + default: function() { + return [] + } + }, + settings: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + headers: { + + }, + showList: [], // 鐢ㄤ簬璇︽儏灞曠ず + fileList: [], + defaultSettings: { + title: '鐐瑰嚮涓婁紶', + max: 1024 * 100, // 鏈�澶уぇ灏忥紝鍗曚綅kb + num: 1, // 鏀寔涓婁紶鍥剧墖涓暟 + accept: '.jpg,.jpeg,.png,.bmp,.pdf,.doc,.docx,.xls,.xlsx,.zip,.apk', // 闄愬埗鏍煎紡 + tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}kb` + uploadUrl: '', // 涓婁紶璺緞 + multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + type: 'picture' // text/picture + } + } + }, + watch: { + values(v) { + this.fileList = Object.assign([], v) + this.showList = Object.assign([], v) + this.$nextTick(() => { + this.initPreviewImg() + }) + } + }, + created() { + this.showList = Object.assign([], this.values) + this.fileList = Object.assign([], this.values) + + this.showList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + + this.fileList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + + this.defaultSettings = Object.assign(this.defaultSettings, this.settings) + // console.log(this.defaultSettings) + // this.$nextTick(() => { + // new Viewer(document.getElementsByClassName('el-upload-list')) + // }) + }, + mounted() { + this.initPreviewImg() + this.headers[sessionToken] = getToken() + }, + methods: { + handleRemove(file, fileList) { + for (let i = 0; i < this.fileList.length; i++) { + const img = this.fileList[i] + if (file.uid == img.uid) { + this.fileList.splice(i, 1) + break + } + } + + this.$nextTick(() => { + this.initPreviewImg() + }) + }, + + handleExceed(files, fileList) { + this.$message.warning('鏈�澶氫笂浼�' + this.defaultSettings.num + '涓枃浠�') + }, + beforeUpload(file) { + // console.log('upload before') + let isRepeat = true + for (let i = 0; i < this.fileList.length; i++) { + const f = this.fileList[i] + if (file.name == f.name) { + isRepeat = false + break + } + } + + if (!isRepeat) { + this.$message.error('璇ユ枃浠跺凡瀛樺湪!') + } + const isImg = this.defaultSettings.accept.split(',').indexOf(file.name.substr(file.name.lastIndexOf('.'), file.name.length).toLocaleString()) > -1 + const isLt2M = file.size / 1024 < this.defaultSettings.max + if (!isImg) { + this.$message.error('涓婁紶鏂囦欢鏍煎紡鍙兘鏄� ' + this.defaultSettings.accept + ' 鏍煎紡!') + } + if (!isLt2M) { + this.$message.error('涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ' + this.defaultSettings.max / 1024 + 'M!' + '褰撳墠鏂囦欢澶у皬锛�' + parseInt(file.size / 1024 / 1024) + 'M') + } + return isImg && isLt2M && isRepeat + }, + handleUploadSuccess(response, file, fileList) { + // console.log('upload sucess') + // console.log(response.data) + response.data.forEach(f => { + this.fileList.push({ + uid: file.uid, + name: f.name, + url: this.getUrl(f.path), + path: f.path, + attSize: f.attSize || null, + fileTime: f.fileTime || null + }) + }) + this.$nextTick(() => { + this.initPreviewImg() + }) + }, + getContent() { + return this.fileList + }, + handlePreview(file) { + if (!this.checkImg(file.name)) { + return false + } + let index = 0 + for (let i = 0; i < this.fileList.length; i++) { + const f = this.fileList[i] + if (this.checkImg(f.name)) { + if (file.uid == f.uid) { + break + } + index++ + } + } + // this.fileList.forEach((f, i) => { + // if (file.uid == f.uid) { + // index = i + // } + // }) + // document.querySelector('#uploadPreviewImages').children[0].click() + viewer.view(index) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-05-26 14:48 + * @Description : 鍒濆鍖� + */ + initPreviewImg() { + if (viewer != null) { + viewer.destroy() + } + const ViewerDom = document.querySelector('#uploadPreviewImages') + viewer = new Viewer(ViewerDom, { + + }) + // console.log(this.fileList) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-05-26 14:48 + * @Description : 鏍¢獙鍥剧墖 + */ + checkImg(name) { + const suffix = name.substring(name.lastIndexOf('.'), name.length) + const imgArray = ['.jpg', '.jpeg', '.png', '.bmp'] + if (imgArray.indexOf(suffix) < 0) { + return false + } + return true + }, + getUrl(path) { + if (path.substr(0, 7).toLowerCase() == 'http://' || path.substr(0, 8).toLowerCase() == 'https://') { + return path + } else { + return getFtpUrl() + path + } + } + } +} +</script> + +<style scoped> + /* 鍥剧墖棰勮灞傜骇*/ + .viewer-container { + z-index: 90709102!important; + } + +</style> diff --git a/src/views/components/uploadFile/index.vue b/src/views/components/uploadFile/index.vue new file mode 100644 index 0000000..ff3f23b --- /dev/null +++ b/src/views/components/uploadFile/index.vue @@ -0,0 +1,173 @@ +<template> + <div> + <el-upload + class="upload-demo" + drag + :action="defaultSettings.uploadUrl" + :multiple="defaultSettings.multiple" + name="file" + :accept="defaultSettings.accept" + :file-list="showList" + :list-type="defaultSettings.type" + :limit="defaultSettings.num" + :disabled="defaultSettings.disabled" + :on-exceed="handleExceed" + :on-remove="handleRemove" + :before-upload="beforeUpload" + :on-success="handleUploadSuccess" + :headers="headers" + > + <i class="el-icon-upload" /> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>{{ defaultSettings.title }}</em></div> + <div slot="tip" class="el-upload__tip"> + 鍙兘涓婁紶{{ defaultSettings.num }}涓紝涓旀牸寮忎负[{{ defaultSettings.accept }}]鐨勬枃浠讹紝 + 涓斾笉瓒呰繃{{ defaultSettings.max }}MB + </div> + + </el-upload> + </div> +</template> + +<script> +import { getToken } from '@/utils/auth' +import { sessionToken } from '@/settings' +import { getFtpUrl } from '@/utils/base' + +export default { + props: { + values: { + type: Array, + default: function() { + return [] + } + }, + settings: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + headers: { + + }, + showList: [], // 鐢ㄤ簬璇︽儏灞曠ず + fileList: [], + defaultSettings: { + title: '鐐瑰嚮涓婁紶', + max: 100, // 鏈�澶уぇ灏忥紝鍗曚綅MB + num: 1, // 鏀寔涓婁紶鏂囦欢涓暟 + accept: '.jpg,.png,.pdf,.doc,.docx,.xls,.xlsx,.zip,.txt,.rar,.ppt,.pptx,.xlt', // 闄愬埗鏍煎紡 + tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}MB` + uploadUrl: '', // 涓婁紶璺緞 + multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + type: 'text' // text/picture + } + } + }, + watch: { + values(v) { + this.fileList = Object.assign([], v) + this.showList = Object.assign([], v) + this.showList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + this.fileList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + } + }, + created() { + this.showList = Object.assign([], this.values) + this.fileList = Object.assign([], this.values) + + this.showList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + this.fileList.forEach(obj => { + obj.url = this.getUrl(obj.path) + }) + + this.defaultSettings = Object.assign(this.defaultSettings, this.settings) + }, + mounted() { + this.headers[sessionToken] = getToken() + }, + methods: { + handleRemove(file, fileList) { + for (let i = 0; i < this.fileList.length; i++) { + const img = this.fileList[i] + if (file.uid == img.uid) { + this.fileList.splice(i, 1) + break + } + } + }, + + handleExceed(files, fileList) { + this.$message.warning('鏈�澶氫笂浼�' + this.defaultSettings.num + '涓枃浠�') + }, + beforeUpload(file) { + let isRepeat = true + for (let i = 0; i < this.fileList.length; i++) { + const f = this.fileList[i] + if (file.name == f.name) { + isRepeat = false + break + } + } + + if (!isRepeat) { + this.$message.error('璇ユ枃浠跺凡瀛樺湪!') + } + const isImg = this.defaultSettings.accept.split(',').indexOf(file.name.substr(file.name.lastIndexOf('.'), file.name.length).toLocaleString()) > -1 + const isLt2M = file.size / 1024 / 1024 < this.defaultSettings.max + if (!isImg) { + this.$message.error('涓婁紶鏂囦欢鏍煎紡鍙兘鏄� ' + this.defaultSettings.accept + ' 鏍煎紡!') + } + if (!isLt2M) { + this.$message.error('涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ' + this.defaultSettings.max + 'MB') + } + return isImg && isLt2M && isRepeat + }, + handleUploadSuccess(response, file, fileList) { + if (response.code == 10000) { + response.data.forEach(f => { + this.fileList.push({ + uid: file.uid, + name: f.name, + url: this.getUrl(f.path), + path: f.path + }) + }) + } else { + // 涓婁紶澶辫触锛屾妸鏄剧ず鐨勪笂浼犳枃浠禠ist涓浉搴斿け璐ョ殑鏂囦欢鍓旈櫎 + this.showList = this.fileList + console.log('涓婁紶澶辫触!') + this.$message.warning('涓婁紶澶辫触!') + } + }, + getContent() { + return this.fileList + }, + getUrl(path) { + if (path.substr(0, 7).toLowerCase() == 'http://' || path.substr(0, 8).toLowerCase() == 'https://') { + return path + } else { + return getFtpUrl() + path + } + } + } +} +</script> + +<style scoped> + /* 鍥剧墖棰勮灞傜骇*/ + .viewer-container { + z-index: 90709102!important; + } + +</style> diff --git a/src/views/components/userAuth/auth.vue b/src/views/components/userAuth/auth.vue new file mode 100644 index 0000000..3e07399 --- /dev/null +++ b/src/views/components/userAuth/auth.vue @@ -0,0 +1,58 @@ +<template> + <win2 :title="title" @close="close"> + <ztree ref="ztree" :nodes="nodes" /> + <div slot="footer" align="center" class="dialog-footer"> + <my-button-v2 name="鍙栨秷" site="form" @click="close" /> + <my-button-v2 name="淇濆瓨" site="form" @click="save" /> + </div> + </win2> +</template> + +<script> +import win2 from '@/views/components/win2' +import myButtonV2 from '@/views/components/myButtonV2' +import ztree from '@/views/components/ztree' +import { getUserAuthZTree } from '@/api/common.js' +export default { + components: { win2, myButtonV2, ztree }, + props: { + setting: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + title: '閫夋嫨鐢ㄦ埛', + nodes: [] + } + }, + created() { + this.getInfo() + }, + methods: { + getInfo() { + if (this.setting.businessType && this.setting.businessId) { + getUserAuthZTree(this.setting).then(res => { + this.nodes = res.data + }) + } + }, + close() { + this.$emit('close') + }, + save() { + const checkedNodes = this.$refs.ztree.getCheckedNodes() + // 濡傛灉鏄崟閫夛紝闇�瑕佸垽鏂�夋嫨鐨勮妭鐐逛釜鏁� + if (this.setting.isRadio != undefined && this.setting.isRadio && checkedNodes.length > 1) { + this.$message.info('鍙兘閫夋嫨涓�涓汉鍛橈紝璇锋鏌ラ噸璇曪紒') + return + } + this.$emit('saveUser', checkedNodes) + this.close() + } + } +} +</script> diff --git a/src/views/components/userAuth/index.vue b/src/views/components/userAuth/index.vue new file mode 100644 index 0000000..47d08ba --- /dev/null +++ b/src/views/components/userAuth/index.vue @@ -0,0 +1,100 @@ +<template> + <win2 :title="title" @close="close"> + <el-form :model="formData" label-width="120px"> + <el-form-item label="宸叉巿鏉冪敤鎴凤細"> + <span v-for="(item ,idx) in formData.userNames" :key="idx"> + {{ idx == 0?'':'銆�' }} + <el-tag type="success"> + {{ item }} + </el-tag> + </span> + </el-form-item> + <el-form-item label="鎺堟潈鐢ㄦ埛锛�"> + <el-button size="mini" type="primary" @click="authShow=true">閫夋嫨...</el-button> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button-v2 name="鍙栨秷" site="form" @click="close" /> + <my-button-v2 name="淇濆瓨" site="form" @click="save" /> + </div> + <!--鐢ㄦ埛閫夋嫨寮圭獥--> + <auth v-if="authShow" :setting="setting" @close="authShow=false" @saveUser="saveUser" /> + </win2> +</template> + +<script> +import win2 from '@/views/components/win2' +import myButtonV2 from '@/views/components/myButtonV2' +import { getAuthUser, saveUserAuth } from '@/api/common.js' +import auth from './auth' +export default { + components: { win2, myButtonV2, auth }, + props: { + setting: { + type: Object, + default: function() { + return {} + } + } + }, + data() { + return { + title: '鎺堟潈鐢ㄦ埛', + formData: { + userIds: [], + userNames: [] + }, + authShow: false + } + }, + created() { + this.getInfo() + }, + methods: { + getInfo() { + if (this.setting.businessType && this.setting.businessId) { + getAuthUser(this.setting).then(res => { + const data = res.data + data.forEach(item => { + this.formData.userIds.push(item.userId) + this.formData.userNames.push(item.userName) + }) + }) + } + }, + saveUser(checkedNodes) { + const userIds = [] + const userNames = [] + checkedNodes.forEach(item => { + userIds.push(item.id) + userNames.push(item.name) + }) + this.formData.userIds = userIds + this.formData.userNames = userNames + }, + close() { + this.$emit('close') + }, + save() { + const params = { + businessType: this.setting.businessType, + businessId: this.setting.businessId, + userIds: this.formData.userIds.join(',') + } + if (!params.businessType || !params.businessId) { + this.$message.error('缂哄皯涓氬姟ID锛屼笟鍔$被鍨嬨��') + return false + } + saveUserAuth(params).then(response => { + debugger + if (response.code == 10000 && response.data > 0) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + } else { + this.$message.error(response.description || '淇濆瓨澶辫触锛�') + } + }) + } + } +} +</script> diff --git a/src/views/components/verify/css/index.css b/src/views/components/verify/css/index.css new file mode 100644 index 0000000..349f633 --- /dev/null +++ b/src/views/components/verify/css/index.css @@ -0,0 +1,1346 @@ +body, html { + -webkit-tap-highlight-color:transparent +} +.userSelNone { + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-sprite-icon { + background:url(data:image/png;base64,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) +} +@media(-webkit-min-device-pixel-ratio:1.5) { + .td-sprite-icon { + background:url(data:image/png;base64,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); + background-size:69px 628px; + -moz-background-size:69px 628px; + -webkit-background-size:69px 628px; + -o-background-size:69px 628px + } +} +.td-pop-slide-title { + padding:9px 0 11px 0; + overflow:hidden +} +.td-pop-3d-title { + text-align:left; + padding:9px 0 11px 0; + overflow:hidden +} +.td-pop-click-title { + text-align:left; + padding:13px 0 10px 0; + overflow:hidden +} +.td-pop-title { + float:left; + height:20px; + font-size:14px; + font-family:PingFangSC-Regular; + font-weight:400; + color:#515151; + line-height:20px; + z-index:99; + text-align:left +} +.td-pop-title-icon-test { + position:absolute; + -webkit-transform:scale(0.8); + -moz-transform:scale(0.8); + -ms-transform:scale(0.8); + -o-transform:scale(0.8); + transform:scale(0.8); + top:-1px; + left:325px; + width:24px; + height:24px +} +.td-pop-title-icon-test:hover>.td-icon-tooltip { + width:50px; + display:block; + opacity:.9; + top:2px; + left:-69px; + color:white +} +.td-pop-hint { + display:inline-block; + margin-left:6px; + width:auto +} +.td-pop-status { + display:inline-block +} +.td-pop-center-cnt { + position:relative +} +.td-pop-center { + width:320px; + height:180px; + background-size:cover; + position:relative; + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-bg-img, .td-3d-bg-img { + position:absolute!important; + top:0!important; + left:0!important +} +.td-bg-slogan { + position:absolute; + right:7px; + bottom:6px; + font-size:12px; + color:#fff; + display:none +} +.td-bg-slogan .td-logo-transparent-icon { + width:12px; + height:12px; + line-height:12px; + display:inline-block; + vertical-align:middle; + margin-right:2px +} +.td-bg-slogan .td-logo-transparent-iconfont { + display:inline-block; + vertical-align:middle; + font-size:12px +} +.td-bg-slogan .td-logo-text { + vertical-align:middle; + -moz-user-select:none; + -o-user-select:none; + -khtml-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + user-select:none +} +.td-slide-wrap { + position:relative; + margin-top:20px +} +.td-pop-slidebar { + background-color:#eaeaea; + height:30px; + border-radius:19px; + margin-top:12px; + overflow:hidden +} +.td-pop-slidebar .td-pop-slidebar-tip { + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none; + opacity:1; + -webkit-transition:opacity 2.3s; + -moz-transition:opacity 2.3s; + -ms-transition:opacity 2.3s; + -o-transition:opacity 2.3s; + transition:opacity 2.3s; + line-height:30px; + text-align:center; + font-family:PingFangSC-Regular; + font-size:12px; + font-weight:400; + color:rgba(141, 142, 146, 0.87); + letter-spacing:1px +} +.td-pop-slidebar .td-pop-slidebar-tip-sub { + font-family:'Fascinate', 'Arial Narrow', Arial, sans-serif; + line-height:32px; + text-align:center; + font-size:15px; + color:grey +} +.td-pop-slidebar .mousedown { + filter:alpha(opacity=0); + opacity:0; + -webkit-transition:opacity .4s; + -moz-transition:opacity .4s; + -ms-transition:opacity .4s; + -o-transition:opacity .4s; + transition:opacity .4s +} +@keyframes highLight { + 0% { + background-position:-84px 0 + } + 100% { + background-position:84px 0 + } +} +.td-pop-slide-identity { + position:absolute; + left:0; + top:100px; + -webkit-transform:translate(0px, 0px); + -moz-transform:translate(0px, 0px); + -ms-transform:translate(0px, 0px); + -o-transform:translate(0px, 0px); + transform:translate(0px, 0px); + filter:drop-shadow(0 0 4px rgba(0, 0, 0, 0.98)) +} +.td-pop-slidetrigger { + position:absolute; + cursor:pointer; + top:-4px; + width:58px; + height:40px; + -webkit-transform:translate(0px, 0px); + -moz-transform:translate(0px, 0px); + -ms-transform:translate(0px, 0px); + -o-transform:translate(0px, 0px); + transform:translate(0px, 0px) +} +.slide .td-pop-footer { + margin:15px 0 +} +.click .td-pop-footer { + margin:19px 0 15px 0 +} +.td-pop-footer { + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-pop-footer .td-icon-set { + border-right:1px solid transparent; + box-sizing:content-box!important; + height:16px +} +.td-pop-footer .icon { + border:1px solid transparent; + width:18px; + height:18px; + cursor:pointer; + display:inline-block; + margin-left:17px; + position:relative; + float:right; + box-sizing:content-box!important +} +.td-pop-footer .icon:hover>.td-icon-tooltip { + display:block; + opacity:.9 +} +.td-pop-footer .td-icon-refresh { + vertical-align:top +} +.td-pop-footer .td-icon-info { + margin:0; + float:left; + width:18px; + height:18px +} +.td-pop-footer .td-home-link { + color:#919399; + text-decoration:none; + vertical-align:bottom; + line-height:16px; + font-size:12px; + float:right +} +.td-pop-footer .td-pop-info { + float:right; + font-size:12px; + color:#919399; + margin-top:-3px +} +.td-pop-footer .td-pop-info span { + line-height:16px; + vertical-align:top; + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-pop-status { + position:absolute; + right:15px; + top:13px +} +.td-pop-status .td-pop-status-mark { + position:relative; + display:inline-block; + margin-left:2px; + vertical-align:top; + width:20px; + height:20px; + border:2px solid #a8a8a8; + border-radius:50%; + background-color:#FFF; + box-sizing:border-box; + -webkit-transition:all .3s ease; + -moz-transition:all .3s ease; + -ms-transition:all .3s ease; + -o-transition:all .3s ease; + transition:all .3s ease +} +.td-pop-status .td-pop-status-mark.checked { + border:2px solid #FFF; + background-color:#249be2; + box-shadow:0 0 5px black +} +.td-pop-status .td-pop-status-mark.checked .no { + color:white +} +.td-pop-status .td-pop-status-mark .no { + position:absolute; + top:50%; + left:0; + margin-top:-10px; + width:100%; + height:20px; + line-height:20px; + font-size:14px; + font-weight:bold; + color:#a8a8a8; + text-align:center; + cursor:default; + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-click-mark { + position:absolute; + margin:-14px 0 0 -14px; + width:28px; + height:28px; + border:3px solid white; + border-radius:50%; + background-color:#249be2; + box-sizing:border-box; + box-shadow:0 0 10px black; + -webkit-transition:all .3s ease; + -moz-transition:all .3s ease; + -ms-transition:all .3s ease; + -o-transition:all .3s ease; + transition:all .3s ease; + opacity:0 +} +.td-click-mark .no { + position:absolute; + top:50%; + left:0; + margin-top:-12px; + width:100%; + height:24px; + line-height:24px; + font-size:18px; + font-weight:bold; + color:white; + text-align:center; + cursor:default; + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-click-mark-sample { + position:absolute; + margin:-14px 0 0 -14px; + width:28px; + height:28px; + border:3px solid white; + border-radius:50%; + background-color:#aaa; + box-sizing:border-box; + box-shadow:0 0 10px black; + -webkit-transition:all .3s ease; + -moz-transition:all .3s ease; + -ms-transition:all .3s ease; + -o-transition:all .3s ease; + transition:all .3s ease; + opacity:0; + pointer-events:none +} +.td-click-mark-sample .no { + position:absolute; + top:50%; + left:0; + margin-top:-12px; + width:100%; + height:24px; + line-height:24px; + font-size:18px; + font-weight:bold; + color:white; + text-align:center; + cursor:default; + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-icon-tooltip { + position:absolute; + top:-29px; + left:-9px; + border-radius:2px; + padding:0 4px; + height:19px; + line-height:19px; + background-color:#5f5f5f; + white-space:nowrap; + font-size:12px; + text-align:center; + color:white; + display:none; + z-index:999 +} +.td-outer-wrapper { + position:fixed; + width:100%; + height:100%; + left:0; + top:0; + z-index:100; + display:none +} +.td-outer-wrapper.feedback { + z-index:102 +} +.td-mask-common { + width:100%; + height:100% +} +.td-mask-common.grey { + background-color:#000; + opacity:.45; + filter:alpha(opacity=45) +} +.td-mask-feedback-cnt { + position:static; + display:inline-block; + margin:0 auto; + text-align:center; + z-index:103; + background:white; + width:180px; + display:none +} +.td-mask-feedback-cnt .title { + font-size:18px; + padding:18px 0 +} +.td-mask-feedback-cnt .footer { + font-size:12px; + line-height:30px; + color:#919399; + border-top:1px solid #eee +} +.td-tooltip-inner { + max-width:250px; + padding:6px 8px; + color:#fff; + text-align:left; + text-decoration:none; + background-color:rgba(0, 0, 0, 0.75); + border-radius:4px; + -webkit-box-shadow:0 2px 8px rgba(0, 0, 0, 0.15); + box-shadow:0 2px 8px rgba(0, 0, 0, 0.15); + min-height:32px +} +.td-pop-title-icon-test { + background-position:-17px -1819px +} +.td-logo-transparent-icon { + background-position:-24px 153px +} +.td-pop-slidetrigger { + background-position:-10px -294px +} +.td-pop-slidetrigger.mousedown { + background-position:-11px -249px +} +.td-btn-cnt .td-logo-icon { + background-position:-18px 97px +} +.td-btn-cnt .td-success-icon { + background-position:-18px 124px +} +.td-btn-cnt .td-fail-icon { + background-position:-16px -74px +} +.td_validate_box .td_logo_img { + background-position:-16px 190px +} +.td_fail_box .td_fail_img.td_validate_fail { + background-position:-19px -178px +} +.td_fail_box .td_fail_img.td_bad_network { + background-position:-15px -142px +} +.td_fail_box .td_fail_img.td_op2much { + background-position:-18px -216px +} +.td_success_box .td_success_img { + background-position:-14px -404px +} +.td-pop-footer .td-icon-close { + background-position:-17px -374px +} +.td-pop-footer .td-icon-refresh { + background-position:-15px -348px +} +.td-pop-footer .td-icon-info { + background-position:-17px 616px +} +img { + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none +} +.td-btn-cnt { + color:#444; + -webkit-box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box +} +.td-btn-cnt span { + margin:0!important; + padding:0!important +} +.td-btn-cnt div { + margin:0!important; + padding:0!important; + -webkit-box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box +} +.td-btn-cnt .td-logo-icon { + margin:0 4px 1px 0!important; + padding:0!important; + display:inline-block; + vertical-align:middle; + width:24px; + height:24px +} +.td-btn-cnt .td-success-icon { + margin:0 4px 1px 0!important; + padding:0!important; + display:inline-block; + vertical-align:middle; + width:24px; + height:20px +} +.td-btn-cnt .td-fail-icon { + margin:0 4px 0 0!important; + padding:0!important; + display:inline-block; + vertical-align:middle; + width:24px; + height:24px; + margin:0 4px 2px 0 \9!important +} +.td-btn-cnt .td-btn-wrapper { + margin:0!important; + padding:0!important; + position:relative; + border-radius:2px; + text-align:center +} +.td-btn-cnt .td-btn-wrapper .td-btn-content { + line-height:40px; + color:#444; + font-size:14px +} +.td-btn-cnt .td-icon-container { + margin:0!important; + padding:0!important; + display:inline-block +} +.td-btn-cnt .td-btn-logo { + cursor:pointer; + display:block; + border:1px solid #ccc; + background:linear-gradient(#fcfcfc, #f5f5f5) +} +.td-btn-cnt .td-btn-logo:hover { + -webkit-transition:all .2s; + -moz-transition:all .2s; + -ms-transition:all .2s; + -o-transition:all .2s; + transition:all .2s; + background:linear-gradient(#f5f5f5, #fcfcfc); + color:#507fff +} +.td-btn-cnt .td-btn-loading { + border:1px solid #ccc; + background:linear-gradient(#fcfcfc, #f5f5f5); + display:none +} +.td-btn-cnt .td-btn-validate { + display:none; + border:1px solid #ccc; + background:linear-gradient(#fcfcfc, #f5f5f5) +} +.td-btn-cnt .td-btn-success { + margin:0!important; + padding:0!important; + position:absolute; + top:0; + left:0; + cursor:default; + height:0; + overflow:hidden; + background-color:rgba(80, 127, 255, 0.1); + -webkit-transition:height .33s ease-out; + -moz-transition:height .33s ease-out; + -ms-transition:height .33s ease-out; + -o-transition:height .33s ease-out; + transition:height .33s ease-out; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-btn-cnt .td-btn-success span { + opacity:0; + -webkit-transition:opacity .36s; + -moz-transition:opacity .36s; + -ms-transition:opacity .36s; + -o-transition:opacity .36s; + transition:opacity .36s +} +.td-btn-cnt .td-btn-success .td-btn-success-content { + margin:0!important; + padding:0!important; + height:100%; + box-sizing:border-box; + width:100%; + -webkit-transition:height .1s .3s linear; + -moz-transition:height .1s .3s linear; + -ms-transition:height .1s .3s linear; + -o-transition:height .1s .3s linear; + transition:height .1s .3s linear; + border:1px solid #507fff; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-btn-cnt .td-btn-fail { + display:none; + cursor:pointer; + border:1px solid #ccc; + background:linear-gradient(#fcfcfc, #f5f5f5) +} +.td-btn-cnt.loading .td-btn-validate { + display:none +} +.td-btn-cnt.loading .td-btn-fail { + display:none +} +.td-btn-cnt.loading .td-btn-logo { + display:none +} +.td-btn-cnt.loading .td-btn-success { + display:none +} +.td-btn-cnt.loading .td-btn-loading { + display:block +} +.td-btn-cnt.loading .td-btn-loading .td-logo-icon { + animation:icon_spin .9s ease infinite both +} +.td-btn-cnt.validate .td-btn-validate { + display:block +} +.td-btn-cnt.validate .td-btn-fail { + display:none +} +.td-btn-cnt.validate .td-btn-logo { + display:none +} +.td-btn-cnt.validate .td-btn-success { + display:none +} +.td-btn-cnt.validate .td-btn-loading { + display:none +} +.td-btn-cnt.validate .td-btn-loading .td-logo-icon { + animation:none +} +.td-btn-cnt.success { + pointer-events:none +} +.td-btn-cnt.success .td-btn-logo { + display:none +} +.td-btn-cnt.success .td-btn-success { + height:40px +} +.td-btn-cnt.success .td-btn-success .td-icon-container { + animation:bounce .36s ease; + animation-fill-mode:backwards +} +.td-btn-cnt.success .td-btn-success span { + opacity:1 +} +.td-btn-cnt.success .td-btn-loading { + display:none +} +.td-btn-cnt.fail .td-btn-fail { + display:block +} +.td-btn-cnt.fail .td-btn-fail .td-fail-icon { + animation-fill-mode:backwards; + animation:shrink .33s ease +} +.td-btn-cnt.fail .td-btn-validate { + display:none +} +.td-btn-cnt.fail .td-btn-logo { + display:none +} +.td-btn-cnt.fail .td-btn-success { + display:none +} +.td-btn-cnt.fail .td-btn-loading { + display:none +} +.td-btn-cnt.fail .td-btn-loading .td-logo-icon { + animation:none +} +.td-popup-info { + -moz-user-select:none; + -webkit-user-select:none; + -ms-user-select:none; + -khtml-user-select:none; + user-select:none; + display:none; + height:124px +} +.td-popup-info .td-popup-content { + position:relative; + height:34px; + text-align:center +} +.td-popup-info .td-popup-content .td_validate_box { + position:absolute; + top:33px; + left:50%; + margin-left:-19px; + width:38px; + height:38px; + display:none +} +.td-popup-info .td-popup-content .td_validate_box .td_logo_img { + padding:0!important; + margin:0!important; + display:inline-block; + width:25px; + height:25px; + -webkit-animation:icon_rotate 1.9s linear infinite both; + -o-animation:icon_rotate 1.9s linear infinite both; + -moz-animation:icon_rotate 1.9s linear infinite both; + animation:icon_rotate 1.9s linear infinite both +} +.td-popup-info .td-popup-content .td_fail_box { + position:absolute; + top:33px; + left:50%; + margin-left:-14px; + width:28px; + height:28px; + display:none +} +.td-popup-info .td-popup-content .td_fail_box .td_fail_img { + padding:0!important; + margin:0!important; + display:inline-block; + width:28px; + height:28px +} +.td-popup-info .td-popup-content .td_success_box { + position:absolute; + top:33px; + left:50%; + margin-left:-14px; + border-radius:50%; + width:28px; + height:28px; + display:none +} +.td-popup-info .td-popup-content .td_success_box .td_success_img { + padding:0!important; + margin:0!important; + display:inline-block; + width:28px; + height:28px +} +.td-popup-info .td-popup-content .td_validate_msg { + padding-top:72px; + text-align:center; + font-size:12px; + font-family:PingFangSC-Regular; + font-weight:400 +} +.td-popup-info .td-popup-footer { + text-align:center; + font-size:12px; + color:#797b80; + margin-top:30px; + line-height:30px; + border-top:1px solid #ddd +} +.td-outer-wrapper.pop .slide .td-pop-slide-area, .td-outer-wrapper.pop .click .td-pop-slide-area { + padding:0 15px; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-outer-wrapper.pop .slide .td-pop-click-area, .td-outer-wrapper.pop .click .td-pop-click-area { + padding:0 15px; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-outer-wrapper.pop .slide .td-pop-3d-area, .td-outer-wrapper.pop .click .td-pop-3d-area { + padding:0 15px; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-outer-wrapper.pop .slide .td-pop-center-cnt, .td-outer-wrapper.pop .click .td-pop-center-cnt { + overflow:hidden +} +.td-outer-wrapper.pop .slide .td-pop-center-cnt .td-pop-click-msg, .td-outer-wrapper.pop .click .td-pop-center-cnt .td-pop-click-msg { + font-family:PingFangSC-Regular; + position:absolute; + top:-28px; + left:0; + text-align:center; + width:320px; + line-height:28px; + color:white; + z-index:20; + transform:translateZ(0) +} +.td-outer-wrapper.pop .slide .td-pop-center-cnt .td-pop-click-msg.success, .td-outer-wrapper.pop .click .td-pop-center-cnt .td-pop-click-msg.success { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#507fff +} +.td-outer-wrapper.pop .slide .td-pop-center-cnt .td-pop-click-msg.fail, .td-outer-wrapper.pop .click .td-pop-center-cnt .td-pop-click-msg.fail { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#fc825b +} +.td-outer-wrapper.pop .slide .td-pop-center-cnt .td-pop-click-msg.warn, .td-outer-wrapper.pop .click .td-pop-center-cnt .td-pop-click-msg.warn { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#ffa421 +} +.td-outer-wrapper.pop .slide .td-pop-center, .td-outer-wrapper.pop .click .td-pop-center { + overflow:hidden +} +.td-outer-wrapper.pop .slide .td-pop-center.disabled, .td-outer-wrapper.pop .click .td-pop-center.disabled { + pointer-events:none +} +.td-outer-wrapper.pop .slide .td-pop-center .td-pop-slide-msg, .td-outer-wrapper.pop .click .td-pop-center .td-pop-slide-msg { + font-family:PingFangSC-Regular; + font-weight:400; + color:rgba(255, 255, 255, 0.87); + line-height:28px; + position:relative; + top:-28px; + text-align:center; + display:block; + color:white; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0); + z-index:20; + font-size:14px +} +.td-outer-wrapper.pop .slide .td-pop-center .td-pop-slide-msg.success, .td-outer-wrapper.pop .click .td-pop-center .td-pop-slide-msg.success { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#507fff +} +.td-outer-wrapper.pop .slide .td-pop-center .td-pop-slide-msg.fail, .td-outer-wrapper.pop .click .td-pop-center .td-pop-slide-msg.fail { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#fc825b +} +.td-outer-wrapper.pop .slide .td-pop-center .td-pop-slide-msg.warn, .td-outer-wrapper.pop .click .td-pop-center .td-pop-slide-msg.warn { + -webkit-animation:show_msg 1.5s linear; + -o-animation:show_msg 1.5s linear; + -moz-animation:show_msg 1.5s linear; + animation:show_msg 1.5s linear; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards; + background-color:#ffa421 +} +.td-outer-wrapper.pop .slide .td-pop-center .refresh-bg, .td-outer-wrapper.pop .click .td-pop-center .refresh-bg { + display:block; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#E5ffffff, ff, endColorstr=#E5ffffff, ff); +background:rgba(255, 255, 255, 0.9); +position:absolute; +left:0; +top:-1px; +width:320px; +height:182px; +z-index:99; +text-align:center +} +.td-outer-wrapper.pop .slide .td-pop-center .initial, .td-outer-wrapper.pop .click .td-pop-center .initial { + background:#e4e4e4 +} +.td-outer-wrapper.pop .slide .td-pop-center .loading-icon, .td-outer-wrapper.pop .click .td-pop-center .loading-icon { + width:40px; + height:40px; + margin:70px auto 0 +} +.td-outer-wrapper { + box-sizing:content-box; + position:fixed; + width:100%; + height:100%; + left:0; + top:0; + z-index:100; + display:none; + -webkit-transition:opacity 1.5s; + -moz-transition:opacity 1.5s; + -ms-transition:opacity .5s; + -o-transition:opacity .5s; + transition:opacity .5s; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; + opacity:0 +} +.td-pop-cnt { + position:absolute; + background-color:white; + overflow:hidden; + z-index:1001; + border-radius:3px; + -webkit-transition:width .5s ease, height .5s ease; + -moz-transition:width .5s ease, height .5s ease; + -ms-transition:width .5s ease, height .5s ease; + -o-transition:width .5s ease, height .5s ease; + transition:width .5s ease, height .5s ease; + -webkit-transform:translateZ(0); + -moz-transform:translateZ(0); + -ms-transform:translateZ(0); + -o-transform:translateZ(0); + transform:translateZ(0) +} +.td-pop-cnt.click { + width:350px; + height:280px +} +.td-pop-cnt.slide { + width:350px; + height:315px +} +.td-pop-cnt.float { + position:absolute!important; + box-shadow:0 0 10px #ccc +} +.td-pop-cnt.center { + -webkit-transform:translate(-50%, -50%); + -moz-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + -o-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); + top:50%; + left:50% +} +.td-pop-cnt.center-ie8 { + top:50%; + left:50% +} +.td-pop-cnt.center-ie8.slide { + margin-left:-175px; + margin-top:-140px +} +.td-pop-cnt.center-ie8.click { + margin-left:-175px; + margin-top:-157.5px +} +.rollback-animation { + -webkit-animation:rollbackAnimation .9s ease; + -o-animation:rollbackAnimation .9s ease; + -moz-animation:rollbackAnimation .9s ease; + animation:rollbackAnimation .9s ease; + -webkit-animation-fill-mode:backwards; + -o-animation-fill-mode:backwards; + -moz-animation-fill-mode:backwards; + animation-fill-mode:backwards +} +@keyframes rollbackAnimation { + 100% { + -webkit-transform:translateX(0px); + -moz-transform:translateX(0px); + -ms-transform:translateX(0px); + -o-transform:translateX(0px); + transform:translateX(0px) + } +} +.shake { + -webkit-animation:shake .23s linear infinite both; + -o-animation:shake .23s linear infinite both; + -moz-animation:shake .23s linear infinite both; + animation:shake .23s linear infinite both +} +@keyframes shake { + 25% { + margin-left:-6px + } + 75% { + margin-left:6px + } + 100% { + margin-left:0 + } +} +@keyframes td_success_pie { + 25% { + -webkit-transform:rotate(25deg); + -moz-transform:rotate(25deg); + -ms-transform:rotate(25deg); + -o-transform:rotate(25deg); + transform:rotate(25deg) + } + 100% { + -webkit-transform:rotate(-275deg); + -moz-transform:rotate(-275deg); + -ms-transform:rotate(-275deg); + -o-transform:rotate(-275deg); + transform:rotate(-275deg) + } +} +@keyframes td_success_filter { + 50.9% { + opacity:0 + } + 51% { + opacity:1 + } + 100% { + opacity:1 + } +} +@keyframes td_success_icon { + 25% { + -webkit-transform:translate(-25px, 21px); + -moz-transform:translate(-25px, 21px); + -ms-transform:translate(-25px, 21px); + -o-transform:translate(-25px, 21px); + transform:translate(-25px, 21px) + } + 75% { + -webkit-transform:translate(7px, -4px); + -moz-transform:translate(7px, -4px); + -ms-transform:translate(7px, -4px); + -o-transform:translate(7px, -4px); + transform:translate(7px, -4px) + } + 100% { + -webkit-transform:translate(5px, -2px); + -moz-transform:translate(5px, -2px); + -ms-transform:translate(5px, -2px); + -o-transform:translate(5px, -2px); + transform:translate(5px, -2px) + } +} +@keyframes icon_spin { + 0% { + -webkit-transform:rotateY(0deg); + -moz-transform:rotateY(0deg); + -ms-transform:rotateY(0deg); + -o-transform:rotateY(0deg); + transform:rotateY(0deg) + } + 100% { + -webkit-transform:rotateY(360deg); + -moz-transform:rotateY(360deg); + -ms-transform:rotateY(360deg); + -o-transform:rotateY(360deg); + transform:rotateY(360deg) + } +} +@keyframes icon_rotate { + 0% { + -webkit-transform:rotate(0deg); + -moz-transform:rotate(0deg); + -ms-transform:rotate(0deg); + -o-transform:rotate(0deg); + transform:rotate(0deg) + } + 100% { + -webkit-transform:rotate(360deg); + -moz-transform:rotate(360deg); + -ms-transform:rotate(360deg); + -o-transform:rotate(360deg); + transform:rotate(360deg) + } +} +@keyframes shrink { + 0% { + -webkit-transform:scale(0.66); + -moz-transform:scale(0.66); + -ms-transform:scale(0.66); + -o-transform:scale(0.66); + transform:scale(0.66) + } + 90% { + -webkit-transform:scale(0.99); + -moz-transform:scale(0.99); + -ms-transform:scale(0.99); + -o-transform:scale(0.99); + transform:scale(0.99) + } +} +@keyframes show_msg { + 16.7% { + top:0 + } + 83.3% { + top:0 + } + 100% { + top:-28px + } +} +@keyframes bounce { + 0% { + -webkit-transform:translateY(39px); + -moz-transform:translateY(39px); + -ms-transform:translateY(39px); + -o-transform:translateY(39px); + transform:translateY(39px); + opacity:0 + } + 40% { + opacity:0 + } + 77% { + -webkit-transform:translateY(-6px); + -moz-transform:translateY(-6px); + -ms-transform:translateY(-6px); + -o-transform:translateY(-6px); + transform:translateY(-6px) + } + 100% { + -webkit-transform:translateY(-2px); + -moz-transform:translateY(-2px); + -ms-transform:translateY(-2px); + -o-transform:translateY(-2px); + transform:translateY(-2px); + opacity:1 + } +} +@keyframes move { + 0% { + -ms-transform:perspective(800px) rotateX(-20deg) rotateY(30deg); + -moz-transform:perspective(800px) rotateX(-20deg) rotateY(30deg); + -webkit-transform:perspective(800px) rotateX(-20deg) rotateY(30deg); + -o-transform:perspective(800px) rotateX(-20deg) rotateY(30deg); + transform:perspective(800px) rotateX(-20deg) rotateY(30deg) + } + 25% { + -ms-transform:perspective(800px) rotateX(-20deg) rotateY(90deg); + -moz-transform:perspective(800px) rotateX(-20deg) rotateY(90deg); + -webkit-transform:perspective(800px) rotateX(-20deg) rotateY(90deg); + -o-transform:perspective(800px) rotateX(-20deg) rotateY(90deg); + transform:perspective(800px) rotateX(-20deg) rotateY(90deg) + } + 50% { + -ms-transform:perspective(800px) rotateX(-20deg) rotateY(180deg); + -moz-transform:perspective(800px) rotateX(-20deg) rotateY(180deg); + -webkit-transform:perspective(800px) rotateX(-20deg) rotateY(180deg); + -o-transform:perspective(800px) rotateX(-20deg) rotateY(180deg); + transform:perspective(800px) rotateX(-20deg) rotateY(180deg) + } + 75% { + -ms-transform:perspective(800px) rotateX(-20deg) rotateY(270deg); + -moz-transform:perspective(800px) rotateX(-20deg) rotateY(270deg); + -webkit-transform:perspective(800px) rotateX(-20deg) rotateY(270deg); + -o-transform:perspective(800px) rotateX(-20deg) rotateY(270deg); + transform:perspective(800px) rotateX(-20deg) rotateY(270deg) + } + 100% { + -ms-transform:perspective(800px) rotateX(-20deg) rotateY(360deg); + -moz-transform:perspective(800px) rotateX(-20deg) rotateY(360deg); + -webkit-transform:perspective(800px) rotateX(-20deg) rotateY(360deg); + -o-transform:perspective(800px) rotateX(-20deg) rotateY(360deg); + transform:perspective(800px) rotateX(-20deg) rotateY(360deg) + } +} +.td-pop-3d-area .td-pop-center-cnt { + background:#788093 +} +#td-3d-box { + width:120px; + height:120px; + margin:25px auto; + position:relative; + cursor:pointer; + -webkit-transform-style:preserve-3d; + -moz-transform-style:preserve-3d; + -ms-transform-style:preserve-3d; + -o-transform-style:preserve-3d; + transform-style:preserve-3d +} +#td-3d-box>div { + width:100%; + height:100%; + position:absolute; + top:0; + left:0 +} +#td-3d-box>div img { + width:100%; + height:100%; + object-fit:cover +} +.td-3dface>.td-3d-point { + position:absolute; + width:0px; + height:0px; + overflow:hidden +} +.td-3dface>.td-3d-topLeftPoint { + left:0; + top:0; + height:1px; + width:100%; + background-color:#eee; + color:#eee +} +.td-3dface>.td-3d-topRightPoint { + right:0; + top:0; + height:100%; + width:1px; + background-color:#eee; + color:#eee +} +.td-3dface>.td-3d-bottomLeftPoint { + left:0; + bottom:0; + height:100%; + width:1px; + background-color:#eee; + color:#eee +} +.td-3dface>.td-3d-bottomRightPoint { + right:0; + bottom:0; + height:1px; + width:100%; + background-color:#eee; + color:#eee +} +.td-3d-face-0 { + -ms-transform:translateZ(60px); + -moz-transform:translateZ(60px); + -webkit-transform:translateZ(60px); + -o-transform:translateZ(60px); + transform:translateZ(60px) +} +.td-3d-face-1 { + -ms-transform:rotateY(180deg) translateZ(60px); + -moz-transform:rotateY(180deg) translateZ(60px); + -webkit-transform:rotateY(180deg) translateZ(60px); + -o-transform:rotateY(180deg) translateZ(60px); + transform:rotateY(180deg) translateZ(60px) +} +.td-3d-face-2 { + -ms-transform:translateX(-60px) rotateY(-90deg); + -moz-transform:translateX(-60px) rotateY(-90deg); + -webkit-transform:translateX(-60px) rotateY(-90deg); + -o-transform:translateX(-60px) rotateY(-90deg); + transform:translateX(-60px) rotateY(-90deg) +} +.td-3d-face-3 { + -ms-transform:translateX(60px) rotateY(90deg); + -moz-transform:translateX(60px) rotateY(90deg); + -webkit-transform:translateX(60px) rotateY(90deg); + -o-transform:translateX(60px) rotateY(90deg); + transform:translateX(60px) rotateY(90deg) +} +.td-3d-face-4 { + -ms-transform:translateY(-60px) rotateX(90deg); + -moz-transform:translateY(-60px) rotateX(90deg); + -webkit-transform:translateY(-60px) rotateX(90deg); + -o-transform:translateY(-60px) rotateX(90deg); + transform:translateY(-60px) rotateX(90deg) +} +.td-3d-face-5 { + -ms-transform:translateY(60px) rotateX(-90deg); + -moz-transform:translateY(60px) rotateX(-90deg); + -webkit-transform:translateY(60px) rotateX(-90deg); + -o-transform:translateY(60px) rotateX(-90deg); + transform:translateY(60px) rotateX(-90deg) +} +#__vconsole .vc-switch, #__vconsole .vc-mask { + z-index:101!important +} +#__vconsole .vc-panel { + z-index:102!important +} diff --git a/src/views/components/verify/img/loading.gif b/src/views/components/verify/img/loading.gif new file mode 100644 index 0000000..c0849c1 --- /dev/null +++ b/src/views/components/verify/img/loading.gif Binary files differ diff --git a/src/views/components/verify/img/vb.png b/src/views/components/verify/img/vb.png new file mode 100644 index 0000000..3fb9df7 --- /dev/null +++ b/src/views/components/verify/img/vb.png Binary files differ diff --git a/src/views/components/verify/index.vue b/src/views/components/verify/index.vue new file mode 100644 index 0000000..364b53a --- /dev/null +++ b/src/views/components/verify/index.vue @@ -0,0 +1,305 @@ +<template> + <div> + + <div class="td-outer-wrapper pop " style="display: block; opacity: 1;"> + <div class="td-mask-common background grey" /> + <div + class="td-pop-cnt center slide" + :style="'left:'+left+';top:'+top+';width: 350px; height: 315px; transform: translate(-50%, -50%) scale(1);'" + > + <div class="td-pop-slide-area"> + <div class="td-pop-slide-title"> + <div class="td-pop-title">璇锋嫋鍔ㄤ笅鏂规粦鍧楀畬鎴愭嫾鍥� + </div> + </div> + <div class="td-pop-center"> + <transition name="el-zoom-in-top"> + <el-alert + v-show="msg.show" + :title="msg.text" + :type="msg.type" + center + :closable="false" + style="position: absolute;z-index: 10;border-radius: unset;" + show-icon + /> + </transition> + <!--鑳屾櫙鍥�--> + <canvas class="td-bg-img" width="320" height="180" /> + <div v-show="loading" class="refresh-bg"> + <img src="./img/loading.gif" class="loading-icon"> + </div> +<!-- <div class="td-bg-slogan" style="display: block;"> + <!–<div class="td-logo-transparent-icon td-sprite-icon" />–> + <span class="td-logo-transparent-iconfont">鏅鸿兘楠岃瘉</span> + </div>--> + <img + class="td-pop-slide-identity" + src="" + draggable="false" + style="top: 116px; transform: translate(0px, 0px); opacity: 1;" + > + </div> + <!--婊戝潡--> + <div class="td-slide-wrap"> + <div class="td-pop-slidebar"> + <div class="td-pop-slidebar-tip">璇峰悜鍙虫嫋鍔ㄦ粦鍧� + </div> + </div> + <div + :class="'td-pop-slidetrigger td-sprite-icon '+mousedown" + style="transform: translate(0px, 0px);" + @mousedown="handleMouseDown" + /> + </div> + <div class="td-pop-footer"> + <div class="td-icon-set"> + <div class="td-icon-close td-sprite-icon icon" @click="hide"> + <div class="td-icon-tooltip" style="right:-8px;left:auto;">鍏抽棴 + </div> + </div> + <div class="td-icon-refresh td-sprite-icon icon" @click="getVerify"> + <div class="td-icon-tooltip">鍒锋柊 + </div> + </div> + <!--<a id="jump2feedback" style="display: block" href="http://static.tongdun.net/captcha/test/index.html?seqId=1561081035175937S365328C48488966,1561081042275149S365328C03293221,1561081058162146S365328C42730006,1561081659566994S35525D734520462,1561082259315562S35525D737834014,1561082859159316S35525D737251353,1561083458396777S365328C43056286,1561086261446326S35525D733771073&partner=tongdun&appName=x_tongdun2_web" target="_blank">--> + <!--<div class="td-icon-info td-sprite-icon icon">--> + <!--<div class="td-icon-tooltip">鍙嶉--> + <!--</div>--> + <!--</div>--> + <!--</a>--> + </div> + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +import { getVerify, checkVerify } from '@/api/system/verify' + +export default { + props: { + left: { + type: String, + default: '70%' + }, + top: { + type: String, + default: '50%' + } + }, + data() { + return { + loading: false, + state: 0, // 0鏉惧紑锛�1鎸変笅 + vSlideLeftpx: 0, // 婊戝潡璺濈宸︿晶鐨勮窛绂� + mousedown: '', + msg: { + show: false, + type: '', + text: '' + }, + token: '', + startTime: 0, + endTime: 0 + } + }, + mounted() { + this.getVerify() + const that = this + document.onmousemove = this.handelMouseMove + document.onmouseup = this.handleMouseUp + + document.querySelector('.td-pop-slidetrigger').addEventListener('touchstart', function(e) { + that.handleMouseDown(e) + }) + document.querySelector('.td-pop-slidetrigger').addEventListener('touchmove', function(e) { + that.handelMouseMove(e) + e.preventDefault() // 鑻ラ樆姝㈤粯璁や簨浠讹紝鍒欏湪闀挎寜鍏冪礌涓婃粦鍔ㄦ椂锛岄〉闈㈡槸涓嶆粴鍔ㄧ殑锛� + }) + + document.querySelector('.td-pop-slidetrigger').addEventListener('touchend', function(e) { + // 鑻ユ墜鎸囩寮�灞忓箷鏃讹紝鏃堕棿灏忎簬鎴戜滑璁剧疆鐨勯暱鎸夋椂闂达紝鍒欎负鐐瑰嚮浜嬩欢锛屾竻闄ゅ畾鏃跺櫒锛岀粨鏉熼暱鎸夐�昏緫 + that.handleMouseUp(e) + }) + }, + created() { + + }, + methods: { + getVerify() { + this.loading = true + this.setLeft(0) + + getVerify({}).then(response => { + // 濉厖鐢诲竷 + const c = document.querySelector('.td-bg-img') + const ctx = c.getContext('2d') + const img = new Image() // 鍒涘缓img鍏冪礌 + img.onload = function() { + ctx.drawImage(img, 0, 0) + } + img.src = response.data.bg + + document.querySelector('.td-pop-slide-identity').src = response.data.slider + document.querySelector('.td-pop-slide-identity').style.top = response.data.y + 'px' + this.token = response.data.uuid + this.loading = false + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-21 14:09 + * @Description :榧犳爣鐐瑰嚮 + */ + handleMouseDown() { + this.state = 1 + this.mousedown = 'mousedown' + // 璁板綍婊戝潡浣嶇疆 + this.vSlideLeftpx = document.querySelector('.td-pop-slidetrigger').getBoundingClientRect().left + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-21 14:09 + * @Description : 榧犳爣鏉惧紑 + */ + handleMouseUp() { + this.state = 0 + this.endTime = new Date().getTime() + if (this.startTime == 0) { + return + } + const time = this.endTime - this.startTime + + const x = document.querySelector('.td-pop-slidetrigger').getBoundingClientRect().left - this.vSlideLeftpx + checkVerify({ x: x, token: this.token }).then(response => { + if (response.data.verify != '-1') { + this.msg.show = true + const rate = (time / 1000).toFixed(2) + this.msg.text = '楠岃瘉閫氳繃锛�' + rate + '绉掔殑閫熷害瓒呰繃' + this.getRate(rate) + '鐨勭敤鎴�' + this.msg.type = 'success' + setTimeout(() => { + this.msg.show = false + this.$emit('success', { verify: response.data.verify, x: response.data.x, uuid: response.data.uuid }) + this.$emit('hide') + }, 1200) + } else { + this.msg.show = true + this.msg.text = '楠岃瘉澶辫触锛岃閲嶈瘯銆�' + this.msg.type = 'error' + setTimeout(() => { + this.msg.show = false + }, 1200) + const timer = setInterval(() => { + const left = document.querySelector('.td-pop-slidetrigger').getBoundingClientRect().left - this.vSlideLeftpx - 2 + this.setLeft(left) + if (document.querySelector('.td-pop-slidetrigger').getBoundingClientRect().left - this.vSlideLeftpx <= 0) { + clearInterval(timer) + this.setLeft(0) + } + }, 1) + this.getVerify() + } + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-21 14:06 + * @Description : 璁剧疆婊戝潡鍥剧墖宸︿晶鍋忕Щ + */ + setLeft(left) { + if (left == 0) { + this.mousedown = '' + } + document.querySelector('.td-pop-slidetrigger').style.left = left + 'px' + document.querySelector('.td-pop-slide-identity').style.left = left + 'px' + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-21 14:09 + * @Description :榧犳爣绉诲姩 + */ + handelMouseMove(e) { + if (this.state !== 1) { + this.startTime = 0 + return + } + if (this.startTime == 0) { + this.startTime = new Date().getTime() + } + + let x + if (!e.touches) { // 鍏煎绉诲姩绔� + x = e.clientX + } else { // 鍏煎PC绔� + x = e.touches[0].pageX + } + if ((x - this.vSlideLeftpx) < 0) { + this.setLeft(0) + } else if ((x - this.vSlideLeftpx) > 300) { + this.setLeft(275) + } else { + this.setLeft(x - this.vSlideLeftpx - 20) + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-25 14:50 + * @Description :鍏抽棴 + */ + hide() { + this.$emit('hide') + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-06-25 19:41 + * @Description : 瓒呰繃鐧惧垎涔嬪嚑鐨勭敤鎴� + */ + getRate(rate) { + if (rate < 0.8) { + return '99.99%' + } else if (rate < 1) { + return '99.96%' + } else if (rate < 1.1) { + return '99.38%' + } else if (rate < 1.2) { + return '99.24%' + } else if (rate < 1.3) { + return '99%' + } else if (rate < 1.4) { + return '98.88%' + } else if (rate < 1.5) { + return '98%' + } else if (rate < 1.6) { + return '96.33%' + } else if (rate < 1.7) { + return '96%' + } else if (rate < 2) { + return '95.55%' + } else if (rate < 2.3) { + return '94%' + } else if (rate < 2.6) { + return '91%' + } else if (rate < 3) { + return '80%' + } else if (rate < 4) { + return '40%' + } else if (rate < 5) { + return '1%' + } else { + return '0.01%' + } + } + } +} +</script> + +<style src="./css/index.css"></style> +<style lang="scss"> + .td-outer-wrapper.pop{min-height: 768px; + .td-pop-cnt.center{left:70%;} + } +</style> + diff --git a/src/views/components/win/index.vue b/src/views/components/win/index.vue new file mode 100644 index 0000000..8952d70 --- /dev/null +++ b/src/views/components/win/index.vue @@ -0,0 +1,68 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :close-on-click-modal="false" + :title="title" + :visible.sync="visible" + :width="width" + top="72px" + :append-to-body="true" + :destroy-on-close="true" + :lock-scroll="true" + @close="close" + > + <slot /> + <span slot="footer"> + <slot name="footer" /> + </span> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + title: { + type: String, + default: '' + }, + width: { + type: String, + default: '50%' + } + }, + data() { + return { + visible: true + } + }, + mounted() { + try { + window.onresize = function() { + document.querySelectorAll('.cus-dialog').forEach(v => { + v.style.width = document.querySelector('.app-main').clientWidth + 'px' + v.style.height = '100%' + }) + } + window.onresize() + } catch (e) { + console.error(e) + } + }, + methods: { + close() { + this.visible = false + this.$emit('close') + } + } +} +</script> + +<style scoped> +/deep/ .el-dialog__body { + max-height: calc(100vh - 200px); + overflow-y: auto; + padding-top: 20px; +} +</style> diff --git a/src/views/components/win2/index.vue b/src/views/components/win2/index.vue new file mode 100644 index 0000000..8f15608 --- /dev/null +++ b/src/views/components/win2/index.vue @@ -0,0 +1,45 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog :destroy-on-close="true" :fullscreen="fullscreen" :width="width" :title="title" :visible.sync="visible" append-to-body @close="close"> + <div class="app-container"> + <slot /> + <div style="margin-top: 30px"> + <slot name="footer" /> + </div> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + fullscreen: { + type: Boolean, + default: false + }, + title: { + type: String, + default: '' + }, + width: { + type: String, + default: '50%' + } + }, + data() { + return { + visible: true + } + }, + methods: { + close() { + this.visible = false + this.$emit('close') + } + } +} +</script> +<style scoped lang="scss"> +</style> diff --git a/src/views/components/win3/index.vue b/src/views/components/win3/index.vue new file mode 100644 index 0000000..a304625 --- /dev/null +++ b/src/views/components/win3/index.vue @@ -0,0 +1,79 @@ +<!-- + * @Author: your name + * @Date: 2022-03-25 15:45:02 + * @LastEditTime: 2022-03-31 17:06:05 + * @LastEditors: Please set LastEditors + * @Description: 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + * @FilePath: /ts-admin/src/views/components/win3/indexYear.vue +--> +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + center + :title="title" + :visible.sync="visible" + width="800px" + top="80px" + :append-to-body="true" + :destroy-on-close="true" + @close="close" + > + <slot /> + <div > + <slot name="footer" /> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + title: { + type: String, + default: '' + } + }, + data() { + return { + visible: true + } + }, + mounted() { + try { + window.onresize = function() { + document.querySelectorAll('.cus-dialog').forEach(v => { + v.style.width = document.querySelector('.app-main').clientWidth + 'px' + v.style.height = '100%' + }) + } + window.onresize() + } catch (e) { + console.error(e) + } + }, + methods: { + close() { + this.visible = false + this.$emit('close') + } + } +} +</script> + +<style lang="scss" scoped> +.el-dialog__body { + max-height: calc(100vh - 200px); + overflow-y: auto; + padding-top: 20px; + border-radius: 20px; +} +.el-dialog { + border-radius: 10px; + .el-dialog__header{ + text-align: left; + font-weight: 600; + } +} +</style> diff --git a/src/views/components/ztree/check.vue b/src/views/components/ztree/check.vue new file mode 100644 index 0000000..a583c76 --- /dev/null +++ b/src/views/components/ztree/check.vue @@ -0,0 +1,245 @@ +<template> + <span> + <el-button size="mini" :disabled="disabled" type="primary" @click="choose">閫夋嫨...</el-button> + <div> + <!--closable--> + <el-tag + v-for="tag in tags" + :key="tag.name" + :type="tag.type" + @close="handleClose(tag)" + > + {{ tag.name }} + </el-tag> + </div> + <el-dialog + :append-to-body="true" + title="閫夋嫨" + :visible.sync="dialogVisible" + width="50%" + > + <div style="max-height: 350px;overflow-y: auto;"> + <ul :id="id" class="ztree" /> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="_success">纭� 瀹�</el-button> + </span> + </el-dialog> + + </span> +</template> + +<script> +import $ from 'jquery' +import '@/plugins/ztree/js/jquery-1.4.4.min.js' +import '@/plugins/ztree/js/jquery.ztree.core.min.js' +import '@/plugins/ztree/js/jquery.ztree.excheck.js' +import request from '@/utils/request' + +export default { + props: { + // 鏁版嵁婧� + nodes: { + type: Array, + default: function() { + return [] + } + }, + // 缃戠粶璇锋眰鏁版嵁 + http: { + type: Object, + default: function() { + return null + } + }, + // 鏄惁鍏ㄩ儴灞曞紑 + expandAll: { + type: Boolean, + default: function() { + return false + } + }, + // 鏄惁绂佺敤 + disabled: { + type: Boolean, + default: function() { + return false + } + }, + // 宸查�夐」 + checked: { + type: Array, + default: function() { + return [] + } + } + }, + data() { + return { + dialogVisible: false, // 寮圭獥 + id: 'treeDemo', + setting: { + check: { + enable: true, + chkboxType: { 'Y': 'ps', 'N': 's' } + }, + data: { + simpleData: { + enable: true, + idKey: 'id', + pIdKey: 'pid', + rootPId: 0 + } + }, + view: { + showIcon: false, + showLine: true + } + }, + zNodes: this.nodes, + tags: [], + chooseFlag: false + } + }, + watch: { + nodes(v) { + this.$set(this, 'zNodes', v) + this.init() + }, + zNodes() { + this.initTag() + } + }, + mounted() { + this.id = 'treeDemo' + new Date().getTime() + if (this.nodes.length <= 0 && this.http != null) { + this.getHttpData() + } + }, + methods: { + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-08-08 16:45 + * @Description : 閫夊畬鏀跺伐 + */ + _success() { + this.dialogVisible = false + const treeObj = window.$.fn.zTree.getZTreeObj(this.id) + const nodes = treeObj.getCheckedNodes(true) + this.zNodes.forEach(n => { + n.checked = false + nodes.forEach(v => { + if (n.id == v.id) { + n.checked = true + } + }) + }) + this.zNodes = Object.assign([], this.zNodes) + this.$emit('setView', nodes) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-08-08 16:42 + * @Description :鑾峰彇缃戠粶璇锋眰鏁版嵁 + */ + getHttpData() { + request({ + url: this.http.url, + method: 'get', + params: this.http.params + }).then(res => { + this.zNodes = res.data + if (this.checked != null && this.checked.length > 0) { + this.zNodes.forEach(v => { + this.checked.forEach(c => { + if (v.id == c.id) { + v.checked = true + } + }) + }) + } + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-01 17:11 + * @Description : 鍒濆鍖栨爲 + */ + init() { + if (this.checked.length > 0) { + this.zNodes.forEach(v => { + this.checked.forEach(c => { + if (v.id == c.id) { + v.checked = true + } + }) + }) + } + this.initTag() + if ($('#' + this.id).length == 1) { + window.$.fn.zTree.destroy(this.id) + window.$.fn.zTree.init($('#' + this.id), this.setting, this.zNodes) + if (this.expandAll) { + this.$nextTick(() => { + const treeObj = window.$.fn.zTree.getZTreeObj(this.id) + treeObj.expandAll(true) + }) + } + } + }, + initTag() { + this.tags = [] + this.zNodes.forEach(n => { + if (n.checked) { + this.tags.push({ + id: n.id, + name: n.name, + type: 'success' + }) + } + }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-01 15:12 + * @Description : 鑾峰彇閫変腑鑺傜偣 + */ + getCheckedNodes() { + if (!this.chooseFlag) { + return [] + } + const treeObj = window.$.fn.zTree.getZTreeObj(this.id) + const nodes = treeObj.getCheckedNodes(true) + return nodes + }, + // 鏄剧ずztree鏍� + choose() { + this.chooseFlag = true + this.dialogVisible = true + this.$nextTick(() => { + this.init() + }) + }, + handleClose(tag) { + this.tags.splice(this.tags.indexOf(tag), 1) + for (let i = 0; i < this.zNodes.length; i++) { + const node = this.zNodes[i] + if (node.id == tag.id) { + node.checked = false + break + } + } + } + } +} +</script> + +<style scoped> + @import "../../../plugins/ztree/css/zTreeStyle/zTreeStyle.css"; + + .el-tag { + margin-right: 10px; + margin-top: 2px; + } +</style> diff --git a/src/views/components/ztree/index.vue b/src/views/components/ztree/index.vue new file mode 100644 index 0000000..1de3333 --- /dev/null +++ b/src/views/components/ztree/index.vue @@ -0,0 +1,97 @@ +<template> + <div> + <ul :id="id" class="ztree" /> + </div> +</template> + +<script> +import $ from 'jquery' +import '@/plugins/ztree/js/jquery-1.4.4.min.js' +import '@/plugins/ztree/js/jquery.ztree.core.min.js' +import '@/plugins/ztree/js/jquery.ztree.excheck.js' + +export default { + props: { + // 鏁版嵁婧� + nodes: { + type: Array, + default: function() { + return [] + } + }, + // 鏄惁鍏ㄩ儴灞曞紑 + expandAll: { + type: Boolean, + default: true + } + }, + data() { + return { + id: 'treeDemo', + setting: { + check: { + enable: true, + chkboxType: { 'Y': 'ps', 'N': 's' } + }, + data: { + simpleData: { + enable: true, + idKey: 'id', + pIdKey: 'pid', + rootPId: 0 + } + }, + view: { + showIcon: false, + showLine: false + } + }, + zNodes: [] + } + }, + watch: { + nodes(v) { + this.init(v) + } + }, + mounted() { + this.id = 'treeDemo' + new Date().getTime() + // console.log(this.id) + this.$nextTick(() => { + this.init(this.nodes) + }) + }, + methods: { + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-01 17:11 + * @Description : 鍒濆鍖栨爲 + */ + init(v) { + this.zNodes = v + window.$.fn.zTree.init($('#' + this.id), this.setting, this.zNodes) + + if (this.expandAll) { + this.$nextTick(() => { + const treeObj = window.$.fn.zTree.getZTreeObj(this.id) + treeObj.expandAll(true) + }) + } + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-01 15:12 + * @Description : 鑾峰彇閫変腑鑺傜偣 + */ + getCheckedNodes() { + const treeObj = window.$.fn.zTree.getZTreeObj(this.id) + const nodes = treeObj.getCheckedNodes(true) + return nodes + } + } +} +</script> + +<style scoped> + @import "../../../plugins/ztree/css/zTreeStyle/zTreeStyle.css"; +</style> diff --git a/src/views/monitor/druid/index.vue b/src/views/monitor/druid/index.vue index c6ad585..76296ef 100644 --- a/src/views/monitor/druid/index.vue +++ b/src/views/monitor/druid/index.vue @@ -2,7 +2,7 @@ <i-frame :src="url" /> </template> <script> -import iFrame from "@/components/iFrame/index"; +import iFrame from "@/components/RuoYi/iFrame/index"; export default { name: "Druid", components: { iFrame }, diff --git a/src/views/monitor/job/index.vue b/src/views/monitor/job/index.vue index adb1993..dce899e 100644 --- a/src/views/monitor/job/index.vue +++ b/src/views/monitor/job/index.vue @@ -314,7 +314,7 @@ <script> import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job"; -import Crontab from '@/components/Crontab' +import Crontab from '@/components/RuoYi/Crontab' import { listOrgRoot } from "@/api/system/dept"; export default { diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 2ff7a25..234c35a 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -275,7 +275,7 @@ import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; -import IconSelect from "@/components/IconSelect"; +import IconSelect from "@/components/RuoYi/IconSelect"; export default { name: "Menu", diff --git a/src/views/tool/swagger/index.vue b/src/views/tool/swagger/index.vue index b8becc6..c5dcaca 100644 --- a/src/views/tool/swagger/index.vue +++ b/src/views/tool/swagger/index.vue @@ -2,7 +2,7 @@ <i-frame :src="url" /> </template> <script> -import iFrame from "@/components/iFrame/index"; +import iFrame from "@/components/RuoYi/iFrame/index"; export default { name: "Swagger", components: { iFrame }, diff --git a/src/views/user/login.vue b/src/views/user/login.vue index 53cec33..aa875b7 100644 --- a/src/views/user/login.vue +++ b/src/views/user/login.vue @@ -40,6 +40,12 @@ <el-form-item v-if="loginForm.verifyType==='slide'"> <drag-verify @success="verifyTrue" ref="verify"/> </el-form-item> + <el-form-item v-if="loginForm.verifyType==='jigsaw'"> +<!-- <drag-verify @success="verifyTrue" ref="verify"/>--> + <transition duration="1000" name="el-fade-in"> + <jigsaw-verify v-if="loginForm.verifyType==='jigsaw'" :left="left" :top="top" @hide="verifyFalse" @success="handleLogin" /> + </transition> + </el-form-item> <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox> <el-form-item style="width:100%;"> <el-button @@ -67,24 +73,28 @@ <script> import {getCodeImg, getCodeNone} from "@/api/login"; import dragVerify from './dragVerify/index.vue' // 婊戝姩楠岃瘉缁勪欢 + import jigsawVerify from '@/views/components/verify' // 鎷煎浘楠岃瘉缁勪欢锛�2023-04-06 import Cookies from "js-cookie"; - import {encrypt} from '@/utils/jsencrypt' + // import {encrypt} from '@/utils/jsencrypt' export default { components: { - 'drag-verify': dragVerify + 'drag-verify': dragVerify, + 'jigsaw-verify': jigsawVerify }, data() { return { verify:false, // 婊戝姩鏍¢獙 codeUrl: "", + left: null, // 鎷煎浘楠岃瘉鐮佷綅缃� + top: null, // 鎷煎浘楠岃瘉鐮佷綅缃� loginForm: { username: 'supervisor', password: '123456', code:'', uuid: '', loginType: 'user_pass', // 鐢ㄦ埛鍚嶃�佸瘑鐮佹柟寮忕櫥褰� - verifyType: 'slide'// 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 + verifyType: 'jigsaw'// 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 // rememberMe: false, }, loginRules: { @@ -122,6 +132,9 @@ verifyTrue () { this.verify = true }, + verifyFalse() { + this.verify = false + }, getCode() { if(this.loginForm.verifyType==='code'){ getCodeImg().then(res => { @@ -141,6 +154,8 @@ } else if(this.loginForm.verifyType==='jigsaw'){ // 鎷煎浘鏂瑰紡锛岀湅闇�瑕佸暐鍙傛暟锛屾殏鏈疄鐜� + console.log('jigsaw...'); + this.loginForm.code = 'jigsaw'; // 濉厖code榛樿鍊硷紝鍚﹀垯楠岃瘉涓嶉�氳繃銆�2023-04-06 } else if(this.loginForm.verifyType==='slide' || this.loginForm.verifyType==='sms'){ // 涓嶉渶瑕侀獙璇佺爜锛屼絾浠嶉渶瑕佽姹傛帴鍙h幏鍙杣uid @@ -160,7 +175,13 @@ this.loginForm.password = password === undefined ? this.loginForm.password : password this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe }, - handleLogin() { + handleLogin(param) { + // console.log(param); + if(param != null){ + // 鎷煎浘楠岃瘉鐮佹椂锛岃皟鐢ㄦ柟浼氫紶鍏ode锛堢敤鎴烽獙璇佺爜浣嶇疆锛夛紝uuid + this.loginForm.code = param.x; + this.loginForm.uuid = param.uuid; + } this.$refs.loginForm.validate(valid => { if (valid) { if (this.loginForm.verifyType==='slide' && !this.verify) { -- Gitblit v1.9.1