From 3aa55dd3f62cee2c1c4c0aa74e1570acf83f8927 Mon Sep 17 00:00:00 2001 From: duhuizhe <271000472@qq.com> Date: 星期一, 16 十月 2023 17:47:22 +0800 Subject: [PATCH] 初始化提交 --- project-web/public/static/emoji/212.png | 0 project-web/src/assets/images/examine-icon.png | 0 project-web/src/assets/images/map/icon-sjzx.png | 0 project-web/src/assets/dataV/ST.png | 0 project-web/src/views/projectManage/information/index.vue | 383 project-web/src/assets/logo/logo.png | 0 project-web/src/libs/index.js | 44 project-web/plop-templates/store/prompt.js | 62 project-web/src/assets/imgs/logo.png | 0 consum-base/src/main/java/com/consum/base/Constants.java | 45 project-web/src/libs/wechat.js | 183 project-web/public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css | 154 project-web/src/assets/images/project/pic-add.png | 0 project-web/src/assets/images/40b2.jpeg | 0 project-web/public/static/emoji/157.gif | 0 project-web/src/assets/images/map/icon-zhywl.png | 0 project-web/src/icons/svg/eye-open.svg | 1 project-web/src/api/projectManage/audit.js | 10 project-web/src/store/index.js | 24 project-web/public/static/emoji/173.gif | 0 project-web/public/static/emoji/111.gif | 0 project-web/public/static/emoji/190.gif | 0 project-web/src/vendor/Blob.js | 182 project-web/src/assets/theme/theme5.png | 0 project-web/public/static/emoji/103.gif | 0 project-web/src/utils/eventBus.js | 2 project-web/src/main.js | 176 project-web/src/assets/images/png.png | 0 project-web/public/static/emoji/182.gif | 0 project-web/src/directive/permission/hasPermi.js | 32 project-web/src/assets/images/visualization/v-top-bg.png | 0 project-web/src/assets/images/head-two.png | 0 project-web/public/static/emoji/165.gif | 0 project-web/src/layout/components/Settings/index.vue | 284 project-web/src/assets/images/map/icon-sn.png | 0 project-web/src/components/mySearchCopy/SearchItem.vue | 282 project-web/src/assets/images/zip.png | 0 project-web/src/assets/imgs/shengxian.png | 0 project-web/src/utils/errorCode.js | 6 project-web/src/vendor/Export1Excel.js | 143 consum-base/src/main/java/com/consum/base/TokenCacheProvider.java | 25 project-web/public/static/emoji/204.png | 0 project-web/src/assets/images/icon-line-up.png | 0 project-web/src/assets/images/project/icon-xxh-lv.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map | 1 project-web/src/assets/images/project/icon-sclzx-lv.png | 0 project-web/src/components/mySwitch/mySwitch.vue | 55 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff | 0 consum-base/doc/source_project_manage.pdm | 11643 ++++++ project-web/public/static/emoji/203.png | 0 consum-base/src/main/java/com/consum/base/pojo/UpdatePwdParam.java | 26 project-web/src/components/base/index.js | 16 project-web/src/utils/request.js | 169 project-web/src/icons/svg/theme.svg | 1 project-web/src/assets/dataV/comprehensive-ico1.png | 0 project-web/src/api/baseSetting/finsystenant.js | 60 consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java | 480 project-web/src/icons/svg/component.svg | 1 project-web/public/static/emoji/102.gif | 0 project-web/src/assets/images/jpg.png | 0 project-web/README.md | 235 project-web/src/views/projectConfig/warningConfig/chooseUser.vue | 206 project-web/src/assets/dataV/YX.png | 0 project-web/src/views/projectManage/information/components/moneySetting.vue | 96 project-web/public/static/emoji/213.png | 0 deploy-jar-single/src/main/java/com/consum/generator/GenerateController.java | 28 project-web/src/views/projectConfig/warningConfig/index.vue | 209 project-web/public/static/emoji/172.gif | 0 project-web/src/icons/svg/star.svg | 1 project-web/public/static/emoji/112.gif | 0 project-web/src/layout/imgs/bggl.png | 0 project-web/src/assets/imgs/tabBar/user.png | 0 project-web/src/assets/imgs/live-logo.gif | 0 project-web/plopfile.js | 9 project-web/src/views/error-log/index.vue | 47 project-web/src/views/systemSetting/user/profile/index.vue | 42 project-web/src/views/projectManage/audit/chooseUser.vue | 157 project-web/public/static/emoji/166.gif | 0 project-web/src/icons/svg/documentation.svg | 1 project-web/public/static/emoji/149.gif | 0 consum-base/src/main/java/com/consum/base/pojo/TokenVo.java | 93 project-web/src/assets/imgs/default_avatar.png | 0 project-web/src/assets/images/index/down.png | 0 project-web/src/assets/images/project/icon-gz-lv.png | 0 project-web/src/assets/images/project/icon-gj-lv.png | 0 project-web/public/static/emoji/183.gif | 0 project-web/src/components/mySearchCopy/index.js | 65 project-web/src/layout/components/TagsView/index.vue | 332 project-web/plop-templates/view/index.hbs | 26 project-web/src/icons/svg/user.svg | 1 project-web/src/filters/order.js | 80 consum-base/src/main/java/com/consum/base/core/CodeTemplateService.java | 20 project-web/src/assets/imgs/writeOffBg.jpg | 0 project-web/src/directive/index.js | 24 project-web/public/static/emoji/167.gif | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/img/object.gif | 0 project-web/src/assets/images/index/dxy.png | 0 project-web/public/static/emoji/202.png | 0 project-web/src/assets/images/cloud-bg.png | 0 project-web/src/icons/svg/money.svg | 1 project-web/src/views/projectConfig/buildPlan/items.js | 48 project-web/src/assets/images/map/icon-gygz.png | 0 project-web/src/assets/images/line-nopass.png | 0 project-web/tests/unit/components/Hamburger.spec.js | 18 project-web/src/views/dashboard/components/XYZC.vue | 243 project-web/public/static/emoji/214.png | 0 project-web/src/assets/images/map/icon-gj.png | 0 project-web/src/icons/svg/qq.svg | 1 project-web/src/views/projectConfig/stageConfig/items.js | 26 project-web/public/static/emoji/175.gif | 0 project-web/src/assets/images/text.png | 0 project-web/src/views/systemManger/server/user/index.vue | 303 project-web/src/assets/dataV/ywtdry.png | 0 project-web/src/mock/projectConfig/stageNode.js | 71 project-web/src/layout/imgs/xtgl.png | 0 project-web/src/assets/imgs/tabBar/cated.png | 0 project-web/public/static/emoji/139.gif | 0 project-web/public/static/emoji/180.gif | 0 project-web/src/assets/dataV/1.png | 0 project-web/src/views/projectManage/classify/items.js | 26 project-web/src/store/modules/errorLog.js | 38 project-web/src/utils/settingIplatform.js | 21 consum-base/src/main/java/com/consum/base/core/UnifyBusinessService.java | 41 project-web/src/utils/get-page-title.js | 20 project-web/src/layout/imgs/Group 42731搜索9579.png | 0 project-web/src/views/projectConfig/kanbanConfig/edit.vue | 115 project-web/src/assets/iconfont/can.woff | 0 project-web/src/views/dataV/static.vue | 722 project-web/src/layout/imgs/jxglA.png | 0 project-web/plop-templates/component/index.hbs | 26 project-web/src/assets/images/talk/head-kf.png | 0 project-web/src/assets/dataV/Ellipse 1954.png | 0 project-web/src/utils/scroll-to.js | 75 project-web/src/icons/index.js | 9 project-web/src/utils/newToExcel.js | 30 project-web/src/filters/product.js | 77 project-web/public/static/emoji/105.gif | 0 project-web/src/assets/images/talk/icon-unknown.png | 0 project-web/src/assets/imgs/tuikuan.png | 0 project-web/src/styles/variables.scss | 57 project-web/public/static/emoji/148.gif | 0 project-web/src/icons/svg/guide.svg | 1 project-web/src/assets/dataV/header.png | 0 project-web/src/assets/imgs/no.png | 0 project-web/src/plugins/download.js | 82 project-web/src/assets/images/talk/dataV-1.png | 0 project-web/src/api/projectConfig/buildPlanNode.js | 36 project-web/src/assets/custom-theme/index.css | 23148 ++++++++++++ consum-base/src/main/java/com/consum/base/util/RangeMergeUtil.java | 200 project-web/public/static/emoji/168.gif | 0 project-web/public/static/js/niuniucapture.js | 643 project-web/src/components/js/element-icons.js | 294 project-web/src/views/projectManage/cancel/index.vue | 164 project-web/src/layout/components/Sidebar/index.vue | 265 project-web/src/api/projectConfig/warningConfig.js | 55 project-web/src/assets/images/index-icon.png | 0 project-web/src/assets/dataV/little-box.png | 0 project-web/public/static/emoji/201.png | 0 project-web/src/layout/components/AppMain.vue | 50 project-web/src/assets/iconfont/can.woff2 | 0 project-web/public/static/emoji/174.gif | 0 project-web/src/mock/projectConfig/warningConfig.js | 128 project-web/public/static/emoji/147.gif | 0 project-web/public/static/emoji/104.gif | 0 project-web/src/assets/dataV/2.png | 0 project-web/src/assets/images/project/icon-zhywl-lv.png | 0 project-web/src/views/systemSetting/dict/items.js | 26 project-web/src/icons/svg/search.svg | 1 project-web/src/assets/js/emo.js | 488 project-web/src/utils/constants.js | 144 project-web/src/views/home/projectList.vue | 172 project-web/public/preview.html | 38 project-web/src/assets/images/map/wait.png | 0 project-web/public/static/js/reconnecting-websocket.js | 365 project-web/src/icons/svg/language.svg | 1 project-web/src/views/projectManage/information/nodeSubmit.vue | 140 project-web/src/assets/dataV/SLABG.png | 0 project-web/public/static/emoji/181.gif | 0 project-web/src/assets/imgs/kefuImg.jpg | 0 project-web/src/components/win/win-md.vue | 95 project-web/src/views/redirect/index.vue | 13 project-web/src/icons/svg/form.svg | 1 project-web/src/assets/imgs/haowu.png | 0 project-web/src/layout/imgs/mydgl.png | 0 project-web/public/static/emoji/110.gif | 0 project-web/src/layout/imgs/wtglA.png | 0 project-web/jsconfig.json | 9 project-web/src/components/SvgIcon/index.vue | 71 project-web/src/filters/commFilter.js | 269 project-web/src/assets/imgs/pingjia.png | 0 project-web/src/views/projectManage/audit/index.vue | 229 project-web/src/assets/images/app.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg | 63 consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java | 86 project-web/src/views/projectManage/audit/edit.vue | 393 project-web/public/static/emoji/177.gif | 0 project-web/public/static/emoji/193.gif | 0 project-web/src/api/dashboard/dash.js | 59 project-web/src/views/dataV/components/projectType.vue | 86 project-web/package.json | 114 project-web/src/views/error-page/401.vue | 102 project-web/src/api/projectManage/cancel.js | 10 project-web/src/layout/components/Sidebar/Logo.vue | 103 project-web/src/assets/images/icon-connect.png | 0 project-web/src/assets/images/login-name.png | 0 project-web/src/mock/projectConfig/kanbanNode.js | 48 project-web/src/assets/imgs/shouhuo.png | 0 project-web/src/utils/ZBKJIutil.js | 125 project-web/public/static/emoji/162.gif | 0 project-web/src/assets/401_images/401.gif | 0 project-web/src/assets/dataV/SX.png | 0 project-web/src/mock/projectManagement/information.js | 68 project-web/src/icons/svg/international.svg | 1 project-web/public/static/emoji/200.png | 0 project-web/src/directive/float.js | 40 project-web/src/components/uploadFrom/index.js | 25 consum-base/src/main/java/com/consum/base/core/AgencyEntity.java | 80 project-web/src/directive/num.js | 27 deploy-jar-single/src/main/java/com/consum/ConsumApplication.java | 23 project-web/plop-templates/store/index.hbs | 16 project-web/public/static/emoji/137.gif | 0 project-web/src/styles/index.scss | 330 project-web/public/static/emoji/215.png | 0 project-web/src/assets/images/visualization/v-top-title.png | 0 consum-base/pom.xml | 66 project-web/src/assets/images/project/icon-other-lv.png | 0 project-web/src/icons/svg/eye.svg | 1 project-web/src/utils/DateFormatter.js | 180 project-web/src/assets/dataV/fwt.png | 0 project-web/src/icons/svg/edit.svg | 1 project-web/src/icons/svg/wechat.svg | 1 project-web/src/assets/images/talk/icon-pdf.png | 0 project-web/public/static/emoji/122.gif | 0 project-web/src/assets/dataV/3.png | 0 project-web/src/assets/images/index/gdc.png | 0 project-web/src/api/projectConfig/kanbanNode.js | 28 deploy-jar-single/src/main/resources/application-dev.yml | 250 project-web/src/assets/images/login_img.png | 0 project-web/src/icons/svg/pdf.svg | 1 project-web/plop-templates/utils.js | 9 project-web/src/assets/images/map/icon-xcpzx.png | 0 project-web/src/assets/images/visualization/col.png | 0 project-web/src/views/systemSetting/dict/data.vue | 427 project-web/src/utils/base.js | 91 project-web/src/assets/images/line-current.png | 0 project-web/src/filters/user.js | 49 project-web/src/assets/images/talk/icon-xls.png | 0 project-web/src/libs/timeOptions.js | 65 project-web/src/mock/projectManagement/record.js | 42 project-web/README.ZBKJ.md | 55 project-web/src/assets/imgs/phoneBox.png | 0 project-web/public/static/emoji/194.gif | 0 project-web/public/static/emoji/176.gif | 0 project-web/src/assets/images/index/top.png | 0 project-web/tests/unit/.eslintrc.js | 5 project-web/public/static/emoji/107.gif | 0 project-web/public/static/emoji/161.gif | 0 project-web/src/api/system/menu.js | 60 project-web/src/assets/images/icon-notice.png | 0 project-web/src/assets/imgs/line.jpg | 0 project-web/src/layout/components/Sidebar/Link.vue | 35 project-web/src/views/projectManage/classify/index.vue | 224 project-web/src/assets/dataV/cityBox.png | 0 project-web/src/views/projectConfig/buildPlan/detail.vue | 142 project-web/public/static/tinymce4.7.5/skins/lightgray/img/loader.gif | 0 consum-base/src/main/java/com/consum/base/BaseController.java | 11 project-web/src/layout/imgs/zskgl.png | 0 project-web/src/utils/permission.js | 61 .gitignore | 39 project-web/src/icons/svg/list.svg | 1 project-web/src/assets/images/index/wtc.png | 0 project-web/public/static/emoji/138.gif | 0 project-web/src/views/projectManage/information/components/warningSetting.vue | 80 project-web/src/layout/components/Sidebar/Item.vue | 32 project-web/src/layout/imgs/jcxx.png | 0 project-web/src/icons/svg/nested.svg | 1 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg | 131 project-web/src/assets/imgs/mobilefoot.png | 0 project-web/src/layout/components/Navbar.vue | 340 project-web/src/components/echartsNew/index.vue | 78 project-web/public/static/emoji/123.gif | 0 project-web/src/assets/dataV/g1.png | 0 project-web/src/icons/svg/size.svg | 1 project-web/src/utils/error-log.js | 44 project-web/public/static/emoji/106.gif | 0 project-web/src/components/Tinymce/dynamicLoadScript.js | 59 project-web/src/layout/components/Sidebar/SidebarItem.vue | 171 project-web/src/libs/dialog.js | 67 project-web/src/mock/projectManagement/classify.js | 82 project-web/src/views/projectManage/information/nodeProgress.vue | 223 project-web/src/directive/permission/hasRole.js | 24 project-web/.gitignore | 23 project-web/public/static/tinymce4.7.5/langs/zh_CN.js | 234 project-web/src/styles/reset.css | 284 project-web/tests/unit/utils/validate.spec.js | 28 project-web/src/layout/components/TagsView/ScrollPane.vue | 94 project-web/src/assets/iconfont/iconfont.css | 430 project-web/public/static/tinymce4.7.5/tinymce.min.js | 2 project-web/src/views/projectManage/audit/audit.vue | 80 project-web/public/static/emoji/108.gif | 0 project-web/src/views/projectManage/record/index.vue | 183 project-web/src/plugins/cache.js | 118 project-web/src/icons/svg/example.svg | 1 project-web/src/components/myTree/satisficingIndex.vue | 137 project-web/src/assets/dataV/gdzs.png | 0 project-web/src/assets/dataV/kfpjl.png | 0 project-web/src/assets/images/acttch-icon.png | 0 project-web/src/vendor/Export2Excel.js | 236 project-web/src/assets/images/line-pass-icon.png | 0 project-web/public/static/emoji/191.gif | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif | 0 project-web/src/assets/imgs/youxuan.png | 0 project-web/src/assets/dataV/sla.png | 0 project-web/src/assets/custom-theme/fonts/element-icons.woff | 0 project-web/src/assets/images/head-one.png | 0 project-web/src/views/dataV/components/projectList.vue | 115 project-web/src/assets/imgs/pc.png | 0 project-web/src/libs/debounce.js | 19 project-web/src/mock/projectManagement.js | 255 project-web/src/api/system/dict/data.js | 56 project-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue | 85 project-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue | 106 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif | 0 project-web/src/directive/dialog/drag.js | 68 project-web/src/mock/projectConfig/stageConfig.js | 72 deploy-jar-single/src/main/resources/application-prod.yml | 381 project-web/src/assets/images/project/icon-xcpzx-lv.png | 0 project-web/src/mock/projectConfig/buildPlan.js | 68 project-web/src/layout/imgs/xmgl.png | 0 project-web/src/assets/imgs/new_header1.png | 0 project-web/src/views/systemManger/server/user/editRole.vue | 160 project-web/public/static/emoji/120.gif | 0 project-web/public/static/emoji/163.gif | 0 project-web/src/libs/modal-parserFrom.js | 49 project-web/src/assets/imgs/login-name.png | 0 project-web/src/assets/images/project/xls.png | 0 project-web/src/components/myButton/myButton.vue | 381 consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java | 41 project-web/src/utils/utils.js | 58 project-web/public/static/emoji/210.png | 0 consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java | 55 project-web/src/layout/imgs/sjgl.png | 0 project-web/public/static/emoji/135.gif | 0 project-web/public/static/emoji/178.gif | 0 consum-model-pojo/src/main/java/com/consum/model/po/WhGoods_mapper.java | 473 project-web/src/assets/imgs/mobilehead.png | 0 project-web/src/utils/StringUtils.js | 14 project-web/src/icons/svg/lock.svg | 1 project-web/src/vendor/Export2Zip.js | 39 project-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue | 215 project-web/src/utils/jsencrypt.js | 33 project-web/src/icons/svg/education.svg | 1 project-web/src/utils/clipboard.js | 42 project-web/src/components/UploadExcel/index.vue | 148 project-web/src/assets/images/img.png | 0 project-web/public/static/emoji/211.png | 0 project-web/public/favicon.ico | 0 project-web/src/mock/projectManagement/audit.js | 36 project-web/public/static/tinymce4.7.5/plugins/codesample/css/prism.css | 138 project-web/src/assets/imgs/tabBar/index.png | 0 project-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue | 117 project-web/src/assets/custom-theme/fonts/element-icons.ttf | 0 project-web/src/views/systemManger/server/user/items.js | 33 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif | 0 project-web/src/assets/images/map/icon-sclzx.png | 0 project-web/src/assets/imgs/app.png | 0 project-web/public/static/emoji/192.gif | 0 project-web/src/icons/svg/email.svg | 1 project-web/src/utils/parsing.js | 280 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif | 0 project-web/src/assets/imgs/fahuo.png | 0 project-web/public/static/emoji/109.gif | 0 project-web/src/assets/dataV/wjdcl.png | 0 project-web/src/api/projectManage/information.js | 58 project-web/src/assets/images/project/del.png | 0 project-web/public/static/emoji/164.gif | 0 consum-base/src/main/java/com/consum/base/core/util/RandomUtil.java | 61 project-web/src/assets/images/map/close-total.png | 0 project-web/public/static/emoji/121.gif | 0 project-web/src/icons/svg/drag.svg | 1 deploy-jar-single/src/main/resources/wk_sn_lic.bin | 1 project-web/src/assets/imgs/routine.png | 0 project-web/src/views/error-page/404.vue | 240 project-web/src/filters/wx.js | 39 project-web/src/layout/imgs/jxgl.png | 0 project-web/src/components/base/iconFrom.vue | 112 project-web/src/views/projectConfig/warningConfig/items.js | 45 project-web/src/api/system/wxApi.js | 386 project-web/src/assets/404_images/404_cloud.png | 0 project-web/src/assets/imgs/tabBar/cart.png | 0 project-web/src/components/win/win-sm.vue | 75 project-web/src/assets/imgs/moren.jpg | 0 project-web/.env.staging | 6 project-web/src/assets/images/index/qbgd.png | 0 project-web/public/static/emoji/136.gif | 0 project-web/public/static/emoji/179.gif | 0 project-web/src/assets/images/project/ppt.png | 0 deploy-jar-single/src/main/java/com/consum/generator/TestJdbcGenerator.java | 24 project-web/src/layout/imgs/syA.png | 0 project-web/src/filters/finance.js | 33 project-web/src/components/win/index.vue | 72 project-web/src/libs/modal-coupon.js | 57 project-web/src/views/systemSetting/user/profile/resetPwd.vue | 92 project-web/public/static/emoji/142.gif | 0 project-web/public/static/emoji/150.gif | 0 project-web/public/static/emoji/126.gif | 0 project-web/src/assets/images/logo.png | 0 project-web/src/views/systemManger/org/edit.vue | 113 project-web/src/assets/js/canvas-nest.min.js | 113 project-web/src/views/components/myImport.vue | 161 project-web/public/static/emoji/134.gif | 0 project-web/src/components/mySearch/index.js | 64 project-web/public/static/config.js | 23 project-web/src/layout/mixin/ResizeHandler.js | 55 consum-base/src/main/java/com/consum/base/core/po/WhFormTransfer.java | 16 project-web/src/assets/dataV/boxBG.png | 0 project-web/src/styles/mixin.scss | 60 project-web/src/libs/modal-prompt.js | 56 project-web/src/assets/images/staff-female.jpg | 0 project-web/src/layout/index.vue | 531 consum-base/src/main/java/com/consum/base/core/po/WhFormInventory.java | 11 project-web/src/assets/images/project/icon-sn-lv.png | 0 project-web/src/assets/images/map/cancel.png | 0 project-web/src/assets/images/staff-male.jpg | 0 project-web/src/assets/images/visualization/left.png | 0 project-web/src/assets/iconfont/can.ttf | 0 project-web/src/assets/images/dataV.png | 0 project-web/src/views/login/resetPassword.vue | 172 project-web/src/api/projectManage/classify.js | 51 project-web/src/views/systemManger/org/items.js | 33 pom.xml | 50 project-web/src/assets/imgs/user_bg.png | 0 project-web/src/assets/404_images/404.png | 0 project-web/public/static/emoji/189.gif | 0 project-web/tests/unit/components/SvgIcon.spec.js | 22 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot | 0 project-web/src/assets/images/visualization/bg1.png | 0 consum-base/doc/新建操作权限示例.txt | 13 project-web/public/static/emoji/219.png | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif | 0 project-web/src/assets/images/talk/icon-doc.png | 0 project-web/src/permission.js | 67 project-web/public/static/emoji/197.gif | 0 project-web/public/index.html | 28 project-web/src/assets/images/line-current-icon.png | 0 project-web/src/components/js/internal.js | 73 project-web/public/static/emoji/118.gif | 0 project-web/src/assets/images/project/no-file.png | 0 project-web/src/assets/imgs/light.svg | 34 project-web/src/assets/imgs/wutu.png | 0 project-web/public/static/emoji/117.gif | 0 project-web/src/assets/imgs/fukuan.png | 0 project-web/public/static/emoji/151.gif | 0 project-web/src/icons/svg/table.svg | 1 project-web/src/layout/imgs/bgglA.png | 0 project-web/src/libs/public.js | 24 consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 68 project-web/src/styles/element-variables.scss | 31 project-web/public/static/emoji/141.gif | 0 project-web/src/components/Screenfull/index.vue | 69 project-web/src/assets/imgs/tabBar/userd.png | 0 project-web/src/layout/components/index.js | 14 project-web/public/static/emoji/133.gif | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif | 0 project-web/src/store/modules/user.js | 231 project-web/src/views/home/index.vue | 241 project-web/src/store/modules/tagsView.js | 170 project-web/public/static/js/capturewrapper.js | 226 project-web/src/assets/js/media_750.js | 61 project-web/src/views/login/mixins.js | 19 project-web/src/layout/imgs/kfgztA.png | 0 deploy-jar-single/pom.xml | 133 project-web/src/store/modules/permission.js | 181 project-web/src/icons/svg/link.svg | 1 project-web/public/static/emoji/188.gif | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif | 0 project-web/src/assets/images/pdf.png | 0 project-web/public/static/emoji/127.gif | 0 project-web/src/assets/images/project/icon-qt-lv.png | 0 project-web/src/icons/svg/message.svg | 1 project-web/src/icons/svg/skill.svg | 1 project-web/src/styles/transition.scss | 48 project-web/.env.production | 7 project-web/src/components/uploadFrom/index.vue | 46 project-web/build/index.js | 35 project-web/src/api/system/roleApi.js | 12 project-web/public/static/tinymce4.7.5/skins/lightgray/content.min.css | 1 project-web/src/views/systemSetting/dept/index.vue | 405 project-web/public/static/emoji/218.png | 0 project-web/src/views/login/index.vue | 462 project-web/src/assets/dataV/comprehensive-ico6.png | 0 project-web/src/libs/modal-icon.js | 47 project-web/public/static/emoji/198.gif | 0 project-web/src/assets/images/top-bg.png | 0 consum-base/src/main/java/com/consum/base/core/po/WhFormProcure.java | 19 project-web/.eslintrc.js | 396 project-web/public/static/js/jquery.min.js | 2 project-web/src/views/projectConfig/buildPlan/index.vue | 210 project-web/src/views/systemSetting/user/authRole.vue | 117 consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing_mapper.java | 285 consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java | 23 project-web/src/api/dataV.js | 54 project-web/src/assets/images/left-nav-bg.png | 0 project-web/src/icons/svg/icon.svg | 1 project-web/src/views/systemSetting/user/profile/userInfo.vue | 165 project-web/src/layout/imgs/wtgl.png | 0 project-web/src/api/system/sms.js | 215 project-web/src/icons/svg/clipboard.svg | 1 consum-base/src/main/java/com/consum/base/core/po/SYS_AGENCY.java | 4 project-web/src/views/systemManger/org/index.vue | 287 project-web/src/assets/images/word.png | 0 project-web/public/static/emoji/160.gif | 0 project-web/jest.config.js | 24 project-web/public/static/emoji/124.gif | 0 project-web/src/views/systemSetting/role/items.js | 26 project-web/src/assets/imgs/moren.png | 0 project-web/src/utils/exportExcel.js | 19 project-web/vue.config.js | 130 project-web/src/assets/images/obg-icon.png | 0 project-web/src/assets/dataV/g2.png | 0 project-web/src/icons/svg/zip.svg | 1 project-web/src/components/Tinymce/toolbar.js | 9 project-web/src/api/system/user.js | 136 project-web/public/static/emoji/132.gif | 0 project-web/src/views/dashboard/components/SJDJ.vue | 136 project-web/src/views/dashboard/components/SJGDZB.vue | 139 project-web/src/views/projectConfig/warningConfig/chooseItems.js | 16 project-web/src/icons/svg/tree.svg | 1 project-web/src/views/projectConfig/stageConfig/node/items.js | 26 project-web/src/assets/dataV/EX.png | 0 project-web/.travis.yml | 5 project-web/src/layout/imgs/kfgzt.png | 0 project-web/src/api/user.js | 160 project-web/src/assets/images/visualization/bg3.png | 0 project-web/public/static/emoji/209.png | 0 project-web/src/assets/images/map/end.png | 0 project-web/src/api/system/dept.js | 83 project-web/src/layout/imgs/mydglA.png | 0 project-web/src/assets/images/project/word.png | 0 project-web/src/plugins/index.js | 17 project-web/src/styles/sidebar.scss | 210 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif | 0 project-web/src/views/projectManage/audit/detail.vue | 362 project-web/src/mock/projectConfig/kanbanConfig.js | 52 project-web/src/views/projectConfig/warningConfig/edit.vue | 330 project-web/src/views/systemManger/server/user/edit.vue | 285 project-web/public/static/emoji/195.gif | 0 project-web/src/layout/imgs/fbgl.png | 0 project-web/public/static/emoji/152.gif | 0 project-web/src/views/dashboard/components/XMGZD.vue | 261 project-web/src/assets/images/project/icon-return.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff | 0 project-web/src/views/projectConfig/buildPlan/nodeChoose/items.js | 26 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf | 0 project-web/src/components/myTable/myTable.vue | 752 project-web/public/static/emoji/217.png | 0 project-web/.eslintignore | 7 project-web/src/assets/images/icon-datav.png | 0 project-web/public/static/emoji/125.gif | 0 project-web/src/assets/images/talk/head-my.png | 0 project-web/src/assets/dataV/g3.png | 0 project-web/src/utils/open-window.js | 53 project-web/src/icons/svg/bug.svg | 1 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif | 0 project-web/src/layout/imgs/zskglA.png | 0 project-web/src/icons/svg/peoples.svg | 1 project-web/tests/unit/utils/parseTime.spec.js | 32 project-web/.prettierrc.js | 35 project-web/public/static/emoji/131.gif | 0 project-web/LICENSE | 21 project-web/src/assets/images/talk/icon-ppt.png | 0 project-web/src/api/projectConfig/stageConfig.js | 55 project-web/src/utils/validate.js | 181 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif | 0 project-web/src/views/projectConfig/kanbanConfig/index.vue | 166 project-web/src/assets/images/doc.png | 0 consum-base/src/main/java/com/consum/base/util/IdUtil.java | 78 deploy-jar-single/src/main/resources/application.yml | 4 project-web/public/static/emoji/216.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff | 0 project-web/.prettierignore | 22 project-web/src/plugins/modal.js | 85 project-web/src/icons/svg/people.svg | 1 project-web/src/assets/images/visualization/bg2.png | 0 project-web/src/assets/images/line-pass.png | 0 project-web/src/store/modules/settings.js | 50 project-web/public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif | 0 project-web/src/api/projectConfig/buildPlan.js | 64 project-web/public/static/emoji/196.gif | 0 project-web/src/assets/images/talk/dataV-2.png | 0 project-web/src/assets/images/visualization/line.png | 0 project-web/public/static/emoji/153.gif | 0 project-web/public/static/emoji/119.gif | 0 consum-base/src/main/java/com/consum/base/core/GoodsService.java | 10 consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing.java | 194 project-web/src/components/HeaderSearch/index.vue | 187 project-web/src/components/Tinymce/components/EditorImage.vue | 58 project-web/src/views/login/bak-index.vue | 594 project-web/src/views/systemSetting/menu/index.vue | 481 project-web/src/assets/images/map/icon-xxh.png | 0 project-web/src/assets/imgs/wechat_h5.png | 0 project-web/src/components/myTable/myTableV2.vue | 644 project-web/src/layout/imgs/sy.png | 0 project-web/src/views/login/auth-redirect.vue | 16 project-web/public/static/emoji/169.gif | 0 project-web/src/layout/imgs/sjglA.png | 0 project-web/src/settings.js | 64 project-web/src/assets/dataV/MYD.png | 0 project-web/src/assets/images/exel.png | 0 project-web/src/assets/imgs/tabBar/cate.png | 0 project-web/src/icons/svg/password.svg | 1 project-web/src/components/mySearch/SearchItem.vue | 319 project-web/src/assets/theme/goodsList1.png | 0 project-web/src/assets/theme/theme1.png | 0 project-web/README-注意事项.md | 81 project-web/src/api/system/dict/type.js | 60 project-web/src/assets/images/map/icon-other.png | 0 project-web/src/directive/copy/copy.js | 75 project-web/src/icons/svg/shopping.svg | 1 project-web/public/static/emoji/185.gif | 0 project-web/src/utils/changeColor.js | 8 project-web/src/assets/images/project/txt.png | 0 project-web/src/views/dashboard/index.vue | 302 project-web/src/assets/images/visualization/bg5.png | 0 project-web/src/assets/images/phone.png | 0 project-web/src/assets/images/project/pdf.png | 0 project-web/src/assets/imgs/tabBar/cartd.png | 0 consum-model-pojo/pom.xml | 46 project-web/src/views/projectManage/information/detail.vue | 465 project-web/src/filters/index.js | 75 project-web/public/static/emoji/130.gif | 0 project-web/src/views/dataV/components/cityScore.vue | 214 project-web/src/components/win/win-lg.vue | 91 project-web/public/static/emoji/114.gif | 0 project-web/src/assets/images/map/icon-gz.png | 0 project-web/public/static/emoji/208.png | 0 project-web/src/plugins/auth.js | 45 project-web/src/assets/imgs/pricetitle.jpg | 0 project-web/src/assets/images/avatar-kefu.png | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif | 0 project-web/src/icons/svg/fullscreen.svg | 1 project-web/src/assets/dataV/Group 88.png | 0 project-web/src/views/projectManage/audit/items.js | 90 project-web/src/mock/projectConfig/buildPlanNode.js | 89 project-web/src/views/error-log/components/ErrorTestA.vue | 22 project-web/src/views/routerView/index.vue | 3 project-web/src/views/projectConfig/stageConfig/node/node.vue | 192 project-web/src/assets/images/index/fbgd.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css | 1 project-web/src/router/index.js | 132 project-web/public/static/emoji/129.gif | 0 project-web/public/static/emoji/154.gif | 0 project-web/src/components/ThemePicker/index.vue | 183 deploy-jar-single/src/main/resources/import/机构导入模板.xls | 0 project-web/src/assets/images/index/jxzgd.png | 0 project-web/tests/unit/utils/formatTime.spec.js | 29 project-web/public/static/emoji/146.gif | 0 project-web/src/views/systemSetting/role/authUser.vue | 209 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif | 0 project-web/public/static/js/reconnecting-websocket.min.js | 1 project-web/src/mock/projectManagement/cancel.js | 36 project-web/src/assets/imgs/tabBar/indexd.png | 0 project-web/src/views/dataV/components/dataProgress.vue | 59 project-web/src/icons/svg/dashboard.svg | 1 project-web/src/assets/dataV/jxzdgd.png | 0 project-web/src/assets/imgs/dark.svg | 39 project-web/src/layout/imgs/fbglA.png | 0 project-web/src/assets/theme/theme2.png | 0 project-web/src/assets/imgs/expressi.jpg | 0 consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java | 26 project-web/src/api/projectManage/info.js | 20 project-web/public/static/emoji/184.gif | 0 project-web/src/assets/images/top-title.png | 0 project-web/src/layout/imgs/jcxxA.png | 0 project-web/src/assets/images/form-lf.png | 0 project-web/src/views/home/searchForm.vue | 222 consum-base/src/main/java/com/consum/base/util/FinSysOrgUtils.java | 23 project-web/src/styles/btn.scss | 99 project-web/public/static/emoji/207.png | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css | 1 project-web/public/static/emoji/145.gif | 0 project-web/src/views/systemSetting/dict/index.vue | 381 project-web/src/assets/imgs/login-bg.png | 0 project-web/src/layout/imgs/xtglA.png | 0 project-web/src/assets/images/visualization/bg4.png | 0 project-web/src/assets/imgs/orderIndex.png | 0 project-web/src/views/projectManage/information/items.js | 62 project-web/public/static/emoji/113.gif | 0 project-web/public/static/emoji/155.gif | 0 project-web/src/assets/imgs/index_logo.png | 0 project-web/src/views/projectManage/record/items.js | 77 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif | 0 project-web/.env.development | 16 project-web/src/assets/dataV/zsk.png | 0 project-web/src/assets/images/project/icon-sjzx-lv.png | 0 project-web/src/libs/yearOptions.js | 37 project-web/.editorconfig | 14 project-web/src/assets/images/xls.png | 0 project-web/src/directive/dialog/dragWidth.js | 39 project-web/src/mock/index.js | 37 project-web/public/static/emoji/140.gif | 0 project-web/src/views/systemSetting/role/index.vue | 710 project-web/src/assets/images/map/ing.png | 0 project-web/src/store/modules/app.js | 72 project-web/src/utils/auth.js | 37 consum-base/doc/时间查询工具类 | 654 project-web/src/views/projectManage/classify/edit.vue | 138 project-web/public/static/emoji/159.gif | 0 project-web/public/static/emoji/116.gif | 0 project-web/src/views/dashboard/components/progressMY.vue | 80 project-web/src/components/myInputNumber/index.vue | 94 project-web/src/views/dataV/components/projectYear.vue | 179 consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java | 56 project-web/public/static/emoji/206.png | 0 project-web/src/views/dataV/components/henan.json | 26701 ++++++++++++++ project-web/src/assets/dataV/comprehensive-ico2.png | 0 project-web/src/components/Tinymce/index.vue | 279 project-web/postcss.config.js | 5 project-web/src/views/projectConfig/stageConfig/index.vue | 191 project-web/plop-templates/view/prompt.js | 55 project-web/src/icons/svgo.yml | 21 project-web/public/static/emoji/128.gif | 0 project-web/src/api/projectConfig/kanbanConfig.js | 55 project-web/src/assets/theme/goodsList3.png | 0 project-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue | 129 project-web/public/static/emoji/144.gif | 0 project-web/public/static/emoji/187.gif | 0 project-web/public/static/emoji/101.gif | 0 project-web/src/components/Hamburger/index.vue | 57 project-web/src/assets/images/icon-phone.png | 0 project-web/src/assets/imgs/scan.gif | 0 project-web/public/static/emoji/199.gif | 0 project-web/src/views/systemSetting/user/index.vue | 715 project-web/public/static/emoji/156.gif | 0 project-web/src/icons/svg/404.svg | 1 project-web/public/static/emoji/171.gif | 0 project-web/src/icons/svg/chart.svg | 1 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif | 0 project-web/src/components/Tinymce/plugins.js | 9 project-web/src/assets/dataV/comprehensive-ico5.png | 0 project-web/src/libs/modal-sure.js | 34 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf | 0 project-web/src/assets/dataV/bg.png | 0 project-web/src/components/mySearchCopy/mySearch.vue | 133 project-web/src/components/mySearch/mySearch.vue | 107 project-web/src/icons/svg/excel.svg | 1 project-web/src/components/myTree/index.vue | 177 project-web/src/icons/svg/tree-table.svg | 1 project-web/src/views/projectManage/cancel/items.js | 62 project-web/plop-templates/component/prompt.js | 55 deploy-jar-single/src/main/resources/application-test.yml | 380 project-web/src/views/projectConfig/stageConfig/edit.vue | 116 project-web/src/assets/dataV/TSLX.png | 0 project-web/babel.config.js | 10 project-web/src/store/getters.js | 23 project-web/src/filters/merchant.js | 66 project-web/src/assets/theme/theme3.png | 0 consum-base/doc/更新正式环境需要添加.sql | 0 project-web/public/static/tinymce4.7.5/skins/lightgray/img/trans.gif | 0 project-web/src/api/projectConfig/stageNode.js | 68 project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot | 0 project-web/src/assets/theme/goodsList2.png | 0 consum-base/src/main/java/com/consum/base/cache/RedisTokenCache.java | 50 project-web/src/components/upload/index.vue | 256 project-web/src/utils/web-connection.js | 151 project-web/src/views/dashboard/components/GDLX.vue | 124 project-web/public/static/emoji/143.gif | 0 project-web/public/static/emoji/186.gif | 0 project-web/src/components/win2/index.vue | 151 consum-base/src/main/java/com/consum/base/core/AgencyService.java | 33 project-web/src/assets/images/map/icon-qt.png | 0 project-web/src/assets/images/visualization/v-bg.png | 0 project-web/src/assets/imgs/laber.png | 0 project-web/src/styles/element-ui.scss | 99 project-web/src/layout/components/Sidebar/FixiOSBug.js | 36 project-web/src/assets/images/visualization/bg6.png | 0 project-web/src/views/systemSetting/role/selectUser.vue | 147 project-web/src/api/system/role.js | 121 project-web/src/assets/images/project/icon-gygz-lv.png | 0 project-web/public/static/emoji/115.gif | 0 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif | 0 project-web/src/views/dataV/components/batchPlan.vue | 124 project-web/src/styles/styles.scss | 628 project-web/public/static/emoji/158.gif | 0 project-web/src/views/projectConfig/kanbanConfig/items.js | 33 project-web/src/assets/dataV/Group 3649.png | 0 project-web/src/assets/dataV/comprehensive-ico3.png | 0 project-web/src/assets/imgs/weixin.png | 0 project-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue | 205 project-web/public/static/emoji/100.gif | 0 project-web/src/assets/imgs/head.gif | 0 project-web/src/icons/svg/tab.svg | 1 project-web/src/utils/index.js | 407 project-web/src/assets/images/map/open-total.png | 0 project-web/src/components/Breadcrumb/index.vue | 93 project-web/src/utils/print.js | 125 project-web/src/assets/dataV/comprehensive-ico4.png | 0 project-web/src/directive/dialog/dragHeight.js | 43 project-web/src/layout/imgs/xmglA.png | 0 project-web/src/App.vue | 11 project-web/src/views/error-log/components/ErrorTestB.vue | 20 project-web/src/views/projectConfig/stageConfig/node/edit.vue | 118 project-web/src/assets/images/visualization/right.png | 0 project-web/src/assets/theme/theme4.png | 0 project-web/src/views/dataV/components/map.vue | 318 project-web/src/assets/imgs/default.jpg | 0 project-web/public/static/emoji/205.png | 0 project-web/src/icons/svg/exit-fullscreen.svg | 1 project-web/src/api/projectManage/record.js | 18 project-web/src/views/projectConfig/buildPlan/edit.vue | 143 project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif | 0 project-web/public/static/emoji/170.gif | 0 812 files changed, 108,148 insertions(+), 0 deletions(-) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a054658 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +#*.txt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +*.lock +target/ +package-lock.json + +# IDEA +*.iml +*.ipr +*.iws +.hbuilderx/ +.idea/ +.classpath +.progect +.settings/ +bin/ +tmp/ +psmWeb/ +unpackage/ +.vscode diff --git a/consum-base/doc/source_project_manage.pdm b/consum-base/doc/source_project_manage.pdm new file mode 100644 index 0000000..180cee6 --- /dev/null +++ b/consum-base/doc/source_project_manage.pdm @@ -0,0 +1,11643 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?PowerDesigner AppLocale="UTF16" ID="{662D642A-73E4-4CD8-9FD8-09DE1063C71D}" Label="" LastModificationDate="1695375513" Name="projec_progress_manage" Objects="492" Symbols="56" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.7.4.6866"?> +<!-- do not edit this file --> + +<Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"> + +<o:RootObject Id="o1"> +<a:SessionID>00000000-0000-0000-0000-000000000000</a:SessionID> +<c:Children> +<o:Model Id="o2"> +<a:ObjectID>662D642A-73E4-4CD8-9FD8-09DE1063C71D</a:ObjectID> +<a:Name>projec_progress_manage</a:Name> +<a:Code>projec_progress_manage</a:Code> +<a:CreationDate>1695026954</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695282814</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:PackageOptionsText>[FolderOptions] + +[FolderOptions\Physical Objects] +GenerationCheckModel=Yes +GenerationPath= +GenerationOptions= +GenerationTasks= +GenerationTargets= +GenerationSelections= +RevPkey=Yes +RevFkey=Yes +RevAkey=Yes +RevCheck=Yes +RevIndx=Yes +RevOpts=Yes +RevViewAsTabl=No +RevViewOpts=Yes +RevSystAsTabl=Yes +RevTablPerm=No +RevViewPerm=No +RevProcPerm=No +RevDbpkPerm=No +RevSqncPerm=No +RevAdtPerm=No +RevUserPriv=No +RevUserOpts=No +RevGrpePriv=No +RevRolePriv=No +RevDtbsOpts=Yes +RevDtbsPerm=No +RevViewIndx=Yes +RevJidxOpts=Yes +RevStats=No +RevTspcPerm=No +RevCaseSensitive=No +GenTrgrStdMsg=Yes +GenTrgrMsgTab= +GenTrgrMsgNo= +GenTrgrMsgTxt= +TrgrPreserve=No +TrgrIns=Yes +TrgrUpd=Yes +TrgrDel=Yes +TrgrC2Ins=Yes +TrgrC2Upd=Yes +TrgrC3=Yes +TrgrC4=Yes +TrgrC5=Yes +TrgrC6=Yes +TrgrC7=Yes +TrgrC8=Yes +TrgrC9=Yes +TrgrC10=Yes +TrgrC11=Yes +TrgrC1=Yes +TrgrC12Ins=Yes +TrgrC12Upd=Yes +TrgrC13=Yes +UpdateTableStatistics=Yes +UpdateColumnStatistics=Yes +DeploymentMode=REP + +[FolderOptions\Physical Objects\Database Generation] +GenScriptName=progress.sql +GenScriptName0=crebas +GenScriptName1= +GenScriptName2= +GenScriptName3= +GenScriptName4= +GenScriptName5= +GenScriptName6= +GenScriptName7= +GenScriptName8= +GenScriptName9= +GenPathName=D:\powerDesign\ +GenSingleFile=Yes +GenODBC=No +GenCheckModel=Yes +GenScriptPrev=Yes +GenArchiveModel=No +GenUseSync=No +GenSyncChoice=0 +GenSyncArch= +GenSyncRmg=0 + +[FolderOptions\Physical Objects\Database Generation\Format] +GenScriptTitle=Yes +GenScriptNamLabl=No +GenScriptQDtbs=No +GenScriptQOwnr=Yes +GenScriptCase=0 +GenScriptEncoding=ANSI +GenScriptNAcct=No +IdentifierDelimiter=" + +[FolderOptions\Physical Objects\Database Generation\Database] +Create=Yes +Open=Yes +Close=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Database\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Tablespace] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Storage] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\User] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\User\Create] +Physical Options=No + +[FolderOptions\Physical Objects\Database Generation\Group] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\Role] +Create=Yes +Drop=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] +Default value=Yes +Check=Yes + +[FolderOptions\Physical Objects\Database Generation\AbstractDataType] +Create=Yes +Header=Yes +Footer=Yes +Drop=Yes +Comment=Yes +Install JAVA class=Yes +Remove JAVA class=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Rule] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Default] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Sequence] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] +Check=Yes +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] +User datatype=No +Default value=Yes +Check=Yes +Physical Options=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] +Constraint declaration=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] +Constraint declaration=Yes +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] +Primary key=No +Foreign key=No +Alternate key=No +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\View] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\View\Create] +Force Column list=No +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] +Table=Yes +View=Yes +Proc=Yes +Synonym=Yes +Database Package=Yes +Sequence=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Procedure] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Procedure\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\DatabasePackage] +Create=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\WebService] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Dimension] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synchronization] +GenBackupTabl=1 +GenKeepBackTabl=1 +GenTmpTablDrop=No +GenKeepTablOpts=No + +[FolderOptions\Physical Objects\Test Data] +GenDataPathName= +GenDataSinglefile=Yes +GenDataScriptName=testdata +GenDataScriptName0= +GenDataScriptName1= +GenDataScriptName2= +GenDataScriptName3= +GenDataScriptName4= +GenDataScriptName5= +GenDataScriptName6= +GenDataScriptName7= +GenDataScriptName8= +GenDataScriptName9= +GenDataOdbc=0 +GenDataDelOld=No +GenDataTitle=No +GenDataDefNumRows=20 +GenDataCommit=0 +GenDataPacket=0 +GenDataOwner=No +GenDataProfNumb= +GenDataProfChar= +GenDataProfDate= +GenDataCSVSeparator=, +GenDataFileFormat=CSV +GenDataUseWizard=No + +[FolderOptions\Pdm] +IndxIQName=%COLUMN%_%INDEXTYPE% +IndxPK=Yes +IndxFK=Yes +IndxAK=Yes +IndxPKName=%TABLE%_PK +IndxFKName=%REFR%_FK +IndxAKName=%AKEY%_AK +IndxPreserve=No +IndxThreshold=0 +IndxStats=No +RefrPreserve=No +JidxPreserve=No +RbldMultiFact=Yes +RbldMultiDim=Yes +RbldMultiJidx=Yes +CubePreserve=No +TablStProcPreserve=No +ProcDepPreserve=Yes +TrgrDepPreserve=Yes +CubeScriptPath= +CubeScriptCase=0 +CubeScriptEncoding=ANSI +CubeScriptNacct=No +CubeScriptHeader=No +CubeScriptExt=csv +CubeScriptExt0=txt +CubeScriptExt1= +CubeScriptExt2= +CubeScriptSep=, +CubeScriptDeli=" +EstimationYears=0 +DfltDomnName=D_%.U:VALUE% +DfltColnName=D_%.U:VALUE% +DfltReuse=Yes +DfltDrop=Yes + +[FolderOptions\CheckModel] + +[FolderOptions\CheckModel\Package] + +[FolderOptions\CheckModel\Package\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\CheckPackageMissTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\DefaultCheckPackageMissTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\CircularReference] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\ConstraintName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\CnstMaxLen] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\CircularDependency] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Package\ShortcutUniqCode] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Table] + +[FolderOptions\CheckModel\Table\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\UniqIndex] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\MaxLen - NAME] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\EmptyColl - COLNCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\EmptyColl - INDXCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\EmptyColl - KEYCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\SerialColumnNumber] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\EmptyCollYesYes] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\TableIndexes] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\Mapping] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\MappingSFMap] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\EmptyColl - PERMCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Table\CheckTablePartitionKey] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTableStartDate] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTableRefNoLifecycle] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTableSourceMapping] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTablePartialColumnMapping] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTableKeyColumnMapping] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\CheckTableNotOnLifecycleTablespace] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table\MYSQL50_Table_Table_storage_type] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column] + +[FolderOptions\CheckModel\Table.Column\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\DomainDivergence] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\ColumnMandatory] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckNumParam] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckPrecSupLng] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckUndefDttp] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\FkeyDttpDivergence] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\FkeyCheckDivergence] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\ColnSqncNoKey] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\ColnSqncDttp] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\SerialColumnFK] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\ColumnCompExpr] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckColumnOneToOneMapping] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckColumnDataTypeMapping] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckColumnNoMapping] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\CheckDttpIncompatibleFormat] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Auto_increment_key] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Column\MYSQL50_Column_Datatype_attributes] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index] + +[FolderOptions\CheckModel\Table.Index\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\EmptyColl - CIDXCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\UndefIndexType] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\IndexColumnCount] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\IQIndxHNGUniq] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\CheckIncludeColl - Tabl] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Index\MYSQL50_Index_Fulltext_indexes_validity] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key] + +[FolderOptions\CheckModel\Table.Key\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\EmptyColl - COLNCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\CheckIncludeColl - Tabl] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Key\MultiKeySqnc] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger] + +[FolderOptions\CheckModel\Table.Trigger\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table.Trigger\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index] + +[FolderOptions\CheckModel\Join Index\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Join Index\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View] + +[FolderOptions\CheckModel\View\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View\EmptyColl - PERMCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\View.View Index] + +[FolderOptions\CheckModel\View.View Index\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\EmptyColl - CIDXCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\IndexColumnCount] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View.View Index\CheckIncludeColl - Tabl] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference] + +[FolderOptions\CheckModel\Reference\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\Reflexive] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\EmptyColl - RFJNCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\IncompleteJoin] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Reference\JoinOrder] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference] + +[FolderOptions\CheckModel\View Reference\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\View Reference\EmptyColl - VRFJNCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain] + +[FolderOptions\CheckModel\Domain\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\CheckNumParam] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\CheckPrecSupLng] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\CheckUndefDttp] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Domain\CheckDttpIncompatibleFormat] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default] + +[FolderOptions\CheckModel\Default\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\DfltValeEmpty] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Default\DfltSameVale] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User] + +[FolderOptions\CheckModel\User\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\User\UniquePassword] +CheckSeverity=No +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Group] + +[FolderOptions\CheckModel\Group\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\EmptyColl - USERCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Group\UniquePassword] +CheckSeverity=No +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Role] + +[FolderOptions\CheckModel\Role\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Role\EmptyColl - USERCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure] + +[FolderOptions\CheckModel\Procedure\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\ProcBodyEmpty] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Procedure\EmptyColl - PERMCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\DBMS Trigger] + +[FolderOptions\CheckModel\DBMS Trigger\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\DBMS Trigger\DbmsTriggerEvent] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source] + +[FolderOptions\CheckModel\Data Source\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\EmptyColl - MODLSRC] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\DtscTargets] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Source\CheckDataSourceModels] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Horizontal Partitioning] + +[FolderOptions\CheckModel\Horizontal Partitioning\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Horizontal Partitioning\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Horizontal Partitioning\EmptyColl - PARTCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Horizontal Partitioning\TargetTables] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Vertical Partitioning] + +[FolderOptions\CheckModel\Vertical Partitioning\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Vertical Partitioning\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Vertical Partitioning\EmptyColl - PARTCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Vertical Partitioning\TargetTables] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table Collapsing] + +[FolderOptions\CheckModel\Table Collapsing\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table Collapsing\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table Collapsing\EmptyColl - TargetTable] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Table Collapsing\TargetTables] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact] + +[FolderOptions\CheckModel\Fact\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\EmptyColl - MEASCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\Mapping] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\MappingSFMap] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\EmptyColl - ALLOLINKCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact\CubeDupAssociation] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension] + +[FolderOptions\CheckModel\Dimension\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\EmptyColl - DATTRCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\EmptyColl - HIERCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\DimnDupHierarchy] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\DimnDefHierarchy] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\Mapping] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\MappingSFMap] +CheckSeverity=No +FixRequested=Yes +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension\SerialColumnNumber] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association] + +[FolderOptions\CheckModel\Association\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Association\EmptyColl - Hierarchy] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute] + +[FolderOptions\CheckModel\Dimension.Attribute\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Attribute\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure] + +[FolderOptions\CheckModel\Fact.Measure\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Measure\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute] + +[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Fact.Fact Attribute\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy] + +[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Dimension.Hierarchy\EmptyColl - DATTRCOL] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym] + +[FolderOptions\CheckModel\Synonym\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\MaxLen - NAME] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Synonym\EmptyColl - BASEOBJ] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type] + +[FolderOptions\CheckModel\Abstract Data Type\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\AdtInstantiable] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type\AdtAbstractUsed] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure] + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\AdtProcUniqName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\UniqueDefinition] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Abstract Data Type.Abstract Data Type Procedure\ReturnDataType] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package] + +[FolderOptions\CheckModel\Database Package\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\MaxLen - NAME] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\EmptyColl - PROCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package\EmptyColl - CURCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package\EmptyColl - VARCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package\EmptyColl - TYPCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package\EmptyColl - EXCCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package.Database Package Procedure] + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\UniqueDefinition] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\EmptyColl - PARM] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package.Database Package Procedure\ReturnDataType] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence] + +[FolderOptions\CheckModel\Sequence\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Sequence\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor] + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\UniqueDefinition] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\ReturnDataType] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Cursor\EmptyColl - PARM] +CheckSeverity=Yes +FixRequested=No +CheckRequested=No + +[FolderOptions\CheckModel\Database Package.Database Package Variable] + +[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Variable\CheckUndefDttp] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type] + +[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Type\UniqueDefinition] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception] + +[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database Package.Database Package Exception\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace] + +[FolderOptions\CheckModel\Tablespace\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Tablespace\IsObjectUsed] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage] + +[FolderOptions\CheckModel\Storage\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Storage\IsObjectUsed] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database] + +[FolderOptions\CheckModel\Database\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Database\IsObjectUsed] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service] + +[FolderOptions\CheckModel\Web Service\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation] + +[FolderOptions\CheckModel\Web Service.Web Operation\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Web Service.Web Operation\MaxLen - CODE] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle] + +[FolderOptions\CheckModel\Lifecycle\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\CheckLifecyclePhase] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\CheckLifecycleRetention] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle\CheckPartitionRange] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase] + +[FolderOptions\CheckModel\Lifecycle.Phase\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspace] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIQTbspace] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDuplicateTbspace] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseTbspaceCurrency] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseRetention] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseIdlePeriod] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseDataSource] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Lifecycle.Phase\CheckPhaseExternalOnFirst] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Replication] + +[FolderOptions\CheckModel\Replication\PartialReplication] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule] + +[FolderOptions\CheckModel\Business Rule\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Business Rule\EmptyColl - OBJCOL] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object] + +[FolderOptions\CheckModel\Extended Object\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Object\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link] + +[FolderOptions\CheckModel\Extended Link\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Extended Link\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File] + +[FolderOptions\CheckModel\File\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\File\CheckPathExists] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format] + +[FolderOptions\CheckModel\Data Format\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Data Format\CheckDataFormatNullExpression] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area] + +[FolderOptions\CheckModel\Area\CheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\CheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\DefaultCheckUseOnlyTerms] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\DefaultCheckUseTermBySynonym] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\NotApprovedTerms] +CheckSeverity=Yes +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\UniqueName] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes + +[FolderOptions\CheckModel\Area\UniqueCode] +CheckSeverity=No +FixRequested=No +CheckRequested=Yes</a:PackageOptionsText> +<a:ModelOptionsText>[ModelOptions] + +[ModelOptions\Physical Objects] +CaseSensitive=No +DisplayName=Yes +EnableTrans=No +UseTerm=No +EnableRequirements=No +EnableFullShortcut=Yes +SynchroCode=Yes +DefaultDttp= +IgnoreOwner=No +RebuildTrigger=Yes +RefrUnique=No +RefrAutoMigrate=Yes +RefrMigrateReuse=Yes +RefrMigrateDomain=Yes +RefrMigrateCheck=Yes +RefrMigrateRule=Yes +RefrMigrateExtd=No +RefrMigrDefaultLink=No +RefrDfltImpl=D +RefrPrgtColn=No +RefrMigrateToEnd=No +RebuildTriggerDep=No +ColnFKName=%.3:PARENT%_%COLUMN% +ColnFKNameUse=No +DomnCopyDttp=Yes +DomnCopyChck=No +DomnCopyRule=No +DomnCopyMand=No +DomnCopyExtd=No +DomnCopyProf=No +Notation=0 +DomnDefaultMandatory=No +ColnDefaultMandatory=No +TablDefaultOwner= +ViewDefaultOwner= +TrgrDefaultOwnerTabl= +TrgrDefaultOwnerView= +IdxDefaultOwnerTabl= +IdxDefaultOwnerView= +JdxDefaultOwner= +DBPackDefaultOwner= +SeqDefaultOwner= +ProcDefaultOwner= +DBMSTrgrDefaultOwner= +Currency=USD +RefrDeleteConstraint=1 +RefrUpdateConstraint=1 +RefrParentMandatory=No +RefrParentChangeAllow=Yes +RefrCheckOnCommit=No + +[ModelOptions\Physical Objects\NamingOptionsTemplates] + +[ModelOptions\Physical Objects\ClssNamingOptions] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL] + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN] + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX] + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR] + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF] + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT] + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO] + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\AREA] + +[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\AREA\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Connection] + +[ModelOptions\Pdm] + +[ModelOptions\Generate] + +[ModelOptions\Generate\Xsm] +GenRootElement=Yes +GenComplexType=No +GenAttribute=Yes +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=No + +[ModelOptions\Generate\Pdm] +RRMapping=No + +[ModelOptions\Generate\Cdm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No +Notation=2 + +[ModelOptions\Generate\Oom] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=Yes +ClassPrefix= + +[ModelOptions\Generate\Ldm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No + +[ModelOptions\Default Opts] + +[ModelOptions\Default Opts\TABL] +PhysOpts= + +[ModelOptions\Default Opts\COLN] +PhysOpts= + +[ModelOptions\Default Opts\INDX] +PhysOpts= + +[ModelOptions\Default Opts\AKEY] +PhysOpts= + +[ModelOptions\Default Opts\PKEY] +PhysOpts= + +[ModelOptions\Default Opts\STOR] +PhysOpts= + +[ModelOptions\Default Opts\TSPC] +PhysOpts= + +[ModelOptions\Default Opts\SQNC] +PhysOpts= + +[ModelOptions\Default Opts\DTBS] +PhysOpts= + +[ModelOptions\Default Opts\USER] +PhysOpts= + +[ModelOptions\Default Opts\JIDX] +PhysOpts=</a:ModelOptionsText> +<a:GlobalObjectID/> +<a:RepositoryFilename>D:\powerDesign\source_project_manage.pdm</a:RepositoryFilename> +<c:DBMS> +<o:Shortcut Id="o3"> +<a:ObjectID>C5F30C5C-D582-437E-822E-DD847931775E</a:ObjectID> +<a:Name>MySQL 5.0</a:Name> +<a:Code>MYSQL50</a:Code> +<a:CreationDate>1695026953</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695026953</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:TargetStereotype/> +<a:GlobalObjectID/> +<a:TargetID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetID> +<a:TargetClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetClassID> +</o:Shortcut> +</c:DBMS> +<c:PhysicalDiagrams> +<o:PhysicalDiagram Id="o4"> +<a:ObjectID>BC58E1B8-957B-40C7-8C90-9F72E6107A81</a:ObjectID> +<a:Name>projec_progress_manage</a:Name> +<a:Code>projec_progress_manage</a:Code> +<a:CreationDate>1695026954</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192818</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:DisplayPreferences>[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=Yes +Activate automatic link routing=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=0 +Trunc Length=80 +Word Length=80 +Word Text=!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +Area.IconPicture=Yes +Area.Stereotype=Yes +Area.Comment=No +Area.TextStyle=No +Area.SubSymbols=Yes +Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout= +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout= +ExtDpdShowStrn=Yes +ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout= +Package.Stereotype=No +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout= +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=Yes +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\AREA] +STRNFont=鏂板畫浣�,8,N +STRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LABLFont=鏂板畫浣�,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=9600 +Height=8000 +Brush color=253 249 234 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=16 +Brush gradient color=245 230 173 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 121 98 6 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=Arial,8,N +CENTERFont color=0, 0, 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +Line style=0 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=鏂板畫浣�,8,N +OBJSTRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LCNMFont=鏂板畫浣�,8,N +LCNMFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=Yes +Keep center=Yes +Keep size=No +Width=2400 +Height=2400 +Brush color=255 255 255 +Fill Color=No +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=-1 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=Arial,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=Arial,8,N +TableFkColumnsFont color=0 0 0 +KeysFont=Arial,8,N +KeysFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +TriggersFont=Arial,8,N +TriggersFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=210 137 2 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=鏂板畫浣�,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=鏂板畫浣�,8,N +TableFkColumnsFont color=0 0 0 +TemporaryVTablesFont=Arial,8,N +TemporaryVTablesFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=233 202 131 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=Arial,8,N +Free TextFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=24 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0</a:DisplayPreferences> +<a:PaperSize>(8268, 11693)</a:PaperSize> +<a:PageMargins>((315,354), (433,354))</a:PageMargins> +<a:PageOrientation>1</a:PageOrientation> +<a:PaperSource>15</a:PaperSource> +<c:Symbols> +<o:PackageSymbol Id="o5"> +<a:CreationDate>1695192369</a:CreationDate> +<a:ModificationDate>1695192830</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-17426,648), (-12402,4247))</a:Rect> +<a:LineColor>11711154</a:LineColor> +<a:FillColor>12648447</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<c:Object> +<o:Package Ref="o6"/> +</c:Object> +</o:PackageSymbol> +<o:PackageSymbol Id="o7"> +<a:CreationDate>1695192630</a:CreationDate> +<a:ModificationDate>1695192825</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-17292,-8196), (-12268,-4596))</a:Rect> +<a:LineColor>11711154</a:LineColor> +<a:FillColor>12648447</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<c:Object> +<o:Package Ref="o8"/> +</c:Object> +</o:PackageSymbol> +</c:Symbols> +</o:PhysicalDiagram> +</c:PhysicalDiagrams> +<c:Packages> +<o:Package Id="o6"> +<a:ObjectID>BC9E705A-F7E6-42A7-9042-940DB19B9AC4</a:ObjectID> +<a:Name>1.椤圭洰閰嶇疆鍖�</a:Name> +<a:Code>1.椤圭洰閰嶇疆鍖�</a:Code> +<a:CreationDate>1695192369</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368892</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:PhysicalDiagrams> +<o:PhysicalDiagram Id="o9"> +<a:ObjectID>1F52F91C-A72B-4C97-A327-D803765CEDF9</a:ObjectID> +<a:Name>椤圭洰閰嶇疆</a:Name> +<a:Code>椤圭洰閰嶇疆</a:Code> +<a:CreationDate>1695192369</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366629</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:DisplayPreferences>[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=Yes +Activate automatic link routing=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=0 +Trunc Length=80 +Word Length=80 +Word Text=!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +Area.IconPicture=Yes +Area.Stereotype=Yes +Area.Comment=No +Area.TextStyle=No +Area.SubSymbols=Yes +Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout= +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout= +ExtDpdShowStrn=Yes +ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout= +Package.Stereotype=No +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout= +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=Yes +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\AREA] +STRNFont=鏂板畫浣�,8,N +STRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LABLFont=鏂板畫浣�,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=9600 +Height=8000 +Brush color=253 249 234 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=16 +Brush gradient color=245 230 173 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 121 98 6 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=Arial,8,N +CENTERFont color=0, 0, 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +Line style=0 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=鏂板畫浣�,8,N +OBJSTRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LCNMFont=鏂板畫浣�,8,N +LCNMFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=Yes +Keep center=Yes +Keep size=No +Width=2400 +Height=2400 +Brush color=255 255 255 +Fill Color=No +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=-1 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=Arial,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=Arial,8,N +TableFkColumnsFont color=0 0 0 +KeysFont=Arial,8,N +KeysFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +TriggersFont=Arial,8,N +TriggersFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=210 137 2 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=鏂板畫浣�,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=鏂板畫浣�,8,N +TableFkColumnsFont color=0 0 0 +TemporaryVTablesFont=Arial,8,N +TemporaryVTablesFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=233 202 131 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=Arial,8,N +Free TextFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=24 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0</a:DisplayPreferences> +<a:PaperSize>(8268, 11693)</a:PaperSize> +<a:PageMargins>((315,354), (433,354))</a:PageMargins> +<a:PageOrientation>1</a:PageOrientation> +<a:PaperSource>15</a:PaperSource> +<c:Symbols> +<o:ReferenceSymbol Id="o10"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277290</a:ModificationDate> +<a:Rect>((-93718,31387), (-55951,32908))</a:Rect> +<a:ListOfPoints>((-56351,32012),(-93318,32012))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o11"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o12"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o13"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o14"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277038</a:ModificationDate> +<a:Rect>((-107177,10373), (-55823,12177))</a:Rect> +<a:ListOfPoints>((-56223,10986),(-83770,10986),(-83770,11552),(-106777,11552))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<a:AutomaticRoutingState>4</a:AutomaticRoutingState> +<c:SourceSymbol> +<o:TableSymbol Ref="o15"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o16"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o17"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o18"> +<a:CreationDate>1695277362</a:CreationDate> +<a:ModificationDate>1695277362</a:ModificationDate> +<a:Rect>((-40848,28899), (-8903,48297))</a:Rect> +<a:ListOfPoints>((-9303,29299),(-19054,29299),(-19054,47672),(-40448,47672))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o19"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o20"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o21"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o22"> +<a:CreationDate>1695278624</a:CreationDate> +<a:ModificationDate>1695278624</a:ModificationDate> +<a:Rect>((-40969,10878), (3985,24943))</a:Rect> +<a:ListOfPoints>((-1827,24543),(-1827,11503),(-40569,11503))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o19"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o15"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o23"/> +</c:Object> +</o:ReferenceSymbol> +<o:ArchitectureAreaSymbol Id="o24"> +<a:CreationDate>1695194807</a:CreationDate> +<a:ModificationDate>1695277357</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-15351,17757), (10561,55939))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:ReferenceSymbol Id="o25"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695275514</a:ModificationDate> +<a:Rect>((-6924,33655), (4700,43282))</a:Rect> +<a:ListOfPoints>((-1112,34055),(-1112,42882))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o19"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o26"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o27"/> +</c:Object> +</o:ReferenceSymbol> +<o:TableSymbol Id="o26"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695275513</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-9604,42882), (4980,52360))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>166354</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o28"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o19"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695275514</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-9303,24543), (5649,34055))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>166354</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o29"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o30"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o31"> +<a:CreationDate>1695194811</a:CreationDate> +<a:ModificationDate>1695276260</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-113337,1183), (-88853,38476))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:ReferenceSymbol Id="o32"> +<a:CreationDate>1695194913</a:CreationDate> +<a:ModificationDate>1695276260</a:ModificationDate> +<a:Rect>((-106977,18305), (-95353,21036))</a:Rect> +<a:ListOfPoints>((-101165,18705),(-101165,20636))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o16"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o12"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o33"/> +</c:Object> +</o:ReferenceSymbol> +<o:TableSymbol Id="o12"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695276260</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-109012,20636), (-93318,36824))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>8421376</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o34"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o16"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695276260</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-108936,2221), (-93290,18705))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>8421376</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o35"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o36"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o37"> +<a:CreationDate>1695194816</a:CreationDate> +<a:ModificationDate>1695277038</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-64173,-14843), (-32546,56017))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:ReferenceSymbol Id="o38"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:Rect>((-54320,-561), (-42696,2691))</a:Rect> +<a:ListOfPoints>((-48508,-161),(-48508,2291))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o39"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o15"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o40"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o41"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:Rect>((-63018,12352), (-51394,32035))</a:Rect> +<a:ListOfPoints>((-56447,12752),(-57206,12752),(-57206,31410),(-56351,31410))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o15"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o11"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o42"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o43"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:Rect>((-54330,35659), (-42706,46959))</a:Rect> +<a:ListOfPoints>((-48518,36059),(-48518,46559))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<a:AutomaticRoutingState>2</a:AutomaticRoutingState> +<c:SourceSymbol> +<o:TableSymbol Ref="o11"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o20"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o44"/> +</c:Object> +</o:ReferenceSymbol> +<o:TableSymbol Id="o20"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-56288,38409), (-40448,54367))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o45"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o11"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277290</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-56351,22519), (-40657,36059))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o46"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o15"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-56447,2291), (-40569,20715))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o47"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o39"> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277035</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-56733,-12441), (-40169,-161))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o48"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o49"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:NoteSymbol Id="o50"> +<a:Text>瀵归」鐩樁娈靛簱銆侀」鐩樁娈佃妭鐐瑰簱杩涜鍒犻櫎銆佹洿鏀圭姸鎬佹椂锛岄渶瑕佹牎楠屾ā鏉夸腑鏄惁浣跨敤</a:Text> +<a:CreationDate>1695192387</a:CreationDate> +<a:ModificationDate>1695277057</a:ModificationDate> +<a:Rect>((-88698,16459), (-64022,24191))</a:Rect> +<a:TextStyle>4130</a:TextStyle> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>0</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>16777215</a:ShadowColor> +<a:FontName>Arial,8,N</a:FontName> +<a:ManuallyResized>1</a:ManuallyResized> +</o:NoteSymbol> +<o:ArchitectureAreaSymbol Id="o51"> +<a:CreationDate>1695366573</a:CreationDate> +<a:ModificationDate>1695369063</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-99274,39359), (-65546,86995))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:TableSymbol Id="o52"> +<a:CreationDate>1695366573</a:CreationDate> +<a:ModificationDate>1695370314</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-92819,45013), (-73231,52975))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>33023</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o53"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o54"> +<a:CreationDate>1695366627</a:CreationDate> +<a:ModificationDate>1695369063</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-92724,53691), (-73418,85419))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>33023</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o55"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o56"/> +</c:Object> +</o:ArchitectureAreaSymbol> +</c:Symbols> +</o:PhysicalDiagram> +</c:PhysicalDiagrams> +<c:DefaultDiagram> +<o:PhysicalDiagram Ref="o9"/> +</c:DefaultDiagram> +<c:Tables> +<o:Table Id="o53"> +<a:ObjectID>5A207FA7-3702-4C0F-83CB-36FE3F5B989F</a:ObjectID> +<a:Name>椤圭洰涓存湡棰勮妯℃澘鎺ユ敹浜篬P_TEMP_EXPIRATION_NOTIFY_USER]</a:Name> +<a:Code>P_TEMP_EXPIRATION_NOTIFY_USER</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695454638</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰涓存湡棰勮妯℃澘鎺ユ敹浜篬P_TEMP_EXPIRATION_NOTIFY_USER]</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o57"> +<a:ObjectID>9A47D14B-0395-488D-98A7-35E97A461045</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366573</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o58"> +<a:ObjectID>E633C942-44A7-4E72-BC36-133036654E24</a:ObjectID> +<a:Name>涓存湡棰勮妯℃澘ID</a:Name> +<a:Code>TEMP_EXPIRATION_NOTIFY_ID</a:Code> +<a:CreationDate>1695369075</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695369174</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡棰勮妯℃澘ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o59"> +<a:ObjectID>E7134FE5-06B8-4594-A592-313266073E84</a:ObjectID> +<a:Name>棰勮绫诲瀷</a:Name> +<a:Code>EXPIRE_TYPE</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366573</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮绫诲瀷,瀵瑰簲涓存湡棰勮琛ㄥ瓧娈� +1:棰勮鍓�1 +2:棰勮鍓�2 +3:棰勮鍓�3 +4:瓒呮湡鍚�1 + 5:瓒呮湡鍚�2 +6:瓒呮湡鍚�3</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o60"> +<a:ObjectID>28DF1649-19CE-4B1A-B56B-60777458D3C8</a:ObjectID> +<a:Name>閫氱煡浜哄憳ID</a:Name> +<a:Code>NOTIFY_ID</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695369193</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>浜哄憳琛╱serid</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o61"> +<a:ObjectID>9D14B372-E1D7-42D6-A951-2E53602E9195</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366573</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o57"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o61"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o47"> +<a:ObjectID>EA277095-B64E-42AF-BB66-D5EF0396A6EF</a:ObjectID> +<a:Name>椤圭洰-闃舵鍏崇郴妯℃澘鑺傜偣[P_TEMP_PROJECT_STAGE_NODE]</a:Name> +<a:Code>P_TEMP_PROJECT_STAGE_NODE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278633</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰-闃舵鍏崇郴妯℃澘鑺傜偣</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o62"> +<a:ObjectID>D4A70CD4-A497-4F8A-B4BC-D440427BECC0</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o63"> +<a:ObjectID>DC7ED473-A535-4F6F-8529-D8D5BF40860C</a:ObjectID> +<a:Name>椤圭洰妯℃澘id</a:Name> +<a:Code>TEMP_PROJECT_ID</a:Code> +<a:CreationDate>1695204124</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695204148</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o64"> +<a:ObjectID>D0327E9A-1908-49F5-9E43-0507D98E6793</a:ObjectID> +<a:Name>椤圭洰-闃舵鍏崇郴妯℃澘ID</a:Name> +<a:Code>TEMP_PROJECT_STAGE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰-闃舵鍏崇郴妯℃澘ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o65"> +<a:ObjectID>BB37D155-2516-48DA-8546-8D9BE457407A</a:ObjectID> +<a:Name>椤圭洰闃舵鑺傜偣搴撶殑ID</a:Name> +<a:Code>PROGRESS_TEMP_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵鑺傜偣搴撶殑ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o66"> +<a:ObjectID>F34C45AA-EFA8-490F-8D7B-604018AFC457</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695277246</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277258</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭锛屼笉鑳介噸澶�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o67"> +<a:ObjectID>5FC11CE7-9753-4A64-8743-792E3F7AF9A3</a:ObjectID> +<a:Name>鑷」鐩紑濮嬬N澶�</a:Name> +<a:Code>NODE_TIME_START</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑷」鐩紑濮嬬N澶�</a:Comment> +<a:LowValue>0</a:LowValue> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o68"> +<a:ObjectID>B9052F8F-8B25-42B6-9653-44867AD53165</a:ObjectID> +<a:Name>鎸佺画澶╂暟</a:Name> +<a:Code>NODE_TIME_DAYS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎸佺画澶╂暟锛屽嵆鑺傜偣鍛ㄦ湡</a:Comment> +<a:LowValue>0</a:LowValue> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o69"> +<a:ObjectID>547CABAC-45C6-4F60-909C-ED4456C21556</a:ObjectID> +<a:Name>瀹屾垚鍚庢彁閱�</a:Name> +<a:Code>COMPLETE_NOTIFY_STATUS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀹屾垚鍚庢彁閱� 0 涓嶆彁閱� 1 鎻愰啋</a:Comment> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o70"> +<a:ObjectID>2987C893-7269-468A-AB88-BA502BD01119</a:ObjectID> +<a:Name>鏄惁涓存湡棰勮</a:Name> +<a:Code>WARN_NEED</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>0涓嶉璀︼紝1棰勮</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o71"> +<a:ObjectID>73EC8293-DE34-4F36-89E7-B8F9568601F2</a:ObjectID> +<a:Name>闄勪欢蹇呬紶</a:Name> +<a:Code>FILE_NEED</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>0闈炲繀濉�1蹇呭~</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o72"> +<a:ObjectID>C0E413F0-6304-4A05-ABCD-A39F7F8701AE</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o73"> +<a:ObjectID>5F776F7E-B3B4-4883-A6F5-13BB6491301A</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o74"> +<a:ObjectID>393007B2-7149-49F4-9B41-D60E662D051B</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o75"> +<a:ObjectID>2D1136C4-E20B-449B-AA4E-BAC97947B7A8</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o76"> +<a:ObjectID>1A7965C7-6123-480C-AE47-FCDC7FC168B2</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o77"> +<a:ObjectID>28D2E25C-AD4D-4ED1-8288-9EF1E88DBC3F</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o78"> +<a:ObjectID>42940713-D7EF-419D-9E40-8D1C21482CC5</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695276487</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276497</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o79"> +<a:ObjectID>F6BEE0BB-2A4A-4FFC-A901-390C344A39E7</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o62"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o80"> +<a:ObjectID>C3E89045-F772-42AE-B449-B3E531E9F66B</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_NODE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o79"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o46"> +<a:ObjectID>51284738-D1B6-4B85-899A-ACE8403950ED</a:ObjectID> +<a:Name>椤圭洰-闃舵鍏崇郴妯℃澘[P_TEMP_PROJECT_STAGE]</a:Name> +<a:Code>P_TEMP_PROJECT_STAGE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277232</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰-闃舵鍏崇郴妯℃澘</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o81"> +<a:ObjectID>C09186FD-4DE6-4CC9-8627-8F8C4B80CDC4</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o82"> +<a:ObjectID>39AB2B43-66B7-446A-86E9-B629C8912A86</a:ObjectID> +<a:Name>椤圭洰妯℃澘id</a:Name> +<a:Code>TEMP_PROJECT_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o83"> +<a:ObjectID>A9618D9C-0909-46CC-9277-EC722C8EDBEA</a:ObjectID> +<a:Name>椤圭洰闃舵搴揑d</a:Name> +<a:Code>PROGRESS_TEMP_STAGE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵搴揑d</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o84"> +<a:ObjectID>B654354C-D48A-4558-BB11-A75D121C3877</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695277214</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277232</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭锛屼笉鑳介噸澶�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o85"> +<a:ObjectID>1823C7C9-01B5-4463-ABB5-CDCBABDD229C</a:ObjectID> +<a:Name>闃舵宸ユ湡</a:Name> +<a:Code>STAGE_TIME_DAYS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵宸ユ湡</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o86"> +<a:ObjectID>66ABF0E5-0E2A-4564-B132-31D304822B18</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o87"> +<a:ObjectID>2BE05520-2A68-43DB-BCCE-63593C8B8D58</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o88"> +<a:ObjectID>4DEFC858-7987-4094-AD7C-1BF615F645B2</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o89"> +<a:ObjectID>698FCD16-D494-4250-B53F-BD76DA6E83C1</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o90"> +<a:ObjectID>13AF2F3D-7463-4530-9E07-5FD0A7F2A849</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o91"> +<a:ObjectID>74A67E83-4649-4962-A727-1E4CEA21CFD3</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o92"> +<a:ObjectID>8482CA19-2630-41B0-9388-003A2CBDFA5B</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695276465</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o93"> +<a:ObjectID>20E664FE-369C-48C1-99E3-830FFFD0713E</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o81"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o93"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o28"> +<a:ObjectID>55FE6E31-B10B-442B-8834-36B0F8A409A2</a:ObjectID> +<a:Name>椤圭洰妯℃澘鐨勭湅鏉縖P_TEMP_PROJECT_BOARD]</a:Name> +<a:Code>P_TEMP_PROJECT_BOARD</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365266</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘鐨勭湅鏉�</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o94"> +<a:ObjectID>E1CFC375-2A32-4114-940B-E012E8BF1C78</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o95"> +<a:ObjectID>81DD2525-CF64-4C63-ACA0-929DCDC33A87</a:ObjectID> +<a:Name>鍏抽敭鑺傜偣鍚嶇О</a:Name> +<a:Code>BOARD_NAME</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695204906</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍏抽敭鑺傜偣鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o96"> +<a:ObjectID>0649A9F2-F4AC-4169-B662-1B20F6775D94</a:ObjectID> +<a:Name>鍏抽敭鑺傜偣缂栧彿</a:Name> +<a:Code>BOARD_CODE</a:Code> +<a:CreationDate>1695365231</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365256</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍏抽敭鑺傜偣缂栧彿锛屽敮涓�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o97"> +<a:ObjectID>AAFCEE13-FB03-4522-AA47-AA6B84AD39D0</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695277316</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277910</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o98"> +<a:ObjectID>A80752E9-8EA8-4E27-914A-2F4B16ABDEFC</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695365131</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365143</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o99"> +<a:ObjectID>F52B03DA-2269-477C-9ABE-F43334EF9F46</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o94"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o99"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o29"> +<a:ObjectID>BECE9AFE-4733-4418-9E35-4433E1A52970</a:ObjectID> +<a:Name>椤圭洰妯℃澘鐪嬫澘鑺傜偣[P_TEMP_PROJECT_BOARD_NODE]</a:Name> +<a:Code>P_TEMP_PROJECT_BOARD_NODE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278633</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘鐪嬫澘鑺傜偣</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o100"> +<a:ObjectID>1977D45B-B062-46DE-AD57-095776727BCD</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278633</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o101"> +<a:ObjectID>3419F6D3-E2BF-49C4-8ADD-6DF574B48AC8</a:ObjectID> +<a:Name>椤圭洰妯℃澘id</a:Name> +<a:Code>TEMP_PROJECT_ID</a:Code> +<a:CreationDate>1695276932</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276945</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o102"> +<a:ObjectID>B22D7162-B4CB-40B0-9EF8-1DE820309159</a:ObjectID> +<a:Name>鐪嬫澘id</a:Name> +<a:Code>TEMP_BOARD_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o103"> +<a:ObjectID>8CA262A9-AFAB-4050-9D03-5B52E211C30A</a:ObjectID> +<a:Name>妯℃澘鑺傜偣id</a:Name> +<a:Code>TEMP_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o104"> +<a:ObjectID>1D0829B3-BD6C-4486-A510-C3E4DA3FCC46</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695277302</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365291</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o105"> +<a:ObjectID>86B88CC5-83D5-49F5-A947-F3AA6ABFB7DB</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o100"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o105"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o48"> +<a:ObjectID>B2934ACD-1D22-4327-8744-1A42BB854F80</a:ObjectID> +<a:Name>椤圭洰鑺傜偣閫氱煡妯℃澘[P_TEMP_PROJECT_STAGE_NODE_NOTIFY]</a:Name> +<a:Code>P_TEMP_PROJECT_STAGE_NODE_NOTIFY</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278427</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鑺傜偣閫氱煡妯℃澘</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o106"> +<a:ObjectID>BD7C7B1E-C142-4A0F-9233-B2B4C126A9C9</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o107"> +<a:ObjectID>6DE6B61B-9C95-4F14-AA89-BE1CD3F888FF</a:ObjectID> +<a:Name>椤圭洰妯℃澘id</a:Name> +<a:Code>TEMP_PROJECT_ID</a:Code> +<a:CreationDate>1695276991</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277003</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o108"> +<a:ObjectID>252CE1B7-0ECE-44E7-8A26-EB1B967121B9</a:ObjectID> +<a:Name>瑙﹀彂閫氱煡鐨勬ā鏉胯妭鐐筰d</a:Name> +<a:Code>TEMP_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瑙﹀彂閫氱煡鐨勬ā鏉胯妭鐐筰d</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o109"> +<a:ObjectID>A7C9D96B-15A7-4A5C-A231-459A76809F47</a:ObjectID> +<a:Name>閫氱煡闃舵 or 鑺傜偣</a:Name> +<a:Code>NOTIFY_TEMP_TYPE</a:Code> +<a:CreationDate>1695203869</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276778</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫氱煡闃舵 or 鑺傜偣 0闃舵 1鑺傜偣</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o110"> +<a:ObjectID>A329B2AB-ADF7-45A5-A6F2-6F7E8C4E5F37</a:ObjectID> +<a:Name>閫氱煡闃舵 or 鑺傜偣鐨勬ā鏉� id</a:Name> +<a:Code>NOTIFY_TEMP_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276755</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫氱煡闃舵 or 鑺傜偣鐨勬ā鏉� id </a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o111"> +<a:ObjectID>D99CA3F7-800B-4543-A6DF-A69627713B9F</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o106"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o111"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o45"> +<a:ObjectID>E96873E1-081E-4F04-9025-FE7F6AB1DF83</a:ObjectID> +<a:Name>椤圭洰妯℃澘[P_TEMP_PROJECT]</a:Name> +<a:Code>P_TEMP_PROJECT</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277377</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o112"> +<a:ObjectID>92F251BD-76F2-4DC4-8A8D-86581C7C2736</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o113"> +<a:ObjectID>86D6CC1C-1F30-4DDD-A87C-34D70B40E6AA</a:ObjectID> +<a:Name>璁″垝绫诲瀷缂栫爜</a:Name> +<a:Code>PLAN_TYPE_CODE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐮佽〃缂栫爜锛孭LAN_TYPE</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o114"> +<a:ObjectID>C5B47DCB-FCF0-493D-84F4-7E40E0AC8671</a:ObjectID> +<a:Name>璁″垝绫诲瀷鍚嶇О</a:Name> +<a:Code>PLAN_TYPE_NAME</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐮佽〃缂栫爜锛孭LAN_TYPE</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o115"> +<a:ObjectID>9CE40DE0-422B-4C01-9A5E-545F31BF5ED7</a:ObjectID> +<a:Name>妯℃澘鍚嶇О</a:Name> +<a:Code>PROJECT_NAME</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o116"> +<a:ObjectID>691DB0E6-2A70-48D4-BB50-B3D69D086904</a:ObjectID> +<a:Name>椤圭洰妯℃澘缂栧彿</a:Name> +<a:Code>PROJECT_CODE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695203341</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘缂栧彿锛屽敮涓�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o117"> +<a:ObjectID>0AF1240A-8745-43B7-8196-AEC42DDB391B</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o118"> +<a:ObjectID>094C1D8B-001C-4C2F-B322-52F69276C328</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭锛屼笉鑳介噸澶�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o119"> +<a:ObjectID>5455A250-3344-4D5D-94D7-F427C3E3912D</a:ObjectID> +<a:Name>澶囨敞</a:Name> +<a:Code>REMARK</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>澶囨敞</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o120"> +<a:ObjectID>4A2D471A-0758-4B45-911E-6092BD09A370</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o121"> +<a:ObjectID>BC021A7D-EFAD-4AAD-BC3B-F6ADE6BAD9F2</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o122"> +<a:ObjectID>A8E27202-0E55-40C4-AE19-9D5854DF6E08</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o123"> +<a:ObjectID>1FD2D4AF-737B-4585-BAF0-DCC8B240533F</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o124"> +<a:ObjectID>7413C3D6-A755-41E3-9894-6241DBE9BD88</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o125"> +<a:ObjectID>999DBCA3-6C32-481F-AA01-42C56C048CB6</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o126"> +<a:ObjectID>1F674C54-5441-4F6C-9555-DB6A11739752</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695276408</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276463</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o127"> +<a:ObjectID>629F41E8-EF28-42DD-8B71-38FF6D6A494A</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o112"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o128"> +<a:ObjectID>B9798B4B-FB11-4AD7-B9EE-E03541D60EE3</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +<c:Key.Columns> +<o:Column Ref="o118"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o127"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o35"> +<a:ObjectID>C4EA1E13-A446-455D-8E2C-524875E2AF74</a:ObjectID> +<a:Name>椤圭洰闃舵鑺傜偣搴揫P_TEMP_STAGE_NODE]</a:Name> +<a:Code>P_TEMP_STAGE_NODE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵鑺傜偣搴�</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o129"> +<a:ObjectID>EF84BBEB-9F9C-41A3-B23B-5C9009A8034F</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o130"> +<a:ObjectID>163E4F7D-6F93-47F7-A527-3FDF67F09B47</a:ObjectID> +<a:Name>闃舵id</a:Name> +<a:Code>STAGE_ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o131"> +<a:ObjectID>3B32B34F-6AF4-4C8A-BB9B-758B6AE831AA</a:ObjectID> +<a:Name>鍚嶇О</a:Name> +<a:Code>NODE_NAME</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o132"> +<a:ObjectID>A530D2CD-9DB8-49AB-910C-B9F0F56F1A93</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o133"> +<a:ObjectID>7F7BAC31-50AE-4A77-8C98-D8975E765B5C</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭 涓嶈兘閲嶅</a:Comment> +<a:DataType>int</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o134"> +<a:ObjectID>C33C78BC-229B-481D-BDC6-726370FD2A47</a:ObjectID> +<a:Name>澶囨敞</a:Name> +<a:Code>REMARK</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>澶囨敞</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o135"> +<a:ObjectID>BDEA0049-119E-4235-B975-766022514242</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o136"> +<a:ObjectID>1C915F9D-E176-4104-B2BB-AF38518D90E0</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o137"> +<a:ObjectID>698F84DC-13DB-40D4-8B72-9DCD0C7A6548</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o138"> +<a:ObjectID>2C187839-BE8E-4E0B-A7F1-96A39089CC8E</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o139"> +<a:ObjectID>1D5CD6BB-B53C-4765-A0AF-E105CA8C0332</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o140"> +<a:ObjectID>D8735AF2-FE5F-4F8B-BE01-F87835A3F8A3</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o141"> +<a:ObjectID>2AAAC35B-B3DF-40EF-BAC2-3100F768A4A2</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695276149</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276230</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o142"> +<a:ObjectID>558D3ED2-120C-4289-B4B5-DA15CAACFFFA</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o129"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o143"> +<a:ObjectID>302BED4F-F687-4B7D-A1AF-3F8276639FBB</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_NODE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +<c:Key.Columns> +<o:Column Ref="o130"/> +<o:Column Ref="o133"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o142"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o34"> +<a:ObjectID>F9DAE7D1-2301-4446-A22D-87AC80968684</a:ObjectID> +<a:Name>椤圭洰闃舵搴揫P_TEMP_STAGE]</a:Name> +<a:Code>P_TEMP_STAGE</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276137</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵搴�</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o144"> +<a:ObjectID>E572CA15-C502-4780-BDF9-618407FA1734</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o145"> +<a:ObjectID>6B3AD520-52C6-424E-967F-E0826171BB46</a:ObjectID> +<a:Name>闃舵鍚嶇О</a:Name> +<a:Code>STAGE_NAME</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o146"> +<a:ObjectID>885D9E6B-D325-400F-A5B5-9B8F5EDA08FD</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o147"> +<a:ObjectID>4493FF45-2D7D-4762-BF15-98F2B218B5D6</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭锛屼笉鑳介噸澶�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o148"> +<a:ObjectID>3C7F559D-E1AC-46DB-83E9-9FC6996F4E60</a:ObjectID> +<a:Name>澶囨敞</a:Name> +<a:Code>REMARK</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>澶囨敞</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o149"> +<a:ObjectID>D68808D4-B396-4068-AEC3-4F601E1D55BF</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695203055</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276088</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o150"> +<a:ObjectID>4BAF1808-938B-4D73-87D6-1B4F64C155F2</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695203055</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276125</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o151"> +<a:ObjectID>DBFE5F26-0B09-4171-A4D8-7DDA1285E280</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695203055</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276125</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o152"> +<a:ObjectID>324C8646-8115-47F8-834A-A517CD5D61FD</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695275926</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276125</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o153"> +<a:ObjectID>5AE4196A-AEA2-493E-A7F1-BED8FA035A0D</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695276125</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276137</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o154"> +<a:ObjectID>1269F2FB-D754-4F32-B19C-4BE4A39E5ED3</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695276125</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276137</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o155"> +<a:ObjectID>C6BD80D1-DEC5-4466-98D8-D29823E4828D</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695276125</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695276137</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o156"> +<a:ObjectID>DE99A5F1-33F9-40AC-8674-2719371A8256</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o144"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o157"> +<a:ObjectID>873815CC-982C-4C8A-B42E-63A5D340C7D0</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +<c:Key.Columns> +<o:Column Ref="o147"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o156"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o55"> +<a:ObjectID>1BF82488-C883-475C-B847-9D738AC6B192</a:ObjectID> +<a:Name>椤圭洰涓存湡棰勮妯℃澘[P_TEMP_EXPIRATION_NOTIFY]</a:Name> +<a:Code>P_TEMP_EXPIRATION_NOTIFY</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368745</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰涓存湡棰勮妯℃澘</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o158"> +<a:ObjectID>3CD5F31A-F7DD-405B-BC58-BA705E33D7FD</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o159"> +<a:ObjectID>22C418B1-3EFC-4D80-B91E-ACF0C0CB80AE</a:ObjectID> +<a:Name>棰勮妯℃澘鍚嶇О</a:Name> +<a:Code>TEMP_EXPIRATION_NOTIFY_NAME</a:Code> +<a:CreationDate>1695366704</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695448911</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮妯℃澘鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o160"> +<a:ObjectID>B0CDE073-5233-42D0-A1CD-2F39575B9033</a:ObjectID> +<a:Name>棰勮妯℃澘缂栧彿</a:Name> +<a:Code>TEMP_EXPIRATION_NOTIFY_CODE</a:Code> +<a:CreationDate>1695366704</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695448911</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮妯℃澘缂栧彿锛屽敮涓�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o161"> +<a:ObjectID>54FEA2E8-DE62-4075-A8DD-15A29D326ECD</a:ObjectID> +<a:Name>涓存湡鍓�1</a:Name> +<a:Code>EXPIRE_BEFORE_1</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�1</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o162"> +<a:ObjectID>0A4DF9E1-ADD7-4B69-9CE2-10983394A3C5</a:ObjectID> +<a:Name>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊1</a:Name> +<a:Code>BEFORE_MANAGER_NOTIFY_1</a:Code> +<a:CreationDate>1695368013</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368322</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊1</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o163"> +<a:ObjectID>859D5E5E-A686-4FB8-A5D9-F53BBC6DAC72</a:ObjectID> +<a:Name>涓存湡鍓�2</a:Name> +<a:Code>EXPIRE_BEFORE_2</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�2</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o164"> +<a:ObjectID>3D6D1A80-11A1-4C7A-84C8-3CF02EFA0066</a:ObjectID> +<a:Name>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊2</a:Name> +<a:Code>BEFORE_MANAGER_NOTIFY_2</a:Code> +<a:CreationDate>1695368013</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368322</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊2 </a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o165"> +<a:ObjectID>2AA77517-149B-4DEB-9FAB-7591CB107ED9</a:ObjectID> +<a:Name>涓存湡鍓�3</a:Name> +<a:Code>EXPIRE_BEFORE_3</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�3</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o166"> +<a:ObjectID>72D61B08-87EE-4393-A28F-54BED31496D6</a:ObjectID> +<a:Name>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊3</a:Name> +<a:Code>BEFORE_MANAGER_NOTIFY_3</a:Code> +<a:CreationDate>1695368013</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368322</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓嶆槸鍚﹂�氱煡椤圭洰缁忕悊3</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o167"> +<a:ObjectID>3BA47DD7-3F34-42A7-94DE-AF0428D56A78</a:ObjectID> +<a:Name>瓒呮湡鍚�1</a:Name> +<a:Code>EXPIRE_AFTER_1</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�1</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o168"> +<a:ObjectID>D6D44CDD-0BDB-40EC-B9F1-65E5E7B36EE2</a:ObjectID> +<a:Name>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊1</a:Name> +<a:Code>AFTER_MANAGER_NOTIFY_1</a:Code> +<a:CreationDate>1695368240</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368322</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊1</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o169"> +<a:ObjectID>663AB511-CDE2-4F3A-A360-C05442BC2847</a:ObjectID> +<a:Name>瓒呮湡鍚�2</a:Name> +<a:Code>EXPIRE_AFTER_2</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�2</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o170"> +<a:ObjectID>D29A7BE7-5C22-4AEF-88C2-6039AA3A2E88</a:ObjectID> +<a:Name>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊2</a:Name> +<a:Code>AFTER_MANAGER_NOTIFY_2</a:Code> +<a:CreationDate>1695368322</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368347</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊2</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o171"> +<a:ObjectID>AFA41952-F7B8-4689-8291-2E57CEA1C807</a:ObjectID> +<a:Name>瓒呮湡鍚�3</a:Name> +<a:Code>EXPIRE_AFTER_3</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�3</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o172"> +<a:ObjectID>CEBBAFAA-90F0-4681-A969-642EF003C218</a:ObjectID> +<a:Name>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊3</a:Name> +<a:Code>AFTER_MANAGER_NOTIFY_3</a:Code> +<a:CreationDate>1695368322</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368347</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚庢槸鍚﹂�氱煡椤圭洰缁忕悊3</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o173"> +<a:ObjectID>2831F419-CF7E-4A74-8F2F-C8289765D0B8</a:ObjectID> +<a:Name>寰俊棰勮寮�鍏�</a:Name> +<a:Code>NOTIFY_WX</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368745</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>寰俊棰勮寮�鍏� 0 鍏� 1 寮�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o174"> +<a:ObjectID>562EFD26-D05C-4653-8D39-BFDA93390A6B</a:ObjectID> +<a:Name>鐭俊棰勮寮�鍏�</a:Name> +<a:Code>NOTIFY_MOB_MSG</a:Code> +<a:CreationDate>1695368462</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368745</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐭俊棰勮寮�鍏� 0 鍏� 1 寮�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o175"> +<a:ObjectID>A18C35AB-3A3E-46A3-85B8-6D316820DC83</a:ObjectID> +<a:Name>棰勮鐭俊鍙戦�佹柟寮�</a:Name> +<a:Code>NOTIFY_MOB_MSG_WAY</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鐭俊鍙戦�佹柟寮� 0 鑷姩鍙戦�� 1 鎵嬪姩鍙戦��</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o176"> +<a:ObjectID>925EA3A9-1016-451B-8862-F13821A64E74</a:ObjectID> +<a:Name>棰勮鎵嬫満鍙�</a:Name> +<a:Code>NOTIFY_MOB</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鎵嬫満鍙凤紝澶氫釜鎵嬫満鍙疯嫳鏂囬�楀彿闅斿紑</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o177"> +<a:ObjectID>AEBCB1BC-300E-4042-BB20-432857CD6157</a:ObjectID> +<a:Name>棰勮鑷姩鍙戦�佹椂闂�</a:Name> +<a:Code>NOTIFY_TIME</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695456111</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鑷姩鍙戦�佹椂闂�0-23涔嬮棿鏁存暟</a:Comment> +<a:DefaultValue>8</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o178"> +<a:ObjectID>4784C865-0D16-4A6E-BF65-BA747CCF0D0E</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695366704</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366751</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o179"> +<a:ObjectID>7E3B1A2B-42D7-4AC3-A74D-46985F5FE9A1</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o180"> +<a:ObjectID>2CCA1FCF-27A9-47B6-907E-9ECE56DA975D</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o181"> +<a:ObjectID>FFE78EC7-A246-4F12-BBEB-C69BBAF929D4</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o182"> +<a:ObjectID>BAB1DB29-062B-4EED-97ED-6064752C5C7F</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o183"> +<a:ObjectID>AF4FB214-8054-47BE-BD7D-047AB98A1854</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o184"> +<a:ObjectID>D7FB9516-7472-4671-ACF3-4EA66208237F</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o185"> +<a:ObjectID>7C8F9DAB-AD19-4B78-8779-C47AC9E8BF1B</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695366751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367046</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o186"> +<a:ObjectID>F07B8F60-2815-49E4-956B-D962A0334D91</a:ObjectID> +<a:Name>鍒涘缓浜烘満鏋勫悕绉�</a:Name> +<a:Code>CREATE_ORG_NAME</a:Code> +<a:CreationDate>1695367263</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367330</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜烘満鏋勫悕绉�</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o187"> +<a:ObjectID>B8F2163C-9A64-4076-A6E4-A07295B5D9D1</a:ObjectID> +<a:Name>鍒涘缓浜烘満鏋�</a:Name> +<a:Code>CREATE_ORG_ID</a:Code> +<a:CreationDate>1695367263</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367330</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏈烘瀯</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o188"> +<a:ObjectID>A88C9DAA-C077-4FB3-874D-8E29C79C9E67</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695366627</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366627</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o158"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o188"/> +</c:PrimaryKey> +</o:Table> +</c:Tables> +<c:References> +<o:Reference Id="o40"> +<a:ObjectID>336A1824-425C-4E3F-A0D4-1D448021642F</a:ObjectID> +<a:Name>Reference_20</a:Name> +<a:Code>Reference_20</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o47"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o48"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o79"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o189"> +<a:ObjectID>BE783192-69E8-4ACC-9FCB-E6D7883A4C94</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o62"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o17"> +<a:ObjectID>FA0074D6-3A6B-45E9-A385-077FDBA0ECB6</a:ObjectID> +<a:Name>Reference_19</a:Name> +<a:Code>Reference_19</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o35"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o47"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o142"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o190"> +<a:ObjectID>AC8BFF81-EDC4-4F21-BD21-01725A9386D5</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o129"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o42"> +<a:ObjectID>D0611BCA-2DDB-4FAA-AABB-B1E62F08C2F9</a:ObjectID> +<a:Name>Reference_18</a:Name> +<a:Code>Reference_18</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o46"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o47"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o93"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o191"> +<a:ObjectID>409B396D-FDB3-48B4-8213-4A8CD337798D</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o81"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o13"> +<a:ObjectID>ECFFD264-1D38-4B0B-95B8-E79ECD3247B8</a:ObjectID> +<a:Name>Reference_17</a:Name> +<a:Code>Reference_17</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o34"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o46"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o156"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o192"> +<a:ObjectID>88B20A1D-E19D-465E-B558-F2DC9F0971EE</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o144"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o44"> +<a:ObjectID>5C35EA24-8244-4CC4-8AD1-25EC370993E6</a:ObjectID> +<a:Name>Reference_16</a:Name> +<a:Code>Reference_16</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o45"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o46"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o127"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o193"> +<a:ObjectID>8BDD4783-4019-4085-BD4E-9457FF24EE3A</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o112"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o27"> +<a:ObjectID>494A10DB-5BF3-48C1-BAD6-7FF22AD24C7E</a:ObjectID> +<a:Name>Reference_6</a:Name> +<a:Code>Reference_6</a:Code> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o28"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o29"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o99"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o194"> +<a:ObjectID>E539B412-6493-4E54-AF5A-967C8422962F</a:ObjectID> +<a:CreationDate>1695192387</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192387</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o94"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o33"> +<a:ObjectID>278ADE14-6D20-4F57-92C1-846748D8256A</a:ObjectID> +<a:Name>Reference_8</a:Name> +<a:Code>Reference_8</a:Code> +<a:CreationDate>1695194913</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194921</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o34"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o35"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o156"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o195"> +<a:ObjectID>43368498-2B33-4604-8FD6-75197779A364</a:ObjectID> +<a:CreationDate>1695194913</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194921</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o144"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o21"> +<a:ObjectID>BEB3888B-68A6-459A-B008-4854F82D54E2</a:ObjectID> +<a:Name>Reference_13</a:Name> +<a:Code>Reference_13</a:Code> +<a:CreationDate>1695277362</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277377</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o45"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o29"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o127"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o196"> +<a:ObjectID>98DE8036-386B-4906-BA3D-6F48D4265C64</a:ObjectID> +<a:CreationDate>1695277362</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277377</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o112"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o23"> +<a:ObjectID>F08711BF-3903-4EC0-8605-C9F168BCB8DF</a:ObjectID> +<a:Name>Reference_25</a:Name> +<a:Code>Reference_25</a:Code> +<a:CreationDate>1695278624</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278633</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o47"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o29"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o79"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o197"> +<a:ObjectID>8B50B83E-74C4-4A62-A2E7-B6D7B3DC563E</a:ObjectID> +<a:CreationDate>1695278624</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278633</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o62"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +</c:References> +<c:ArchitectureAreas> +<o:Area Id="o30"> +<a:ObjectID>F0944E7A-E026-4981-8E08-9969364F1D55</a:ObjectID> +<a:Name>椤圭洰鐪嬫澘妯℃澘</a:Name> +<a:Code>椤圭洰鐪嬫澘妯℃澘</a:Code> +<a:CreationDate>1695194807</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194865</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o28"/> +<o:Table Ref="o29"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o36"> +<a:ObjectID>29363635-AAF2-4B02-8A6A-40EEB843E827</a:ObjectID> +<a:Name>闃舵銆佽妭鐐瑰簱</a:Name> +<a:Code>闃舵銆佽妭鐐瑰簱</a:Code> +<a:CreationDate>1695194811</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194913</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o34"/> +<o:Table Ref="o35"/> +<o:Reference Ref="o33"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o49"> +<a:ObjectID>0847A1A9-7E48-4F74-AC45-C088F44432A6</a:ObjectID> +<a:Name>椤圭洰闃舵鑺傜偣妯℃澘</a:Name> +<a:Code>椤圭洰闃舵鑺傜偣妯℃澘</a:Code> +<a:CreationDate>1695194816</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695195056</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o45"/> +<o:Table Ref="o46"/> +<o:Table Ref="o47"/> +<o:Table Ref="o48"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o56"> +<a:ObjectID>ECA26BDA-600A-46C8-AF9B-FBF5D6FCF4D2</a:ObjectID> +<a:Name>涓存湡棰勮</a:Name> +<a:Code>涓存湡棰勮</a:Code> +<a:CreationDate>1695366573</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695368892</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o53"/> +<o:Table Ref="o55"/> +</c:AttachedObjects> +</o:Area> +</c:ArchitectureAreas> +</o:Package> +<o:Package Id="o8"> +<a:ObjectID>5B610042-C93D-42D0-A762-6D9E01D0104D</a:ObjectID> +<a:Name>2.椤圭洰绠$悊鍖�</a:Name> +<a:Code>2.椤圭洰绠$悊鍖�</a:Code> +<a:CreationDate>1695192630</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695375513</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:PhysicalDiagrams> +<o:PhysicalDiagram Id="o198"> +<a:ObjectID>9601CB9F-3AEA-479A-A3CC-4292A766FACA</a:ObjectID> +<a:Name>椤圭洰绠$悊</a:Name> +<a:Code>椤圭洰绠$悊</a:Code> +<a:CreationDate>1695192630</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695371367</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:DisplayPreferences>[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=Yes +Activate automatic link routing=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=0 +Trunc Length=80 +Word Length=80 +Word Text=!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +Area.IconPicture=Yes +Area.Stereotype=Yes +Area.Comment=No +Area.TextStyle=No +Area.SubSymbols=Yes +Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout= +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout= +ExtDpdShowStrn=Yes +ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout= +Package.Stereotype=No +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout= +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=Yes +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\AREA] +STRNFont=鏂板畫浣�,8,N +STRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LABLFont=鏂板畫浣�,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=9600 +Height=8000 +Brush color=253 249 234 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=16 +Brush gradient color=245 230 173 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 121 98 6 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=Arial,8,N +CENTERFont color=0, 0, 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +Line style=0 +Source Arrow=24 +Center Arrow=24 +Target Arrow=7 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=鏂板畫浣�,8,N +OBJSTRNFont color=0 0 0 +DISPNAMEFont=鏂板畫浣�,8,N +DISPNAMEFont color=0 0 0 +LCNMFont=鏂板畫浣�,8,N +LCNMFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=Yes +Keep center=Yes +Keep size=No +Width=2400 +Height=2400 +Brush color=255 255 255 +Fill Color=No +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=-1 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=Arial,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=Arial,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=Arial,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=Arial,8,N +TableFkColumnsFont color=0 0 0 +KeysFont=Arial,8,N +KeysFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +TriggersFont=Arial,8,N +TriggersFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=210 137 2 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +ColumnsFont=Arial,8,N +ColumnsFont color=0 0 0 +TablePkColumnsFont=鏂板畫浣�,8,U +TablePkColumnsFont color=0 0 0 +TableFkColumnsFont=鏂板畫浣�,8,N +TableFkColumnsFont color=0 0 0 +TemporaryVTablesFont=Arial,8,N +TemporaryVTablesFont color=0 0 0 +IndexesFont=Arial,8,N +IndexesFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=233 202 131 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=Arial,8,N +STRNFont color=0 0 0 +DISPNAMEFont=Arial,8,N +DISPNAMEFont color=0 0 0 +OWNRDISPNAMEFont=鏂板畫浣�,8,N +OWNRDISPNAMEFont color=0 0 0 +LABLFont=Arial,8,N +LABLFont color=0 0 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=鏂板畫浣�,8,N +SOURCEFont color=0 0 0 +CENTERFont=鏂板畫浣�,8,N +CENTERFont color=0 0 0 +DESTINATIONFont=鏂板畫浣�,8,N +DESTINATIONFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 0 64 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=Arial,8,N +Free TextFont color=0 0 0 +Line style=2 +Source Arrow=24 +Center Arrow=24 +Target Arrow=24 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 64 0 +Shadow color=192 192 192 +Shadow=0</a:DisplayPreferences> +<a:PaperSize>(8268, 11693)</a:PaperSize> +<a:PageMargins>((315,354), (433,354))</a:PageMargins> +<a:PageOrientation>1</a:PageOrientation> +<a:PaperSource>15</a:PaperSource> +<c:Symbols> +<o:ReferenceSymbol Id="o199"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695278022</a:ModificationDate> +<a:Rect>((-3517,33761), (35950,35282))</a:Rect> +<a:ListOfPoints>((35550,34386),(-3117,34386))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o200"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o201"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o202"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o203"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695278022</a:ModificationDate> +<a:Rect>((-3517,49913), (45764,51434))</a:Rect> +<a:ListOfPoints>((45364,50538),(-3117,50538))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o204"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o201"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o205"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o206"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695348787</a:ModificationDate> +<a:Rect>((-3517,17609), (51813,19130))</a:Rect> +<a:ListOfPoints>((51413,18234),(-3117,18234))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o207"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o201"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o208"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o209"> +<a:CreationDate>1695278490</a:CreationDate> +<a:ModificationDate>1695278490</a:ModificationDate> +<a:Rect>((-41957,46346), (45764,54859))</a:Rect> +<a:ListOfPoints>((45364,53963),(-36145,53963),(-36145,46746))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o204"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o210"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o211"/> +</c:Object> +</o:ReferenceSymbol> +<o:ArchitectureAreaSymbol Id="o212"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695348787</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((27467,3367), (93821,21111))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:TableSymbol Id="o207"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695278549</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((51413,3967), (68031,18417))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>65535</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>129</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o213"/> +</c:Object> +</o:TableSymbol> +<o:NoteSymbol Id="o214"> +<a:Text>鑺傜偣瀹屾垚鍚庯紝璁$畻鏇存柊椤圭洰闃舵--瀹屾垚姣斾緥銆侀」鐩俊鎭�--椤圭洰杩涘害</a:Text> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695278561</a:ModificationDate> +<a:Rect>((29045,15453), (50467,10063))</a:Rect> +<a:TextStyle>4130</a:TextStyle> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>0</a:LineColor> +<a:FillColor>16777215</a:FillColor> +<a:ShadowColor>16777215</a:ShadowColor> +<a:FontName>Arial,8,N</a:FontName> +<a:ManuallyResized>1</a:ManuallyResized> +</o:NoteSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o215"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ReferenceSymbol Id="o216"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695371339</a:ModificationDate> +<a:Rect>((-100209,20846), (-73056,22367))</a:Rect> +<a:ListOfPoints>((-99809,21471),(-73456,21471))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o217"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o218"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o219"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o220"> +<a:CreationDate>1695371367</a:CreationDate> +<a:ModificationDate>1695371367</a:ModificationDate> +<a:Rect>((-105066,49212), (-73056,50733))</a:Rect> +<a:ListOfPoints>((-73456,49837),(-104666,49837))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o218"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o221"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o222"/> +</c:Object> +</o:ReferenceSymbol> +<o:ArchitectureAreaSymbol Id="o223"> +<a:CreationDate>1695194032</a:CreationDate> +<a:ModificationDate>1695348789</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((27789,46590), (92141,62298))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:TableSymbol Id="o204"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695194501</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((45364,48746), (67566,59180))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>166354</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o224"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o225"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o226"> +<a:CreationDate>1695194071</a:CreationDate> +<a:ModificationDate>1695371342</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-128172,39436), (-89822,59841))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:TableSymbol Id="o221"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695194771</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-118364,41746), (-104666,57928))</a:Rect> +<a:LineColor>16512</a:LineColor> +<a:FillColor>16744448</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<c:Object> +<o:Table Ref="o227"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o228"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o229"> +<a:CreationDate>1695194075</a:CreationDate> +<a:ModificationDate>1695194733</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((27793,23772), (90561,43704))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:ReferenceSymbol Id="o230"> +<a:CreationDate>1695192858</a:CreationDate> +<a:ModificationDate>1695194502</a:ModificationDate> +<a:Rect>((49214,32198), (62583,33719))</a:Rect> +<a:ListOfPoints>((49614,32823),(62183,32823))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o200"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o231"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o232"/> +</c:Object> +</o:ReferenceSymbol> +<o:TableSymbol Id="o231"> +<a:CreationDate>1695192851</a:CreationDate> +<a:ModificationDate>1695194502</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((62183,29403), (82537,36243))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>166354</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Shortcut Ref="o233"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o200"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695194445</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((35550,29196), (49614,35794))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>166354</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o234"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o235"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o236"> +<a:CreationDate>1695194077</a:CreationDate> +<a:ModificationDate>1695375513</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-84715,2652), (1981,62744))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:ReferenceSymbol Id="o237"> +<a:CreationDate>1695366056</a:CreationDate> +<a:ModificationDate>1695366070</a:ModificationDate> +<a:Rect>((-55832,9123), (-42181,10644))</a:Rect> +<a:ListOfPoints>((-42581,9748),(-55432,9748))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o238"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o218"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o239"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o240"> +<a:CreationDate>1695361536</a:CreationDate> +<a:ModificationDate>1695367953</a:ModificationDate> +<a:Rect>((-55832,27110), (-41958,28631))</a:Rect> +<a:ListOfPoints>((-42358,27735),(-55432,27735))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o241"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o218"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o242"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o243"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695365937</a:ModificationDate> +<a:Rect>((-30407,39027), (-17295,40548))</a:Rect> +<a:ListOfPoints>((-17695,39652),(-30007,39652))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o201"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o210"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o244"/> +</c:Object> +</o:ReferenceSymbol> +<o:ReferenceSymbol Id="o245"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695366052</a:ModificationDate> +<a:Rect>((-55832,39027), (-41883,40548))</a:Rect> +<a:ListOfPoints>((-42283,39652),(-55432,39652))</a:ListOfPoints> +<a:CornerStyle>2</a:CornerStyle> +<a:ArrowStyle>1</a:ArrowStyle> +<a:LineColor>4194432</a:LineColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>CENTER 0 鏂板畫浣�,8,N +SOURCE 0 鏂板畫浣�,8,N +DESTINATION 0 鏂板畫浣�,8,N</a:FontList> +<c:SourceSymbol> +<o:TableSymbol Ref="o210"/> +</c:SourceSymbol> +<c:DestinationSymbol> +<o:TableSymbol Ref="o218"/> +</c:DestinationSymbol> +<c:Object> +<o:Reference Ref="o246"/> +</c:Object> +</o:ReferenceSymbol> +<o:TableSymbol Id="o218"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695366052</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-73456,4196), (-55432,60344))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>255</a:LineColor> +<a:FillColor>65535</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o247"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o210"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695365937</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-42283,32558), (-30007,46746))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>65535</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o248"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o201"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695278246</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-17695,17634), (-3117,51138))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>65535</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o249"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o241"> +<a:CreationDate>1695348661</a:CreationDate> +<a:ModificationDate>1695367953</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-42358,25044), (-30056,30426))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>8454143</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o250"/> +</c:Object> +</o:TableSymbol> +<o:TableSymbol Id="o238"> +<a:CreationDate>1695365993</a:CreationDate> +<a:ModificationDate>1695366072</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-42581,5066), (-29831,14430))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>16512</a:LineColor> +<a:FillColor>8454143</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:Object> +<o:Table Ref="o251"/> +</c:Object> +</o:TableSymbol> +<o:NoteSymbol Id="o252"> +<a:Text>椤圭洰鎶曡祫涓嬭揪鏃讹紝鏇存柊椤圭洰淇℃伅涓凡涓嬭揪璧勯噾</a:Text> +<a:CreationDate>1695366352</a:CreationDate> +<a:ModificationDate>1695366391</a:ModificationDate> +<a:Rect>((-54588,9960), (-42736,4662))</a:Rect> +<a:TextStyle>4130</a:TextStyle> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>0</a:LineColor> +<a:FillColor>16777215</a:FillColor> +<a:ShadowColor>16777215</a:ShadowColor> +<a:FontName>Arial,8,N</a:FontName> +<a:ManuallyResized>1</a:ManuallyResized> +</o:NoteSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o253"/> +</c:Object> +</o:ArchitectureAreaSymbol> +<o:ArchitectureAreaSymbol Id="o254"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695371339</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-125062,7941), (-93695,30493))</a:Rect> +<a:AutoAdjustToText>0</a:AutoAdjustToText> +<a:LineColor>418425</a:LineColor> +<a:FillColor>15399421</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 鏂板畫浣�,8,N +DISPNAME 0 鏂板畫浣�,8,N +LABL 0 鏂板畫浣�,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>16</a:GradientFillMode> +<a:GradientEndColor>11396853</a:GradientEndColor> +<a:ManuallyResized>1</a:ManuallyResized> +<c:SubSymbols> +<o:TableSymbol Id="o217"> +<a:CreationDate>1695192659</a:CreationDate> +<a:ModificationDate>1695194706</a:ModificationDate> +<a:IconMode>-1</a:IconMode> +<a:Rect>((-117679,15815), (-99809,27127))</a:Rect> +<a:LineColor>16512</a:LineColor> +<a:FillColor>8454143</a:FillColor> +<a:ShadowColor>12632256</a:ShadowColor> +<a:FontList>STRN 0 Arial,8,N +DISPNAME 0 Arial,8,N +OWNRDISPNAME 0 鏂板畫浣�,8,N +Columns 0 Arial,8,N +TablePkColumns 0 Arial,8,U +TableFkColumns 0 Arial,8,N +Keys 0 Arial,8,N +Indexes 0 Arial,8,N +Triggers 0 Arial,8,N +LABL 0 Arial,8,N</a:FontList> +<a:BrushStyle>6</a:BrushStyle> +<a:GradientFillMode>65</a:GradientFillMode> +<a:GradientEndColor>16777215</a:GradientEndColor> +<c:Object> +<o:Table Ref="o255"/> +</c:Object> +</o:TableSymbol> +</c:SubSymbols> +<c:Object> +<o:Area Ref="o256"/> +</c:Object> +</o:ArchitectureAreaSymbol> +</c:Symbols> +</o:PhysicalDiagram> +</c:PhysicalDiagrams> +<c:DefaultDiagram> +<o:PhysicalDiagram Ref="o198"/> +</c:DefaultDiagram> +<c:Tables> +<o:Table Id="o234"> +<a:ObjectID>A2FD835F-5705-4566-8637-078CD350C18C</a:ObjectID> +<a:Name>椤圭洰鐪嬫澘鑺傜偣[P_PROJECT_BOARD_NODE]</a:Name> +<a:Code>P_PROJECT_BOARD_NODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐪嬫澘鑺傜偣</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o257"> +<a:ObjectID>792C208D-6B9E-4F47-8536-AF09182BC453</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695193362</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o258"> +<a:ObjectID>D4B95F9D-C172-481C-9631-FD66C53E936F</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695361751</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o259"> +<a:ObjectID>42559D97-0981-4E43-96A4-36938E804CF3</a:ObjectID> +<a:Name>椤圭洰鑺傜偣id</a:Name> +<a:Code>PROJECT_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鑺傜偣id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o260"> +<a:ObjectID>E0E7A957-C584-45AC-BED2-2B8123FD6A5E</a:ObjectID> +<a:Name>椤圭洰妯℃澘鐨勭湅鏉縄D</a:Name> +<a:Code>TEMP_BOARD_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘鐨勭湅鏉縄D</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o261"> +<a:ObjectID>0873ECCD-024D-467C-AC7F-93BF402E95A0</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o257"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o261"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o224"> +<a:ObjectID>04E4982F-372B-4552-A52E-6D977FA13D3D</a:ObjectID> +<a:Name>椤圭洰鑺傜偣閫氱煡[P_PROJECT_STAGE_NODE_NOTIFY]</a:Name> +<a:Code>P_PROJECT_STAGE_NODE_NOTIFY</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361748</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鑺傜偣閫氱煡</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o262"> +<a:ObjectID>C1E0164A-CD95-4FB0-8729-CD687ED4B6A7</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o263"> +<a:ObjectID>0613B0F6-8C0B-44E2-8AC3-7723DB79CBEB</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695361727</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361748</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o264"> +<a:ObjectID>9A8EF968-8C06-4AE9-B97E-95195C002387</a:ObjectID> +<a:Name>瑙﹀彂閫氱煡鐨勮妭鐐筰d</a:Name> +<a:Code>STAGE_NODE_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瑙﹀彂閫氱煡鐨勮妭鐐筰d</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o265"> +<a:ObjectID>A2A0445C-61BE-4CA8-AAE9-2A13122B5440</a:ObjectID> +<a:Name>閫氱煡闃舵 or 鑺傜偣</a:Name> +<a:Code>NOTIFY_TYPE</a:Code> +<a:CreationDate>1695278447</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278468</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫氱煡闃舵 or 鑺傜偣 0闃舵 1鑺傜偣</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o266"> +<a:ObjectID>BDD906F5-C461-42CE-9C88-4C424BD63D23</a:ObjectID> +<a:Name>閫氱煡闃舵 or 鑺傜偣鐨� id</a:Name> +<a:Code>NOTIFY_STAGE_NODE_ID</a:Code> +<a:CreationDate>1695278447</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278481</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫氱煡闃舵 or 鑺傜偣鐨� id </a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o267"> +<a:ObjectID>9B1FF126-88EB-4CCF-854A-C7EFAED32456</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o262"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o267"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o249"> +<a:ObjectID>58D1EACE-D164-497E-ADCB-CAA69CF0E220</a:ObjectID> +<a:Name>椤圭洰鑺傜偣[P_STAGE_NODE]</a:Name> +<a:Code>P_STAGE_NODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361426</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鑺傜偣</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o268"> +<a:ObjectID>A83E91BB-8CA0-4334-91DB-8759718B3F49</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o269"> +<a:ObjectID>478C1AFE-CD6B-49E2-86E3-B4D2D8A1CB40</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695361399</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361426</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o270"> +<a:ObjectID>2F19F52E-28B7-4FED-8EF0-3C13DB0783CE</a:ObjectID> +<a:Name>椤圭洰闃舵ID</a:Name> +<a:Code>PROJECT_STAGE_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361477</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o271"> +<a:ObjectID>75FA697C-880E-4506-AE04-050D679CF2DE</a:ObjectID> +<a:Name>鍚嶇О</a:Name> +<a:Code>NODE_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o272"> +<a:ObjectID>1EDB6B16-F69A-4B7F-8198-A959FB7BA59C</a:ObjectID> +<a:Name>鑷」鐩紑濮嬬N澶�</a:Name> +<a:Code>NODE_START_SINCE_PROJECT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑷」鐩紑濮嬬N澶�</a:Comment> +<a:LowValue>0</a:LowValue> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o273"> +<a:ObjectID>DD796716-8A91-487B-9560-1412A0BC8E4F</a:ObjectID> +<a:Name>鎸佺画澶╂暟</a:Name> +<a:Code>NODE_DAYS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎸佺画澶╂暟锛屽嵆鑺傜偣鍛ㄦ湡</a:Comment> +<a:LowValue>0</a:LowValue> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o274"> +<a:ObjectID>8C4A4F69-F147-4074-9A79-362CD53E535C</a:ObjectID> +<a:Name>鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐘舵�� 0鍏抽棴1寮�鍚�</a:Comment> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o275"> +<a:ObjectID>4537F982-27D5-4193-BAAD-CA6518E5E4D0</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭 涓嶈兘閲嶅</a:Comment> +<a:DefaultValue>9999</a:DefaultValue> +<a:DataType>int</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o276"> +<a:ObjectID>9FA8BF4F-D83A-4193-97EB-EC0E420DA506</a:ObjectID> +<a:Name>鏄惁涓存湡棰勮</a:Name> +<a:Code>WARN_NEED</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>0涓嶉璀︼紝1棰勮</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o277"> +<a:ObjectID>6F2A6AB1-3B97-407A-B1C7-82F269B69BF1</a:ObjectID> +<a:Name>闄勪欢蹇呬紶</a:Name> +<a:Code>FILE_NEED</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>0闈炲繀濉�1蹇呭~</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o278"> +<a:ObjectID>835C5E46-27F1-439F-849E-B1C9495F6BE2</a:ObjectID> +<a:Name>瀹屾垚鍚庢彁閱�</a:Name> +<a:Code>COMPLETE_NOTIFY_STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀹屾垚鍚庢彁閱� 0 涓嶆彁閱� 1 鎻愰啋</a:Comment> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o279"> +<a:ObjectID>2B56325E-346D-40DE-A82A-DFF8F947E91D</a:ObjectID> +<a:Name>鑺傜偣寮�濮嬫椂闂�</a:Name> +<a:Code>NODE_TIME_START</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑺傜偣寮�濮嬫椂闂�</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o280"> +<a:ObjectID>3322A256-35CF-42CB-9992-FC5EAC09920E</a:ObjectID> +<a:Name>鑺傜偣缁撴潫鏃堕棿</a:Name> +<a:Code>NODE_TIME_END</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑺傜偣缁撴潫鏃堕棿</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o281"> +<a:ObjectID>444DD78C-F11B-4725-8902-302A977F69D4</a:ObjectID> +<a:Name>鑺傜偣鏄惁瀹屾垚</a:Name> +<a:Code>NODE_COMPLETE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑺傜偣鏄惁瀹屾垚 0鏈畬鎴� 1 瀹屾垚</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o282"> +<a:ObjectID>1A1B6868-2934-43F0-BE55-80F14EC95DCC</a:ObjectID> +<a:Name>瀹屾垚鏃堕棿</a:Name> +<a:Code>NODE_COMPLETE_DATE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀹屾垚鏃堕棿</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o283"> +<a:ObjectID>5FD28AD6-3C32-4977-9832-FC1BD7B8B54B</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o268"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o284"> +<a:ObjectID>ED38FFCF-BDDA-499D-AD4C-46DE73311D28</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_NODE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +<c:Key.Columns> +<o:Column Ref="o275"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o283"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o248"> +<a:ObjectID>91430A21-303C-4220-A550-8D7BFC80A89C</a:ObjectID> +<a:Name>椤圭洰闃舵[P_PROJECT_STAGE]</a:Name> +<a:Code>P_PROJECT_STAGE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278500</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o285"> +<a:ObjectID>A740D306-7F99-4A97-97DF-18F9F866B9E7</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o286"> +<a:ObjectID>B527340A-DB7E-4A47-AF1E-810C7CFE2AC9</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o287"> +<a:ObjectID>F3BF219A-9F65-4285-A693-650A1AD2261F</a:ObjectID> +<a:Name>闃舵宸ユ湡</a:Name> +<a:Code>STAGE_TIME_DAYS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵宸ユ湡</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o288"> +<a:ObjectID>08E9BE51-5990-4CD1-8CEB-86200F660F96</a:ObjectID> +<a:Name>闃舵鍚嶇О</a:Name> +<a:Code>STAGE_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o289"> +<a:ObjectID>E7420006-C46B-438B-985E-680A1E270D60</a:ObjectID> +<a:Name>鎺掑簭</a:Name> +<a:Code>SORT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277842</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎺掑簭</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o290"> +<a:ObjectID>050710DF-46DC-46C1-915A-142FB8A3DB25</a:ObjectID> +<a:Name>澶囨敞</a:Name> +<a:Code>REMARK</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>澶囨敞</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o291"> +<a:ObjectID>82B5D00A-0330-42FA-9EDD-46F7AE25845F</a:ObjectID> +<a:Name>寮�濮嬫椂闂�</a:Name> +<a:Code>STAGE_TIME_START</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵寮�濮嬫椂闂达紝鑺傜偣涓渶鏃╁紑濮嬫棩鏈�</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o292"> +<a:ObjectID>98EB66D8-25F2-4E9C-8580-591B60FF0267</a:ObjectID> +<a:Name>缁撴潫鏃堕棿</a:Name> +<a:Code>STAGE_TIME_END</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵缁撴潫鏃堕棿锛岃妭鐐逛腑鏈�鏅氱粨鏉熸棩鏈�</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o293"> +<a:ObjectID>4DA11EB1-9FC2-4279-91C5-9E4638AF5827</a:ObjectID> +<a:Name>鏄惁瀹屾垚</a:Name> +<a:Code>STAGE_COMPLETE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵鏄惁瀹屾垚銆傝妭鐐瑰叏閮ㄥ畬鎴愭洿鏂拌瀛楁</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o294"> +<a:ObjectID>BF0030EF-2785-4229-A299-DEB9CA398A32</a:ObjectID> +<a:Name>瀹屾垚鏃堕棿</a:Name> +<a:Code>STAGE_COMPLETE_DATE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀹屾垚鏃堕棿</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o295"> +<a:ObjectID>17997432-27A3-408E-AE8F-2E5F74006681</a:ObjectID> +<a:Name>瀹屾垚姣斾緥</a:Name> +<a:Code>STAGE_COMPLETE_RATE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闃舵瀹屾垚姣斾緥</a:Comment> +<a:DataType>numeric(5,2)</a:DataType> +<a:Length>5</a:Length> +<a:Precision>2</a:Precision> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o296"> +<a:ObjectID>DCDB154E-AA3B-4CF9-8440-D525F774C910</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o285"/> +</c:Key.Columns> +</o:Key> +<o:Key Id="o297"> +<a:ObjectID>2BF292B2-D008-42D9-813A-01D06121EEA9</a:ObjectID> +<a:Name>Key_2</a:Name> +<a:Code>Key_2</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:ConstraintName>STAGE_SORT</a:ConstraintName> +<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,57={D1C795B8-8F7B-4AA7-A240-85C5B737C543},ExtUnique,4=true + +</a:ExtendedAttributesText> +<c:Key.Columns> +<o:Column Ref="o289"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o296"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o247"> +<a:ObjectID>66183D17-8A25-4E56-843E-10FE8C94AF36</a:ObjectID> +<a:Name>椤圭洰淇℃伅[P_PROJECT_INFO]</a:Name> +<a:Code>P_PROJECT_INFO</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695450048</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰淇℃伅</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o298"> +<a:ObjectID>B709A028-F2E6-4FDF-907A-5834E1B85785</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695371376</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o299"> +<a:ObjectID>86EF38B5-B952-43DA-80F2-785B61A41DA2</a:ObjectID> +<a:Name>涓存湡棰勮妯℃澘ID</a:Name> +<a:Code>TEMP_EXPIRATION_NOTIFY_ID</a:Code> +<a:CreationDate>1695370636</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695370654</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡棰勮妯℃澘ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o300"> +<a:ObjectID>8F171A3B-C617-4917-BB02-704AC4D31BF5</a:ObjectID> +<a:Name>椤圭洰妯℃澘ID</a:Name> +<a:Code>TEMP_PROJECT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o301"> +<a:ObjectID>D356D7CF-734C-4DDC-9CF1-0321703E3AF7</a:ObjectID> +<a:Name>椤圭洰妯℃澘鍚嶇О</a:Name> +<a:Code>TEMP_PROJECT_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘鍚嶇О</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o302"> +<a:ObjectID>967916A6-1B7A-4E94-A2A9-6BC6784817F6</a:ObjectID> +<a:Name>椤圭洰鍚嶇О</a:Name> +<a:Code>PROJECT_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍚嶇О</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o303"> +<a:ObjectID>EA174F8C-166C-4A9F-924F-AD77764AEFB0</a:ObjectID> +<a:Name>椤圭洰缂栧彿</a:Name> +<a:Code>PROJECT_CODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰缂栧彿</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o304"> +<a:ObjectID>7A8CD3E5-8FBA-4C43-9ADA-78578A01B2D5</a:ObjectID> +<a:Name>椤圭洰鍒嗙被ID</a:Name> +<a:Code>PROJECT_CATEGORY_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍒嗙被ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o305"> +<a:ObjectID>AA51857B-1EC5-4B55-A6CE-9F6F920A436D</a:ObjectID> +<a:Name>椤圭洰鍒嗙被鍚嶇О</a:Name> +<a:Code>PROJECT_CATEGORY_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍒嗙被鍚嶇О</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o306"> +<a:ObjectID>DD928315-59D9-47AA-BC58-2D870F8F39E4</a:ObjectID> +<a:Name>鐩磋惀鍗曚綅</a:Name> +<a:Code>DIRECT_UNIT_CODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695451478</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐩磋惀鍗曚綅鐮佽〃缂栫爜锛孌IRECT_UNIT 0 鐪� 1甯�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o307"> +<a:ObjectID>87328A94-BB7A-4342-82DD-C91A25C258BD</a:ObjectID> +<a:Name>鐩磋惀鍗曚綅鍚嶇О</a:Name> +<a:Code>DIRECT_UNIT_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鐩磋惀鍗曚綅鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o308"> +<a:ObjectID>ABFA722C-471A-46D7-88D4-384812542982</a:ObjectID> +<a:Name>寤鸿鍗曚綅</a:Name> +<a:Code>BUILD_ORG_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>寤鸿鍗曚綅</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o309"> +<a:ObjectID>37E9D3D0-D27F-44B3-8D16-7C3DB7AF5DFD</a:ObjectID> +<a:Name>寤鸿鍗曚綅鍚嶇О</a:Name> +<a:Code>BUILD_ORG_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>寤鸿鍗曚綅鍚嶇О</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o310"> +<a:ObjectID>ED67991A-C2F4-4866-A0FD-4A284CD116EE</a:ObjectID> +<a:Name>缁忓害</a:Name> +<a:Code>LNG</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>缁忓害</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o311"> +<a:ObjectID>4438C4CB-04B4-4699-A413-5B105C60EDC3</a:ObjectID> +<a:Name>缁村害</a:Name> +<a:Code>LAT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>缁村害</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o312"> +<a:ObjectID>CCD3102B-E4AF-4977-B959-7B945F59B970</a:ObjectID> +<a:Name>璇︾粏鍦板潃</a:Name> +<a:Code>ADDR</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璇︾粏鍦板潃</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o313"> +<a:ObjectID>238B20C6-A78E-40B7-963E-46C7D99CA8E7</a:ObjectID> +<a:Name>寮�濮嬪缓璁惧勾浠�</a:Name> +<a:Code>BUILD_YEAR_START</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>寮�濮嬪缓璁惧勾浠�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o314"> +<a:ObjectID>42215EC3-FE51-497D-8CCD-BEE62B4CD943</a:ObjectID> +<a:Name>缁撴潫寤鸿骞翠唤</a:Name> +<a:Code>BUILD_YEAR_END</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>缁撴潫寤鸿骞翠唤</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o315"> +<a:ObjectID>FEA419C9-EEAA-4F14-9FA7-4E12E43A392B</a:ObjectID> +<a:Name>椤圭洰鎵规鏃堕棿</a:Name> +<a:Code>PROJECT_BATCH_YEAR</a:Code> +<a:CreationDate>1695374658</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695374687</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鎵规鏃堕棿,鍒涘缓鏃堕棿骞翠唤</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o316"> +<a:ObjectID>06149274-898C-4F6E-BA88-AAA956121808</a:ObjectID> +<a:Name>椤圭洰鎵规</a:Name> +<a:Code>PROJECT_BATCH_CODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695450750</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鎵规 瀛楀吀project_batch </a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o317"> +<a:ObjectID>B229C90F-33C3-48EE-876D-1D0F8768B68A</a:ObjectID> +<a:Name>椤圭洰鎵规鍚嶇О</a:Name> +<a:Code>PROJECT_BATCH_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鎵规</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o318"> +<a:ObjectID>F436B281-AF31-44D7-934F-3A6D0F52A6D5</a:ObjectID> +<a:Name>鎵瑰鏃堕棿</a:Name> +<a:Code>APPROVAL_DATE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎵瑰鏃堕棿</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o319"> +<a:ObjectID>C8A709B8-4819-49AC-B991-90F4E0B8BB35</a:ObjectID> +<a:Name>鎵瑰鏃堕棿 + 椤圭洰鍛ㄦ湡璁$畻鐨勭粨鏉熸椂闂�</a:Name> +<a:Code>APPROVAL_DATE_END</a:Code> +<a:CreationDate>1695449996</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695450060</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎵瑰鏃堕棿 + 椤圭洰鍛ㄦ湡璁$畻鐨勭粨鏉熸椂闂�</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o320"> +<a:ObjectID>8BE39864-ED23-4A6A-9345-E75A2A2A0DCE</a:ObjectID> +<a:Name>鎬绘姇璧�</a:Name> +<a:Code>TOTAL_INVEST</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎬绘姇璧�</a:Comment> +<a:DataType>numeric(20,4)</a:DataType> +<a:Length>20</a:Length> +<a:Precision>4</a:Precision> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o321"> +<a:ObjectID>180A7A99-312C-480A-AD4B-76FCBB685A63</a:ObjectID> +<a:Name>宸蹭笅杈炬�绘姇璧�</a:Name> +<a:Code>TOTAL_RELEASE_INVEST</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365561</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>宸蹭笅杈炬�绘姇璧�</a:Comment> +<a:DataType>numeric(20,4)</a:DataType> +<a:Length>20</a:Length> +<a:Precision>4</a:Precision> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o322"> +<a:ObjectID>EB820F66-F33A-4E8A-8242-5DDCE68E6D4A</a:ObjectID> +<a:Name>鎶曡祫涓撲笟</a:Name> +<a:Code>INVEST_MAJOR_CODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695451310</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎶曡祫涓撲笟 瀛楀吀INVEST_MAJOR</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o323"> +<a:ObjectID>63BF8FD8-8754-4DBA-BB50-38EFB1A35377</a:ObjectID> +<a:Name>鎶曡祫涓撲笟鍚嶇О</a:Name> +<a:Code>INVEST_MAJOR_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鎶曡祫涓撲笟鍚嶇О</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o324"> +<a:ObjectID>2E36A55D-3012-41E3-859D-443A8E070610</a:ObjectID> +<a:Name>涓昏寤鸿鍐呭</a:Name> +<a:Code>DETAIL</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓昏寤鸿鍐呭</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o325"> +<a:ObjectID>2FB4DBAF-48BF-4E18-84D2-4344BD319316</a:ObjectID> +<a:Name>鍒涘缓浜烘満鏋勫悕绉�</a:Name> +<a:Code>CREATE_ORG_NAME</a:Code> +<a:CreationDate>1695367154</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367226</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜烘満鏋勫悕绉�</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o326"> +<a:ObjectID>FD3C930C-1CCE-484D-9C96-21FCAB586C32</a:ObjectID> +<a:Name>鍒涘缓浜烘満鏋�</a:Name> +<a:Code>CREATE_ORG_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367226</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏈烘瀯</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o327"> +<a:ObjectID>2E8D8177-038C-4D42-A3C3-0032149B71E9</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o328"> +<a:ObjectID>3D86E216-BDC0-4886-97D0-05D91AE1F8CC</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o329"> +<a:ObjectID>29513D2B-4580-4452-840B-3FFB775EA920</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o330"> +<a:ObjectID>96540618-9B68-48E9-8EF1-7C82436F2C65</a:ObjectID> +<a:Name>瀹℃牳鐘舵��</a:Name> +<a:Code>AUDIT_STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐘舵��0鏈鏍� 1 瀹℃牳涓嶉�氳繃 2瀹℃牳閫氳繃 </a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o331"> +<a:ObjectID>220A7070-9D75-4263-AFCC-AF6A3117EF84</a:ObjectID> +<a:Name>椤圭洰鐘舵�佸鏍镐汉</a:Name> +<a:Code>AUDIT_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐘舵�佸鏍镐汉</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o332"> +<a:ObjectID>2C02D3E9-AF8C-482E-B95E-CC80C0FF0717</a:ObjectID> +<a:Name>椤圭洰鐘舵�佸鏍镐汉濮撳悕</a:Name> +<a:Code>AUDIT_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐘舵�佸鏍镐汉濮撳悕</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o333"> +<a:ObjectID>44B5A6B1-44A1-43F2-AF5E-D788313F771D</a:ObjectID> +<a:Name>椤圭洰鐘舵�佸鏍告椂闂�</a:Name> +<a:Code>AUDIT_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐘舵�佸鏍告椂闂�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o334"> +<a:ObjectID>489412EB-6380-4FFC-BD12-31CF8254C10C</a:ObjectID> +<a:Name>椤圭洰鐘舵�佸鏍稿師鍥�</a:Name> +<a:Code>AUDIT_REASON</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鐘舵�佸鏍稿師鍥�</a:Comment> +<a:DataType>varchar(512)</a:DataType> +<a:Length>512</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o335"> +<a:ObjectID>266AB945-2782-4EAD-AE76-C49B26909BE8</a:ObjectID> +<a:Name>椤圭洰鍙栨秷鎿嶄綔浜�</a:Name> +<a:Code>CANCEL_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍙栨秷鎿嶄綔浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o336"> +<a:ObjectID>C3E2281B-6D5B-40FF-AFD0-53CA29FFB4A5</a:ObjectID> +<a:Name>椤圭洰鍙栨秷鎿嶄綔浜哄鍚�</a:Name> +<a:Code>CANCEL_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍙栨秷鎿嶄綔浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o337"> +<a:ObjectID>6F162A11-936F-4023-BCBB-EA5F90D2CCF2</a:ObjectID> +<a:Name>椤圭洰鍙栨秷鎿嶄綔鏃堕棿</a:Name> +<a:Code>CANCEL_USER_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍙栨秷鎿嶄綔鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o338"> +<a:ObjectID>EE3C92EF-7549-4CCC-B148-7F1D84E6E26C</a:ObjectID> +<a:Name>褰掓。鐘舵��</a:Name> +<a:Code>ARCHIVE_STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>褰掓。鐘舵��</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o339"> +<a:ObjectID>C48F11A4-03DD-408E-9584-BC7439D261E2</a:ObjectID> +<a:Name>褰掓。鐘舵�佸鏍镐汉</a:Name> +<a:Code>ARCHIVE_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>褰掓。鐘舵�佸鏍镐汉</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o340"> +<a:ObjectID>88F05B59-7D7E-498C-BB3B-CDEFBBC2B2FC</a:ObjectID> +<a:Name>褰掓。椤圭姸鎬佸鏍镐汉濮撳悕</a:Name> +<a:Code>ARCHIVE_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>褰掓。椤圭姸鎬佸鏍镐汉濮撳悕</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o341"> +<a:ObjectID>6195D699-E3D4-45AF-AD9D-8C9B34806FC2</a:ObjectID> +<a:Name>褰掓。鐘舵�佸鏍告椂闂�</a:Name> +<a:Code>ARCHIVE_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>褰掓。鐘舵�佸鏍告椂闂�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o342"> +<a:ObjectID>F2A9D37F-AA6B-4F70-BDE4-7BD712F432D4</a:ObjectID> +<a:Name>褰掓。鐘舵�佸鏍稿師鍥�</a:Name> +<a:Code>ARCHIVE_REASON</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>褰掓。鐘舵�佸鏍稿師鍥�</a:Comment> +<a:DataType>varchar(512)</a:DataType> +<a:Length>512</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o343"> +<a:ObjectID>431EB4E8-112C-4B26-B8D2-2E26F4E325A1</a:ObjectID> +<a:Name>涓存湡棰勮寮�鍏�</a:Name> +<a:Code>EXPIRATION_NOTIFY_STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278088</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡棰勮寮�鍏� 0鍏抽棴 1寮�鍚�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o344"> +<a:ObjectID>81F418D3-D01E-48CF-A52E-742A915E3320</a:ObjectID> +<a:Name>椤圭洰杩涘害</a:Name> +<a:Code>PROGRESS_RATE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰杩涘害锛屾洿鏂拌繘搴﹀悗鏇存柊姝ゅ瓧娈�</a:Comment> +<a:DataType>numeric(5,2)</a:DataType> +<a:Length>5</a:Length> +<a:Precision>2</a:Precision> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o345"> +<a:ObjectID>D0F1DBBD-3187-4AC3-9018-12F3BD51A434</a:ObjectID> +<a:Name>椤圭洰鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695207003</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277772</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>0鏈紑宸� 1杩涜涓� 2 瀹屽伐 3 宸插彇娑� (0-2 鏍规嵁鏃堕棿鍒ゆ柇)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o346"> +<a:ObjectID>234D8A2B-256C-4718-ACF2-C118E26D7C47</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o298"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o346"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o227"> +<a:ObjectID>28B206E4-05E1-494B-BC3D-AB473772B69A</a:ObjectID> +<a:Name>椤圭洰鍒嗙被[P_PROJECT_CATEGORY]</a:Name> +<a:Code>P_PROJECT_CATEGORY</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695373773</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鍒嗙被</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o347"> +<a:ObjectID>7E4C2486-870F-402F-B0B7-BA7F3A7117EF</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o348"> +<a:ObjectID>870B561F-EFE5-4ACB-9BA7-1E97B8D8E553</a:ObjectID> +<a:Name>鍒嗙被鍚嶇О</a:Name> +<a:Code>TITLE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒嗙被鍚嶇О</a:Comment> +<a:DataType>varchar(128)</a:DataType> +<a:Length>128</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o349"> +<a:ObjectID>E0C96B8C-3ABF-4CAB-AB5E-79D47BFA4CAE</a:ObjectID> +<a:Name>鍒嗙被鍥炬爣</a:Name> +<a:Code>ICON_PIC</a:Code> +<a:CreationDate>1695373703</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695373773</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒嗙被鍥炬爣</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o350"> +<a:ObjectID>FB4F2916-52C3-4E2B-80B3-959F92FBF4B0</a:ObjectID> +<a:Name>涓婄骇鍒嗙被id</a:Name> +<a:Code>PARENT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓婄骇鍒嗙被id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o351"> +<a:ObjectID>8E307FF9-C695-4450-AD70-ED0E7F3CCA75</a:ObjectID> +<a:Name>灞傜骇</a:Name> +<a:Code>LV</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>灞傜骇</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o352"> +<a:ObjectID>3D020EB5-B0D6-4A72-A216-83936435407A</a:ObjectID> +<a:Name>璁板綍鐘舵��</a:Name> +<a:Code>STATUS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璁板綍鐘舵��(0姝e父 1 绂佺敤)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o353"> +<a:ObjectID>C5832CC4-B22E-4CE2-A896-29C69E6C5A25</a:ObjectID> +<a:Name>璇存槑</a:Name> +<a:Code>NOTE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璇存槑</a:Comment> +<a:DataType>varchar(512)</a:DataType> +<a:Length>512</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o354"> +<a:ObjectID>9A49E9A1-7D14-4EBC-A057-724AC291EFA6</a:ObjectID> +<a:Name>椤哄簭鍙�</a:Name> +<a:Code>ORDER_NUM</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤哄簭鍙�</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o355"> +<a:ObjectID>0B9442B7-3897-42B7-9FFF-8BE6975300FB</a:ObjectID> +<a:Name>鏄惁鍒犻櫎</a:Name> +<a:Code>IS_DELETE</a:Code> +<a:CreationDate>1695277589</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277618</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫昏緫鍒犻櫎(0 鍚� 1 鏄�)</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o356"> +<a:ObjectID>901FBFCA-E2BF-4412-9C8F-576932B37794</a:ObjectID> +<a:Name>鍒犻櫎鏃堕棿</a:Name> +<a:Code>DELETE_TIME</a:Code> +<a:CreationDate>1695277589</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277618</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o357"> +<a:ObjectID>5D945303-16B5-417E-9559-16CD1D88BAF9</a:ObjectID> +<a:Name>鍒犻櫎浜�</a:Name> +<a:Code>DELETE_USER_ID</a:Code> +<a:CreationDate>1695277589</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277618</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o358"> +<a:ObjectID>BDB13038-5ABD-4305-A215-8B3937F4B912</a:ObjectID> +<a:Name>鍒犻櫎浜哄鍚�</a:Name> +<a:Code>DELETE_USER_NAME</a:Code> +<a:CreationDate>1695277589</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277618</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒犻櫎浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o359"> +<a:ObjectID>4E14DC42-509A-46A5-AEE7-BD1F7CA7A884</a:ObjectID> +<a:Name>璁板綍鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璁板綍鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o360"> +<a:ObjectID>2DDF1E0C-E943-4A26-A67F-8331CBC5C360</a:ObjectID> +<a:Name>璁板綍鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695277641</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璁板綍鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o361"> +<a:ObjectID>D5EF6F98-30BD-4D59-BE36-1F0B759A26D2</a:ObjectID> +<a:Name>璁板綍鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>璁板綍鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o362"> +<a:ObjectID>5F883ADB-DF39-4D66-BFF8-74BD4A2A215E</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o347"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o362"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o363"> +<a:ObjectID>C2711857-1FC6-45B4-9FBB-898AA7226795</a:ObjectID> +<a:Name>椤圭洰涓存湡棰勮鎺ユ敹浜篬P_PROJECT_EXPIRATION_NOTIFY_USER]</a:Name> +<a:Code>P_PROJECT_EXPIRATION_NOTIFY_USER</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695263908</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰涓存湡棰勮鎺ユ敹浜�</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o364"> +<a:ObjectID>22CF7B4B-5025-4458-8815-74890EF1E2DA</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o365"> +<a:ObjectID>4FB42AF1-F428-4A20-8E6D-6C00E296EECA</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o366"> +<a:ObjectID>98B8B6F4-40CC-41FE-B924-C7DBC13548DB</a:ObjectID> +<a:Name>棰勮绫诲瀷</a:Name> +<a:Code>EXPIRE_TYPE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮绫诲瀷,瀵瑰簲涓存湡棰勮琛ㄥ瓧娈� +1:棰勮鍓�1 +2:棰勮鍓�2 +3:棰勮鍓�3 +4:瓒呮湡鍚�1 + 5:瓒呮湡鍚�2 +6:瓒呮湡鍚�3</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o367"> +<a:ObjectID>5F59EC62-A25C-497E-A999-539EEE7DDF6A</a:ObjectID> +<a:Name>閫氱煡浜哄憳绫诲瀷</a:Name> +<a:Code>NOTIFY_TYPE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>閫氱煡浜哄憳绫诲瀷 1 浜哄憳琛�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o368"> +<a:ObjectID>D58B0E86-299A-4EAD-8B09-DCEEC337EA21</a:ObjectID> +<a:Name>閫氱煡浜哄憳ID</a:Name> +<a:Code>NOTIFY_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>NOTIFY_TYPE涓�1 浜哄憳琛╱serid</a:Comment> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o369"> +<a:ObjectID>D642FEE2-3CFD-4C36-8907-A0AE45D48C96</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o364"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o369"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o370"> +<a:ObjectID>2CA814A5-983B-4592-ABF3-FBD9B26E23F0</a:ObjectID> +<a:Name>椤圭洰涓存湡棰勮[P_PROJECT_EXPIRATION_NOTIFY]</a:Name> +<a:Code>P_PROJECT_EXPIRATION_NOTIFY</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695263898</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰涓存湡棰勮</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o371"> +<a:ObjectID>394E2A99-442C-44E8-B692-B9081A796335</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o372"> +<a:ObjectID>8F175D11-EB71-478C-AD18-C122A32B6A68</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o373"> +<a:ObjectID>7F960911-23C0-4EE0-9C20-BF97FAA6D2CD</a:ObjectID> +<a:Name>涓存湡鍓�1</a:Name> +<a:Code>EXPIRE_BEFORE_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�1</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o374"> +<a:ObjectID>8667EBA5-F893-4436-9778-FD71A90974F4</a:ObjectID> +<a:Name>涓存湡鍓�2</a:Name> +<a:Code>EXPIRE_BEFORE_2</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�2</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o375"> +<a:ObjectID>009940BC-BC6D-4096-AEAB-E295C50F48A5</a:ObjectID> +<a:Name>涓存湡鍓�3</a:Name> +<a:Code>EXPIRE_BEFORE_3</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓存湡鍓�3</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o376"> +<a:ObjectID>B0A1E829-ACE8-4C56-80AC-5B805A819D23</a:ObjectID> +<a:Name>瓒呮湡鍚�1</a:Name> +<a:Code>EXPIRE_AFTER_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�1</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o377"> +<a:ObjectID>A984B636-FD3E-4F4B-9412-E3545C97EB21</a:ObjectID> +<a:Name>瓒呮湡鍚�2</a:Name> +<a:Code>EXPIRE_AFTER_2</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�2</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o378"> +<a:ObjectID>9C70B807-29EA-45F4-88EE-21BB2AA29094</a:ObjectID> +<a:Name>瓒呮湡鍚�3</a:Name> +<a:Code>EXPIRE_AFTER_3</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瓒呮湡鍚�3</a:Comment> +<a:DataType>int</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o379"> +<a:ObjectID>ED60B170-C47D-44C5-9B5D-C6A97C125A4C</a:ObjectID> +<a:Name>棰勮鏂瑰紡</a:Name> +<a:Code>NOTIFY_WAY</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鏂瑰紡 1 寰俊 2 鐭俊 3鍏ㄩ儴</a:Comment> +<a:DefaultValue>1</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o380"> +<a:ObjectID>4C62DC3F-9117-4781-9F8F-A78A03811A67</a:ObjectID> +<a:Name>棰勮鐭俊鍙戦�佹柟寮�</a:Name> +<a:Code>NOTIFY_MOB_MSG_WAY</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鐭俊鍙戦�佹柟寮� 0 鑷姩鍙戦�� 1 鎵嬪姩鍙戦��</a:Comment> +<a:DefaultValue>0</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o381"> +<a:ObjectID>EED14E44-59A4-42CF-91EC-7E491B722E25</a:ObjectID> +<a:Name>棰勮鎵嬫満鍙�</a:Name> +<a:Code>NOTIFY_MOB</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鎵嬫満鍙凤紝澶氫釜鎵嬫満鍙疯嫳鏂囬�楀彿闅斿紑</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o382"> +<a:ObjectID>29039AA6-F0DF-49C1-88BA-18F12887A55F</a:ObjectID> +<a:Name>棰勮鑷姩鍙戦�佹椂闂�</a:Name> +<a:Code>NOTIFY_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>棰勮鑷姩鍙戦�佹椂闂�0-23涔嬮棿鏁存暟</a:Comment> +<a:DefaultValue>8</a:DefaultValue> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o383"> +<a:ObjectID>D0F9C213-C078-4779-AAD7-7370C3F70EF7</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o371"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o383"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o213"> +<a:ObjectID>A9A110F8-76C0-4177-B21B-94C2695B2A10</a:ObjectID> +<a:Name>鑺傜偣涓婃姤璁板綍[P_STAGE_NODE_REPORT]</a:Name> +<a:Code>P_STAGE_NODE_REPORT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695375047</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑺傜偣涓婃姤璁板綍</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o384"> +<a:ObjectID>A8A9D435-F212-47B3-8CAA-454133BE7C80</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o385"> +<a:ObjectID>D78296D7-C871-4567-8FE0-5BC12F924729</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰妯℃澘id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o386"> +<a:ObjectID>E582188D-45EF-44EB-93C7-C402113D41B6</a:ObjectID> +<a:Name>椤圭洰闃舵ID</a:Name> +<a:Code>PROJECT_STAGE_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰闃舵妯℃澘ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o387"> +<a:ObjectID>8EAC4A13-6918-4DFF-BDE7-1525D8ABC403</a:ObjectID> +<a:Name>椤圭洰鑺傜偣ID</a:Name> +<a:Code>PROJECT_NODE_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鑺傜偣ID</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o388"> +<a:ObjectID>1EA2CAD3-4B41-4124-BC43-FF4A8593C3B6</a:ObjectID> +<a:Name>鏈杩涘害</a:Name> +<a:Code>NODE_PROGRESS</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鏈杩涘害</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o389"> +<a:ObjectID>620A538D-8BD7-4BC0-AD1E-CC6562010F5C</a:ObjectID> +<a:Name>鍥剧墖</a:Name> +<a:Code>PICTURE_CONTENT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍥剧墖</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o390"> +<a:ObjectID>C251C0F5-1D5F-4D88-9732-AB9AA6CCA487</a:ObjectID> +<a:Name>闄勪欢</a:Name> +<a:Code>FILE_CONTENT</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>闄勪欢</a:Comment> +<a:DataType>varchar(1024)</a:DataType> +<a:Length>1024</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o391"> +<a:ObjectID>262F8577-A9D2-43E4-944D-98831B15E2D1</a:ObjectID> +<a:Name>鑺傜偣鏄惁瀹屾垚</a:Name> +<a:Code>NODE_COMPLETE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鑺傜偣鏄惁瀹屾垚 0鏈畬鎴� 1 瀹屾垚</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o392"> +<a:ObjectID>E0D6C5C4-412E-4858-9741-A94C894D3353</a:ObjectID> +<a:Name>涓婃姤浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓婃姤浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o393"> +<a:ObjectID>BF469AA3-CC10-4A62-B97E-40B21D368693</a:ObjectID> +<a:Name>涓婃姤浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓婃姤浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o394"> +<a:ObjectID>DA6B8684-0221-4608-89F7-0613B5E3795A</a:ObjectID> +<a:Name>涓婃姤鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓婃姤鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o395"> +<a:ObjectID>88C3DEA7-1091-430A-A838-FF8D039143DC</a:ObjectID> +<a:Name>澶囨敞</a:Name> +<a:Code>REMARK</a:Code> +<a:CreationDate>1695374931</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695375047</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>澶囨敞锛屼緥濡傚懆鏄熸槦瀹屾垚浜� 绔嬮」/鍙爺 闃舵鐨� 椤圭洰瀹℃煡 鑺傜偣</a:Comment> +<a:DataType>varchar(512)</a:DataType> +<a:Length>512</a:Length> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o396"> +<a:ObjectID>2B2DF64E-135A-4815-B0DA-F0C6EE4B86F7</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o384"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o396"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o255"> +<a:ObjectID>1E10CD1D-82D9-429E-BA5D-1A0AA9A1467D</a:ObjectID> +<a:Name>瀵煎叆璁板綍[P_IMPORT_RECORD]</a:Name> +<a:Code>P_IMPORT_RECORD</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695259917</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀵煎叆璁板綍</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o397"> +<a:ObjectID>15944CA9-49BF-4E57-9BE2-5DA6BFA257BF</a:ObjectID> +<a:Name>ID</a:Name> +<a:Code>ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o398"> +<a:ObjectID>B94B201C-5969-46E8-A8ED-C8B5DA0F5CE3</a:ObjectID> +<a:Name>瀵煎叆鏂囦欢璺緞</a:Name> +<a:Code>IMPORT_FILE_PATH</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀵煎叆鏂囦欢璺緞</a:Comment> +<a:DataType>varchar(256)</a:DataType> +<a:Length>256</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o399"> +<a:ObjectID>EC346591-A858-4C74-BFCC-328044D5A8AF</a:ObjectID> +<a:Name>瀵煎叆缁撴灉鏂囦欢璺緞</a:Name> +<a:Code>RESULT_FILE_PATH</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀵煎叆缁撴灉鏂囦欢璺緞</a:Comment> +<a:DataType>varchar(256)</a:DataType> +<a:Length>256</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o400"> +<a:ObjectID>A6C375DB-BCF2-492C-BF70-3142A91AB958</a:ObjectID> +<a:Name>杩涘害鏍囪瘑[ 0.杩涜涓� 1.宸插畬鎴怾</a:Name> +<a:Code>PROCESS_FLAG</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>杩涘害鏍囪瘑[ 0.杩涜涓� 1.宸插畬鎴怾</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o401"> +<a:ObjectID>7CDEE23E-3023-40D0-AD94-F2D25B7EDA68</a:ObjectID> +<a:Name>杩涘害鏍囪瘑[ 0.鍑洪敊 1.鎴愬姛]</a:Name> +<a:Code>IMPORT_FLAG</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>杩涘害鏍囪瘑[ 0.鍑洪敊 1.鎴愬姛]</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o402"> +<a:ObjectID>2B99FEAB-D817-49F0-8AB6-880C4B42BBF3</a:ObjectID> +<a:Name>瀵煎叆绫诲瀷</a:Name> +<a:Code>IMPORT_TYPE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>瀵煎叆绫诲瀷 0椤圭洰淇℃伅瀵煎叆</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o403"> +<a:ObjectID>7046E3C6-B273-4B21-8D03-1DB71CC07C72</a:ObjectID> +<a:Name>鍒涘缓鏈烘瀯</a:Name> +<a:Code>ORG_CODE</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏈烘瀯</a:Comment> +<a:DataType>varchar(32)</a:DataType> +<a:Length>32</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o404"> +<a:ObjectID>DDA2B347-E514-449D-ABB8-40D727E0A572</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o405"> +<a:ObjectID>05CF7F61-29ED-43B3-9A68-1D489EA12CAE</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o406"> +<a:ObjectID>8219E590-E290-4642-ADBD-18D15C9DADDD</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o407"> +<a:ObjectID>3312E806-2CD9-420F-BBDA-C8610CBFD91A</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o397"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o407"/> +</c:PrimaryKey> +</o:Table> +<o:Shortcut Id="o233"> +<a:ObjectID>B7BCCAE3-1074-4D02-90DD-22C50C3D0E09</a:ObjectID> +<a:Name>椤圭洰妯℃澘鐨勭湅鏉縖P_TEMP_PROJECT_BOARD]</a:Name> +<a:Code>P_TEMP_PROJECT_BOARD</a:Code> +<a:CreationDate>1695192851</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194416</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:TargetStereotype/> +<a:GlobalObjectID/> +<a:TargetID>55FE6E31-B10B-442B-8834-36B0F8A409A2</a:TargetID> +<a:TargetClassID>380BAA40-0042-11D2-BD28-00A02478ECC9</a:TargetClassID> +<a:TargetPackagePath><Model>::1.椤圭洰閰嶇疆鍖�</a:TargetPackagePath> +</o:Shortcut> +<o:Table Id="o250"> +<a:ObjectID>755BB3FD-57B9-485F-928C-5D319439B6B5</a:ObjectID> +<a:Name>椤圭洰浜哄憳[P_MANAGER_USER]</a:Name> +<a:Code>P_MANAGER_USER</a:Code> +<a:CreationDate>1695348661</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367822</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰浜哄憳锛堝~鎶ヨ繘搴︼級</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o408"> +<a:ObjectID>F39842C8-E4DA-46D7-87E9-7F2290D4AA58</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695348718</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365853</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o409"> +<a:ObjectID>37087591-0CD0-4EDE-A38C-EEDB33930854</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695361513</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361527</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o410"> +<a:ObjectID>DDCEC448-8E36-45A9-9882-7E4C2A53BB21</a:ObjectID> +<a:Name>椤圭洰浜哄憳id</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695361360</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367822</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰浜哄憳id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o411"> +<a:ObjectID>F7B9B0FA-18E9-45F4-A76D-4B90CB0D9194</a:ObjectID> +<a:Name>鏄惁涓洪」鐩粡鐞�</a:Name> +<a:Code>MANAGER_FLAG</a:Code> +<a:CreationDate>1695367764</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695367822</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鏄惁涓洪」鐩粡鐞� 0鍚� 1鏄�</a:Comment> +<a:DataType>smallint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o412"> +<a:ObjectID>775C3127-930A-4764-B606-DE10C3F90B13</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695365848</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365853</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o408"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o412"/> +</c:PrimaryKey> +</o:Table> +<o:Table Id="o251"> +<a:ObjectID>B1D93AA3-3F2B-4F22-9C7D-7E474260E03E</a:ObjectID> +<a:Name>椤圭洰鎶曡祫涓嬭揪鎯呭喌[P_RELEASE_INVEST_INFO]</a:Name> +<a:Code>P_RELEASE_INVEST_INFO</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366178</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰鎶曡祫涓嬭揪鎯呭喌</a:Comment> +<a:GlobalObjectID/> +<a:TotalSavingCurrency/> +<c:Columns> +<o:Column Id="o413"> +<a:ObjectID>08BE1951-C743-488E-A7D3-F2A4C8E03516</a:ObjectID> +<a:Name>id</a:Name> +<a:Code>id</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:DataType>bigint</a:DataType> +<a:Column.Mandatory>1</a:Column.Mandatory> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o414"> +<a:ObjectID>BCE56EAC-3DD0-4FAB-973C-CD43ED87BB10</a:ObjectID> +<a:Name>椤圭洰id</a:Name> +<a:Code>PROJECT_ID</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>椤圭洰id</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o415"> +<a:ObjectID>3A2ECDCF-3DB5-4EB8-8B0E-5449241DFF31</a:ObjectID> +<a:Name>鏈涓嬭揪鎶曡祫閲戦</a:Name> +<a:Code>RELEASE_INVEST</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366204</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鏈涓嬭揪鎶曡祫閲戦</a:Comment> +<a:DataType>numeric(20,4)</a:DataType> +<a:Length>20</a:Length> +<a:Precision>4</a:Precision> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o416"> +<a:ObjectID>72E9E8F0-574B-472A-A191-C58A3E66506F</a:ObjectID> +<a:Name>涓嬭揪鏃堕棿</a:Name> +<a:Code>APPROVAL_DATE</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366178</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>涓嬭揪鏃堕棿</a:Comment> +<a:DataType>date</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o417"> +<a:ObjectID>693F0AFE-E9DD-4F4A-85D1-63A12CC0340E</a:ObjectID> +<a:Name>鍒涘缓浜�</a:Name> +<a:Code>CREATE_USER_ID</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜�</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o418"> +<a:ObjectID>CB0850FF-2838-4543-AA4E-747A2C83E2A1</a:ObjectID> +<a:Name>鍒涘缓浜哄鍚�</a:Name> +<a:Code>CREATE_USER_NAME</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓浜哄鍚�</a:Comment> +<a:DataType>varchar(28)</a:DataType> +<a:Length>28</a:Length> +<a:GlobalObjectID/> +</o:Column> +<o:Column Id="o419"> +<a:ObjectID>F2850A8A-A982-44B9-BA25-C44D0AFB259A</a:ObjectID> +<a:Name>鍒涘缓鏃堕棿</a:Name> +<a:Code>CREATE_TIME</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:Comment>鍒涘缓鏃堕棿</a:Comment> +<a:DataType>bigint</a:DataType> +<a:GlobalObjectID/> +</o:Column> +</c:Columns> +<c:Keys> +<o:Key Id="o420"> +<a:ObjectID>2316DD4F-3003-46D7-9DFD-0331BD9FA3A1</a:ObjectID> +<a:Name>Key_1</a:Name> +<a:Code>Key_1</a:Code> +<a:CreationDate>1695365993</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695365993</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Key.Columns> +<o:Column Ref="o413"/> +</c:Key.Columns> +</o:Key> +</c:Keys> +<c:PrimaryKey> +<o:Key Ref="o420"/> +</c:PrimaryKey> +</o:Table> +</c:Tables> +<c:References> +<o:Reference Id="o219"> +<a:ObjectID>6B8CA004-577B-48ED-812B-CDDD6AA4022F</a:ObjectID> +<a:Name>Reference_23</a:Name> +<a:Code>Reference_23</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o247"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o255"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o346"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o421"> +<a:ObjectID>D9B8D5C7-4166-40C0-8B62-37AA9F1DCE68</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o298"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o208"> +<a:ObjectID>60338510-F584-49A4-9529-0FFAB71B4547</a:ObjectID> +<a:Name>Reference_22</a:Name> +<a:Code>Reference_22</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o249"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o213"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o283"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o422"> +<a:ObjectID>77E37539-F6AE-40FC-9D3C-45F9662BB063</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o268"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o205"> +<a:ObjectID>F2469E7F-200A-467D-9938-BC6EDB9242AD</a:ObjectID> +<a:Name>Reference_15</a:Name> +<a:Code>Reference_15</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o249"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o224"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o283"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o423"> +<a:ObjectID>494FE933-A350-43CC-89E7-36903A350310</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o268"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o202"> +<a:ObjectID>0FB6A757-2AF5-47CA-9E83-1ED55ACB201D</a:ObjectID> +<a:Name>Reference_14</a:Name> +<a:Code>Reference_14</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o249"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o234"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o283"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o424"> +<a:ObjectID>1F714135-739F-41BF-A263-35BAE4342835</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o268"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o244"> +<a:ObjectID>9D8E7250-609B-4B67-A86A-A8B13F44C95D</a:ObjectID> +<a:Name>Reference_12</a:Name> +<a:Code>Reference_12</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o248"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o249"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o296"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o425"> +<a:ObjectID>928BD0D5-820D-4D9B-8DD8-937F843D394E</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o285"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o246"> +<a:ObjectID>83F3A15E-1D08-4E8B-B567-EA2D5B424FFC</a:ObjectID> +<a:Name>Reference_11</a:Name> +<a:Code>Reference_11</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o247"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o248"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o346"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o426"> +<a:ObjectID>52697E19-2516-420B-A9FF-4EAAC0C9E707</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o298"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o427"> +<a:ObjectID>27424C9E-C3EB-4D0B-B091-FF1F8CA13726</a:ObjectID> +<a:Name>Reference_10</a:Name> +<a:Code>Reference_10</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o247"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o370"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o346"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o428"> +<a:ObjectID>087CD2F5-FDFC-41C4-A1AF-36E77F994EF7</a:ObjectID> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695192659</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o298"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o232"> +<a:ObjectID>B27B62F4-F360-4F02-B0B7-C93B31192BB5</a:ObjectID> +<a:Name>Reference_24</a:Name> +<a:Code>Reference_24</a:Code> +<a:CreationDate>1695192858</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695193362</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Shortcut Ref="o233"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o234"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o99"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o429"> +<a:ObjectID>A0ACC72B-00D9-4575-8BA6-F83C26C80C3A</a:ObjectID> +<a:CreationDate>1695192858</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695193362</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o94"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o211"> +<a:ObjectID>23DA5833-1277-48FE-B87A-0E5D0A63C8F7</a:ObjectID> +<a:Name>Reference_21</a:Name> +<a:Code>Reference_21</a:Code> +<a:CreationDate>1695278490</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278500</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o248"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o224"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o296"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o430"> +<a:ObjectID>BB42488D-1757-406A-89C0-EF48B2B7ECE9</a:ObjectID> +<a:CreationDate>1695278490</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695278500</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o285"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o242"> +<a:ObjectID>39550C99-793F-4BA2-B78D-4197800D30FC</a:ObjectID> +<a:Name>Reference_26</a:Name> +<a:Code>Reference_26</a:Code> +<a:CreationDate>1695361536</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361546</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o247"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o250"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o346"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o431"> +<a:ObjectID>895CFAE1-EFB0-47E8-9CCE-31E38279331E</a:ObjectID> +<a:CreationDate>1695361536</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695361546</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o298"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o239"> +<a:ObjectID>CD66CD70-A62D-430F-B00D-3429594E9CC0</a:ObjectID> +<a:Name>Reference_28</a:Name> +<a:Code>Reference_28</a:Code> +<a:CreationDate>1695366056</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366065</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o247"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o251"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o346"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o432"> +<a:ObjectID>94259355-EA64-4EA0-84AF-0E9116A4E9DB</a:ObjectID> +<a:CreationDate>1695366056</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695366065</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o298"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +<o:Reference Id="o222"> +<a:ObjectID>E738CC9E-9B38-43E0-9FE0-261630DDC7E6</a:ObjectID> +<a:Name>Reference_29</a:Name> +<a:Code>Reference_29</a:Code> +<a:CreationDate>1695371367</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695371376</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:Cardinality>0..*</a:Cardinality> +<a:UpdateConstraint>1</a:UpdateConstraint> +<a:DeleteConstraint>1</a:DeleteConstraint> +<c:ParentTable> +<o:Table Ref="o227"/> +</c:ParentTable> +<c:ChildTable> +<o:Table Ref="o247"/> +</c:ChildTable> +<c:ParentKey> +<o:Key Ref="o362"/> +</c:ParentKey> +<c:Joins> +<o:ReferenceJoin Id="o433"> +<a:ObjectID>4F51235A-CF62-4A1A-A8F7-0A12EFAA7C50</a:ObjectID> +<a:CreationDate>1695371367</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695371376</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:Object1> +<o:Column Ref="o347"/> +</c:Object1> +</o:ReferenceJoin> +</c:Joins> +</o:Reference> +</c:References> +<c:ArchitectureAreas> +<o:Area Id="o215"> +<a:ObjectID>F80827BE-58F3-483C-A483-CCEF2FF4C42E</a:ObjectID> +<a:Name>灏忕▼搴忚妭鐐硅褰曚笂鎶�</a:Name> +<a:Code>灏忕▼搴忚妭鐐硅褰曚笂鎶�</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695193259</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o213"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o225"> +<a:ObjectID>98614243-8B20-42EB-BF67-09ADBCBCFC4C</a:ObjectID> +<a:Name>鑺傜偣瀹屾垚閫氱煡</a:Name> +<a:Code>鑺傜偣瀹屾垚閫氱煡</a:Code> +<a:CreationDate>1695194032</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194056</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o224"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o228"> +<a:ObjectID>5DFBB515-96E7-4FDA-8E9B-B162C2C1E6F9</a:ObjectID> +<a:Name>椤圭洰鍒嗙被</a:Name> +<a:Code>椤圭洰鍒嗙被</a:Code> +<a:CreationDate>1695194071</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194771</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o227"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o235"> +<a:ObjectID>5D81C935-FE2B-4AFA-87C4-5BDA073FEE0A</a:ObjectID> +<a:Name>缁熻鐪嬫澘</a:Name> +<a:Code>缁熻鐪嬫澘</a:Code> +<a:CreationDate>1695194075</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194441</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Shortcut Ref="o233"/> +<o:Table Ref="o234"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o253"> +<a:ObjectID>E2C3F61E-FF2C-4987-B86A-1CF424704842</a:ObjectID> +<a:Name>椤圭洰淇℃伅</a:Name> +<a:Code>椤圭洰淇℃伅</a:Code> +<a:CreationDate>1695194077</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695375513</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o247"/> +<o:Table Ref="o248"/> +<o:Table Ref="o249"/> +<o:Table Ref="o250"/> +<o:Reference Ref="o242"/> +<o:Table Ref="o251"/> +<o:Reference Ref="o239"/> +</c:AttachedObjects> +</o:Area> +<o:Area Id="o256"> +<a:ObjectID>C1FE5575-8751-4C15-98F7-C9104465F539</a:ObjectID> +<a:Name>瀵煎叆璁板綍</a:Name> +<a:Code>瀵煎叆璁板綍</a:Code> +<a:CreationDate>1695192659</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695194515</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<c:AttachedObjects> +<o:Table Ref="o255"/> +</c:AttachedObjects> +</o:Area> +</c:ArchitectureAreas> +</o:Package> +</c:Packages> +<c:DefaultDiagram> +<o:PhysicalDiagram Ref="o4"/> +</c:DefaultDiagram> +<c:DefaultGroups> +<o:Group Id="o434"> +<a:ObjectID>FA5AE57F-C446-4936-BE5B-F2B0DACD411D</a:ObjectID> +<a:Name>PUBLIC</a:Name> +<a:Code>PUBLIC</a:Code> +<a:CreationDate>1695026953</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695026953</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +</o:Group> +</c:DefaultGroups> +<c:TargetModels> +<o:TargetModel Id="o435"> +<a:ObjectID>81C8759C-EFE9-489E-A6C1-9DC05BB808FE</a:ObjectID> +<a:Name>MySQL 5.0</a:Name> +<a:Code>MYSQL50</a:Code> +<a:CreationDate>1695026953</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1242731549</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:TargetModelURL>file:///%[XDB]%/mysql50.xdb</a:TargetModelURL> +<a:TargetModelID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetModelID> +<a:TargetModelClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetModelClassID> +<a:TargetModelLastModificationDate>1242731549</a:TargetModelLastModificationDate> +<c:SessionShortcuts> +<o:Shortcut Ref="o3"/> +</c:SessionShortcuts> +</o:TargetModel> +<o:TargetModel Id="o436"> +<a:ObjectID>BFAECDFA-4B16-4245-931C-BF13580E8FFC</a:ObjectID> +<a:Name>projec_progress_manage</a:Name> +<a:Code>projec_progress_manage</a:Code> +<a:CreationDate>1695192851</a:CreationDate> +<a:Creator>cy</a:Creator> +<a:ModificationDate>1695375513</a:ModificationDate> +<a:Modifier>cy</a:Modifier> +<a:GlobalObjectID/> +<a:TargetModelURL>file:///.</a:TargetModelURL> +<a:TargetModelID>662D642A-73E4-4CD8-9FD8-09DE1063C71D</a:TargetModelID> +<a:TargetModelClassID>CDE44E21-9669-11D1-9914-006097355D9B</a:TargetModelClassID> +<a:TargetModelLastModificationDate>1695375513</a:TargetModelLastModificationDate> +<c:SessionShortcuts> +<o:Shortcut Ref="o233"/> +</c:SessionShortcuts> +</o:TargetModel> +</c:TargetModels> +</o:Model> +</c:Children> +</o:RootObject> + +</Model> \ No newline at end of file diff --git "a/consum-base/doc/\346\226\260\345\273\272\346\223\215\344\275\234\346\235\203\351\231\220\347\244\272\344\276\213.txt" "b/consum-base/doc/\346\226\260\345\273\272\346\223\215\344\275\234\346\235\203\351\231\220\347\244\272\344\276\213.txt" new file mode 100644 index 0000000..6003248 --- /dev/null +++ "b/consum-base/doc/\346\226\260\345\273\272\346\223\215\344\275\234\346\235\203\351\231\220\347\244\272\344\276\213.txt" @@ -0,0 +1,13 @@ +銆愯璁剧疆ID浠�99001寮�濮嬪線鍚庡姞銆� +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99001', '鍩虹淇℃伅-鏈烘瀯鏍�', '7000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:org:select:tree_fin_org', 's-tools', NULL, '1', '0'); +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99002', '鍩虹淇℃伅-鐢ㄦ埛鍒嗛〉鍒楄〃', '7000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:user:select:list', 's-tools', NULL, '1', '0'); + + +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99003', '椤圭洰绠$悊-椤圭洰淇℃伅-椤圭洰鍒嗛〉鍒楄〃', '11000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:user:select:list', 's-tools', NULL, '1', '0'); + +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99004', '椤圭洰绠$悊-椤圭洰淇℃伅-鏂板', '11000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:user:select:list', 's-tools', NULL, '1', '0'); + + +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99005', '椤圭洰绠$悊-椤圭洰淇℃伅-缂栬緫', '11000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:user:select:list', 's-tools', NULL, '1', '0'); + +INSERT INTO "C##FINANCE_OPS_TEST"."S_MENU"("MENU_ID", "MENU_NAME", "PARENT_ID", "ORDER_NUM", "PATH", "COMPONENT", "QUERY", "IS_FRAME", "IS_CACHE", "MENU_TYPE", "VISIBLE", "STATUS", "PERMS", "ICON", "REMARK", "IS_SHOW", "TYPE") VALUES ('99006', '椤圭洰绠$悊-椤圭洰淇℃伅-璇︽儏', '11000', '1', NULL, NULL, NULL, '1', '0', 'F', '0', '0', 'platform:fin:sys:user:select:list', 's-tools', NULL, '1', '0'); diff --git "a/consum-base/doc/\346\227\266\351\227\264\346\237\245\350\257\242\345\267\245\345\205\267\347\261\273" "b/consum-base/doc/\346\227\266\351\227\264\346\237\245\350\257\242\345\267\245\345\205\267\347\261\273" new file mode 100644 index 0000000..ed3e092 --- /dev/null +++ "b/consum-base/doc/\346\227\266\351\227\264\346\237\245\350\257\242\345\267\245\345\205\267\347\261\273" @@ -0,0 +1,654 @@ +Date now = new Date(); //鑾峰彇褰撳墠鏃堕棿 +SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +String nowStr = sdf.format(now)+" 00:00:00"; //寰楀埌浠婂ぉ鍑屾櫒鏃堕棿 +String endStr = sdf.format(now)+" 23:59:59"; //寰楀埌浠婂ぉ缁撴潫鏃堕棿 +long timeStrNumber = DateUtils.getDateTimeNumber(nowStr); +long timeEndNumber = DateUtils.getDateTimeNumber(endStr); +System.out.println(timeStrNumber); +System.out.println(timeEndNumber); +long afterLongTime = DateUtils.getAfterLongTime(timeStrNumber, -1);// 鍓嶄竴澶� +System.out.println(afterLongTime); +long afterLongTime1 = DateUtils.getAfterLongTime(timeStrNumber, -7);// 鍓嶄竴鍛� +System.out.println(afterLongTime1); +long afterLongTime2 = DateUtils.getAfterLongTime(timeStrNumber, -30);// 鍓�30澶� +System.out.println(afterLongTime2); + + +package com.walker.infrastructure.utils; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.Calendar; +import java.util.Date; + +/** + * 澶勭悊鏃ユ湡鏍煎紡浠ュ強杞崲鐨勫伐鍏风被 + * @author shikeying + * @date 2013-11-21 + * + */ +public abstract class DateUtils { + + public static final String TEXT_DATE_WITH_LINE = "yyyy-MM-dd"; + public static final String TEXT_DATE = "yyyyMMdd"; + public static final String TEXT_DATE_TIME_WITH_LINE = "yyyy-MM-dd HH:mm:ss"; + public static final String TEXT_DATE_TIME = "yyyyMMddHHmmss"; + public static final String TEXT_DATE_START = "yyyyMMdd000000"; + public static final String TEXT_MONTH_START = "yyyyMM01000000"; + public static final String TEXT_MONTH_END = "yyyyMMdd235959"; + public static final String TEXT_YEAR_START = "yyyy0101000000"; + public static final String TEXT_YEAR_END = "yyyy1231235959"; +// private static final DateFormat whippletreeDateFormat = new SimpleDateFormat("yyyy-MM-dd"); +// private static final DateFormat whippletreeTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// private static final DateFormat whippleTimeFormat = new SimpleDateFormat("yyyyMMddHHmmss"); +// private static final DateFormat whippleDateFormat = new SimpleDateFormat("yyyyMMdd"); +// private static final DateTimeFormatter whippletreeTimeFormat = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss"); + + private static final String LATE_OF_DAY = " 23:59:59"; + public static final String DATE_SEPARATOR_OLD = "/"; + public static final String DATE_SEPARATOR = "-"; + + /** + * 杩斿洖涓婂勾浠界涓�澶╂椂闂村�� + * @return 濡傦細20230101000000 + * @date 2023-06-02 + */ + public static long getLastYearStartDay() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + SimpleDateFormat startSdf = new SimpleDateFormat(TEXT_YEAR_START); + return Long.parseLong(startSdf.format(c.getTime())); + } + public static final long getLastYearEndDay() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.YEAR, -1); + SimpleDateFormat endSdf = new SimpleDateFormat(TEXT_YEAR_END); + return Long.parseLong(endSdf.format(c.getTime())); + } + + /** + * 杩斿洖褰撳墠骞翠唤绗竴澶╂椂闂村�� + * @return 濡傦細20230101000000 + * @date 2023-06-02 + */ + public static final long getCurrentYearStartDay(){ + SimpleDateFormat dft = new SimpleDateFormat(TEXT_YEAR_START); + return Long.parseLong(dft.format(new Date())); + } + public static final long getCurrentYearEndDay(){ + SimpleDateFormat dft = new SimpleDateFormat(TEXT_YEAR_END); + return Long.parseLong(dft.format(new Date())); + } + + /** + * 杩斿洖涓婃湀绗竴澶╃殑鏃堕棿鍊� + * @return 濡傦細20230601000000 + * @date 2023-06-02 + */ + public static final long getLastMonthStartDay() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, 1); + SimpleDateFormat startSdf = new SimpleDateFormat(TEXT_MONTH_START); + return Long.parseLong(startSdf.format(c.getTime())); + } + public static final long getLastMonthEndDay() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -1); + c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); + SimpleDateFormat endSdf = new SimpleDateFormat(TEXT_MONTH_END); + return Long.parseLong(endSdf.format(c.getTime())); + } + + /** + * 杩斿洖褰撳墠鏈堜唤绗竴澶╃殑鏃堕棿鍊� + * @return 濡傦細20230601000000 + * @date 2023-06-02 + */ + public static final long getCurrentMonthStartDay(){ + SimpleDateFormat dft = new SimpleDateFormat(TEXT_MONTH_START); + return Long.parseLong(dft.format(new Date())); + } + public static final long getCurrentMonthEndDay() { + Calendar c = Calendar.getInstance(); + c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); + SimpleDateFormat endSdf = new SimpleDateFormat(TEXT_MONTH_END); + return Long.parseLong(endSdf.format(c.getTime())); + } + + + /** + * 鑾峰緱鏈懆绗竴澶╋紝鏍煎紡锛�20230602000000 + * @date 2023-06-02 + */ + public static long getCurrentWeekStartDay() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.WEEK_OF_MONTH, 0); + c.set(Calendar.DAY_OF_WEEK, 2); + SimpleDateFormat startSdf = new SimpleDateFormat(TEXT_DATE_START); + return Long.parseLong(startSdf.format(c.getTime())); + } + + /** + * 鎶婃暟鍊煎彲瑙嗗寲鏃堕棿杞崲鎴愭绉掑�硷紝濡傦細20140829102501 --> 姣鍊� + * @param showTimeLong + * @return + */ + public static final long toMillSeconds(long showTimeLong){ + String showTimeStr = toShowDate(showTimeLong); + return getDateLong(showTimeStr); + } + + /** + * 鎶�8浣嶆暣褰㈡暟鍊硷紝杞崲鎴愭棩鏈熸樉绀烘牸寮忋��</p> + * 濡傦細20140829 --> 2014-08-29 + * @param date + * @return + */ + public static final String toShowDate(int date){ + return LongCalendar.toString(date, DATE_SEPARATOR); + } + + /** + * 鎶�14浣嶆暣褰㈡暟鍊硷紝杞崲鎴愭棩鏈熸樉绀烘牸寮忋��</p> + * 濡傦細20140829102501 --> 2014-08-29 10:25:01 + * @param date + * @return + */ + public static final String toShowDate(long date){ + return LongCalendar.toString(date, DATE_SEPARATOR); + } + + /** + * 鎶婃樉绀虹殑鏃ユ湡鏍煎紡杞寲鎴愭暣鍨嬪�笺��</p> + * 濡傦細2014-08-29 --> 20140829 + * @param showDate + * @return + */ + public static final int toIntegerDate(String showDate){ + return (int)LongCalendar.longCalender(showDate, DATE_SEPARATOR); + } + public static final int toIntegerDateTime(String showDate){ + return (int)LongCalendar.longCalender(showDate, DATE_SEPARATOR); + } + + /** + * 鎶婃樉绀虹殑鏃ユ湡鏍煎紡杞寲鎴愭暣鍨嬪�笺��</p> + * 濡傦細2014-08-29 --> 20140829000000 + * @param showDate + * @return + */ + public static final long toLongDateTime(String showDate){ + return (LongCalendar.longCalender(showDate, DATE_SEPARATOR) * 1000000); + } + + /** + * 杩斿洖褰撴湀绗竴澶╂渶鏃╃殑鏃堕棿姣鏁帮紝濡傦細2014-03-01 00:00:00 姣鏁� + * @return + */ + public static final long getCurrentMonthFirstDayEarly(){ + return getDateLongEarly(LongDateHelper.getFirstDayOfMonth()); + } + + /** + * 杩斿洖褰撳ぉ鏈�鏃╃殑姣鏁帮紝鍗筹細褰撳ぉ00:00:00鐨勬绉掑�� + * @return + */ + public static final long getTodayLongEarly(){ + return getDateLongEarly(getTodayForHuman()); + } + + /** + * 杩斿洖褰撳ぉ鏈�鏅氱殑姣鏁帮紝鍗筹細褰撳ぉ23:59:59鐨勬绉掑�� + * @return + */ + public static final long getTodayLongLate(){ + return getDateLongLate(getTodayForHuman()); + } + + /** + * 杩斿洖褰撳ぉ鏃ユ湡锛屽锛�2013-11-21 + * @return + */ + public static final String getTodayForHuman(){ + return LongCalendar.getCurrentDateView().replaceAll(DATE_SEPARATOR_OLD, DATE_SEPARATOR); + } + + /** + * 鎶婃绉掑�兼牸寮忓寲涓哄彲浠ヨ瘑鍒殑鏃ユ湡瀛楃涓诧紝濡傦細2013-11-21 12:33:09 + * @param millis + * @return + */ + public static final String getDateTimeForHuman(long millis){ + if(millis == 0) return "N/A"; +// LocalDateTime localDateTime = new Date(millis).toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime(); + DateFormat whippletreeTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME_WITH_LINE); + return whippletreeTimeFormat.format(new Date(millis)); + } + + /** + * 鎶婃绉掑�兼牸寮忓寲涓哄彲浠ヨ瘑鍒殑鏃ユ湡瀛楃涓诧紝濡傦細2013-11-21 + * @param millis + * @return + */ + public static final String getDateForHuman(long millis){ + if(millis == 0) return "N/A"; + DateFormat whippletreeDateFormat = new SimpleDateFormat(TEXT_DATE_WITH_LINE); + return whippletreeDateFormat.format(new Date(millis)); + } + + /** + * 杩斿洖缁欏畾姣鏁板搴旂殑鏃ユ湡鏁板�硷紝濡傦細20131121 + * @param millis + * @return + */ + public static final long getDateNumber(long millis){ + if(millis == 0) return 0; + DateFormat whippleDateFormat = new SimpleDateFormat(TEXT_DATE); + return Long.parseLong(whippleDateFormat.format(new Date(millis))); + } + + /** + * 杩斿洖缁欏畾姣鏁板搴旂殑鏃ユ湡鏁板�硷紝濡傦細20201220120130 + * @param millis + * @return + * @date 2021-10-25 + */ + public static final long getDateTimeNumber(long millis){ + if(millis == 0) return 0; + DateFormat whippleTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME); + return Long.parseLong(whippleTimeFormat.format(new Date(millis))); + } + + /** + * 杩斿洖褰撳墠鏃ユ湡鏁板�硷紝濡傦細20201220120130 + * @return + */ + public static final long getDateTimeNumber(){ + return getDateTimeNumber(System.currentTimeMillis()); + } + + /** + * 杩斿洖缁欏畾姣鏁板搴旂殑鏃ユ湡鏁板�硷紝濡傦細20201220120130 + * @param showDateTime 濡傦細2020-12-20 12:01:30 + * @return + */ + public static final long getDateTimeNumber(String showDateTime){ + long millis = getDateLong(showDateTime); + DateFormat whippleTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME); + return Long.parseLong(whippleTimeFormat.format(new Date(millis))); + } + + /** + * 杩斿洖缁欏畾鏃ユ湡锛屾渶鏅氱殑姣鍊笺��</p> + * 濡傦細2013-11-21锛岀郴缁熶細杩斿洖 2013-11-21 23:59:59 鐨勬绉掑�� + * @param showDate 2013-11-21 + * @return + */ + public static final long getDateLongLate(String showDate){ + String input = checkDate(showDate); + input += LATE_OF_DAY; + return getDateLong(input); + } + + /** + * 杩斿洖缁欏畾鏃ユ湡锛屾渶鏃╃殑姣鍊笺��</p> + * 濡傦細2013-11-21锛岀郴缁熶細杩斿洖 2013-11-21 00:00:00 鐨勬绉掑�� + * @param showDate 2013-11-21 + * @return + */ + public static final long getDateLongEarly(String showDate){ + return getDateLong(checkDate(showDate)); + } + + private static final String checkDate(String showDate){ + assert (StringUtils.isNotEmpty(showDate)); + String input = showDate.trim(); + if(input.indexOf(":") >= 0) + throw new IllegalArgumentException("wrong input, format e.g. 2013-11-21."); + return input; + } + + /** + * 杩斿洖瀛楃涓叉棩鏈熺殑姣鏃堕棿鍊笺�� + * @param showDateTime 鍙互鏄細2013-11-21 or 2013-11-21 11:21:15 + * @return + */ + public static final long getDateLong(String showDateTime){ + return getDate(showDateTime).getTime(); + } + + /** + * 鎶婂瓧绗︿覆鏃ユ湡鏍煎紡鍖栨垚<code>java.util.Date</code>瀵硅薄銆�</p> + * 鏀寔鏃ユ湡鍜屾椂闂翠袱绉嶆牸寮忥紝蹇呴』鏄互涓嬪舰寮�: + * <pre> + * <li>2013-11-21</li> + * <li>2013-11-21 11:21:15</li> + * </pre> + * @param showDate 杈撳叆鐨勬棩鏈熷瓧绗︿覆锛屽繀椤荤敤'-'浣滀负鍒嗛殧绗︺�傚锛�2013-11-21 + * @return + */ + public static final Date getDate(String showDate){ + String input = showDate.trim(); + if(input.indexOf(DATE_SEPARATOR) == -1) + throw new IllegalArgumentException("date of input must be separated width '-'"); + + try { + /* 鍒ゆ柇鏄椂闂磋繕鏄彧鏈夋棩鏈� */ + if(input.indexOf(":") > 0){ + DateFormat whippletreeTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME_WITH_LINE); + return whippletreeTimeFormat.parse(input); + } else { + DateFormat whippletreeDateFormat = new SimpleDateFormat(TEXT_DATE_WITH_LINE); + return whippletreeDateFormat.parse(input); + } + } catch (ParseException e) { + throw new RuntimeException("translate date error: " + showDate, e); + } + } + + /** + * 杈撳叆鏃ユ湡锛堟垨鏃堕棿锛夊瓧绗︿覆锛岃繑鍥炲勾鏈堝瓧绗︿覆銆�</p> + * 濡傦細2016-07-30 or 2016-07-30 10:01:36 ---> 201607 + * @param showDateOrTime + * @return + */ + public static String getYearMonthValue(String showDateOrTime){ + return showDateOrTime.substring(0, 7).replace(DATE_SEPARATOR, StringUtils.EMPTY_STRING); + } + + /** + * 杩斿洖褰撳墠骞存湀瀛楃涓诧紝濡傦細201607 + * @return + */ + public static String getYearMonthCurrentValue(){ + return getYearMonthValue(getDateForHuman(System.currentTimeMillis())); + } + + /** + * 杩斿洖鏄剧ず鏃堕棿瀛楃涓诧紝濡傦細20161202152028 + * @param millis 杈撳叆姣鍊� + * @return + */ + public static String getDateTimeSecondForShow(long millis){ + if(millis == 0) return "N/A"; + DateFormat whippleTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME); + return whippleTimeFormat.format(new Date(millis)); + } + + public static String getDateTimeSecondForShow(){ + DateFormat whippleTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME); + return whippleTimeFormat.format(new Date(System.currentTimeMillis())); + } + + /** + * 璇存槑锛氳繑鍥炴寚瀹氭椂闂翠箣鍚庣殑鏃堕棿锛屽彲姝e彲璐燂紝渚嬪锛氱粰瀹�20071201000000锛屽噺10澶╋紝寰楀埌鏂扮殑鏃ユ湡 + * 浣滆�咃細鏃跺厠鑻� + * 鏃堕棿锛�12 7, 2007 + */ + public static long getAfterLongTime(long oldTime, int dayNum){ + Calendar calendar = Calendar.getInstance(); + String strDate = String.valueOf(oldTime); + int year = Integer.parseInt(strDate.substring(0, 4)); + int month = Integer.parseInt(strDate.substring(4, 6)) - 1; + int day = Integer.parseInt(strDate.substring(6, 8)); + int hour = Integer.parseInt(strDate.substring(8, 10)); + int minute = Integer.parseInt(strDate.substring(10,12)); + int second = Integer.parseInt(strDate.substring(12, 14)); + + calendar.set(year, month, day, hour, minute, second); + calendar.add(Calendar.DAY_OF_MONTH, dayNum); + + DateFormat whippleTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME); + String result = whippleTimeFormat.format(calendar.getTime()); + return Long.parseLong(result); + } + + /** + * 杩斿洖鎸囧畾澶╂暟涔嬪悗鐨勬棩鏈熸椂闂达紝濡傦細2018-03-29 13:57:01 + * @param daysNumber 澧炲姞鐨勫ぉ鏁帮紝鍙负璐熷�艰〃绀轰箣鍓嶅嚑澶� + * @return + */ + public static String getShowDateTimeAfterDays(int daysNumber) { + Calendar now = Calendar.getInstance(); + now.add(Calendar.DATE, daysNumber); + DateFormat whippletreeTimeFormat = new SimpleDateFormat(TEXT_DATE_TIME_WITH_LINE); + return whippletreeTimeFormat.format(now.getTime()); + } + + /** + * 杩斿洖褰撳墠骞存湀鏃ワ紝鍙互澧炲噺澶╂暟 + * @param afterDay 澧炲姞鐨勫ぉ鏁帮紙鍙负璐熷�艰〃绀洪�掑噺锛� + * @return + */ + public static int[] getYearMonthDayArray(int afterDay){ + Calendar now = Calendar.getInstance(); + now.add(Calendar.DATE, afterDay); + int[] yearMonthDay = new int[3]; + yearMonthDay[0] = now.get(Calendar.YEAR); + yearMonthDay[1] = now.get(Calendar.MONTH) + 1; + yearMonthDay[2] = now.get(Calendar.DAY_OF_MONTH); + return yearMonthDay; + } + + /** + * 杩斿洖鎸囧畾澶╂暟涔嬪悗鐨勬棩鏈熸椂闂达紝濡傦細2018-03-29 + * @param daysNumber 澧炲姞鐨勫ぉ鏁帮紝鍙负璐熷�艰〃绀轰箣鍓嶅嚑澶� + * @return + */ + public static String getShowDateAfterDays(int daysNumber) { + Calendar now = Calendar.getInstance(); + now.add(Calendar.DATE, daysNumber); + DateFormat whippletreeDateFormat = new SimpleDateFormat(TEXT_DATE_WITH_LINE); + return whippletreeDateFormat.format(now.getTime()); + } + + /** + * 杩斿洖缁欏畾鏃ユ湡鐨勫悗缁嚑澶╃殑鏃ユ湡鍊� + * @param year 褰撳墠骞翠唤锛屽锛�2019 + * @param month 褰撳墠鏈堜唤锛屽锛�1鏈� + * @param dayOfMonth 褰撳墠鏃ユ湡锛屽锛�2鍙� + * @param afterDayNum 浠婂悗鍑犲ぉ + * @return 杩斿洖鏁扮粍锛�3涓�硷紝濡傦細[2019,1,2] + */ + public static int[] getNextDay(int year, int month, int dayOfMonth, int afterDayNum){ + LocalDate localDate = LocalDate.of(year, month, dayOfMonth); + localDate = localDate.minusDays(-afterDayNum); + return new int[]{localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth()}; + } + + /** + * 杩斿洖褰撳墠鏃ユ湡鏄槦鏈熷嚑 + * @return 1~7 + */ + public static int getCurrentWeekdayValue(){ + LocalDate currentDate = LocalDate.now(); + return currentDate.getDayOfWeek().getValue(); + } + + /** + * 杩斿洖褰撳墠骞翠唤 + * @return + */ + public static String getCurrentYear(){ + return getDateForHuman(System.currentTimeMillis()).substring(0, 4); + } + + public static int getCurrentYearInteger(){ + Calendar now = Calendar.getInstance(); + return now.get(Calendar.YEAR); + } + /** + * 杩斿洖褰撳墠骞存湀淇℃伅锛屾牸寮忥細2020-12 + * @return + */ + public static String getCurrentYearMonthForHuman(){ + String showDateOrTime = getDateForHuman(System.currentTimeMillis()); + return showDateOrTime.substring(0, 7); + } + + public static int getCurrentHour(){ + Calendar calendar = Calendar.getInstance(); + return calendar.get(Calendar.HOUR_OF_DAY); + } + + public static int getCurrentMinute(){ + Calendar calendar = Calendar.getInstance(); + return calendar.get(Calendar.MINUTE); + } + + /** + * 杩斿洖褰撳墠灏忔椂锛氬垎閽� + * @param afterMinutes 鍙互澧炲姞鍒嗛挓锛堟璐熼兘鍙級 + * @return + */ + public static int[] getCurrentHourMinute(int afterMinutes){ + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MINUTE, afterMinutes); + int[] hourMinute = new int[2]; + hourMinute[0] = calendar.get(Calendar.HOUR_OF_DAY); + hourMinute[1] = calendar.get(Calendar.MINUTE); + return hourMinute; + } + + /** + * 杩斿洖褰撳墠骞存湀鏃ワ紝鏀惧湪鏁扮粍涓� + * @return + */ + public static int[] getCurrentYearMonthDay(){ + int[] result = new int[3]; + Calendar now = Calendar.getInstance(); + result[0] = now.get(Calendar.YEAR); + result[1] = now.get(Calendar.MONTH) + 1; + result[2] = now.get(Calendar.DAY_OF_MONTH); + return result; + } + + public static int[] getCurrentYearMonthDayHourMinute(){ + int[] result = new int[5]; + Calendar now = Calendar.getInstance(); + result[0] = now.get(Calendar.YEAR); + result[1] = now.get(Calendar.MONTH) + 1; + result[2] = now.get(Calendar.DAY_OF_MONTH); + result[3] = now.get(Calendar.HOUR_OF_DAY); + result[4] = now.get(Calendar.MINUTE); + return result; + } + + public static int[] getCurrentYearMonthDayHourMinute(int monthAdd, int dayAdd, int hourAdd, int minuteAdd){ + int[] result = new int[5]; + Calendar now = Calendar.getInstance(); + if(monthAdd != 0){ + now.add(Calendar.MONTH, monthAdd); + } + if(dayAdd != 0){ + now.add(Calendar.DATE, dayAdd); + } + if(hourAdd != 0){ + now.add(Calendar.HOUR, hourAdd); + } + if(minuteAdd != 0){ + now.add(Calendar.MINUTE, minuteAdd); + } + result[0] = now.get(Calendar.YEAR); + result[1] = now.get(Calendar.MONTH) + 1; + result[2] = now.get(Calendar.DAY_OF_MONTH); + result[3] = now.get(Calendar.HOUR_OF_DAY); + result[4] = now.get(Calendar.MINUTE); + return result; + } + + /** + * 鎻愪緵涓�涓鍔犵殑绉掓暟锛岃绠椾箣鍚庣殑鏃堕棿銆� + * @param addSeconds 瑕佸鍔犵殑绉掓暟 + * @return + * @date 2021-10-25 + */ + public static int[] getCurrentYearMonthDayHourMinuteSecond(int addSeconds){ + int[] result = new int[6]; + Calendar now = Calendar.getInstance(); + now.add(Calendar.SECOND, addSeconds); + result[0] = now.get(Calendar.YEAR); + result[1] = now.get(Calendar.MONTH) + 1; + result[2] = now.get(Calendar.DAY_OF_MONTH); + result[3] = now.get(Calendar.HOUR_OF_DAY); + result[4] = now.get(Calendar.MINUTE); + result[5] = now.get(Calendar.SECOND); + return result; + } + + public static int[] getCurrentYearMonthDay(int afterDays){ + int[] result = new int[3]; + Calendar now = Calendar.getInstance(); + now.add(Calendar.DAY_OF_MONTH, afterDays); + result[0] = now.get(Calendar.YEAR); + result[1] = now.get(Calendar.MONTH) + 1; + result[2] = now.get(Calendar.DAY_OF_MONTH); + return result; + } + + /** + * @param args + */ + public static void main(String[] args) throws Exception { +// System.out.println("+++++++++++ " + toIntegerDate("2014-08-29")); + String showDate = "2013-11-20 11:18:21"; +// String showDate = "2013-11-20"; + System.out.println("normal:" + getDateLong(showDate)); +// long e = getDateLongEarly(showDate); +// long l = getDateLongLate(showDate); +// System.out.println("early : " + e); +// System.out.println("late : " + l); +// System.out.println("鐩稿樊 : " + (l - e)/(1000 * 60 * 60)); +// System.out.println("++++++ " + getDateTimeForHuman(new Date().getTime())); +// System.out.println("浠婂ぉ鏈�鏃�: " + getTodayLongEarly()); +// System.out.println("浠婂ぉ鏈�鏅�: " + getTodayLongLate()); + System.out.println(getCurrentMonthFirstDayEarly()); + System.out.println(getDateTimeSecondForShow()); + System.out.println(getDateNumber(System.currentTimeMillis())); +// System.out.println(getAfterLongTime(20170925141302L, 1)); +// System.out.println(getShowDateTimeAfterDays(-7)); + System.out.println(DateUtils.toLongDateTime("2018-12-05")); + +// System.out.println(getNextDay(2018, 12, 31, 2)); +// System.out.println(getCurrentWeekdayValue()); +// System.out.println(getShowDateAfterDays(0)); +// System.out.println(getCurrentYearMonthForHuman()); +// System.out.println(getCurrentYear()); +// System.out.println(getCurrentHour()); + System.out.println(toLongDateTime("2019-05-20 02:30:00")); +// int[] yearMonthDay = getCurrentYearMonthDay(); +// System.out.println(yearMonthDay[0] + ", " + yearMonthDay[1] + ", " + yearMonthDay[2]); +// int[] ymd = getYearMonthDayArray(-1230); +// System.out.println(ymd[0] + ", " + ymd[1] + ", " + ymd[2]); +// int[] hm = getCurrentHourMinute(-100); +// System.out.println(hm[0] + ", " + hm[1]); + +// int[] ymd = getCurrentYearMonthDay(-3); +// System.out.println(ymd[0] + ", " + ymd[1] + ", " + ymd[2]); + + System.out.println(toMillSeconds(20140829102501L)); + +// int[] result = getCurrentYearMonthDayHourMinute(1, 0, 1, 10); +// System.out.println(result[0]); +// System.out.println(result[1]); +// System.out.println(result[2]); +// System.out.println(result[3]); +// System.out.println(result[4]); + +// int[] result = getCurrentYearMonthDayHourMinuteSecond(30); +// System.out.println(result[0]); +// System.out.println(result[1]); +// System.out.println(result[2]); +// System.out.println(result[3]); +// System.out.println(result[4]); +// System.out.println(result[5]); + System.out.println(getDateForHuman(System.currentTimeMillis())); + } + +} + + + diff --git "a/consum-base/doc/\346\233\264\346\226\260\346\255\243\345\274\217\347\216\257\345\242\203\351\234\200\350\246\201\346\267\273\345\212\240.sql" "b/consum-base/doc/\346\233\264\346\226\260\346\255\243\345\274\217\347\216\257\345\242\203\351\234\200\350\246\201\346\267\273\345\212\240.sql" new file mode 100644 index 0000000..e69de29 --- /dev/null +++ "b/consum-base/doc/\346\233\264\346\226\260\346\255\243\345\274\217\347\216\257\345\242\203\351\234\200\350\246\201\346\267\273\345\212\240.sql" diff --git a/consum-base/pom.xml b/consum-base/pom.xml new file mode 100644 index 0000000..53c75f1 --- /dev/null +++ b/consum-base/pom.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>com.consum</groupId> + <artifactId>low-consum-manage</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>consum-base</artifactId> + <name>consum-base</name> + <version>1.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <properties> + <es.version>7.14.0</es.version> + </properties> + + <dependencies> + + <!-- 骞冲彴鍩虹妯″潡 --> + <dependency> + <groupId>com.iplatform</groupId> + <artifactId>iplatform-base</artifactId> + </dependency> + <!-- 寮曞叆web瀹夊叏璁よ瘉妯″潡锛屽鏋滀笉寮曞叆鍒欎笉浼氬仛浠讳綍鏉冮檺鎷︽埅锛堣繖绉嶆ā寮忛�氬父鍙敤浜庡揩閫熸祴璇曪級, 2022/10/31 --> + <dependency> + <groupId>com.iplatform</groupId> + <artifactId>iplatform-base-security</artifactId> + </dependency> + + <!-- 绯荤粺鍩虹妯″潡鐣岄潰绠$悊鎺у埗妯″潡锛屽鏋滀笉寮曞叆涔熶笉浼氭湁swagger鏂囨。鍔熻兘!锛�2023/03/05 --> + <dependency> + <groupId>com.iplatform</groupId> + <artifactId>iplatform-base-admin</artifactId> + </dependency> + + <!-- 鎻愪緵Redis鏀寔锛岀敱涓氬姟瀛愬伐绋嬪喅瀹氭槸鍚︿緷璧�, 2022/09/20 --> + <dependency> + <groupId>com.walkersoft</groupId> + <artifactId>walker-support-redis</artifactId> + <optional>true</optional> + <exclusions> + <exclusion> + <groupId>com.walkersoft</groupId> + <artifactId>walker-cache</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- 鏂囦欢绠$悊妯″潡锛�2023/03/16 --> + <dependency> + <groupId>com.iplatform</groupId> + <artifactId>iplatform-file-server</artifactId> + </dependency> + <dependency> + <groupId>com.consum</groupId> + <artifactId>consum-model-pojo</artifactId> + <version>1.0.0-SNAPSHOT</version> + </dependency> + + </dependencies> + +</project> diff --git a/consum-base/src/main/java/com/consum/base/BaseController.java b/consum-base/src/main/java/com/consum/base/BaseController.java new file mode 100644 index 0000000..5dc03e8 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/BaseController.java @@ -0,0 +1,11 @@ +package com.consum.base; + +import com.iplatform.base.PlatformAdapterController; +import com.iplatform.core.BeanContextAware; + +public abstract class BaseController extends PlatformAdapterController { + + protected TokenCacheProvider getTokenCache() { + return BeanContextAware.getBeanByType(TokenCacheProvider.class); + } +} diff --git a/consum-base/src/main/java/com/consum/base/Constants.java b/consum-base/src/main/java/com/consum/base/Constants.java new file mode 100644 index 0000000..a67098e --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/Constants.java @@ -0,0 +1,45 @@ +package com.consum.base; + +public class Constants { + + // 鏄惁涓洪」鐩粡鐞�(0鍚� 1鏄�) + public static final Integer MANAGER_YES = 1; + public static final Integer MANAGER_NO = 0; + + public static final String CACHE_NAME_FIN_ORG = "cache.fin.org"; + public static final String CACHE_NAME_FIN_USER = "cache.fin.user"; + public static final String CACHE_NAME_FIN_TOKEN = "cache.fin.user.token"; + public static final String CACHE_NAME_FIN_TENANT_USER = "cache.fin.tenant.user"; + public static final String CACHE_NAME_FIN_TENANT = "cache.fin.tenant"; + + // 瀹℃牳淇℃伅 0鏈鏍� 1 瀹℃牳涓嶉�氳繃 2瀹℃牳閫氳繃 + public static final Integer AUDIT_WAIT = 0; + public static final Integer AUDIT_NO = 1; + public static final Integer AUDIT_YES = 2; + + // 褰掓。鐘舵�� 0鏈鏍� 1 瀹℃牳涓嶉�氳繃 2瀹℃牳閫氳繃 -1鏈綊妗� + public static final Integer ARCHIVE_WAIT = 0; + public static final Integer ARCHIVE_NO = 1; + public static final Integer ARCHIVE_YES = 2; + public static final Integer ARCHIVE_NO_IN = -1; + + // 涓存湡棰勮 0鍏抽棴 1寮�鍚� + public static final Integer EXPIRATION_NOTIFY_STATUS_CLOSE = 0; + public static final Integer EXPIRATION_NOTIFY_STATUS_OPEN = 1; + + // 0鏈紑宸� 1杩涜涓� 2 瀹屽伐 3 宸插彇娑� 4 瓒呮湡鏈畬鎴�(0-2 鏍规嵁鏃堕棿鍒ゆ柇) 5瓒呮湡宸插畬鎴� + public static final Integer PROJECT_WAIT = 0; + public static final Integer PROJECT_ING = 1; + public static final Integer PROJECT_SUCCESS = 2; + public static final Integer PROJECT_CANCEL = 3; + public static final Integer PROJECT_TIME_OUT_NO = 4; + public static final Integer PROJECT_TIME_OUT_YES = 5; + + // SOURCE_STATUS 0褰掓。 1鏂板 + public static final Integer SOURCE_ARC = 0; + public static final Integer SOURCE_ADD = 1; + + // 鏄惁瀹屾垚 + public static final Integer PROJECT_YES = 1;// 宸插畬鎴� + public static final Integer PROJECT_NO = 0;// 鏈畬鎴� +} diff --git a/consum-base/src/main/java/com/consum/base/TokenCacheProvider.java b/consum-base/src/main/java/com/consum/base/TokenCacheProvider.java new file mode 100644 index 0000000..495b154 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/TokenCacheProvider.java @@ -0,0 +1,25 @@ +package com.consum.base; + +import com.consum.base.pojo.TokenVo; + + +/** + * 璐㈡斂鍘呰繍缁寸郴缁熶笟鍔$敤鎴风紦瀛樸�� + * <pre> + * 1) key = 鍚屾杩囨潵鐨勭敤鎴穒d锛岄绠楃郴缁熺殑鐢ㄦ埛ID锛屾垜浠殏鏃舵垚涓�"code" + * 2) value = 缂撳瓨瀵硅薄涓轰粠鏁版嵁搴撹鍑虹殑鐢ㄦ埛銆� + * </pre> + * @author 鏃跺厠鑻� + * @date 2023-07-05 + */ +public interface TokenCacheProvider { + + TokenVo get(String token); + + void save(TokenVo e); + + void update(TokenVo e); + + void remove(String token); + +} diff --git a/consum-base/src/main/java/com/consum/base/cache/RedisTokenCache.java b/consum-base/src/main/java/com/consum/base/cache/RedisTokenCache.java new file mode 100644 index 0000000..461c3ad --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/cache/RedisTokenCache.java @@ -0,0 +1,50 @@ +package com.consum.base.cache; + +import com.consum.base.Constants; +import com.consum.base.TokenCacheProvider; +import com.consum.base.pojo.TokenVo; +import com.walker.support.redis.cache.RedisCacheProvider; + +/** + * Redis瀹炵幇鐨勮繍缁寸郴缁熺敤鎴峰畾涔夈�� + * @author 鏃跺厠鑻� + * @date 2023-07-05 + */ +public class RedisTokenCache extends RedisCacheProvider<TokenVo> implements TokenCacheProvider { + + public RedisTokenCache(){ + this.setUseRedis(true); + this.setLoadPage(false); + } + + @Override + public TokenVo get(String token) { + TokenVo finSysOrg = this.getCacheData(token); + return finSysOrg; + } + + @Override + public void save(TokenVo e) { + this.putCacheData(e.getToken(), e); + } + + @Override + public void update(TokenVo e) { + this.updateCacheData(e.getToken(), e); + } + + @Override + public void remove(String userCode) { + this.removeCacheData(userCode); + } + + @Override + public String getProviderName() { + return Constants.CACHE_NAME_FIN_TOKEN; + } + + @Override + public Class<?> getProviderType() { + return TokenVo.class; + } +} diff --git a/consum-base/src/main/java/com/consum/base/core/AgencyEntity.java b/consum-base/src/main/java/com/consum/base/core/AgencyEntity.java new file mode 100644 index 0000000..ac9195d --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/AgencyEntity.java @@ -0,0 +1,80 @@ +package com.consum.base.core; + +import com.consum.base.core.po.SYS_AGENCY; + +public class AgencyEntity { + + private long agency_id; + + //褰撳墠ID浠h〃鐨凷YS_AGENCY + private SYS_AGENCY angency; + + //绗竴灞傜骇鐨凷YS_AGENCY锛屽嵆鐪佺骇鏈烘瀯 + private SYS_AGENCY firstAgency; + + //绗簩灞傜骇SYS_AGENCY锛屽嵆甯傜骇鏈烘瀯 + private SYS_AGENCY secondAgency; + + //绗笁灞傜骇SYS_AGENCY锛屽嵆鍘跨骇鏈烘瀯 + private SYS_AGENCY thirdAgency; + + //绗洓灞傜骇SYS_AGENCY锛屽嵆鏀眬銆佺綉鐐规満鏋� + private SYS_AGENCY fourthAgency; + + public SYS_AGENCY getAngency() { + return angency; + } + + public void setAngency(SYS_AGENCY angency) { + this.angency = angency; + } + + public SYS_AGENCY getFirstAgency() { + return firstAgency; + } + + public void setFirstAgency(SYS_AGENCY firstAgency) { + this.firstAgency = firstAgency; + } + + public SYS_AGENCY getSecondAgency() { + return secondAgency; + } + + public void setSecondAgency(SYS_AGENCY secondAgency) { + this.secondAgency = secondAgency; + } + + public SYS_AGENCY getThirdAgency() { + return thirdAgency; + } + + public void setThirdAgency(SYS_AGENCY thirdAgency) { + this.thirdAgency = thirdAgency; + + } + + public SYS_AGENCY getFourthAgency() { + return fourthAgency; + } + + public void setFourthAgency(SYS_AGENCY fourthAgency) { + this.fourthAgency = fourthAgency; + } + + + public AgencyEntity(long agency_id){ + this.agency_id = agency_id; + } + + + + + public long getAgency_id() { + return agency_id; + } + + public void setAgency_id(long agency_id) { + this.agency_id = agency_id; + } +} diff --git a/consum-base/src/main/java/com/consum/base/core/AgencyService.java b/consum-base/src/main/java/com/consum/base/core/AgencyService.java new file mode 100644 index 0000000..ba6fb93 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/AgencyService.java @@ -0,0 +1,33 @@ +package com.consum.base.core; + + +import com.consum.base.core.po.SYS_AGENCY; + +/** + * 缁勭粐鏈烘瀯绫婚�氱敤service + */ +public class AgencyService { + + + public static void main(String[] args) { + + } + + /** + * 鏍规嵁缁勭粐鏈烘瀯ID锛岃幏鍙栫粍缁囨満鏋勬爲 + * @param agency_id + * @return + */ + public AgencyEntity getAgencyTreeEntityById(long agency_id){ + + AgencyEntity entity = new AgencyEntity(agency_id); + entity.setAngency(new SYS_AGENCY()); + entity.setFirstAgency(new SYS_AGENCY()); + entity.setSecondAgency(new SYS_AGENCY()); + entity.setThirdAgency(new SYS_AGENCY()); + entity.setFourthAgency(new SYS_AGENCY()); + return entity; + } + + +} diff --git a/consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java b/consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java new file mode 100644 index 0000000..58fd810 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java @@ -0,0 +1,41 @@ +package com.consum.base.core; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * 鍑哄叆搴撳弬鏁� + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Slf4j +public class CheckWarehouseParam { + + /** + * 鏄惁鍏ュ簱 true 鏄� false 鍚︼紙鍑哄簱锛� + */ + private Boolean isCheckIn; + + /** + * 浠撳簱id + */ + private Long warehouseId; + + /** + * 瑙勬牸鍨嬪彿id + */ + private Long modelId; + + /** + * 鏁伴噺 + */ + private Integer count; + + /** + * 棣栨鍏ュ簱鎵规鍙凤紝鏁版嵁搴撳瓧娈� + */ + private String firstInputCode; +} diff --git a/consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java b/consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java new file mode 100644 index 0000000..8ee8e72 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java @@ -0,0 +1,23 @@ +package com.consum.base.core; + +/** + * 鎵ц鍏ュ簱鍚庣殑杩斿洖绫� + */ +public class CheckWarehouseResult { + + /** + * 鎿嶄綔鏇存柊鎴栨柊澧炵殑WH_GOODS搴撳瓨鐗╁搧ID + */ + private long wh_goods_id; + + /** + * 鎵ц鎿嶄綔鏃剁殑鏈熷垵鏁伴噺 + */ + private int initial_count; + + /** + * 鎵ц鎿嶄綔鍚庣殑鏈熸湯鏁伴噺 + */ + private int end_count; + +} diff --git a/consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java new file mode 100644 index 0000000..b1cee62 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java @@ -0,0 +1,55 @@ +package com.consum.base.core; + +public enum CodeGeneratorEnum { + + // TODO: 10/10/2023 闇�瑕佽ˉ鍏ㄧ紪鐮佺被鍨� + + /** + * 浠撳簱缂栫爜锛岀畝鍐欙細WH + */ + Warehouse("WH"), + /** + * 鍏ュ簱鍗曠紪鐮侊紝绠�鍐欙細RK + */ + InPut_Warehouse("RK"), + + /** + * 閲囪喘鍏ュ簱 + */ + Procure_Warehouse("CG"), + + /** + * 璋冩嫧 + */ + Transfer("DB"), + + /** + * 鍑哄簱鍗曠紪鐮侊紝绠�鍐欙細CK + */ + OutPut_Warehouse("CK"); + + private String value; + + CodeGeneratorEnum(String prefix) { + this.value = prefix; + } + + public String getValue() { + return value; + } + + /** + * 鏍规嵁缂栫爜鑾峰彇瀵瑰簲鏋氫妇 + * + * @param key 缂栫爜 + * @return + */ + public static CodeGeneratorEnum getValueByKey(String key) { + for (CodeGeneratorEnum myEnum : CodeGeneratorEnum.values()) { + if (myEnum.name().equals(key)) { + return myEnum; + } + } + return null; + } +} diff --git a/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java new file mode 100644 index 0000000..b976bbc --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java @@ -0,0 +1,86 @@ +package com.consum.base.core; + + +import com.walker.jdbc.service.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 缂栫爜缁熶竴鐢熸垚鏈嶅姟 + */ +@Service +public class CodeGeneratorService extends BaseServiceImpl { + + + /** + * 鑾峰彇浠撳簱缂栫爜 + * + * @return 浠撳簱缂栫爜瑙勫垯涓猴細WH+鍥涗綅鏁板瓧杩炲彿锛�0001锛� + */ + public String createWarehouseCode() { + // TODO: 10/10/2023 鑾峰彇浠撳簱缂栫爜 + + String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue(); + /* + 1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX + CODE_PREFIX鏄�"WH" + 濡傛灉鑾峰彇涓嶅埌锛屽氨浠�1寮�濮嬶紝浣嗛渶瑕佽ˉ鍏ㄥ墠闈㈢殑"0"杩斿洖 "0001"锛涘悓鏃堕渶瑕佹彃鍏ユ暟鎹簱 + insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�="WH" where CODE_PREFIX=:CODE_PREFIX; + 2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "0001" + */ + return null; + } + + /** + * 杩炵画鑾峰彇澶氫釜浠撳簱缂栫爜 + * + * @return 浠撳簱缂栫爜瑙勫垯涓猴細WH+鍥涗綅鏁板瓧杩炲彿锛�0001锛� + */ + public List<String> createWarehouseCodeList(int count) { + // TODO: 10/10/2023 鑾峰彇浠撳簱缂栫爜 + + String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue(); + /* + 1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX + CODE_PREFIX鏄�"WH" + 濡傛灉鑾峰彇涓嶅埌锛屽氨浠�1寮�濮嬶紝浣嗛渶瑕佽ˉ鍏ㄥ墠闈㈢殑"0"杩斿洖 "0001"锛涘悓鏃堕渶瑕佹彃鍏ユ暟鎹簱 + insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�="WH" where CODE_PREFIX=:CODE_PREFIX; + 2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "0001" + */ + return null; + } + + /** + * 鐢熸垚鐗╁搧缂栫爜 + * + * @param classify A,B,C + * @param type 1=闆嗛噰锛�2=鑷噰 + * @return 鍏�8浣嶏紝 涓�浣嶇墿鍝佸垎绫伙紙A/B/C锛�+涓�浣嶇被鍨嬶紙1涓洪泦閲囷紝2涓鸿嚜閲囷級+6浣嶈繛缁暟瀛楀彿 + */ + public String createGoodsTemplateCode(String classify, int type) { + String prefix = classify + Integer.valueOf(type).toString(); + + /* + 1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX + CODE_PREFIX鏄� prefix + 濡傛灉鑾峰彇涓嶅埌锛屽氨浠�1寮�濮嬶紝浣嗛渶瑕佽ˉ鍏ㄥ墠闈㈢殑"0"杩斿洖 "000001"锛涘悓鏃堕渶瑕佹彃鍏ユ暟鎹簱 + insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�=:prefix where CODE_PREFIX=:CODE_PREFIX; + 2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "000001" + */ + return null; + } + + /** + * 鏍规嵁鍓嶇紑鑾峰彇涓氬姟琛ㄥ崟缂栫爜 + * + * @param codeGeneratorEnum CodeGeneratorEnum + * @return 1.涓や綅鍓嶇紑锛堝锛欳G浠h〃閲囪喘鍗曪級+鍏綅骞存湀鏃ワ紙230226锛�23骞�2鏈�26鏃ワ級+鍥涗綅鏁板瓧杩炲彿锛�0002锛� + */ + public String createBusinessFormCode(CodeGeneratorEnum codeGeneratorEnum) { + + return null; + } + + +} diff --git a/consum-base/src/main/java/com/consum/base/core/CodeTemplateService.java b/consum-base/src/main/java/com/consum/base/core/CodeTemplateService.java new file mode 100644 index 0000000..e8da0ff --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/CodeTemplateService.java @@ -0,0 +1,20 @@ +package com.consum.base.core; + + +import java.util.List; +import java.util.Map; + +public class CodeTemplateService { + + /** + * 鏍规嵁鍒嗙被缂栧彿鍜屾湰绾ф満鏋勭紪鍙凤紝鑾峰彇鍙煡鐪嬬墿鍝佹ā鐗堝垪琛� + * @param third_category_id 鍒嗙被缂栧彿锛屽垎绫荤紪鍙蜂负Null鏃讹紝鏌ヨ鎵�鏈夊垎绫� + * @param agencyId 鏈烘瀯缂栧彿 + * @return 閲囪喘绫诲瀷涓鸿嚜閲囩殑锛屽彧鑳芥湰绾ф満鏋勫唴鍙銆傞泦閲囩殑鏈骇鍙婁笅绾т竴鏉$嚎鐨勬満鏋勫潎鍙銆� + */ + public List<Map> getTemplateListByAgencyId(String third_category_id,String agencyId){ + + return null; + } + +} diff --git a/consum-base/src/main/java/com/consum/base/core/GoodsService.java b/consum-base/src/main/java/com/consum/base/core/GoodsService.java new file mode 100644 index 0000000..282e190 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/GoodsService.java @@ -0,0 +1,10 @@ +package com.consum.base.core; + +import org.springframework.stereotype.Service; + +@Service +public class GoodsService { + + + +} diff --git a/consum-base/src/main/java/com/consum/base/core/UnifyBusinessService.java b/consum-base/src/main/java/com/consum/base/core/UnifyBusinessService.java new file mode 100644 index 0000000..4400df0 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/UnifyBusinessService.java @@ -0,0 +1,41 @@ +package com.consum.base.core; + + +import com.consum.base.core.po.WhFormProcure; +import com.consum.base.core.po.WhFormTransfer; +import org.springframework.stereotype.Service; + +/** + * 缁熶竴鍑哄叆搴撴帴鍙� + */ +@Service +public class UnifyBusinessService { + + /** + * 閲囪喘鍏ュ簱 + * @param procure + */ + public void procure(WhFormProcure procure){ + + } + + + /** + * 璋冩嫧鍑哄簱 + * @param transfer + */ + public void transferOutput(WhFormTransfer transfer){ + + } + + /** + * 璋冩嫧鍏ュ簱 + * @param transfer + */ + public void transferInput(WhFormTransfer transfer){ + + } + + + +} diff --git a/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java b/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java new file mode 100644 index 0000000..ae212eb --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java @@ -0,0 +1,68 @@ +package com.consum.base.core; + +import com.consum.base.core.po.WhFormInventory; +import com.consum.base.core.po.WhFormProcure; +import com.consum.base.core.po.WhFormTransfer; +import org.springframework.stereotype.Service; + +/** + * 杩涘嚭搴� 涓氬姟澶� 绫� + */ +@Service +public class WarehouseBusinessService { + + + private WarehouseCoreService coreService; + + /** + * 鎵ц閲囪喘鍏ュ簱 + * 绗竴姝ワ細閫氳繃閲囪喘鍗曘�怶H_FORM_PROCURE銆戞煡璇㈤噰璐崟鍨嬪彿銆怶H_FORM_PROCURE_MODEL銆戞暟鎹� + * 绗簩姝ワ細缁勭粐CheckWarehouseParam锛岃皟鐢╓arehouseCoreService.unifyCheck()鎵ц鍏ュ簱 + * 绗笁姝ワ細鏇存柊閲囪喘鍗曞瀷鍙枫�怶H_FORM_PROCURE_MODEL銆戝簱瀛樼墿鍝佺紪鍙峰瓧娈靛強涓昏〃WH_FORM_PROCURE鐘舵�佷俊鎭� + * 绗洓姝ワ細鏇存柊 杩涘嚭搴撴祦姘达紙浠撳簱锛夈�怶H_GOODS_DETAILS銆� + * @param procure + */ + public void doProcure(WhFormProcure procure){ + CheckWarehouseParam param = new CheckWarehouseParam(); + param.setIsCheckIn(true); + param.setWarehouseId(procure.getId()); + param.setIsCheckIn(true); + + coreService.unifyCheck(param); + } + + /** + * 鎵ц璋冩嫧鍑哄簱鎿嶄綔 + * 1. 閫氳繃璋冩嫧鍗曘�怶H_FORM_TRANSFER銆戙�佽皟鎷ㄥ崟鐗╁搧銆怶H_FORM_TRANSFER_GOODS銆戠粍缁嘋heckWarehouseParam + * 2. 璋冪敤璋冪敤WarehouseCoreService.unifyCheck()鎵ц鍑哄簱 + * 3. 鏇存柊杩涘嚭搴撴祦姘达紙浠撳簱锛夈�怶H_GOODS_DETAILS銆� + * 4. 鏇存柊璋冩嫧鍗曘�怶H_FORM_TRANSFER銆戜负寰呮帴鏀讹紝鏇存柊璋冩嫧鍗曠墿鍝併�怶H_FORM_TRANSFER_MODEL銆戝嚭搴撴祦姘碔D + * @param transfer + */ + public void doTransferOutPut(WhFormTransfer transfer){ + + } + + /** + * 鎵ц璋冩嫧鍏ュ簱鎿嶄綔 + * 1. 閫氳繃璋冩嫧鍗曘�怶H_FORM_TRANSFER銆戙�佽皟鎷ㄥ崟鐗╁搧銆怶H_FORM_TRANSFER_GOODS銆戠粍缁嘋heckWarehouseParam + * 2. 璋冪敤璋冪敤WarehouseCoreService.unifyCheck()鎵ц鍑哄簱 + * 3. 鏇存柊杩涘嚭搴撴祦姘达紙浠撳簱锛夈�怶H_GOODS_DETAILS銆� + * 4. 鏇存柊璋冩嫧鍗曘�怶H_FORM_TRANSFER銆戜负宸插叆搴擄紝锛屾洿鏂拌皟鎷ㄥ崟鐗╁搧銆怶H_FORM_TRANSFER_MODEL銆戝叆搴撴祦姘碔D + * @param transfer + */ + public void doTransferInPut(WhFormTransfer transfer){ + + } + + /** + * 鍒涘缓鐩樼偣浠诲姟锛屽垱寤虹洏鐐逛换鍔℃椂锛屾牴鎹綋鏃舵椂闂翠細灏嗗簱瀛樻暟鎹喕缁撲竴浠芥斁鍏ュ緟鐩樼偣鍗曘�� + * 1.浠庡簱瀛樼墿鍝併�怶H_GOODS銆戜腑鎸夌収浠撳簱灏嗘暟鎹斁鍏ョ洏鐐瑰崟鐗╁搧銆怶H_FORM_INVENTORY_GOODS銆戯紝涓昏鏄� + * 鏈熷垵鏁伴噺INIT_COUNTS锛屽拰 搴撳瓨鐗╁搧缂栧彿WH_GOODS_ID瀛楁 + * @param inventory + */ + public void createInventory(WhFormInventory inventory){ + + } + +} diff --git a/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java b/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java new file mode 100644 index 0000000..0de0d26 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java @@ -0,0 +1,56 @@ +package com.consum.base.core; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; + + +/** + * 鏍稿績鍑哄叆搴撴帴鍙� + */ +@Service +@Slf4j +public class WarehouseCoreService { + + /** + * 缁熶竴鍑哄叆搴� + */ + @Transactional(rollbackFor = Exception.class) + public CheckWarehouseResult unifyCheck(CheckWarehouseParam param) { + // TODO: 10/10/2023 姝ゅ鍔犱簡鍞竴閿侊紝浼氬奖鍝嶆�ц兘锛屾�濊�冩槸鍚︽湁鏇村悎閫傜殑鍔炴硶 + try { + Assert.notNull(param, "wareHouse param can not null !"); + Assert.notNull(param.getWarehouseId(), "wareHouse id can not null"); + CheckWarehouseResult result; + synchronized (param.getWarehouseId()) { + if (param.getIsCheckIn()) { + result = checkin(param); + } else { + result = checkout(param); + } + } + return result; + } catch (Exception e) { + log.error(e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + + } + + /** + * 鍑哄簱 + */ + private CheckWarehouseResult checkout(CheckWarehouseParam param) { + return new CheckWarehouseResult(); + } + + /** + * 鍏ュ簱 + */ + private CheckWarehouseResult checkin(CheckWarehouseParam param) { + return new CheckWarehouseResult(); + } + + +} diff --git a/consum-base/src/main/java/com/consum/base/core/po/SYS_AGENCY.java b/consum-base/src/main/java/com/consum/base/core/po/SYS_AGENCY.java new file mode 100644 index 0000000..9f8322a --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/po/SYS_AGENCY.java @@ -0,0 +1,4 @@ +package com.consum.base.core.po; + +public class SYS_AGENCY { +} diff --git a/consum-base/src/main/java/com/consum/base/core/po/WhFormInventory.java b/consum-base/src/main/java/com/consum/base/core/po/WhFormInventory.java new file mode 100644 index 0000000..c327856 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/po/WhFormInventory.java @@ -0,0 +1,11 @@ +package com.consum.base.core.po; + +/** + * 鍔熻兘鎻忚堪: 鐩樼偣鍗� + * + * @author dhz + * @date 2023-10-14 16:42 + * @version 1.0 + **/ +public class WhFormInventory { +} diff --git a/consum-base/src/main/java/com/consum/base/core/po/WhFormProcure.java b/consum-base/src/main/java/com/consum/base/core/po/WhFormProcure.java new file mode 100644 index 0000000..ddef960 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/po/WhFormProcure.java @@ -0,0 +1,19 @@ +package com.consum.base.core.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 閲囪喘鍗曘�怶H_FORM_PROCURE銆� + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class WhFormProcure { + + private Long id; + + private Long warehouseId; + +} diff --git a/consum-base/src/main/java/com/consum/base/core/po/WhFormTransfer.java b/consum-base/src/main/java/com/consum/base/core/po/WhFormTransfer.java new file mode 100644 index 0000000..c71b119 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/po/WhFormTransfer.java @@ -0,0 +1,16 @@ +package com.consum.base.core.po; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 璋冩嫧鍗曘�怶H_FORM_TRANSFER銆� + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class WhFormTransfer { + + private Long id; +} diff --git a/consum-base/src/main/java/com/consum/base/core/util/RandomUtil.java b/consum-base/src/main/java/com/consum/base/core/util/RandomUtil.java new file mode 100644 index 0000000..2de34d8 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/core/util/RandomUtil.java @@ -0,0 +1,61 @@ +package com.consum.base.core.util; + +import com.consum.base.util.IdUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.crypto.codec.Hex; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.HashMap; +import java.util.Map; + +/** + * 鍔熻兘鎻忚堪锛氳幏鍙栭殢鏈哄�� + * + * @author dhz + * @date 2023-10-16 11:20 + * @Version 1.0 + **/ +@Slf4j +public class RandomUtil { + + /** + * 鍔犵洂瀛楃涓� + */ + private static final String SALT = "13"; + + /** + * 鑾峰彇鍒嗙粍搴忓彿 + * + * @param id 鍒嗙粍涓氬姟涓婚敭id + * @param group 鍒嗙粍鏁� 浠�0寮�濮嬪埌 group-1 鍏眊roup 缁� + * @return 鍒嗙粍鏁� + */ + public static Integer getRandom(Long id, Integer group) { + try { + MessageDigest md5 = MessageDigest.getInstance("md5"); + byte[] digest = md5.digest((id + SALT).getBytes(StandardCharsets.UTF_8)); + char[] encode = Hex.encode(digest); + Long parseLong = Long.parseLong(String.valueOf(encode).substring(0, 3), 16); + return (int) (parseLong % group); + } catch (Exception e) { + log.error(e.getMessage()); + } + return -1; + } + + public static void main(String[] args) { + Map<Integer, Integer> map = new HashMap<Integer, Integer>(2); + Integer group = 13; + long generateId = IdUtil.generateId(); + for (int i = 0; i < 10000; i++) { + Integer random = RandomUtil.getRandom(generateId, group); + if (map.containsKey(random)) { + map.put(random, map.get(random) + 1); + } else { + map.put(random, 1); + } + } + System.out.println(map); + } +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/TokenVo.java b/consum-base/src/main/java/com/consum/base/pojo/TokenVo.java new file mode 100644 index 0000000..fdb90ed --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/TokenVo.java @@ -0,0 +1,93 @@ +package com.consum.base.pojo; + + + +public class TokenVo { + + private String token; + private Long id ; + private String userName ; + private String showName ; + private String orgId ; + private Integer orgType; + private String tenantId ; + private String userPhone; + + @Override + public String toString() { + return "TokenVo{" + + "token='" + token + '\'' + + ", id=" + id + + ", userName='" + userName + '\'' + + ", showName='" + showName + '\'' + + ", orgId='" + orgId + '\'' + + ", orgType=" + orgType + + ", tenantId='" + tenantId + '\'' + + ", userPhone='" + userPhone + '\'' + + '}'; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getShowName() { + return showName; + } + + public void setShowName(String showName) { + this.showName = showName; + } + + public String getOrgId() { + return orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + public Integer getOrgType() { + return orgType; + } + + public void setOrgType(Integer orgType) { + this.orgType = orgType; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserPhone() { + return userPhone; + } + + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/UpdatePwdParam.java b/consum-base/src/main/java/com/consum/base/pojo/UpdatePwdParam.java new file mode 100644 index 0000000..003fd21 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/UpdatePwdParam.java @@ -0,0 +1,26 @@ +package com.consum.base.pojo; + +import com.walker.web.param.ParamRequest; + +public class UpdatePwdParam extends ParamRequest { + + private String newPwd; + + private String newPwdCopy; + + public String getNewPwd() { + return newPwd; + } + + public void setNewPwd(String newPwd) { + this.newPwd = newPwd; + } + + public String getNewPwdCopy() { + return newPwdCopy; + } + + public void setNewPwdCopy(String newPwdCopy) { + this.newPwdCopy = newPwdCopy; + } +} diff --git a/consum-base/src/main/java/com/consum/base/util/FinSysOrgUtils.java b/consum-base/src/main/java/com/consum/base/util/FinSysOrgUtils.java new file mode 100644 index 0000000..f2ff599 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/util/FinSysOrgUtils.java @@ -0,0 +1,23 @@ +//package com.consum.base.util; +// +//import com.consum.model.po.FinSysOrg; +//import com.walker.infrastructure.tree.TreeNode; +//import java.util.List; +// +///** +// * @Description 鏈烘瀯鑺傜偣 +// * @Author wh +// * @Date 2023/7/11 11:26 +// */ +//public class FinSysOrgUtils { +// +// public FinSysOrgUtils() { +// } +// +// public static final List<TreeNode> getFinSysOrgTree(List<FinSysOrg> finSysOrgList) { +// FinSysOrgTreeGenerator finSysOrgTreeGenerator = new FinSysOrgTreeGenerator((String)null); +// finSysOrgTreeGenerator.setEntityList(finSysOrgList); +// List<TreeNode> treeNodeList = finSysOrgTreeGenerator.getTreeRootList(); +// return treeNodeList; +// } +//} diff --git a/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java b/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java new file mode 100644 index 0000000..3b1218b --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java @@ -0,0 +1,26 @@ +//package com.consum.base.util; +// +//import com.consum.model.po.FinSysTenant; +//import com.walker.infrastructure.tree.TreeNode; +// +//import java.util.List; +// +///** +// * @Description 鍖哄垝鑺傜偣 +// * @Author wh +// * @Date 2023/7/11 11:26 +// */ +//public class FinSysTenantUtils { +// +// public FinSysTenantUtils() { +// } +// +// public static final List<TreeNode> getFinSysTenantTree(List<FinSysTenant> finSysTenantList) { +// FinSysTenantGenerator finSysTenantGenerator = new FinSysTenantGenerator((String)null); +// finSysTenantGenerator.setEntityList(finSysTenantList); +// List<TreeNode> treeNodeList = finSysTenantGenerator.getTreeRootList(); +// return treeNodeList; +// } +// +// +//} diff --git a/consum-base/src/main/java/com/consum/base/util/IdUtil.java b/consum-base/src/main/java/com/consum/base/util/IdUtil.java new file mode 100644 index 0000000..7551199 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/util/IdUtil.java @@ -0,0 +1,78 @@ +package com.consum.base.util; + +public class IdUtil { + + private static IdUtil instance = new IdUtil(0); + + public static IdUtil getInstance() { + return instance; + } + + public static long generateId() { + return instance.nextId(); + } + + private final static long MACHINE_BIT = 5; // max 31 + private final static long SEQUENCE_BIT = 8; // 256/10ms + + /** + * mask/max value + */ + private final static long MAX_MACHINE_NUM = -1L ^ (-1L << MACHINE_BIT); + private final static long MAX_SEQUENCE = -1L ^ (-1L << SEQUENCE_BIT); + + private final static long MACHINE_LEFT = SEQUENCE_BIT; + private final static long TIMESTMP_LEFT = MACHINE_BIT + SEQUENCE_BIT; + + private long machineId; + private long sequence = 0L; + private long lastStmp = -1L; + + private IdUtil(long machineId) { + if (machineId > MAX_MACHINE_NUM || machineId < 0) { + throw new IllegalArgumentException( + "machineId can't be greater than " + MAX_MACHINE_NUM + " or less than 0"); + } + this.machineId = machineId; + } + + /** + * generate new ID + * + * @return + */ + public synchronized long nextId() { + long currStmp = getTimestamp(); + if (currStmp < lastStmp) { + throw new RuntimeException("Clock moved backwards. Refusing to generate id"); + } + + if (currStmp == lastStmp) { + sequence = (sequence + 1) & MAX_SEQUENCE; + if (sequence == 0L) { + currStmp = getNextTimestamp(); + } + } else { + sequence = 0L; + } + + lastStmp = currStmp; + + return currStmp << TIMESTMP_LEFT // + | machineId << MACHINE_LEFT // + | sequence; + } + + private long getNextTimestamp() { + long mill = getTimestamp(); + while (mill <= lastStmp) { + mill = getTimestamp(); + } + return mill; + } + + private long getTimestamp() { + // per 10ms + return System.currentTimeMillis() / 10;// 10ms + } +} diff --git a/consum-base/src/main/java/com/consum/base/util/RangeMergeUtil.java b/consum-base/src/main/java/com/consum/base/util/RangeMergeUtil.java new file mode 100644 index 0000000..ba488ef --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/util/RangeMergeUtil.java @@ -0,0 +1,200 @@ +//package com.consum.base.util; +// +//import com.consum.model.po.PTempProjectStageNode; +//import com.walker.infrastructure.utils.CollectionUtils; +// +//import java.util.*; +// +///** +// * @ClassName RangeMergeUtil +// * @Author cy +// * @Date 2023/9/25 +// * @Description +// * @Version 1.0 +// **/ +//public class RangeMergeUtil { +// +// /** +// * 鏍规嵁鑺傜偣涓妭鐐瑰紑濮嬫椂闂淬�佹寔缁椂闂达紝灏嗚妭鐐硅浆涓簂ink +// * +// * @param tempProjectStageNodes +// * @return +// */ +// public static ArrayList<Link> tempNode2Link(List<PTempProjectStageNode> tempProjectStageNodes) { +// ArrayList<Link> links = new ArrayList<>(); +// tempProjectStageNodes.forEach(item -> { +// Integer nodeTimeStart = item.getNodeTimeStart(); +// Integer nodeTimeDays = item.getNodeTimeDays(); +// if (nodeTimeStart != null && nodeTimeDays != null) { +// Link link = new Link(nodeTimeStart, nodeTimeStart + nodeTimeDays - 1); +// links.add(link); +// } +// }); +// return links; +// } +// +// /** +// * 瀵圭粰瀹氬尯闂磋繘琛屽悎骞� +// * +// * @param info_dict +// * @return +// */ +// public static ArrayList<Link> merge(ArrayList<Link> info_dict) { +// //棣栧厛瀵筰nfo_dict杩涜鎺掑簭锛屾帓搴忚鍒欎负鏍规嵁Link鐨刲eft鎺掑簭锛屽鏋渓eft鐩哥瓑锛屾牴鎹畆ight鎺掑簭 +// Collections.sort(info_dict, (o1, o2) -> { +// int a = o1.getLeft() - o2.getLeft(); +// return a == 0 ? o1.getRight() - o2.getRight() : a; +// }); +// +// //鍒涘缓涓�涓敤浜庢帴鍙楀悎骞跺悗缁撴灉鐨刣ict,鍚屾椂璁剧疆涓�涓被浼兼粦鍔ㄧ獥鍙d竴鏍风殑start鍜宔nd +// ArrayList<Link> result_dict = new ArrayList<>(); +// double start = -2e9, end = -2e9; +// for (Link i : info_dict) { +// //鍒ゆ柇涓ょ鎯呭喌 +// //绗竴绉嶆槸褰揺nd灏忎簬i.getLeft()鏃讹紝璇存槑鎴戜滑閬囧埌浜嗕竴涓柊鐨勬病鏈変氦闆嗙殑鍖洪棿 +// //閭d箞灏卞皢start鍜宔nd绉诲姩杩囨潵锛屽苟涓斿皢瀹冩坊鍔犲埌result_dict涓� +// if (end + 1 < i.getLeft()) { +// if (start != -2e9) { +// result_dict.add(new Link((int) start, (int) end)); +// } +// start = i.getLeft(); +// end = i.getRight(); +// } +// //绗簩绉嶆儏鍐垫槸褰撴湁浜ら泦鏃讹紝濡傛灉鍦ㄥ綋鍓嶆粦鍔ㄥ尯闂村唴锛屼笉鍙橈紝濡傛灉鍏秗ight澶т簬褰撳墠end锛屽皢婊戝姩鍖洪棿鐨別nd璁剧疆涓簉ight +// else { +// end = Math.max(end, i.getRight()); +// } +// } +// +// //鎺掔┖婊戝姩鍖洪棿 +// if (start != -2e9) { +// result_dict.add(new Link((int) start, (int) end)); +// } +// //杩斿洖result_dict涓尯闂寸殑涓暟 +// return result_dict; +// } +// +// /** +// * 鑾峰彇鑺傜偣鍏冪礌涓殑鏈�鍊间俊鎭� +// * +// * @param mergeList +// * @return +// */ +// public static Map<String, Integer> getMergeMaxMinInfo(ArrayList<Link> mergeList) { +// if (CollectionUtils.isEmpty(mergeList)) { +// return null; +// } +// int maxLeft = Integer.MIN_VALUE; +// int minLeft = Integer.MAX_VALUE; +// int maxRight = Integer.MIN_VALUE; +// int minRight = Integer.MAX_VALUE; +// +// for (Link link : mergeList) { +// int left = link.getLeft(); +// int right = link.getRight(); +// maxLeft = Math.max(maxLeft, left); +// minLeft = Math.min(minLeft, left); +// maxRight = Math.max(maxRight, right); +// minRight = Math.min(minRight, right); +// } +// HashMap<String, Integer> rtnInfo = new HashMap<>(); +// rtnInfo.put("maxLeft", maxLeft); +// rtnInfo.put("minLeft", minLeft); +// rtnInfo.put("maxRight", maxRight); +// rtnInfo.put("minRight", minRight); +// return rtnInfo; +// } +// +// /** +// * 鏍¢獙鏄惁鏈夋棩鏈熺┖妗e苟杩斿洖鍖洪棿鏈�鍊间俊鎭� +// * @param tempProjectStageNodes +// * @return +// */ +// public static Map<String, Integer> checkDateGap(List<PTempProjectStageNode> tempProjectStageNodes) { +// ArrayList<Link> info_dict = tempNode2Link(tempProjectStageNodes); +// ArrayList<Link> mergeList = merge(info_dict); +// if (mergeList.size() > 1) { +// return null; +// } +// return getMergeMaxMinInfo(mergeList); +// } +// +// /** +// * 鏍¢獙鏄惁鏈夐噸鍙� +// * @param list +// * @return +// */ +// public static Boolean checkOverlap(List<Map<String, Integer>> list) { +// for (int i = 0; i < list.size(); i++) { +// Integer minLeft1 = list.get(i).get("minLeft"); +// Integer maxRight1 = list.get(i).get("maxRight"); +// for (int j = i + 1; j < list.size(); j++) { +// Integer minLeft2 = list.get(j).get("minLeft"); +// Integer maxRight2 = list.get(j).get("maxRight"); +// if (minLeft1 <= maxRight2 && maxRight1 >= minLeft2) { +// return true; +// } +// } +// } +// return false; +// } +// +// public static void main(String[] args) { +// List<PTempProjectStageNode> tempProjectStageNodes = new ArrayList<>(); +// PTempProjectStageNode node1 = new PTempProjectStageNode(); +// node1.setNodeTimeStart(2); +// node1.setNodeTimeDays(1); +// tempProjectStageNodes.add(node1); +// +// PTempProjectStageNode node2 = new PTempProjectStageNode(); +// node2.setNodeTimeStart(1); +// node2.setNodeTimeDays(5); +// tempProjectStageNodes.add(node2); +// +// PTempProjectStageNode node3 = new PTempProjectStageNode(); +// node3.setNodeTimeStart(3); +// node3.setNodeTimeDays(6); +// tempProjectStageNodes.add(node3); +// +// PTempProjectStageNode node4 = new PTempProjectStageNode(); +// node4.setNodeTimeStart(80); +// node4.setNodeTimeDays(6); +// tempProjectStageNodes.add(node4); +// +// ArrayList<Link> info_dict = tempNode2Link(tempProjectStageNodes); +// ArrayList<Link> mergeList = merge(info_dict); +// System.out.println("鍚堝苟鍚庡尯闂存暟閲忎负锛�" + mergeList.size()); +// Map<String, Integer> mergeMaxMinInfo = getMergeMaxMinInfo(mergeList); +// System.out.println("鍚堝苟鍚庡尯闂翠腑left:Max鐨勫�间负:" + mergeMaxMinInfo.get("maxLeft")); +// System.out.println("鍚堝苟鍚庡尯闂翠腑left:Min鐨勫�间负:" + mergeMaxMinInfo.get("minLeft")); +// System.out.println("鍚堝苟鍚庡尯闂翠腑right:Max鐨勫�间负:" + mergeMaxMinInfo.get("maxRight")); +// System.out.println("鍚堝苟鍚庡尯闂翠腑right:Min鐨勫�间负:" + mergeMaxMinInfo.get("minRight")); +// +// } +//} +// +//class Link { +// private int left; +// private int right; +// +// public int getLeft() { +// return left; +// } +// +// public void setLeft(int left) { +// this.left = left; +// } +// +// public int getRight() { +// return right; +// } +// +// public void setRight(int right) { +// this.right = right; +// } +// +// public Link(int left, int right) { +// this.left = left; +// this.right = right; +// } +//} diff --git a/consum-model-pojo/pom.xml b/consum-model-pojo/pom.xml new file mode 100644 index 0000000..5c30f5c --- /dev/null +++ b/consum-model-pojo/pom.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>com.consum</groupId> + <artifactId>low-consum-manage</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + + <modelVersion>4.0.0</modelVersion> + + <groupId>com.consum</groupId> + <artifactId>consum-model-pojo</artifactId> + <name>consum-model-pojo</name> + <packaging>jar</packaging> + + <properties> + </properties> + + <dependencies> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> +<!-- 鏁版嵁鏍¢獙--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-validation</artifactId> + </dependency> + <!-- jdbc pojo閫氱敤渚濊禆 --> + <dependency> + <groupId>com.walkersoft</groupId> + <artifactId>walker-jdbc-common</artifactId> + <scope>provided</scope> + </dependency> + <!-- json娉ㄨВ锛氬睘鎬х粦瀹氫緷璧� --> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <scope>provided</scope> + </dependency> + </dependencies> + +</project> diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing.java b/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing.java new file mode 100644 index 0000000..c2eec24 --- /dev/null +++ b/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing.java @@ -0,0 +1,194 @@ + +package com.consum.model.po; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.walker.jdbc.BasePo; + +/** + * 琛ㄥ悕:BASE_CODE_INDEXING * + * @author genrator + */ +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) +public class BaseCodeIndexing extends BasePo<BaseCodeIndexing> { + // 搴忓垪鍖栫増鏈彿 + private static final long serialVersionUID = 1L; + + // 涓婚敭 + private Long id = null; + @JsonIgnore + protected boolean isset_id = false; + + // 灞炴�у垪琛� + private Integer yearIndex = null; + @JsonIgnore + protected boolean isset_yearIndex = false; + + private Integer monthIndex = null; + @JsonIgnore + protected boolean isset_monthIndex = false; + + private Integer dayIndex = null; + @JsonIgnore + protected boolean isset_dayIndex = false; + + private Integer codeIndex = null; + @JsonIgnore + protected boolean isset_codeIndex = false; + + private String codePrefix = null; + @JsonIgnore + protected boolean isset_codePrefix = false; + + /** + * 榛樿鏋勯�犲嚱鏁� + */ + public BaseCodeIndexing() { + } + + /** + * 鏍规嵁涓婚敭鏋勯�犲璞� + */ + public BaseCodeIndexing(Long id) { + this.setId(id); + } + + /** + * 璁剧疆涓婚敭鍊� + */ + @Override + public void setPkValue(Object value) { + this.setId((Long) value); + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + this.isset_id = true; + } + + @JsonIgnore + public boolean isEmptyId() { + return this.id == null; + } + + public Integer getYearIndex() { + return this.yearIndex; + } + + public void setYearIndex(Integer yearIndex) { + this.yearIndex = yearIndex; + this.isset_yearIndex = true; + } + + @JsonIgnore + public boolean isEmptyYearIndex() { + return this.yearIndex == null; + } + + public Integer getMonthIndex() { + return this.monthIndex; + } + + public void setMonthIndex(Integer monthIndex) { + this.monthIndex = monthIndex; + this.isset_monthIndex = true; + } + + @JsonIgnore + public boolean isEmptyMonthIndex() { + return this.monthIndex == null; + } + + public Integer getDayIndex() { + return this.dayIndex; + } + + public void setDayIndex(Integer dayIndex) { + this.dayIndex = dayIndex; + this.isset_dayIndex = true; + } + + @JsonIgnore + public boolean isEmptyDayIndex() { + return this.dayIndex == null; + } + + public Integer getCodeIndex() { + return this.codeIndex; + } + + public void setCodeIndex(Integer codeIndex) { + this.codeIndex = codeIndex; + this.isset_codeIndex = true; + } + + @JsonIgnore + public boolean isEmptyCodeIndex() { + return this.codeIndex == null; + } + + public String getCodePrefix() { + return this.codePrefix; + } + + public void setCodePrefix(String codePrefix) { + this.codePrefix = codePrefix; + this.isset_codePrefix = true; + } + + @JsonIgnore + public boolean isEmptyCodePrefix() { + return this.codePrefix == null || this.codePrefix.length() == 0; + } + + /** + * 閲嶅啓 toString() 鏂规硶 + */ + @Override + public String toString() { + return new StringBuilder() + .append("id=").append(this.id) + .append("yearIndex=").append(this.yearIndex) + .append("monthIndex=").append(this.monthIndex) + .append("dayIndex=").append(this.dayIndex) + .append("codeIndex=").append(this.codeIndex) + .append("codePrefix=").append(this.codePrefix) + .toString(); + } + + /** + * 鍏嬮殕 + */ + public BaseCodeIndexing $clone() { + BaseCodeIndexing base_code_indexing = new BaseCodeIndexing(); + + // 鏁版嵁搴撳悕绉� + //base_code_indexing.setDatabaseName_(this.getDatabaseName_()); + + // 涓婚敭 + if (this.isset_id) { + base_code_indexing.setId(this.getId()); + } + // 鏅�氬睘鎬� + if (this.isset_yearIndex) { + base_code_indexing.setYearIndex(this.getYearIndex()); + } + if (this.isset_monthIndex) { + base_code_indexing.setMonthIndex(this.getMonthIndex()); + } + if (this.isset_dayIndex) { + base_code_indexing.setDayIndex(this.getDayIndex()); + } + if (this.isset_codeIndex) { + base_code_indexing.setCodeIndex(this.getCodeIndex()); + } + if (this.isset_codePrefix) { + base_code_indexing.setCodePrefix(this.getCodePrefix()); + } + return base_code_indexing; + } +} diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing_mapper.java b/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing_mapper.java new file mode 100644 index 0000000..4c27b65 --- /dev/null +++ b/consum-model-pojo/src/main/java/com/consum/model/po/BaseCodeIndexing_mapper.java @@ -0,0 +1,285 @@ +package com.consum.model.po; + +import com.walker.jdbc.BaseMapper; +import com.walker.jdbc.ResultSetUtils; +import com.walker.jdbc.SqlAndParameters; +import com.walker.jdbc.sqlgen.DeleteBuilder; +import com.walker.jdbc.sqlgen.InsertBuilder; +import com.walker.jdbc.sqlgen.SelectBuilder; +import com.walker.jdbc.sqlgen.UpdateBuilder; +import com.walker.jdbc.util.StringUtils; + +import org.springframework.jdbc.core.RowMapper; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; + +/** + * 琛ㄥ悕:BASE_CODE_INDEXING * + * @author genrator + */ +public class BaseCodeIndexing_mapper extends BaseCodeIndexing implements BaseMapper<BaseCodeIndexing> { + // 搴忓垪鍖栫増鏈彿 + private static final long serialVersionUID = 1L; + + public static final RowMapper<BaseCodeIndexing> ROW_MAPPER = new BaseCodeIndexingRowMapper(); + + // 涓婚敭 + public static final String Id = "id"; + // 鏅�氬睘鎬� + public static final String YearIndex = "year_index"; + public static final String MonthIndex = "month_index"; + public static final String DayIndex = "day_index"; + public static final String CodeIndex = "code_index"; + public static final String CodePrefix = "code_prefix"; + + /** + * 榛樿鏋勯�犲嚱鏁� + */ + public BaseCodeIndexing_mapper(BaseCodeIndexing baseCodeIndexing) { + if (baseCodeIndexing == null) { + throw new IllegalArgumentException("po鍙傛暟涓嶅厑璁镐负绌猴紒"); + } + //涓婚敭 + if (baseCodeIndexing.isset_id) { + this.setId(baseCodeIndexing.getId()); + } + //鏅�氬睘鎬� + if (baseCodeIndexing.isset_yearIndex) { + this.setYearIndex(baseCodeIndexing.getYearIndex()); + } + if (baseCodeIndexing.isset_monthIndex) { + this.setMonthIndex(baseCodeIndexing.getMonthIndex()); + } + if (baseCodeIndexing.isset_dayIndex) { + this.setDayIndex(baseCodeIndexing.getDayIndex()); + } + if (baseCodeIndexing.isset_codeIndex) { + this.setCodeIndex(baseCodeIndexing.getCodeIndex()); + } + if (baseCodeIndexing.isset_codePrefix) { + this.setCodePrefix(baseCodeIndexing.getCodePrefix()); + } + // 鍘绘帀锛�2022-09-07 + // this.setDatabaseName_(base_code_indexing.getDatabaseName_()); + } + + /** + * 鑾峰彇琛ㄥ悕 + */ + @Override + public String getTableName_() { + String tableName = "base_code_indexing"; + /** + if (StringUtils.isNotEmpty(this.getDatabaseName_())) { + return this.getDatabaseName_() + "." + tableName; + } else { + return tableName; + } + */ + return tableName; + } + + /** + * 鑾峰彇涓婚敭鍚嶇О + */ + @Override + public String getPkName_() { + return Id; + } + + /** + * 鑾峰彇涓婚敭鍊� + */ + @Override + public Object getPkValue_() { + return this.getId(); + } + + /** + * 鑾峰彇鎻掑叆璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getInsertSql_() { + InsertBuilder ib = new InsertBuilder(this.getTableName_()); + ib.set(Id, this.getId()); + ib.set(YearIndex, this.getYearIndex(), this.isset_yearIndex); + ib.set(MonthIndex, this.getMonthIndex(), this.isset_monthIndex); + ib.set(DayIndex, this.getDayIndex(), this.isset_dayIndex); + ib.set(CodeIndex, this.getCodeIndex(), this.isset_codeIndex); + ib.set(CodePrefix, this.getCodePrefix(), this.isset_codePrefix); + return ib.genMapSql(); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getUpdateSql_() { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(YearIndex, this.getYearIndex(), this.isset_yearIndex); + ub.set(MonthIndex, this.getMonthIndex(), this.isset_monthIndex); + ub.set(DayIndex, this.getDayIndex(), this.isset_dayIndex); + ub.set(CodeIndex, this.getCodeIndex(), this.isset_codeIndex); + ub.set(CodePrefix, this.getCodePrefix(), this.isset_codePrefix); + ub.where(this.getPkName_(), this.getPkValue_()); + return ub.genMapSql(); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getUpdateSql_(String where, Map<String, Object> parameters) { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(YearIndex, this.getYearIndex(), this.isset_yearIndex); + ub.set(MonthIndex, this.getMonthIndex(), this.isset_monthIndex); + ub.set(DayIndex, this.getDayIndex(), this.isset_dayIndex); + ub.set(CodeIndex, this.getCodeIndex(), this.isset_codeIndex); + ub.set(CodePrefix, this.getCodePrefix(), this.isset_codePrefix); + return ub.genMapSql(where, parameters); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getUpdateSql_(String where, Object[] parameters) { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(YearIndex, this.getYearIndex(), this.isset_yearIndex); + ub.set(MonthIndex, this.getMonthIndex(), this.isset_monthIndex); + ub.set(DayIndex, this.getDayIndex(), this.isset_dayIndex); + ub.set(CodeIndex, this.getCodeIndex(), this.isset_codeIndex); + ub.set(CodePrefix, this.getCodePrefix(), this.isset_codePrefix); + return ub.genArraySql(where, parameters); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getDeleteSql_() { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + db.where(this.getPkName_(), this.getPkValue_()); + return db.genMapSql(); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getDeleteSql_(String where, Map<String, Object> parameters) { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + return db.genMapSql(where, parameters); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getDeleteSql_(String where, Object[] parameters) { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + return db.genArraySql(where, parameters); + } + + /** + * 鑾峰彇鍗曡鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getSingleSql_() { + SelectBuilder sb = new SelectBuilder(this.getTableName_()); + sb.where(this.getPkName_(), this.getPkValue_()); + return sb.genMapSql(); + } + + + /** + * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) { + return new SqlAndParameters<>("select id, year_index, month_index, day_index, code_index, code_prefix from " + this.getTableName_() + " " + where, parameters); + } + + /** + * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) { + return new SqlAndParameters<>("select id, year_index, month_index, day_index, code_index, code_prefix from " + this.getTableName_() + " " + where, parameters); + } + + /** + * 灏唕esultset鐨勪竴琛岃浆鍖栦负po + */ + @Override + public BaseCodeIndexing mapRow(ResultSet rs, int i) throws SQLException { + return ROW_MAPPER.mapRow(rs, i); + } + + /** + * 鍏嬮殕 + */ + public BaseCodeIndexing toBaseCodeIndexing() { + return super.$clone(); + } +} + +/** + * base_code_indexing RowMapper + * + * @author genrator + */ +class BaseCodeIndexingRowMapper implements RowMapper<BaseCodeIndexing> { + + @Override + public BaseCodeIndexing mapRow(ResultSet rs, int i) throws SQLException { + ResultSetUtils resultSetUtils = new ResultSetUtils(); + BaseCodeIndexing base_code_indexing = new BaseCodeIndexing(); + Integer columnIndex; + //涓婚敭 + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.Id); + if (columnIndex > 0) { + base_code_indexing.setId(rs.getLong(columnIndex)); + } + //鏅�氬睘鎬� + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.YearIndex); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + base_code_indexing.setYearIndex(null); + } else { + base_code_indexing.setYearIndex(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.MonthIndex); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + base_code_indexing.setMonthIndex(null); + } else { + base_code_indexing.setMonthIndex(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.DayIndex); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + base_code_indexing.setDayIndex(null); + } else { + base_code_indexing.setDayIndex(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.CodeIndex); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + base_code_indexing.setCodeIndex(null); + } else { + base_code_indexing.setCodeIndex(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, BaseCodeIndexing_mapper.CodePrefix); + if (columnIndex > 0) { + base_code_indexing.setCodePrefix(rs.getString(columnIndex)); + } + return base_code_indexing; + } +} diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java b/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java new file mode 100644 index 0000000..b6cdb30 --- /dev/null +++ b/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java @@ -0,0 +1,480 @@ + +package com.consum.model.po; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.walker.jdbc.BasePo; + +/** + * 琛ㄥ悕:WH_GOODS * + * @author genrator + */ +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) +public class WhGoods extends BasePo<WhGoods> { + // 搴忓垪鍖栫増鏈彿 + private static final long serialVersionUID = 1L; + + // 涓婚敭 + private Long id = null; + @JsonIgnore + protected boolean isset_id = false; + + // 灞炴�у垪琛� + private Long baseGoodsTemplateId = null; + @JsonIgnore + protected boolean isset_baseGoodsTemplateId = false; + + private String goodsTemplateName = null; + @JsonIgnore + protected boolean isset_goodsTemplateName = false; + + private Long baseGoodsModelsId = null; + @JsonIgnore + protected boolean isset_baseGoodsModelsId = false; + + private String baseGoodsModelsName = null; + @JsonIgnore + protected boolean isset_baseGoodsModelsName = false; + + private Integer whCount = null; + @JsonIgnore + protected boolean isset_whCount = false; + + private Integer transferCount = null; + @JsonIgnore + protected boolean isset_transferCount = false; + + private Integer allCount = null; + @JsonIgnore + protected boolean isset_allCount = false; + + private String firstInputCode = null; + @JsonIgnore + protected boolean isset_firstInputCode = false; + + private Integer firstInputType = null; + @JsonIgnore + protected boolean isset_firstInputType = false; + + private Long firstInputHisId = null; + @JsonIgnore + protected boolean isset_firstInputHisId = false; + + private Long warehouseId = null; + @JsonIgnore + protected boolean isset_warehouseId = false; + + private String warehouseName = null; + @JsonIgnore + protected boolean isset_warehouseName = false; + + private String supplier = null; + @JsonIgnore + protected boolean isset_supplier = false; + + private String unit = null; + @JsonIgnore + protected boolean isset_unit = false; + + private Double price = null; + @JsonIgnore + protected boolean isset_price = false; + + private Long procureDate = null; + @JsonIgnore + protected boolean isset_procureDate = false; + + private Long backDate = null; + @JsonIgnore + protected boolean isset_backDate = false; + + private Integer states = null; + @JsonIgnore + protected boolean isset_states = false; + + /** + * 榛樿鏋勯�犲嚱鏁� + */ + public WhGoods() { + } + + /** + * 鏍规嵁涓婚敭鏋勯�犲璞� + */ + public WhGoods(Long id) { + this.setId(id); + } + + /** + * 璁剧疆涓婚敭鍊� + */ + @Override + public void setPkValue(Object value) { + this.setId((Long) value); + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + this.isset_id = true; + } + + @JsonIgnore + public boolean isEmptyId() { + return this.id == null; + } + + public Long getBaseGoodsTemplateId() { + return this.baseGoodsTemplateId; + } + + public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) { + this.baseGoodsTemplateId = baseGoodsTemplateId; + this.isset_baseGoodsTemplateId = true; + } + + @JsonIgnore + public boolean isEmptyBaseGoodsTemplateId() { + return this.baseGoodsTemplateId == null; + } + + public String getGoodsTemplateName() { + return this.goodsTemplateName; + } + + public void setGoodsTemplateName(String goodsTemplateName) { + this.goodsTemplateName = goodsTemplateName; + this.isset_goodsTemplateName = true; + } + + @JsonIgnore + public boolean isEmptyGoodsTemplateName() { + return this.goodsTemplateName == null || this.goodsTemplateName.length() == 0; + } + + public Long getBaseGoodsModelsId() { + return this.baseGoodsModelsId; + } + + public void setBaseGoodsModelsId(Long baseGoodsModelsId) { + this.baseGoodsModelsId = baseGoodsModelsId; + this.isset_baseGoodsModelsId = true; + } + + @JsonIgnore + public boolean isEmptyBaseGoodsModelsId() { + return this.baseGoodsModelsId == null; + } + + public String getBaseGoodsModelsName() { + return this.baseGoodsModelsName; + } + + public void setBaseGoodsModelsName(String baseGoodsModelsName) { + this.baseGoodsModelsName = baseGoodsModelsName; + this.isset_baseGoodsModelsName = true; + } + + @JsonIgnore + public boolean isEmptyBaseGoodsModelsName() { + return this.baseGoodsModelsName == null || this.baseGoodsModelsName.length() == 0; + } + + public Integer getWhCount() { + return this.whCount; + } + + public void setWhCount(Integer whCount) { + this.whCount = whCount; + this.isset_whCount = true; + } + + @JsonIgnore + public boolean isEmptyWhCount() { + return this.whCount == null; + } + + public Integer getTransferCount() { + return this.transferCount; + } + + public void setTransferCount(Integer transferCount) { + this.transferCount = transferCount; + this.isset_transferCount = true; + } + + @JsonIgnore + public boolean isEmptyTransferCount() { + return this.transferCount == null; + } + + public Integer getAllCount() { + return this.allCount; + } + + public void setAllCount(Integer allCount) { + this.allCount = allCount; + this.isset_allCount = true; + } + + @JsonIgnore + public boolean isEmptyAllCount() { + return this.allCount == null; + } + + public String getFirstInputCode() { + return this.firstInputCode; + } + + public void setFirstInputCode(String firstInputCode) { + this.firstInputCode = firstInputCode; + this.isset_firstInputCode = true; + } + + @JsonIgnore + public boolean isEmptyFirstInputCode() { + return this.firstInputCode == null || this.firstInputCode.length() == 0; + } + + public Integer getFirstInputType() { + return this.firstInputType; + } + + public void setFirstInputType(Integer firstInputType) { + this.firstInputType = firstInputType; + this.isset_firstInputType = true; + } + + @JsonIgnore + public boolean isEmptyFirstInputType() { + return this.firstInputType == null; + } + + public Long getFirstInputHisId() { + return this.firstInputHisId; + } + + public void setFirstInputHisId(Long firstInputHisId) { + this.firstInputHisId = firstInputHisId; + this.isset_firstInputHisId = true; + } + + @JsonIgnore + public boolean isEmptyFirstInputHisId() { + return this.firstInputHisId == null; + } + + public Long getWarehouseId() { + return this.warehouseId; + } + + public void setWarehouseId(Long warehouseId) { + this.warehouseId = warehouseId; + this.isset_warehouseId = true; + } + + @JsonIgnore + public boolean isEmptyWarehouseId() { + return this.warehouseId == null; + } + + public String getWarehouseName() { + return this.warehouseName; + } + + public void setWarehouseName(String warehouseName) { + this.warehouseName = warehouseName; + this.isset_warehouseName = true; + } + + @JsonIgnore + public boolean isEmptyWarehouseName() { + return this.warehouseName == null || this.warehouseName.length() == 0; + } + + public String getSupplier() { + return this.supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier; + this.isset_supplier = true; + } + + @JsonIgnore + public boolean isEmptySupplier() { + return this.supplier == null || this.supplier.length() == 0; + } + + public String getUnit() { + return this.unit; + } + + public void setUnit(String unit) { + this.unit = unit; + this.isset_unit = true; + } + + @JsonIgnore + public boolean isEmptyUnit() { + return this.unit == null || this.unit.length() == 0; + } + + public Double getPrice() { + return this.price; + } + + public void setPrice(Double price) { + this.price = price; + this.isset_price = true; + } + + @JsonIgnore + public boolean isEmptyPrice() { + return this.price == null; + } + + public Long getProcureDate() { + return this.procureDate; + } + + public void setProcureDate(Long procureDate) { + this.procureDate = procureDate; + this.isset_procureDate = true; + } + + @JsonIgnore + public boolean isEmptyProcureDate() { + return this.procureDate == null; + } + + public Long getBackDate() { + return this.backDate; + } + + public void setBackDate(Long backDate) { + this.backDate = backDate; + this.isset_backDate = true; + } + + @JsonIgnore + public boolean isEmptyBackDate() { + return this.backDate == null; + } + + public Integer getStates() { + return this.states; + } + + public void setStates(Integer states) { + this.states = states; + this.isset_states = true; + } + + @JsonIgnore + public boolean isEmptyStates() { + return this.states == null; + } + + /** + * 閲嶅啓 toString() 鏂规硶 + */ + @Override + public String toString() { + return new StringBuilder() + .append("id=").append(this.id) + .append("baseGoodsTemplateId=").append(this.baseGoodsTemplateId) + .append("goodsTemplateName=").append(this.goodsTemplateName) + .append("baseGoodsModelsId=").append(this.baseGoodsModelsId) + .append("baseGoodsModelsName=").append(this.baseGoodsModelsName) + .append("whCount=").append(this.whCount) + .append("transferCount=").append(this.transferCount) + .append("allCount=").append(this.allCount) + .append("firstInputCode=").append(this.firstInputCode) + .append("firstInputType=").append(this.firstInputType) + .append("firstInputHisId=").append(this.firstInputHisId) + .append("warehouseId=").append(this.warehouseId) + .append("warehouseName=").append(this.warehouseName) + .append("supplier=").append(this.supplier) + .append("unit=").append(this.unit) + .append("price=").append(this.price) + .append("procureDate=").append(this.procureDate) + .append("backDate=").append(this.backDate) + .append("states=").append(this.states) + .toString(); + } + + /** + * 鍏嬮殕 + */ + public WhGoods $clone() { + WhGoods wh_goods = new WhGoods(); + + // 鏁版嵁搴撳悕绉� + //wh_goods.setDatabaseName_(this.getDatabaseName_()); + + // 涓婚敭 + if (this.isset_id) { + wh_goods.setId(this.getId()); + } + // 鏅�氬睘鎬� + if (this.isset_baseGoodsTemplateId) { + wh_goods.setBaseGoodsTemplateId(this.getBaseGoodsTemplateId()); + } + if (this.isset_goodsTemplateName) { + wh_goods.setGoodsTemplateName(this.getGoodsTemplateName()); + } + if (this.isset_baseGoodsModelsId) { + wh_goods.setBaseGoodsModelsId(this.getBaseGoodsModelsId()); + } + if (this.isset_baseGoodsModelsName) { + wh_goods.setBaseGoodsModelsName(this.getBaseGoodsModelsName()); + } + if (this.isset_whCount) { + wh_goods.setWhCount(this.getWhCount()); + } + if (this.isset_transferCount) { + wh_goods.setTransferCount(this.getTransferCount()); + } + if (this.isset_allCount) { + wh_goods.setAllCount(this.getAllCount()); + } + if (this.isset_firstInputCode) { + wh_goods.setFirstInputCode(this.getFirstInputCode()); + } + if (this.isset_firstInputType) { + wh_goods.setFirstInputType(this.getFirstInputType()); + } + if (this.isset_firstInputHisId) { + wh_goods.setFirstInputHisId(this.getFirstInputHisId()); + } + if (this.isset_warehouseId) { + wh_goods.setWarehouseId(this.getWarehouseId()); + } + if (this.isset_warehouseName) { + wh_goods.setWarehouseName(this.getWarehouseName()); + } + if (this.isset_supplier) { + wh_goods.setSupplier(this.getSupplier()); + } + if (this.isset_unit) { + wh_goods.setUnit(this.getUnit()); + } + if (this.isset_price) { + wh_goods.setPrice(this.getPrice()); + } + if (this.isset_procureDate) { + wh_goods.setProcureDate(this.getProcureDate()); + } + if (this.isset_backDate) { + wh_goods.setBackDate(this.getBackDate()); + } + if (this.isset_states) { + wh_goods.setStates(this.getStates()); + } + return wh_goods; + } +} diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods_mapper.java b/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods_mapper.java new file mode 100644 index 0000000..4807789 --- /dev/null +++ b/consum-model-pojo/src/main/java/com/consum/model/po/WhGoods_mapper.java @@ -0,0 +1,473 @@ +package com.consum.model.po; + +import com.walker.jdbc.BaseMapper; +import com.walker.jdbc.ResultSetUtils; +import com.walker.jdbc.SqlAndParameters; +import com.walker.jdbc.sqlgen.DeleteBuilder; +import com.walker.jdbc.sqlgen.InsertBuilder; +import com.walker.jdbc.sqlgen.SelectBuilder; +import com.walker.jdbc.sqlgen.UpdateBuilder; +import com.walker.jdbc.util.StringUtils; + +import org.springframework.jdbc.core.RowMapper; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; + +/** + * 琛ㄥ悕:WH_GOODS * + * @author genrator + */ +public class WhGoods_mapper extends WhGoods implements BaseMapper<WhGoods> { + // 搴忓垪鍖栫増鏈彿 + private static final long serialVersionUID = 1L; + + public static final RowMapper<WhGoods> ROW_MAPPER = new WhGoodsRowMapper(); + + // 涓婚敭 + public static final String Id = "id"; + // 鏅�氬睘鎬� + public static final String BaseGoodsTemplateId = "base_goods_template_id"; + public static final String GoodsTemplateName = "goods_template_name"; + public static final String BaseGoodsModelsId = "base_goods_models_id"; + public static final String BaseGoodsModelsName = "base_goods_models_name"; + public static final String WhCount = "wh_count"; + public static final String TransferCount = "transfer_count"; + public static final String AllCount = "all_count"; + public static final String FirstInputCode = "first_input_code"; + public static final String FirstInputType = "first_input_type"; + public static final String FirstInputHisId = "first_input_his_id"; + public static final String WarehouseId = "warehouse_id"; + public static final String WarehouseName = "warehouse_name"; + public static final String Supplier = "supplier"; + public static final String Unit = "unit"; + public static final String Price = "price"; + public static final String ProcureDate = "procure_date"; + public static final String BackDate = "back_date"; + public static final String States = "states"; + + /** + * 榛樿鏋勯�犲嚱鏁� + */ + public WhGoods_mapper(WhGoods whGoods) { + if (whGoods == null) { + throw new IllegalArgumentException("po鍙傛暟涓嶅厑璁镐负绌猴紒"); + } + //涓婚敭 + if (whGoods.isset_id) { + this.setId(whGoods.getId()); + } + //鏅�氬睘鎬� + if (whGoods.isset_baseGoodsTemplateId) { + this.setBaseGoodsTemplateId(whGoods.getBaseGoodsTemplateId()); + } + if (whGoods.isset_goodsTemplateName) { + this.setGoodsTemplateName(whGoods.getGoodsTemplateName()); + } + if (whGoods.isset_baseGoodsModelsId) { + this.setBaseGoodsModelsId(whGoods.getBaseGoodsModelsId()); + } + if (whGoods.isset_baseGoodsModelsName) { + this.setBaseGoodsModelsName(whGoods.getBaseGoodsModelsName()); + } + if (whGoods.isset_whCount) { + this.setWhCount(whGoods.getWhCount()); + } + if (whGoods.isset_transferCount) { + this.setTransferCount(whGoods.getTransferCount()); + } + if (whGoods.isset_allCount) { + this.setAllCount(whGoods.getAllCount()); + } + if (whGoods.isset_firstInputCode) { + this.setFirstInputCode(whGoods.getFirstInputCode()); + } + if (whGoods.isset_firstInputType) { + this.setFirstInputType(whGoods.getFirstInputType()); + } + if (whGoods.isset_firstInputHisId) { + this.setFirstInputHisId(whGoods.getFirstInputHisId()); + } + if (whGoods.isset_warehouseId) { + this.setWarehouseId(whGoods.getWarehouseId()); + } + if (whGoods.isset_warehouseName) { + this.setWarehouseName(whGoods.getWarehouseName()); + } + if (whGoods.isset_supplier) { + this.setSupplier(whGoods.getSupplier()); + } + if (whGoods.isset_unit) { + this.setUnit(whGoods.getUnit()); + } + if (whGoods.isset_price) { + this.setPrice(whGoods.getPrice()); + } + if (whGoods.isset_procureDate) { + this.setProcureDate(whGoods.getProcureDate()); + } + if (whGoods.isset_backDate) { + this.setBackDate(whGoods.getBackDate()); + } + if (whGoods.isset_states) { + this.setStates(whGoods.getStates()); + } + // 鍘绘帀锛�2022-09-07 + // this.setDatabaseName_(wh_goods.getDatabaseName_()); + } + + /** + * 鑾峰彇琛ㄥ悕 + */ + @Override + public String getTableName_() { + String tableName = "wh_goods"; + /** + if (StringUtils.isNotEmpty(this.getDatabaseName_())) { + return this.getDatabaseName_() + "." + tableName; + } else { + return tableName; + } + */ + return tableName; + } + + /** + * 鑾峰彇涓婚敭鍚嶇О + */ + @Override + public String getPkName_() { + return Id; + } + + /** + * 鑾峰彇涓婚敭鍊� + */ + @Override + public Object getPkValue_() { + return this.getId(); + } + + /** + * 鑾峰彇鎻掑叆璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getInsertSql_() { + InsertBuilder ib = new InsertBuilder(this.getTableName_()); + ib.set(Id, this.getId()); + ib.set(BaseGoodsTemplateId, this.getBaseGoodsTemplateId(), this.isset_baseGoodsTemplateId); + ib.set(GoodsTemplateName, this.getGoodsTemplateName(), this.isset_goodsTemplateName); + ib.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); + ib.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); + ib.set(WhCount, this.getWhCount(), this.isset_whCount); + ib.set(TransferCount, this.getTransferCount(), this.isset_transferCount); + ib.set(AllCount, this.getAllCount(), this.isset_allCount); + ib.set(FirstInputCode, this.getFirstInputCode(), this.isset_firstInputCode); + ib.set(FirstInputType, this.getFirstInputType(), this.isset_firstInputType); + ib.set(FirstInputHisId, this.getFirstInputHisId(), this.isset_firstInputHisId); + ib.set(WarehouseId, this.getWarehouseId(), this.isset_warehouseId); + ib.set(WarehouseName, this.getWarehouseName(), this.isset_warehouseName); + ib.set(Supplier, this.getSupplier(), this.isset_supplier); + ib.set(Unit, this.getUnit(), this.isset_unit); + ib.set(Price, this.getPrice(), this.isset_price); + ib.set(ProcureDate, this.getProcureDate(), this.isset_procureDate); + ib.set(BackDate, this.getBackDate(), this.isset_backDate); + ib.set(States, this.getStates(), this.isset_states); + return ib.genMapSql(); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getUpdateSql_() { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(BaseGoodsTemplateId, this.getBaseGoodsTemplateId(), this.isset_baseGoodsTemplateId); + ub.set(GoodsTemplateName, this.getGoodsTemplateName(), this.isset_goodsTemplateName); + ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); + ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); + ub.set(WhCount, this.getWhCount(), this.isset_whCount); + ub.set(TransferCount, this.getTransferCount(), this.isset_transferCount); + ub.set(AllCount, this.getAllCount(), this.isset_allCount); + ub.set(FirstInputCode, this.getFirstInputCode(), this.isset_firstInputCode); + ub.set(FirstInputType, this.getFirstInputType(), this.isset_firstInputType); + ub.set(FirstInputHisId, this.getFirstInputHisId(), this.isset_firstInputHisId); + ub.set(WarehouseId, this.getWarehouseId(), this.isset_warehouseId); + ub.set(WarehouseName, this.getWarehouseName(), this.isset_warehouseName); + ub.set(Supplier, this.getSupplier(), this.isset_supplier); + ub.set(Unit, this.getUnit(), this.isset_unit); + ub.set(Price, this.getPrice(), this.isset_price); + ub.set(ProcureDate, this.getProcureDate(), this.isset_procureDate); + ub.set(BackDate, this.getBackDate(), this.isset_backDate); + ub.set(States, this.getStates(), this.isset_states); + ub.where(this.getPkName_(), this.getPkValue_()); + return ub.genMapSql(); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getUpdateSql_(String where, Map<String, Object> parameters) { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(BaseGoodsTemplateId, this.getBaseGoodsTemplateId(), this.isset_baseGoodsTemplateId); + ub.set(GoodsTemplateName, this.getGoodsTemplateName(), this.isset_goodsTemplateName); + ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); + ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); + ub.set(WhCount, this.getWhCount(), this.isset_whCount); + ub.set(TransferCount, this.getTransferCount(), this.isset_transferCount); + ub.set(AllCount, this.getAllCount(), this.isset_allCount); + ub.set(FirstInputCode, this.getFirstInputCode(), this.isset_firstInputCode); + ub.set(FirstInputType, this.getFirstInputType(), this.isset_firstInputType); + ub.set(FirstInputHisId, this.getFirstInputHisId(), this.isset_firstInputHisId); + ub.set(WarehouseId, this.getWarehouseId(), this.isset_warehouseId); + ub.set(WarehouseName, this.getWarehouseName(), this.isset_warehouseName); + ub.set(Supplier, this.getSupplier(), this.isset_supplier); + ub.set(Unit, this.getUnit(), this.isset_unit); + ub.set(Price, this.getPrice(), this.isset_price); + ub.set(ProcureDate, this.getProcureDate(), this.isset_procureDate); + ub.set(BackDate, this.getBackDate(), this.isset_backDate); + ub.set(States, this.getStates(), this.isset_states); + return ub.genMapSql(where, parameters); + } + + /** + * 鑾峰彇鏇存柊璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getUpdateSql_(String where, Object[] parameters) { + UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); + ub.set(BaseGoodsTemplateId, this.getBaseGoodsTemplateId(), this.isset_baseGoodsTemplateId); + ub.set(GoodsTemplateName, this.getGoodsTemplateName(), this.isset_goodsTemplateName); + ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); + ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); + ub.set(WhCount, this.getWhCount(), this.isset_whCount); + ub.set(TransferCount, this.getTransferCount(), this.isset_transferCount); + ub.set(AllCount, this.getAllCount(), this.isset_allCount); + ub.set(FirstInputCode, this.getFirstInputCode(), this.isset_firstInputCode); + ub.set(FirstInputType, this.getFirstInputType(), this.isset_firstInputType); + ub.set(FirstInputHisId, this.getFirstInputHisId(), this.isset_firstInputHisId); + ub.set(WarehouseId, this.getWarehouseId(), this.isset_warehouseId); + ub.set(WarehouseName, this.getWarehouseName(), this.isset_warehouseName); + ub.set(Supplier, this.getSupplier(), this.isset_supplier); + ub.set(Unit, this.getUnit(), this.isset_unit); + ub.set(Price, this.getPrice(), this.isset_price); + ub.set(ProcureDate, this.getProcureDate(), this.isset_procureDate); + ub.set(BackDate, this.getBackDate(), this.isset_backDate); + ub.set(States, this.getStates(), this.isset_states); + return ub.genArraySql(where, parameters); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getDeleteSql_() { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + db.where(this.getPkName_(), this.getPkValue_()); + return db.genMapSql(); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getDeleteSql_(String where, Map<String, Object> parameters) { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + return db.genMapSql(where, parameters); + } + + /** + * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getDeleteSql_(String where, Object[] parameters) { + DeleteBuilder db = new DeleteBuilder(this.getTableName_()); + return db.genArraySql(where, parameters); + } + + /** + * 鑾峰彇鍗曡鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getSingleSql_() { + SelectBuilder sb = new SelectBuilder(this.getTableName_()); + sb.where(this.getPkName_(), this.getPkValue_()); + return sb.genMapSql(); + } + + + /** + * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) { + return new SqlAndParameters<>("select id, base_goods_template_id, goods_template_name, base_goods_models_id, base_goods_models_name, wh_count, transfer_count, all_count, first_input_code, first_input_type, first_input_his_id, warehouse_id, warehouse_name, supplier, unit, price, procure_date, back_date, states from " + this.getTableName_() + " " + where, parameters); + } + + /** + * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁� + */ + @Override + public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) { + return new SqlAndParameters<>("select id, base_goods_template_id, goods_template_name, base_goods_models_id, base_goods_models_name, wh_count, transfer_count, all_count, first_input_code, first_input_type, first_input_his_id, warehouse_id, warehouse_name, supplier, unit, price, procure_date, back_date, states from " + this.getTableName_() + " " + where, parameters); + } + + /** + * 灏唕esultset鐨勪竴琛岃浆鍖栦负po + */ + @Override + public WhGoods mapRow(ResultSet rs, int i) throws SQLException { + return ROW_MAPPER.mapRow(rs, i); + } + + /** + * 鍏嬮殕 + */ + public WhGoods toWhGoods() { + return super.$clone(); + } +} + +/** + * wh_goods RowMapper + * + * @author genrator + */ +class WhGoodsRowMapper implements RowMapper<WhGoods> { + + @Override + public WhGoods mapRow(ResultSet rs, int i) throws SQLException { + ResultSetUtils resultSetUtils = new ResultSetUtils(); + WhGoods wh_goods = new WhGoods(); + Integer columnIndex; + //涓婚敭 + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.Id); + if (columnIndex > 0) { + wh_goods.setId(rs.getLong(columnIndex)); + } + //鏅�氬睘鎬� + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.BaseGoodsTemplateId); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setBaseGoodsTemplateId(null); + } else { + wh_goods.setBaseGoodsTemplateId(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.GoodsTemplateName); + if (columnIndex > 0) { + wh_goods.setGoodsTemplateName(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.BaseGoodsModelsId); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setBaseGoodsModelsId(null); + } else { + wh_goods.setBaseGoodsModelsId(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.BaseGoodsModelsName); + if (columnIndex > 0) { + wh_goods.setBaseGoodsModelsName(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.WhCount); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setWhCount(null); + } else { + wh_goods.setWhCount(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.TransferCount); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setTransferCount(null); + } else { + wh_goods.setTransferCount(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.AllCount); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setAllCount(null); + } else { + wh_goods.setAllCount(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.FirstInputCode); + if (columnIndex > 0) { + wh_goods.setFirstInputCode(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.FirstInputType); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setFirstInputType(null); + } else { + wh_goods.setFirstInputType(rs.getInt(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.FirstInputHisId); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setFirstInputHisId(null); + } else { + wh_goods.setFirstInputHisId(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.WarehouseId); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setWarehouseId(null); + } else { + wh_goods.setWarehouseId(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.WarehouseName); + if (columnIndex > 0) { + wh_goods.setWarehouseName(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.Supplier); + if (columnIndex > 0) { + wh_goods.setSupplier(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.Unit); + if (columnIndex > 0) { + wh_goods.setUnit(rs.getString(columnIndex)); + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.Price); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setPrice(null); + } else { + wh_goods.setPrice(rs.getDouble(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.ProcureDate); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setProcureDate(null); + } else { + wh_goods.setProcureDate(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.BackDate); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setBackDate(null); + } else { + wh_goods.setBackDate(rs.getLong(columnIndex)); + } + } + columnIndex = resultSetUtils.findColumn(rs, WhGoods_mapper.States); + if (columnIndex > 0) { + if (rs.getBigDecimal(columnIndex) == null) { + wh_goods.setStates(null); + } else { + wh_goods.setStates(rs.getInt(columnIndex)); + } + } + return wh_goods; + } +} diff --git a/deploy-jar-single/pom.xml b/deploy-jar-single/pom.xml new file mode 100644 index 0000000..fb8187a --- /dev/null +++ b/deploy-jar-single/pom.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>com.consum</groupId> + <artifactId>low-consum-manage</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>deploy-jar-single</artifactId> + <name>deploy-jar-single</name> + <packaging>jar</packaging> + + <properties> + <es.version>7.14.0</es.version> + </properties> + + <dependencies> + <dependency> + <groupId>com.consum</groupId> + <artifactId>consum-base</artifactId> + <version>1.0.0-SNAPSHOT</version> + </dependency> + + <!-- 閫氳繃鐣岄潰涓嬭浇po鐢熸垚鏂囦欢锛�2023/03/16 --> + <dependency> + <groupId>com.iplatform</groupId> + <artifactId>iplatform-jdbc-generator</artifactId> + </dependency> + + <!-- 闃块噷druid鏁版嵁搴撹繛鎺ユ睜锛屽鏋滀娇鐢ㄧ洿鎺ュ紩鍏ュ埌涓氬姟鍙戝竷妯″潡涓紝2023-03-15 --> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid</artifactId> + </dependency> + + <!-- 濡傛灉浣跨敤Redis缂撳瓨锛屽垯寮曞叆鏀寔妯″潡 --> + <dependency> + <groupId>com.walkersoft</groupId> + <artifactId>walker-support-redis</artifactId> + <exclusions> + <exclusion> + <groupId>com.walkersoft</groupId> + <artifactId>walker-cache</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-autoconfigure</artifactId> + </dependency> + + <!-- <!– 2023-06-25 浣跨敤Oracle鏁版嵁搴撻渶瑕侀厤缃紝涓嶉渶瑕佺洿鎺ユ敞閲婂嵆鍙�� –>--> +<!-- <dependency>--> +<!-- <groupId>com.walkersoft</groupId>--> +<!-- <artifactId>walker-jdbc-support-oracle</artifactId>--> +<!-- </dependency>--> + + <!-- elastic search 闇�瑕佸崟鐙紩鍏ユā鍧�, 2023/07/31 --> +<!-- <dependency>--> +<!-- <groupId>org.springframework.boot</groupId>--> +<!-- <artifactId>spring-boot-starter-web</artifactId>--> +<!-- <exclusions>--> +<!-- <exclusion>--> +<!-- <groupId>org.elasticsearch.client</groupId>--> +<!-- <artifactId>elasticsearch-rest-high-level-client</artifactId>--> +<!-- </exclusion>--> +<!-- <exclusion>--> +<!-- <groupId>org.elasticsearch</groupId>--> +<!-- <artifactId>elasticsearch</artifactId>--> +<!-- </exclusion>--> +<!-- </exclusions>--> +<!-- </dependency>--> + + <!-- 2023-08-07 涓虹幇鍦鸿皟璇曪紝鏆傛椂鍏抽棴妫�绱㈡ā鍧� --> +<!-- <dependency>--> +<!-- <groupId>org.elasticsearch.client</groupId>--> +<!-- <artifactId>elasticsearch-rest-high-level-client</artifactId>--> +<!-- <version>${es.version}</version>--> +<!-- </dependency>--> +<!-- <dependency>--> +<!-- <groupId>org.elasticsearch</groupId>--> +<!-- <artifactId>elasticsearch</artifactId>--> +<!-- <version>${es.version}</version>--> +<!-- </dependency>--> + +<!-- <!– 绉湪鎶ヨ〃鍔熻兘锛岄渶瑕佷娇鐢ㄦ墦寮�娉ㄩ噴鍗冲彲锛�2023-08-24 –>--> +<!-- <dependency>--> +<!-- <groupId>com.iplatform</groupId>--> +<!-- <artifactId>iplatform-report</artifactId>--> +<!-- </dependency>--> + + </dependencies> + + <build> + <finalName>low-consum-manage</finalName> + <plugins> + <plugin> + <!--鑳藉鑷姩瀵绘壘springboot寮曞绫伙紝鎴栬�呮墜鍔ㄦ寚瀹�--> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${spring-boot.version}</version> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>${maven-deploy-plugin.version}</version> + <executions> + <execution> + <id>default-deploy</id> + <phase>deploy</phase> + <goals> + <goal>deploy</goal> + </goals> + <!-- skip榛樿deploy鎻掍欢鐨勬墽琛� --> + <configuration> + <skip>true</skip> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> diff --git a/deploy-jar-single/src/main/java/com/consum/ConsumApplication.java b/deploy-jar-single/src/main/java/com/consum/ConsumApplication.java new file mode 100644 index 0000000..9d102d5 --- /dev/null +++ b/deploy-jar-single/src/main/java/com/consum/ConsumApplication.java @@ -0,0 +1,23 @@ +package com.consum; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication(scanBasePackages = {"com.walker","com.iplatform", "com.consum"}) +public class ConsumApplication { + + public static void main(String[] args) { + SpringApplication.run(ConsumApplication.class, args); + } + + @Bean + public ConfigurableServletWebServerFactory webServerFactory() { + TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); + factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\")); + return factory; + } +} diff --git a/deploy-jar-single/src/main/java/com/consum/generator/GenerateController.java b/deploy-jar-single/src/main/java/com/consum/generator/GenerateController.java new file mode 100644 index 0000000..d5ad3b1 --- /dev/null +++ b/deploy-jar-single/src/main/java/com/consum/generator/GenerateController.java @@ -0,0 +1,28 @@ +package com.consum.generator; + +import com.iplatform.generator.JdbcGeneratorEngine; +import com.walker.web.ResponseValue; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName GenerateController + * @Author cy + * @Date 2023/9/21 + * @Description 浠g爜鐢熸垚 + * @Version 1.0 + **/ +@RestController +@RequestMapping("/platform/fin") +public class GenerateController { + @Autowired + private JdbcGeneratorEngine jdbcGeneratorEngine; + + @GetMapping("/sc") + public ResponseValue allocatedList(String tableName) throws Exception { + this.jdbcGeneratorEngine.generateOnePoFile(tableName, "d:/tmp/" + tableName + ".zip"); + return ResponseValue.success(); + } +} diff --git a/deploy-jar-single/src/main/java/com/consum/generator/TestJdbcGenerator.java b/deploy-jar-single/src/main/java/com/consum/generator/TestJdbcGenerator.java new file mode 100644 index 0000000..9d55a68 --- /dev/null +++ b/deploy-jar-single/src/main/java/com/consum/generator/TestJdbcGenerator.java @@ -0,0 +1,24 @@ +package com.consum.generator; + +import com.iplatform.generator.JdbcGeneratorEngine; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +public class TestJdbcGenerator { + + @Autowired + private JdbcGeneratorEngine jdbcGeneratorEngine; + + @PostConstruct + public void testGenerate() { + System.out.println("~~~~~~~~~~~~~~~ 寮�濮嬬敓鎴愭暟鎹簱浠g爜锛�"); + try { + this.jdbcGeneratorEngine.generatePoFile("ZS_JN_ORG_CS", "po,mapper", "d:/tmp/fin_po.zip"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/deploy-jar-single/src/main/resources/application-dev.yml b/deploy-jar-single/src/main/resources/application-dev.yml new file mode 100644 index 0000000..edb6712 --- /dev/null +++ b/deploy-jar-single/src/main/resources/application-dev.yml @@ -0,0 +1,250 @@ +spring: + application: + name: projectProgress + datasource: + # 鏄惁鏄剧ずdao涓墦鍗扮殑SQL璇彞 + show-sql: true +# 鏁版嵁搴撻摼鎺� + username: root + password: Bjjmy_2020 + url: jdbc:mysql://116.198.40.76:3306/low_consum_manage_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false +# Druid杩炴帴姹� + type: com.walker.jdbc.ds.MyDruidDataSource + druid: + initial-size: 5 + min-idle: 10 + max-active: 20 + # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂� + max-wait: 60000 + # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣 + time-between-eviction-runs-millis: 60000 + # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣 瓒呰繃杩欎釜鏃堕棿姣忔浼氬洖鏀堕粯璁�3涓繛鎺� + min-evictable-idle-time-millis: 30000 + # 绾夸笂閰嶇疆鐨刴ysql鏂紑闂茬疆杩炴帴鏃堕棿涓�1灏忔椂,鏁版嵁婧愰厤缃洖鏀舵椂闂翠负3鍒嗛挓,浠ユ渶鍚庝竴娆℃椿璺冩椂闂村紑濮嬬畻 + max-evictable-idle-time-millis: 180000 + validation-query: select 1 + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-open-prepared-statements: 100 + use-global-data-source-stat: true +# Redis + redis: + host: 116.198.40.76 + port: 6379 + database: 11 + password: Jmy2019. + + mvc: + pathmatch: + # 鍔犺閰嶇疆鏄洜涓� swagger3 鍚姩鎶ラ敊锛�2023-02-23 + matching-strategy: ant_path_matcher + + hiddenmethod: + filter: + enabled: true # 鍔犱笂璇ラ厤缃彲浠ユ帴鏀�: application/x-www-form-urlencoded璇锋眰鍙傛暟涓哄璞°�傛敮浠橀�氱煡涓娇鐢ㄣ��2023-02-26 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 300MB + +server: + port: 8083 + servlet: + context-path: /api + session: + timeout: 30m + +logging: + level: + # 鍏ㄥ眬杈撳嚭绾у埆 off < trace < debug < info < warn < error < fatal + root: info + org: + springframework: info + io.swagger: warn + io: + netty: info + com: + walker: debug + iplatform: debug + progess: debug + + charset: + # 鎺у埗鍙扮紪鐮� + console: UTF-8 + # 杈撳嚭鏂囦欢缂栫爜 + file: UTF-8 + logback: + rollingpolicy: + # 鍗曚釜鏂囦欢鏈�澶т负30MB锛岃秴杩囦箣鍚庝細鎵撳寘鎴愪竴涓棩蹇楁枃浠� + max-file-size: 30MB + # 鏂囦欢淇濆瓨7澶� + max-history: 7 + # 鎵撳寘鏂囦欢鏍煎紡,榛樿锛� ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz,涔﹀啓鏍煎紡涓猴細鏂囦欢璺緞/鏂囦欢鍚�.%i.鏂囦欢鍚庣紑,鍏朵腑%i涓嶅彲鐪佸幓锛屽惁鍒欐棤鏃ュ織鏄剧ず + # 渚嬪锛� 鏃ユ湡涓猴細2023/07/13 ,鍒欐墦鍖呮枃浠朵箣鍚庝负锛� log/ota.2023-07-13.0.gz,0琛ㄧず鏃ュ織鐨勭涓�閮ㄥ垎锛屽悗缁氨鏄紝1,2,3... + # 濡傛灉鏄帇缂╁寘锛岄噷闈細澶氫竴涓悕log/ota.2023-07-13.0鐨勬棩蹇楁枃浠� + # 濡備笅闈㈢殑渚嬪瓙锛屾墦鍖呬箣鍚庝负: log/2023-07/ota.2020-07-13.0.log锛岃繖鏄竴涓棩蹇楁枃浠� + file-name-pattern: ${logging.file.path}%d{yyyy-MM}/progess.%d{yyyy-MM-dd}.%i.log + file: + name: ${logging.file.path}consum.log + path: D:/log/ + +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# 骞冲彴閰嶇疆鏀寔鍔熻兘 +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +iplatform: + + # 骞冲彴缂撳瓨锛屾槸鍚﹀惎鐢╮edis缂撳瓨锛岄粯璁や娇鐢ㄥ熀浜庡唴瀛樼紦瀛�. + # 娉ㄦ剰锛氬鏋滃紑鍚痳edis缂撳瓨锛屼笟鍔″伐绋嬪繀椤讳緷璧�(walker-support-redis) + cache: + redis-enabled: true + # 鏈烘瀯鐢ㄦ埛鏄惁寰堝簽澶э紝濡傛灉鏄垯缂撳瓨涓細鍏抽棴鍒濆鍖栧姞杞斤紝鍚屾椂鏈烘瀯鏍戜篃涓嶄細鏀惧叆缂撳瓨锛�2023-07-17 + org-user-big: true + + # 鐩镐技搴﹀垎鏋愭ā鍧椾娇鐢�(宸插簾寮�) +# similarity: +# # 鏄惁鍚敤鐩镐技搴︽ā鍧楋紝濡傛灉绂佺敤鍒欒纭繚娉ㄥ叆鏃舵敮鎸佷负绌� +# enabled: false +# milvus-host: 172.16.60.65 +# milvus-port: 19530 +# word-file: d:/dev_tools/ai/w2v_sogou_dim300_vocab.txt +# embedding-file: d:/dev_tools/ai/w2v_sogou_dim300.npy + + # 璋冨害鍣ㄦā鍧楋紝鏄惁鍚敤 + scheduler: + enabled: false + # 鏄惁鏀寔鏁版嵁搴撳瓨鍌ㄤ换鍔�(搴熷純璇ラ厤缃�) + database-enabled: false + + # 鏁版嵁閲囬泦妯″潡 + gather: + enabled: false + + # 鏉冮檺鎺у埗鐩稿叧 + security: + # 鍖垮悕鍙闂湴鍧�(寮�鏀惧湴鍧�) + anonymous-list: + - /file/** # 鏂囦欢涓婁紶 + - /platform/fin/sc # 涓�閿敓鎴� + - /login # 鐧诲綍 + - /register # 娉ㄥ唽 + - /captcha/* # 楠岃瘉鐮佺粺 + - /test/** # 寮�鍙戞祴璇曪紝浠呭紑鍙戞澘鍙敤 + - /swagger-resources/** # swagger + - /swagger-ui/** # swagger + - /v3/** # swagger + # 棰勭畻涓�浣撳寲鐧诲綍瀵规帴锛屽墠绔闂殑鐧诲綍鍦板潃銆�2023-07-03 + - /system/** # 绯荤粺璁剧疆 + - /pc/** # PC绔帴鍙� + - /wx/** # 寰俊绔帴鍙� + # 鍏佽鎵�鏈夎璇佺敤鎴烽兘鍙闂湴鍧�锛岃鎱庨噸鍚﹀垯鏉冮檺閮借繃澶э紝涓�鑸珹PI閮藉簲璇ヨ缃湪杩欓噷 + permit-list: +# - /permit # 鍏敤鏉冮檺锛�2023-03-13锛屽钩鍙颁唬鐮佸凡缁忔坊鍔犺繃浜嗭紝杩欓噷涓嶉渶瑕侀厤缃� + - /getInfo + - /system/** + - /p/** + - /getRouters + - /getMenus # 鏂扮晫闈㈣彍鍗曪紝2023-05-12 + - /logout +# - /api/** + + # 瓒呯骇绠$悊鍛樺瘑鐮侊紝鍔犲瘑鍚庣殑绉樻枃 + supervisor-password: $2a$10$9lSwwUFMULR6/KhPsUbTj.0PTZfTnq0fB3OtS6PWoKAibpa8hL1cy + + # 鏄惁鍏佽閰嶇疆璺ㄥ煙鍝嶅簲澶�, true 鍚敤锛� false 涓嶅惎鐢ㄣ��2022-12-28 + # 鍦℅ateway妯″紡涓紝闇�瑕佸叧闂法鍩熼厤缃紝鍥犱负缃戝叧涔熶細閰嶇疆銆� + cors-enabled: true + + # 鐢ㄦ埛鍚嶅瘑鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-user-pass: code + # 鎵嬫満楠岃瘉鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-sms-code: sms + + # 鏄惁鍏佽鍚庡彴鐢ㄦ埛锛堥潪App锛夌櫥褰曟墜鏈虹锛�2023-03-20 + allow-pc-user-access-app: true + + # PC绔痶oken澶辨晥鍒嗛挓锛岄粯璁わ細120鍒嗛挓锛�2023-03-28 + token-expire-web: 720 + # 绉诲姩绔痶oken澶辨晥鍒嗛挓锛�2023-03-28 + token-expire-mobile: 21600 + + # 鐢ㄦ埛浣撶郴锛堢敤鎴峰悕锛夐兘鏄墜鏈哄彿锛�2023-06-28 + # 涓�鑸郴缁烶C绔�氬父閮戒笉鏄墜鏈哄彿浣滀负鐢ㄦ埛鍚嶏紝鍙湁鍦ㄤ簰鑱旂綉鐩稿叧绯荤粺涓細瀛樺湪鎵嬫満鍙蜂綔涓虹櫥褰曡处鍙� + user-name-is-phone: false + + # 2023-07-11 鐧诲綍绛栫暐閰嶇疆锛屽垪琛ㄤ腑瀛樺湪鐨勭瓥鐣ラ兘琛ㄧず鍚敤锛堜笉鍚敤鐨勫垹鎺夛級 + login-strategy-list: +# - com.iplatform.base.support.strategy.WebOnceLoginStrategy + + # 鐢ㄦ埛鐩稿叧瀹夊叏閰嶇疆锛�2023-08-03 + user: + # 鐢ㄦ埛淇敼瀵嗙爜绛夌骇锛屽垎鍥涚骇锛�1-2-3-4锛屽父閲忥細PasswordUtils# + pass-level: 4 + # 鏄惁寮哄埗鐢ㄦ埛淇敼榛樿瀵嗙爜锛� + pass-default-modify: true + + # 浠g爜鐢熸垚锛�2022-11-26 + gen: + # 浣滆�� + author: Mike + # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool + package-name: com.iplatform.model.po + # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸false + auto-remove-pre: false + # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛� + table-prefix: s_ + + log: + # 鏄惁鎵撳紑鐧诲綍鏃ュ織锛�2023-01-05 + # 濡傛灉涓嶆墦寮�锛屽垯璁惧鐧诲綍鐨剈uid鏇存柊鎿嶄綔涔熸棤娉曡幏寰楋紝鐢ㄤ簬璁板綍姣忎釜鐧诲綍鐢ㄦ埛鐨剈uid锛堢敤鎴风櫥褰曡鑹叉洿鏂帮級锛�2023-03-23 + login-enabled: true + # 鏄惁鎵撳紑鎿嶄綔鏃ュ織锛�2023-01-05 + operate-enabled: false + + # 楠岃瘉鐮佺浉鍏抽厤缃紝2023-01-27 + captcha: + # 鍥惧舰楠岃瘉鐮佸疄鐜扮被, TextCaptchaProvider | DefaultCaptchaProvider + image-captcha-class: com.iplatform.base.captcha.TextCaptchaProvider + # 鐭俊楠岃瘉鐮佸疄鐜扮被锛堥厤缃簾寮冿紝2023-04-25锛� + sms-captcha-class: com.iplatform.base.captcha.MockSmsCaptchaProvider + + # 骞冲彴鏂囦欢瀛樺偍閰嶇疆锛�2023-02-15 + file: + # FileStoreType = FileSystem 鏈湴纾佺洏瀛樺偍鏍硅矾寰� + file-root: d:/tmp/ + ftp: + ip: 116.198.40.76 + port: 22 + user-name: mysftp + password: Bjjmy_2020 + private-key: + # ftp鏈嶅姟涓婇潰鐨勫瓨鍌ㄦ牴璺緞锛屽彧鑳芥槸linux璺緞 + file-root: /progress/ + + # 鎺ュ彛鏂囨。鐢熸垚锛宻wagger3锛�2023-02-23 + swagger: + # 鍖呰矾寰勶紝鏆傛椂涓嶇敤 + base-package: com.iplatform.base.controller + title: 浜戝師鐢熷井鏈嶅姟骞冲彴 + description: 涓�涓揩閫焪eb寮�鍙戞鏋� + + + # 鎺ㄩ�佹ā鍧楅厤缃紝2023-04-25 + push: + # 鐭俊鎺ㄩ�佽�呭悕绉帮細mock_sms_push锛堟ā鎷熺煭淇★級锛宎lidy_sms_push锛堥樋閲屽ぇ楸肩煭淇★級 + sms-push-name: mock_sms_push + # 鐭俊楠岃瘉鐮佹ā鏉縄D锛屾牴鎹疄闄呮儏鍐碉紙姣忎釜骞冲彴鍙兘涓嶅悓锛� + sms-template-code: template_code + + # 瀵逛簬涓�鑸笟鍔℃彁閱掞紙涓嶅寘鎷細閭欢銆佺煭淇★級锛屾帹閫佺殑鏂瑰紡銆傛帹閫佽�匢D缁勫悎 + # && 琛ㄧず骞跺垪锛寍| 琛ㄧず鎴栵紙鍙涓�涓垚鍔熷氨OK锛� + # 2023-04-26锛屽彲鐢ㄧ殑 id = 'tcp', 'web_socket', 'wx', 'system' +# message-type: tcp && web_socket && wx && system + # 濡傛灉鏄垨鑰呮柟寮忥紝闇�瑕佹妸鏈�鍙潬鐨勬斁鍓嶉潰锛屽洜涓虹郴缁熶細鎵惧埌绗竴涓彂閫佹垚鍔熷嵆鍙�� + message-type: system || tcp || web_socket || wx + + # 閭欢閫氱煡鍙戦�佷俊鎭厤缃紝2023-04-26 + mail-server: smtp.126.com + mail-from: hnzzzhsl@126.com + mail-password: test diff --git a/deploy-jar-single/src/main/resources/application-prod.yml b/deploy-jar-single/src/main/resources/application-prod.yml new file mode 100644 index 0000000..beb37ac --- /dev/null +++ b/deploy-jar-single/src/main/resources/application-prod.yml @@ -0,0 +1,381 @@ +spring: + application: + name: projectProgress + datasource: + # 鏄惁鏄剧ずdao涓墦鍗扮殑SQL璇彞 + show-sql: true + + ## driver-class-name: sunje.goldilocks.jdbc.GoldilocksDriver + # 娉ㄦ剰锛歁ySQL鏈嶅姟绔紝闇�瑕佽皟鏁翠袱涓弬鏁帮紝鍚﹀垯鏈嶅姟绔細涓诲姩鏂紑杩炴帴 + # wait_timeout: 瓒呰繃鏀规椂闂�(绉�)鏈嶅姟绔富鍔ㄦ柇寮� + # interactive_timeout: 瀹㈡埛绔伐鍏蜂氦浜掕秴杩囪繖涓椂闂�(绉�)浼氱鍙o紝琛ㄧ幇涓簄avicat + + # Oracle閰嶇疆锛�2023-06-25 + # username: FINANCE_OPS_PROD + # password: FINANCE_OPS_PROD + # driver-class-name: oracle.jdbc.OracleDriver + # url: jdbc:oracle:thin:@10.8.10.2:1521/pdb_YWZC + # username: C##FINANCE_OPS_TEST + # password: FINANCE_OPS_TEST + # driver-class-name: oracle.jdbc.OracleDriver + # url: jdbc:oracle:thin:@116.198.40.76:1521/cdb1 + + + username: root + password: Bjjmy_2020 + url: jdbc:mysql://116.198.40.76:3306/project_progress_manage_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false + + # username: root + # password: Bjjmy_2020 + # url: jdbc:mysql://116.198.40.76:3306/iplatform?useUnicode=true&characterEncoding=UTF-8&useSSL=false + + # 杈炬ⅵ鏁版嵁搴� + # driver-class-name: dm.jdbc.driver.DmDriver + # username: iplatform + # password: iplatform + # url: jdbc:dm://116.198.39.83:5236?schema=iplatform + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 浣跨敤 Hikari 杩炴帴姹� + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # type: com.walker.jdbc.ds.DefaultDataSource + # hikari: + # minimum-idle: 5 + # idle-timeout: 600000 + # pool-name: databasePool_walker + # # 杩炴帴鏈�澶ц秴鏃舵椂闂� + # connection-timeout: 30000 + # # 杩炴帴姹犳渶澶ф暟閲� + # maximum-pool-size: 10 + # # 鎺у埗姹犱腑杩炴帴鏈�澶х敓瀛樻湡 + # # max-lifetime: 70000 + # # 姝ゅ睘鎬ф帶鍒舵祴璇曡繛鎺ユ槸鍚︽椿璺冪殑鏈�闀挎椂闂淬�傛鍊煎繀椤诲皬浜� connectionTimeout + # validation-timeout: 10000 + # # + # connection-test-query: select 1 + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 浣跨敤 Druid 杩炴帴姹� + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + type: com.walker.jdbc.ds.MyDruidDataSource + druid: + initial-size: 5 + min-idle: 10 + max-active: 20 + # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂� + max-wait: 60000 + # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣 + time-between-eviction-runs-millis: 60000 + # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣 瓒呰繃杩欎釜鏃堕棿姣忔浼氬洖鏀堕粯璁�3涓繛鎺� + min-evictable-idle-time-millis: 30000 + # 绾夸笂閰嶇疆鐨刴ysql鏂紑闂茬疆杩炴帴鏃堕棿涓�1灏忔椂,鏁版嵁婧愰厤缃洖鏀舵椂闂翠负3鍒嗛挓,浠ユ渶鍚庝竴娆℃椿璺冩椂闂村紑濮嬬畻 + max-evictable-idle-time-millis: 180000 + validation-query: select 1 + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-open-prepared-statements: 100 + use-global-data-source-stat: true + + # redis: + # host: 127.0.0.1 + # port: 6379 + # database: 10 + # #password: Jmy2019. + redis: + host: 116.198.40.76 + port: 6379 + database: 11 + password: Jmy2019. + + + mvc: + pathmatch: + # 鍔犺閰嶇疆鏄洜涓� swagger3 鍚姩鎶ラ敊锛�2023-02-23 + matching-strategy: ant_path_matcher + + hiddenmethod: + filter: + enabled: true # 鍔犱笂璇ラ厤缃彲浠ユ帴鏀�: application/x-www-form-urlencoded璇锋眰鍙傛暟涓哄璞°�傛敮浠橀�氱煡涓娇鐢ㄣ��2023-02-26 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 300MB + +server: + port: 8082 + servlet: + context-path: /progress + session: + timeout: 30m + +logging: + level: + # 鍏ㄥ眬杈撳嚭绾у埆 off < trace < debug < info < warn < error < fatal + root: info + org: + springframework: info + io.swagger: warn + io: + netty: info + com: + walker: debug + iplatform: debug + finance: debug + cti: debug + robot: error + + charset: + # 鎺у埗鍙扮紪鐮� + console: UTF-8 + # 杈撳嚭鏂囦欢缂栫爜 + file: UTF-8 + logback: + rollingpolicy: + # 鍗曚釜鏂囦欢鏈�澶т负30MB锛岃秴杩囦箣鍚庝細鎵撳寘鎴愪竴涓棩蹇楁枃浠� + max-file-size: 30MB + # 鏂囦欢淇濆瓨7澶� + max-history: 7 + # 鎵撳寘鏂囦欢鏍煎紡,榛樿锛� ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz,涔﹀啓鏍煎紡涓猴細鏂囦欢璺緞/鏂囦欢鍚�.%i.鏂囦欢鍚庣紑,鍏朵腑%i涓嶅彲鐪佸幓锛屽惁鍒欐棤鏃ュ織鏄剧ず + # 渚嬪锛� 鏃ユ湡涓猴細2023/07/13 ,鍒欐墦鍖呮枃浠朵箣鍚庝负锛� log/ota.2023-07-13.0.gz,0琛ㄧず鏃ュ織鐨勭涓�閮ㄥ垎锛屽悗缁氨鏄紝1,2,3... + # 濡傛灉鏄帇缂╁寘锛岄噷闈細澶氫竴涓悕log/ota.2023-07-13.0鐨勬棩蹇楁枃浠� + # 濡備笅闈㈢殑渚嬪瓙锛屾墦鍖呬箣鍚庝负: log/2023-07/ota.2020-07-13.0.log锛岃繖鏄竴涓棩蹇楁枃浠� + file-name-pattern: ${logging.file.path}%d{yyyy-MM}/finance.%d{yyyy-MM-dd}.%i.log + file: + name: ${logging.file.path}finance.log + path: D:/log/ + +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# 骞冲彴閰嶇疆鏀寔鍔熻兘 +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +iplatform: + + # 骞冲彴缂撳瓨锛屾槸鍚﹀惎鐢╮edis缂撳瓨锛岄粯璁や娇鐢ㄥ熀浜庡唴瀛樼紦瀛�. + # 娉ㄦ剰锛氬鏋滃紑鍚痳edis缂撳瓨锛屼笟鍔″伐绋嬪繀椤讳緷璧�(walker-support-redis) + cache: + redis-enabled: true + # 鏈烘瀯鐢ㄦ埛鏄惁寰堝簽澶э紝濡傛灉鏄垯缂撳瓨涓細鍏抽棴鍒濆鍖栧姞杞斤紝鍚屾椂鏈烘瀯鏍戜篃涓嶄細鏀惧叆缂撳瓨锛�2023-07-17 + org-user-big: true + + # 鐩镐技搴﹀垎鏋愭ā鍧椾娇鐢�(宸插簾寮�) + # similarity: + # # 鏄惁鍚敤鐩镐技搴︽ā鍧楋紝濡傛灉绂佺敤鍒欒纭繚娉ㄥ叆鏃舵敮鎸佷负绌� + # enabled: false + # milvus-host: 172.16.60.65 + # milvus-port: 19530 + # word-file: d:/dev_tools/ai/w2v_sogou_dim300_vocab.txt + # embedding-file: d:/dev_tools/ai/w2v_sogou_dim300.npy + + # 璋冨害鍣ㄦā鍧楋紝鏄惁鍚敤 + scheduler: + enabled: false + # 鏄惁鏀寔鏁版嵁搴撳瓨鍌ㄤ换鍔�(搴熷純璇ラ厤缃�) + database-enabled: false + + # 鏁版嵁閲囬泦妯″潡 + gather: + enabled: false + + # 鏉冮檺鎺у埗鐩稿叧 + security: + # 鍖垮悕鍙闂湴鍧�(寮�鏀惧湴鍧�) + anonymous-list: + - /platform/fin/sc + - /chat/auto/robot/** + - /login + - /register + - /captcha/* # 楠岃瘉鐮佺粺涓�鏀惧紑 + - /test/** # 寮�鍙戞祴璇曪紝浠呭紑鍙戞澘鍙敤 + - /swagger-resources/** # swagger + - /swagger-ui/** # swagger + - /v3/** # swagger + - /pay/notify/** # 鏀粯閫氱煡 + - /jmreport/** # 绉湪鎶ヨ〃 + - /api/cti/net/** # 缃戠粶杩炴帴鐘舵�佹娴� + - /api/cti/customer/** # 瀹㈡湇璁剧疆 + - /api/** # 鍛煎彨涓績鍥炶皟 + - /platform/fin/** + - /platform/fin/sys/org/** + - /platform/fin/sys/user/** + - /platform/fin/sys/project/** + - /platform/fin/sys/tenant/** + - /platform/fin/sys/tenant/user/** + - /robot/** + - /platform/fin/supplier/** + - /chat/user/** #鑱婂ぉ + - /third_party/budget/login + - /platform/fin/project/** # 棰勭畻涓�浣撳寲鐧诲綍瀵规帴锛屽墠绔闂殑鐧诲綍鍦板潃銆�2023-07-03 + - /platform/fin/sys/server/** + - /platform/fin/project/category/** + - platform/fin/sys/tenant/user/** #鐢ㄦ埛 + - /platform/fin/project/** + - /platform/fin/event/** + - /admin/platform/fin/project/* + - /platform/fin/sla/config/** + - /platform/fin/library/** + - /platform/fin/sla/** + - /platform/fin/supplier/user/getRole + - /admin/platform/fin/sys/tenant/user/* # 棰勭畻涓�浣撳寲鐧诲綍瀵规帴锛屽墠绔闂殑鐧诲綍鍦板潃銆�2023-07-03 + - /system/role/** + - /robot/test/** + - /platform/fin/node/** + - /platform/fin/project/member/** #鍥㈤槦鎴愬憳 + - /robot/** + - /platform/fin/init/jn/** #鍒濆鍖栨帴鍙� + - /platform/fin/project/manage/** + - /platform/fin/sla/config/** #鍒濆鍖栨帴鍙� + - /platform/fin/sla/** #鍒濆鍖栨帴鍙� + - /platform/fin/cate/user/select/sla/** #鍒濆鍖栨帴鍙� + - /platform/fin/sta/template/** #婊℃剰搴︽帴鍙� + - /system/dict/type + - /platform/fin/chat/reply/** #蹇嵎鍥炲 + - /platform/fin/file/upload #鏂囦欢涓婁紶锛岃鍕跨鐢ㄥ拰閰嶇疆 + - /file/** #璇峰嬁绂佺敤鍜岄厤缃� + - /platform/fin/node/define/select + - /platform/fin/cate/user/** + - /platform/fin/node/define/** + # 鍏佽鎵�鏈夎璇佺敤鎴烽兘鍙闂湴鍧�锛岃鎱庨噸鍚﹀垯鏉冮檺閮借繃澶э紝涓�鑸珹PI閮藉簲璇ヨ缃湪杩欓噷 + permit-list: + # - /permit # 鍏敤鏉冮檺锛�2023-03-13锛屽钩鍙颁唬鐮佸凡缁忔坊鍔犺繃浜嗭紝杩欓噷涓嶉渶瑕侀厤缃� + - /getInfo + - /system/** + - /getRouters + - /getMenus # 鏂扮晫闈㈣彍鍗曪紝2023-05-12 + - /logout + # - /api/** + + # 瓒呯骇绠$悊鍛樺瘑鐮侊紝鍔犲瘑鍚庣殑绉樻枃 + supervisor-password: $2a$10$9lSwwUFMULR6/KhPsUbTj.0PTZfTnq0fB3OtS6PWoKAibpa8hL1cy + + # 鏄惁鍏佽閰嶇疆璺ㄥ煙鍝嶅簲澶�, true 鍚敤锛� false 涓嶅惎鐢ㄣ��2022-12-28 + # 鍦℅ateway妯″紡涓紝闇�瑕佸叧闂法鍩熼厤缃紝鍥犱负缃戝叧涔熶細閰嶇疆銆� + cors-enabled: true + + # 鐢ㄦ埛鍚嶅瘑鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-user-pass: code + # 鎵嬫満楠岃瘉鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-sms-code: sms + + # 鏄惁鍏佽鍚庡彴鐢ㄦ埛锛堥潪App锛夌櫥褰曟墜鏈虹锛�2023-03-20 + allow-pc-user-access-app: true + + # PC绔痶oken澶辨晥鍒嗛挓锛岄粯璁わ細120鍒嗛挓锛�2023-03-28 + token-expire-web: 720 + # 绉诲姩绔痶oken澶辨晥鍒嗛挓锛�2023-03-28 + token-expire-mobile: 21600 + + # 鐢ㄦ埛浣撶郴锛堢敤鎴峰悕锛夐兘鏄墜鏈哄彿锛�2023-06-28 + # 涓�鑸郴缁烶C绔�氬父閮戒笉鏄墜鏈哄彿浣滀负鐢ㄦ埛鍚嶏紝鍙湁鍦ㄤ簰鑱旂綉鐩稿叧绯荤粺涓細瀛樺湪鎵嬫満鍙蜂綔涓虹櫥褰曡处鍙� + user-name-is-phone: false + + # 2023-07-11 鐧诲綍绛栫暐閰嶇疆锛屽垪琛ㄤ腑瀛樺湪鐨勭瓥鐣ラ兘琛ㄧず鍚敤锛堜笉鍚敤鐨勫垹鎺夛級 + login-strategy-list: + # - com.iplatform.base.support.strategy.WebOnceLoginStrategy + + # 鐢ㄦ埛鐩稿叧瀹夊叏閰嶇疆锛�2023-08-03 + user: + # 鐢ㄦ埛淇敼瀵嗙爜绛夌骇锛屽垎鍥涚骇锛�1-2-3-4锛屽父閲忥細PasswordUtils# + pass-level: 4 + # 鏄惁寮哄埗鐢ㄦ埛淇敼榛樿瀵嗙爜锛� + pass-default-modify: true + + # 浠g爜鐢熸垚锛�2022-11-26 + gen: + # 浣滆�� + author: Mike + # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool + package-name: com.iplatform.model.po + # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸false + auto-remove-pre: false + # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛� + table-prefix: s_ + + log: + # 鏄惁鎵撳紑鐧诲綍鏃ュ織锛�2023-01-05 + # 濡傛灉涓嶆墦寮�锛屽垯璁惧鐧诲綍鐨剈uid鏇存柊鎿嶄綔涔熸棤娉曡幏寰楋紝鐢ㄤ簬璁板綍姣忎釜鐧诲綍鐢ㄦ埛鐨剈uid锛堢敤鎴风櫥褰曡鑹叉洿鏂帮級锛�2023-03-23 + login-enabled: true + # 鏄惁鎵撳紑鎿嶄綔鏃ュ織锛�2023-01-05 + operate-enabled: false + + # 楠岃瘉鐮佺浉鍏抽厤缃紝2023-01-27 + captcha: + # 鍥惧舰楠岃瘉鐮佸疄鐜扮被, TextCaptchaProvider | DefaultCaptchaProvider + image-captcha-class: com.iplatform.base.captcha.TextCaptchaProvider + # 鐭俊楠岃瘉鐮佸疄鐜扮被锛堥厤缃簾寮冿紝2023-04-25锛� + sms-captcha-class: com.iplatform.base.captcha.MockSmsCaptchaProvider + + # 骞冲彴鏂囦欢瀛樺偍閰嶇疆锛�2023-02-15 + file: + # FileStoreType = FileSystem 鏈湴纾佺洏瀛樺偍鏍硅矾寰� + file-root: d:/tmp/ + ftp: + ip: 116.198.40.76 + port: 22 + user-name: mysftp + password: Bjjmy_2020 + private-key: + # ftp鏈嶅姟涓婇潰鐨勫瓨鍌ㄦ牴璺緞锛屽彧鑳芥槸linux璺緞 + # file-root: /files/ + file-root: /train/ + + # 鎺ュ彛鏂囨。鐢熸垚锛宻wagger3锛�2023-02-23 + swagger: + # 鍖呰矾寰勶紝鏆傛椂涓嶇敤 + base-package: com.iplatform.base.controller + title: 浜戝師鐢熷井鏈嶅姟骞冲彴 + description: 涓�涓揩閫焪eb寮�鍙戞鏋� + + # TCP閫氫俊閰嶇疆锛�2023-04-17 + tcp: + # 鏄惁寮�鍚紩鎿� + enabled: true + # 鏄惁鎵撳紑蹇冭烦 + open-heart-beat: false + # 蹇冭烦鏃堕棿锛堢锛夛紝2023-08-28 + heart-beat-seconds: 120 + # 鏄惁鏄剧ず璇︾粏鏃ュ織 + show-log: false + # 璇锋眰闃熷垪绫诲瀷锛歮emory 鍩轰簬鍐呭瓨 + queue-type: memory + # tcp鏂瑰紡瑕佹壂鎻忕殑璇锋眰瀵硅薄鐨勫寘绌洪棿 + scan-packages-tcp: com.walker.tcp,com.iplatform.tcp + # websocket鏂瑰紡瑕佹壂鎻忕殑璇锋眰瀵硅薄鐨勫寘绌洪棿 + scan-packages-ws: com.iplatform.tcp.util.ws,com.finance.chat.util.ws + # tcp闀胯繛鎺ョ殑绔彛 + port-tcp: 7878 + # websocket杩炴帴绔彛 + port-ws: 60000 + # websocket杩炴帴uri + websocket-uri: ws://172.16.60.41:60000/websocket + # 閫氫俊绾跨▼鏁伴噺 + boss-thread-num: 2 + # 涓氬姟澶勭悊绾跨▼鏁伴噺 + worker-thread-num: 4 + # 鍚敤鑷畾涔夎繛鎺ョ鐞嗗櫒锛屽鏋渢rue鍒欎笟鍔¢渶瑕佹彁渚涜嚜瀹氫箟瀹炵幇锛堥厤缃級锛�2023-07-18 + custom-connection-manager: true + + # 鎺ㄩ�佹ā鍧楅厤缃紝2023-04-25 + push: + # 鐭俊鎺ㄩ�佽�呭悕绉帮細mock_sms_push锛堟ā鎷熺煭淇★級锛宎lidy_sms_push锛堥樋閲屽ぇ楸肩煭淇★級 + sms-push-name: mock_sms_push + # 鐭俊楠岃瘉鐮佹ā鏉縄D锛屾牴鎹疄闄呮儏鍐碉紙姣忎釜骞冲彴鍙兘涓嶅悓锛� + sms-template-code: template_code + + # 瀵逛簬涓�鑸笟鍔℃彁閱掞紙涓嶅寘鎷細閭欢銆佺煭淇★級锛屾帹閫佺殑鏂瑰紡銆傛帹閫佽�匢D缁勫悎 + # && 琛ㄧず骞跺垪锛寍| 琛ㄧず鎴栵紙鍙涓�涓垚鍔熷氨OK锛� + # 2023-04-26锛屽彲鐢ㄧ殑 id = 'tcp', 'web_socket', 'wx', 'system' + # message-type: tcp && web_socket && wx && system + # 濡傛灉鏄垨鑰呮柟寮忥紝闇�瑕佹妸鏈�鍙潬鐨勬斁鍓嶉潰锛屽洜涓虹郴缁熶細鎵惧埌绗竴涓彂閫佹垚鍔熷嵆鍙�� + message-type: system || tcp || web_socket || wx + + # 閭欢閫氱煡鍙戦�佷俊鎭厤缃紝2023-04-26 + mail-server: smtp.126.com + mail-from: hnzzzhsl@126.com + mail-password: test + + +fin: + projectCode: CZT_YS_YTH_001 + # 鍖哄垎鐪佺骇CODE + provinceCode: 410000000 diff --git a/deploy-jar-single/src/main/resources/application-test.yml b/deploy-jar-single/src/main/resources/application-test.yml new file mode 100644 index 0000000..c2e4ad5 --- /dev/null +++ b/deploy-jar-single/src/main/resources/application-test.yml @@ -0,0 +1,380 @@ +spring: + application: + name: projectProgress + datasource: + # 鏄惁鏄剧ずdao涓墦鍗扮殑SQL璇彞 + show-sql: true + + ## driver-class-name: sunje.goldilocks.jdbc.GoldilocksDriver + # 娉ㄦ剰锛歁ySQL鏈嶅姟绔紝闇�瑕佽皟鏁翠袱涓弬鏁帮紝鍚﹀垯鏈嶅姟绔細涓诲姩鏂紑杩炴帴 + # wait_timeout: 瓒呰繃鏀规椂闂�(绉�)鏈嶅姟绔富鍔ㄦ柇寮� + # interactive_timeout: 瀹㈡埛绔伐鍏蜂氦浜掕秴杩囪繖涓椂闂�(绉�)浼氱鍙o紝琛ㄧ幇涓簄avicat + + # Oracle閰嶇疆锛�2023-06-25 + # username: FINANCE_OPS_PROD + # password: FINANCE_OPS_PROD + # driver-class-name: oracle.jdbc.OracleDriver + # url: jdbc:oracle:thin:@10.8.10.2:1521/pdb_YWZC + # username: C##FINANCE_OPS_TEST + # password: FINANCE_OPS_TEST + # driver-class-name: oracle.jdbc.OracleDriver + # url: jdbc:oracle:thin:@116.198.40.76:1521/cdb1 + + + username: root + password: Bjjmy_2020 + url: jdbc:mysql://116.198.40.76:3306/project_progress_manage_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false + + # username: root + # password: Bjjmy_2020 + # url: jdbc:mysql://116.198.40.76:3306/iplatform?useUnicode=true&characterEncoding=UTF-8&useSSL=false + + # 杈炬ⅵ鏁版嵁搴� + # driver-class-name: dm.jdbc.driver.DmDriver + # username: iplatform + # password: iplatform + # url: jdbc:dm://116.198.39.83:5236?schema=iplatform + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 浣跨敤 Hikari 杩炴帴姹� + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # type: com.walker.jdbc.ds.DefaultDataSource + # hikari: + # minimum-idle: 5 + # idle-timeout: 600000 + # pool-name: databasePool_walker + # # 杩炴帴鏈�澶ц秴鏃舵椂闂� + # connection-timeout: 30000 + # # 杩炴帴姹犳渶澶ф暟閲� + # maximum-pool-size: 10 + # # 鎺у埗姹犱腑杩炴帴鏈�澶х敓瀛樻湡 + # # max-lifetime: 70000 + # # 姝ゅ睘鎬ф帶鍒舵祴璇曡繛鎺ユ槸鍚︽椿璺冪殑鏈�闀挎椂闂淬�傛鍊煎繀椤诲皬浜� connectionTimeout + # validation-timeout: 10000 + # # + # connection-test-query: select 1 + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 浣跨敤 Druid 杩炴帴姹� + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + type: com.walker.jdbc.ds.MyDruidDataSource + druid: + initial-size: 5 + min-idle: 10 + max-active: 20 + # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂� + max-wait: 60000 + # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣 + time-between-eviction-runs-millis: 60000 + # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣 瓒呰繃杩欎釜鏃堕棿姣忔浼氬洖鏀堕粯璁�3涓繛鎺� + min-evictable-idle-time-millis: 30000 + # 绾夸笂閰嶇疆鐨刴ysql鏂紑闂茬疆杩炴帴鏃堕棿涓�1灏忔椂,鏁版嵁婧愰厤缃洖鏀舵椂闂翠负3鍒嗛挓,浠ユ渶鍚庝竴娆℃椿璺冩椂闂村紑濮嬬畻 + max-evictable-idle-time-millis: 180000 + validation-query: select 1 + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-open-prepared-statements: 100 + use-global-data-source-stat: true + + # redis: + # host: 127.0.0.1 + # port: 6379 + # database: 10 + # #password: Jmy2019. + redis: + host: 116.198.40.76 + port: 6379 + database: 10 + password: Jmy2019. + + + mvc: + pathmatch: + # 鍔犺閰嶇疆鏄洜涓� swagger3 鍚姩鎶ラ敊锛�2023-02-23 + matching-strategy: ant_path_matcher + + hiddenmethod: + filter: + enabled: true # 鍔犱笂璇ラ厤缃彲浠ユ帴鏀�: application/x-www-form-urlencoded璇锋眰鍙傛暟涓哄璞°�傛敮浠橀�氱煡涓娇鐢ㄣ��2023-02-26 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 300MB + +server: + port: 8082 + servlet: + context-path: /admin + session: + timeout: 30m + +logging: + level: + # 鍏ㄥ眬杈撳嚭绾у埆 off < trace < debug < info < warn < error < fatal + root: info + org: + springframework: info + io.swagger: warn + io: + netty: info + com: + walker: debug + iplatform: debug + finance: debug + cti: debug + robot: error + + charset: + # 鎺у埗鍙扮紪鐮� + console: UTF-8 + # 杈撳嚭鏂囦欢缂栫爜 + file: UTF-8 + logback: + rollingpolicy: + # 鍗曚釜鏂囦欢鏈�澶т负30MB锛岃秴杩囦箣鍚庝細鎵撳寘鎴愪竴涓棩蹇楁枃浠� + max-file-size: 30MB + # 鏂囦欢淇濆瓨7澶� + max-history: 7 + # 鎵撳寘鏂囦欢鏍煎紡,榛樿锛� ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz,涔﹀啓鏍煎紡涓猴細鏂囦欢璺緞/鏂囦欢鍚�.%i.鏂囦欢鍚庣紑,鍏朵腑%i涓嶅彲鐪佸幓锛屽惁鍒欐棤鏃ュ織鏄剧ず + # 渚嬪锛� 鏃ユ湡涓猴細2023/07/13 ,鍒欐墦鍖呮枃浠朵箣鍚庝负锛� log/ota.2023-07-13.0.gz,0琛ㄧず鏃ュ織鐨勭涓�閮ㄥ垎锛屽悗缁氨鏄紝1,2,3... + # 濡傛灉鏄帇缂╁寘锛岄噷闈細澶氫竴涓悕log/ota.2023-07-13.0鐨勬棩蹇楁枃浠� + # 濡備笅闈㈢殑渚嬪瓙锛屾墦鍖呬箣鍚庝负: log/2023-07/ota.2020-07-13.0.log锛岃繖鏄竴涓棩蹇楁枃浠� + file-name-pattern: ${logging.file.path}%d{yyyy-MM}/finance.%d{yyyy-MM-dd}.%i.log + file: + name: ${logging.file.path}finance.log + path: D:/log/ + +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# 骞冲彴閰嶇疆鏀寔鍔熻兘 +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +iplatform: + + # 骞冲彴缂撳瓨锛屾槸鍚﹀惎鐢╮edis缂撳瓨锛岄粯璁や娇鐢ㄥ熀浜庡唴瀛樼紦瀛�. + # 娉ㄦ剰锛氬鏋滃紑鍚痳edis缂撳瓨锛屼笟鍔″伐绋嬪繀椤讳緷璧�(walker-support-redis) + cache: + redis-enabled: true + # 鏈烘瀯鐢ㄦ埛鏄惁寰堝簽澶э紝濡傛灉鏄垯缂撳瓨涓細鍏抽棴鍒濆鍖栧姞杞斤紝鍚屾椂鏈烘瀯鏍戜篃涓嶄細鏀惧叆缂撳瓨锛�2023-07-17 + org-user-big: true + + # 鐩镐技搴﹀垎鏋愭ā鍧椾娇鐢�(宸插簾寮�) + # similarity: + # # 鏄惁鍚敤鐩镐技搴︽ā鍧楋紝濡傛灉绂佺敤鍒欒纭繚娉ㄥ叆鏃舵敮鎸佷负绌� + # enabled: false + # milvus-host: 172.16.60.65 + # milvus-port: 19530 + # word-file: d:/dev_tools/ai/w2v_sogou_dim300_vocab.txt + # embedding-file: d:/dev_tools/ai/w2v_sogou_dim300.npy + + # 璋冨害鍣ㄦā鍧楋紝鏄惁鍚敤 + scheduler: + enabled: false + # 鏄惁鏀寔鏁版嵁搴撳瓨鍌ㄤ换鍔�(搴熷純璇ラ厤缃�) + database-enabled: false + + # 鏁版嵁閲囬泦妯″潡 + gather: + enabled: false + + # 鏉冮檺鎺у埗鐩稿叧 + security: + # 鍖垮悕鍙闂湴鍧�(寮�鏀惧湴鍧�) + anonymous-list: + - /chat/auto/robot/** + - /login + - /register + - /captcha/* # 楠岃瘉鐮佺粺涓�鏀惧紑 + - /test/** # 寮�鍙戞祴璇曪紝浠呭紑鍙戞澘鍙敤 + - /swagger-resources/** # swagger + - /swagger-ui/** # swagger + - /v3/** # swagger + - /pay/notify/** # 鏀粯閫氱煡 + - /jmreport/** # 绉湪鎶ヨ〃 + - /api/cti/net/** # 缃戠粶杩炴帴鐘舵�佹娴� + - /api/cti/customer/** # 瀹㈡湇璁剧疆 + - /api/** # 鍛煎彨涓績鍥炶皟 + - /platform/fin/** + - /platform/fin/sys/org/** + - /platform/fin/sys/user/** + - /platform/fin/sys/project/** + - /platform/fin/sys/tenant/** + - /platform/fin/sys/tenant/user/** + - /robot/** + - /platform/fin/supplier/** + - /chat/user/** #鑱婂ぉ + - /third_party/budget/login + - /platform/fin/project/** # 棰勭畻涓�浣撳寲鐧诲綍瀵规帴锛屽墠绔闂殑鐧诲綍鍦板潃銆�2023-07-03 + - /platform/fin/sys/server/** + - /platform/fin/project/category/** + - platform/fin/sys/tenant/user/** #鐢ㄦ埛 + - /platform/fin/project/** + - /platform/fin/event/** + - /admin/platform/fin/project/* + - /platform/fin/sla/config/** + - /platform/fin/library/** + - /platform/fin/sla/** + - /platform/fin/supplier/user/getRole + - /admin/platform/fin/sys/tenant/user/* # 棰勭畻涓�浣撳寲鐧诲綍瀵规帴锛屽墠绔闂殑鐧诲綍鍦板潃銆�2023-07-03 + - /system/role/** + - /robot/test/** + - /platform/fin/node/** + - /platform/fin/project/member/** #鍥㈤槦鎴愬憳 + - /robot/** + - /platform/fin/init/jn/** #鍒濆鍖栨帴鍙� + - /platform/fin/project/manage/** + - /platform/fin/sla/config/** #鍒濆鍖栨帴鍙� + - /platform/fin/sla/** #鍒濆鍖栨帴鍙� + - /platform/fin/cate/user/select/sla/** #鍒濆鍖栨帴鍙� + - /platform/fin/sta/template/** #婊℃剰搴︽帴鍙� + - /system/dict/type + - /platform/fin/chat/reply/** #蹇嵎鍥炲 + - /platform/fin/file/upload #鏂囦欢涓婁紶锛岃鍕跨鐢ㄥ拰閰嶇疆 + - /file/** #璇峰嬁绂佺敤鍜岄厤缃� + - /platform/fin/node/define/select + - /platform/fin/cate/user/** + - /platform/fin/node/define/** + # 鍏佽鎵�鏈夎璇佺敤鎴烽兘鍙闂湴鍧�锛岃鎱庨噸鍚﹀垯鏉冮檺閮借繃澶э紝涓�鑸珹PI閮藉簲璇ヨ缃湪杩欓噷 + permit-list: + # - /permit # 鍏敤鏉冮檺锛�2023-03-13锛屽钩鍙颁唬鐮佸凡缁忔坊鍔犺繃浜嗭紝杩欓噷涓嶉渶瑕侀厤缃� + - /getInfo + - /system/** + - /getRouters + - /getMenus # 鏂扮晫闈㈣彍鍗曪紝2023-05-12 + - /logout + # - /api/** + + # 瓒呯骇绠$悊鍛樺瘑鐮侊紝鍔犲瘑鍚庣殑绉樻枃 + supervisor-password: $2a$10$9lSwwUFMULR6/KhPsUbTj.0PTZfTnq0fB3OtS6PWoKAibpa8hL1cy + + # 鏄惁鍏佽閰嶇疆璺ㄥ煙鍝嶅簲澶�, true 鍚敤锛� false 涓嶅惎鐢ㄣ��2022-12-28 + # 鍦℅ateway妯″紡涓紝闇�瑕佸叧闂法鍩熼厤缃紝鍥犱负缃戝叧涔熶細閰嶇疆銆� + cors-enabled: true + + # 鐢ㄦ埛鍚嶅瘑鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-user-pass: code + # 鎵嬫満楠岃瘉鐮佹柟寮忕櫥褰曪紝閰嶇疆鐨勯獙璇佺爜绫诲瀷锛歝ode/sms/slide/jigsaw锛�2023-03-14 + login-captcha-sms-code: sms + + # 鏄惁鍏佽鍚庡彴鐢ㄦ埛锛堥潪App锛夌櫥褰曟墜鏈虹锛�2023-03-20 + allow-pc-user-access-app: true + + # PC绔痶oken澶辨晥鍒嗛挓锛岄粯璁わ細120鍒嗛挓锛�2023-03-28 + token-expire-web: 720 + # 绉诲姩绔痶oken澶辨晥鍒嗛挓锛�2023-03-28 + token-expire-mobile: 21600 + + # 鐢ㄦ埛浣撶郴锛堢敤鎴峰悕锛夐兘鏄墜鏈哄彿锛�2023-06-28 + # 涓�鑸郴缁烶C绔�氬父閮戒笉鏄墜鏈哄彿浣滀负鐢ㄦ埛鍚嶏紝鍙湁鍦ㄤ簰鑱旂綉鐩稿叧绯荤粺涓細瀛樺湪鎵嬫満鍙蜂綔涓虹櫥褰曡处鍙� + user-name-is-phone: false + + # 2023-07-11 鐧诲綍绛栫暐閰嶇疆锛屽垪琛ㄤ腑瀛樺湪鐨勭瓥鐣ラ兘琛ㄧず鍚敤锛堜笉鍚敤鐨勫垹鎺夛級 + login-strategy-list: + # - com.iplatform.base.support.strategy.WebOnceLoginStrategy + + # 鐢ㄦ埛鐩稿叧瀹夊叏閰嶇疆锛�2023-08-03 + user: + # 鐢ㄦ埛淇敼瀵嗙爜绛夌骇锛屽垎鍥涚骇锛�1-2-3-4锛屽父閲忥細PasswordUtils# + pass-level: 4 + # 鏄惁寮哄埗鐢ㄦ埛淇敼榛樿瀵嗙爜锛� + pass-default-modify: true + + # 浠g爜鐢熸垚锛�2022-11-26 + gen: + # 浣滆�� + author: Mike + # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool + package-name: com.iplatform.model.po + # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸false + auto-remove-pre: false + # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛� + table-prefix: s_ + + log: + # 鏄惁鎵撳紑鐧诲綍鏃ュ織锛�2023-01-05 + # 濡傛灉涓嶆墦寮�锛屽垯璁惧鐧诲綍鐨剈uid鏇存柊鎿嶄綔涔熸棤娉曡幏寰楋紝鐢ㄤ簬璁板綍姣忎釜鐧诲綍鐢ㄦ埛鐨剈uid锛堢敤鎴风櫥褰曡鑹叉洿鏂帮級锛�2023-03-23 + login-enabled: true + # 鏄惁鎵撳紑鎿嶄綔鏃ュ織锛�2023-01-05 + operate-enabled: false + + # 楠岃瘉鐮佺浉鍏抽厤缃紝2023-01-27 + captcha: + # 鍥惧舰楠岃瘉鐮佸疄鐜扮被, TextCaptchaProvider | DefaultCaptchaProvider + image-captcha-class: com.iplatform.base.captcha.TextCaptchaProvider + # 鐭俊楠岃瘉鐮佸疄鐜扮被锛堥厤缃簾寮冿紝2023-04-25锛� + sms-captcha-class: com.iplatform.base.captcha.MockSmsCaptchaProvider + + # 骞冲彴鏂囦欢瀛樺偍閰嶇疆锛�2023-02-15 + file: + # FileStoreType = FileSystem 鏈湴纾佺洏瀛樺偍鏍硅矾寰� + file-root: d:/tmp/ + ftp: + ip: 116.198.40.76 + port: 22 + user-name: mysftp + password: Bjjmy_2020 + private-key: + # ftp鏈嶅姟涓婇潰鐨勫瓨鍌ㄦ牴璺緞锛屽彧鑳芥槸linux璺緞 + # file-root: /files/ + file-root: /train/ + + # 鎺ュ彛鏂囨。鐢熸垚锛宻wagger3锛�2023-02-23 + swagger: + # 鍖呰矾寰勶紝鏆傛椂涓嶇敤 + base-package: com.iplatform.base.controller + title: 浜戝師鐢熷井鏈嶅姟骞冲彴 + description: 涓�涓揩閫焪eb寮�鍙戞鏋� + + # TCP閫氫俊閰嶇疆锛�2023-04-17 + tcp: + # 鏄惁寮�鍚紩鎿� + enabled: true + # 鏄惁鎵撳紑蹇冭烦 + open-heart-beat: false + # 蹇冭烦鏃堕棿锛堢锛夛紝2023-08-28 + heart-beat-seconds: 120 + # 鏄惁鏄剧ず璇︾粏鏃ュ織 + show-log: false + # 璇锋眰闃熷垪绫诲瀷锛歮emory 鍩轰簬鍐呭瓨 + queue-type: memory + # tcp鏂瑰紡瑕佹壂鎻忕殑璇锋眰瀵硅薄鐨勫寘绌洪棿 + scan-packages-tcp: com.walker.tcp,com.iplatform.tcp + # websocket鏂瑰紡瑕佹壂鎻忕殑璇锋眰瀵硅薄鐨勫寘绌洪棿 + scan-packages-ws: com.iplatform.tcp.util.ws,com.finance.chat.util.ws + # tcp闀胯繛鎺ョ殑绔彛 + port-tcp: 7878 + # websocket杩炴帴绔彛 + port-ws: 60000 + # websocket杩炴帴uri + websocket-uri: ws://172.16.60.41:60000/websocket + # 閫氫俊绾跨▼鏁伴噺 + boss-thread-num: 2 + # 涓氬姟澶勭悊绾跨▼鏁伴噺 + worker-thread-num: 4 + # 鍚敤鑷畾涔夎繛鎺ョ鐞嗗櫒锛屽鏋渢rue鍒欎笟鍔¢渶瑕佹彁渚涜嚜瀹氫箟瀹炵幇锛堥厤缃級锛�2023-07-18 + custom-connection-manager: true + + # 鎺ㄩ�佹ā鍧楅厤缃紝2023-04-25 + push: + # 鐭俊鎺ㄩ�佽�呭悕绉帮細mock_sms_push锛堟ā鎷熺煭淇★級锛宎lidy_sms_push锛堥樋閲屽ぇ楸肩煭淇★級 + sms-push-name: mock_sms_push + # 鐭俊楠岃瘉鐮佹ā鏉縄D锛屾牴鎹疄闄呮儏鍐碉紙姣忎釜骞冲彴鍙兘涓嶅悓锛� + sms-template-code: template_code + + # 瀵逛簬涓�鑸笟鍔℃彁閱掞紙涓嶅寘鎷細閭欢銆佺煭淇★級锛屾帹閫佺殑鏂瑰紡銆傛帹閫佽�匢D缁勫悎 + # && 琛ㄧず骞跺垪锛寍| 琛ㄧず鎴栵紙鍙涓�涓垚鍔熷氨OK锛� + # 2023-04-26锛屽彲鐢ㄧ殑 id = 'tcp', 'web_socket', 'wx', 'system' + # message-type: tcp && web_socket && wx && system + # 濡傛灉鏄垨鑰呮柟寮忥紝闇�瑕佹妸鏈�鍙潬鐨勬斁鍓嶉潰锛屽洜涓虹郴缁熶細鎵惧埌绗竴涓彂閫佹垚鍔熷嵆鍙�� + message-type: system || tcp || web_socket || wx + + # 閭欢閫氱煡鍙戦�佷俊鎭厤缃紝2023-04-26 + mail-server: smtp.126.com + mail-from: hnzzzhsl@126.com + mail-password: test + + +fin: + projectCode: CZT_YS_YTH_001 + # 鍖哄垎鐪佺骇CODE + provinceCode: 410000000 diff --git a/deploy-jar-single/src/main/resources/application.yml b/deploy-jar-single/src/main/resources/application.yml new file mode 100644 index 0000000..ad9a171 --- /dev/null +++ b/deploy-jar-single/src/main/resources/application.yml @@ -0,0 +1,4 @@ +spring: + profiles: + active: dev + diff --git "a/deploy-jar-single/src/main/resources/import/\346\234\272\346\236\204\345\257\274\345\205\245\346\250\241\346\235\277.xls" "b/deploy-jar-single/src/main/resources/import/\346\234\272\346\236\204\345\257\274\345\205\245\346\250\241\346\235\277.xls" new file mode 100644 index 0000000..1a241ff --- /dev/null +++ "b/deploy-jar-single/src/main/resources/import/\346\234\272\346\236\204\345\257\274\345\205\245\346\250\241\346\235\277.xls" Binary files differ diff --git a/deploy-jar-single/src/main/resources/wk_sn_lic.bin b/deploy-jar-single/src/main/resources/wk_sn_lic.bin new file mode 100644 index 0000000..409c46e --- /dev/null +++ b/deploy-jar-single/src/main/resources/wk_sn_lic.bin @@ -0,0 +1 @@ +乯9圭W∵�吁扗�I!3豒腯�YRCpU版O-櫱j纃mab鞲�耑$G�2噽l�6.�=葯鑚"藼m恰a軛幫宓雰礥兾w夠籇駓巶� X�偕汣籔Qa��w眮 \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5466153 --- /dev/null +++ b/pom.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <modules> + <module>deploy-jar-single</module> + <module>consum-base</module> + <module>consum-model-pojo</module> + </modules> + + <parent> + <groupId>com.iplatform</groupId> + <artifactId>iplatform</artifactId> + <version>2.3.0-SNAPSHOT</version> + </parent> + + <groupId>com.consum</groupId> + <artifactId>low-consum-manage</artifactId> + <version>1.0.0-SNAPSHOT</version> + <name>low-consum-manage</name> + <packaging>pom</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <consum-base.version>1.0.0-SNAPSHOT</consum-base.version> + <consum-model-pojo.version>1.0.0-SNAPSHOT</consum-model-pojo.version> + </properties> + + <dependencyManagement> + <dependencies> + + <!-- 2023-06-07 杩愮淮绯荤粺鍩虹妯″潡 --> + <dependency> + <groupId>com.low.consum</groupId> + <artifactId>low-consum-manage</artifactId> + <version>${consum-base.version}</version> + </dependency> + + <!-- 2023-06-15 鏁版嵁搴撳璞″畾涔夋ā鍧� --> + <dependency> + <groupId>com.low.consum</groupId> + <artifactId>consum-model-pojo</artifactId> + <version>${consum-model-pojo.version}</version> + </dependency> + + </dependencies> + </dependencyManagement> + +</project> diff --git a/project-web/.editorconfig b/project-web/.editorconfig new file mode 100644 index 0000000..3454886 --- /dev/null +++ b/project-web/.editorconfig @@ -0,0 +1,14 @@ +# https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/project-web/.env.development b/project-web/.env.development new file mode 100644 index 0000000..8880f0c --- /dev/null +++ b/project-web/.env.development @@ -0,0 +1,16 @@ +# just a flag +ENV = 'development' + +# base api +# VUE_APP_BASE_API = '/dev-api' +VUE_APP_BASE_API = 'http://127.0.0.1:8082/admin' +#VUE_APP_BASE_API = 'http://172.16.60.164:8082/admin' + +# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, +# to control whether the babel-plugin-dynamic-import-node plugin is enabled. +# It only does one thing by converting all import() to require(). +# This configuration can significantly increase the speed of hot updates, +# when you have a large number of pages. +# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js + +VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/project-web/.env.production b/project-web/.env.production new file mode 100644 index 0000000..fbee416 --- /dev/null +++ b/project-web/.env.production @@ -0,0 +1,7 @@ +# just a flag +ENV = 'production' + +# base api +# VUE_APP_BASE_API = '/prod-api' +VUE_APP_BASE_API = 'http://localhost:8080' + diff --git a/project-web/.env.staging b/project-web/.env.staging new file mode 100644 index 0000000..006524f --- /dev/null +++ b/project-web/.env.staging @@ -0,0 +1,6 @@ +ENV = 'production' + +# base api +# VUE_APP_BASE_API = '/prod-api' +VUE_APP_BASE_API = 'http://localhost:8080' + diff --git a/project-web/.eslintignore b/project-web/.eslintignore new file mode 100644 index 0000000..9611f53 --- /dev/null +++ b/project-web/.eslintignore @@ -0,0 +1,7 @@ +build/*.js +src/assets +public +dist +src/components/FormGenerator +src/directive +src/ diff --git a/project-web/.eslintrc.js b/project-web/.eslintrc.js new file mode 100644 index 0000000..b0c7f13 --- /dev/null +++ b/project-web/.eslintrc.js @@ -0,0 +1,396 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/project-web/.gitignore b/project-web/.gitignore new file mode 100644 index 0000000..78a752d --- /dev/null +++ b/project-web/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +**/*.log + +tests/**/coverage/ +tests/e2e/reports +selenium-debug.log + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.local + +package-lock.json +yarn.lock diff --git a/project-web/.prettierignore b/project-web/.prettierignore new file mode 100644 index 0000000..0f6356a --- /dev/null +++ b/project-web/.prettierignore @@ -0,0 +1,22 @@ +.DS_Store +node_modules/ +dist/ +public/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +**/*.log + +tests/**/coverage/ +tests/e2e/reports +selenium-debug.log + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.local +*.md \ No newline at end of file diff --git a/project-web/.prettierrc.js b/project-web/.prettierrc.js new file mode 100644 index 0000000..0614729 --- /dev/null +++ b/project-web/.prettierrc.js @@ -0,0 +1,35 @@ +module.exports = { + // 涓�琛屾渶澶� 120 瀛楃 + printWidth: 120, + // 浣跨敤 2 涓┖鏍肩缉杩� + tabWidth: 2, + // 涓嶄娇鐢� tab 缂╄繘锛岃�屼娇鐢ㄧ┖鏍� + useTabs: false, + // 琛屽熬闇�瑕佹湁鍒嗗彿 + semi: true, + // 浣跨敤鍗曞紩鍙蜂唬鏇垮弻寮曞彿 + singleQuote: true, + // 瀵硅薄鐨� key 浠呭湪蹇呰鏃剁敤寮曞彿 + quoteProps: 'as-needed', + // jsx 涓嶄娇鐢ㄥ崟寮曞彿锛岃�屼娇鐢ㄥ弻寮曞彿 + jsxSingleQuote: false, + // 鏈熬浣跨敤閫楀彿 + trailingComma: 'all', + // 澶ф嫭鍙峰唴鐨勯灏鹃渶瑕佺┖鏍� { foo: bar } + bracketSpacing: true, + // 绠ご鍑芥暟锛屽彧鏈変竴涓弬鏁扮殑鏃跺�欙紝涔熼渶瑕佹嫭鍙� + arrowParens: 'always', + // 姣忎釜鏂囦欢鏍煎紡鍖栫殑鑼冨洿鏄枃浠剁殑鍏ㄩ儴鍐呭 + rangeStart: 0, + rangeEnd: Infinity, + // 涓嶉渶瑕佸啓鏂囦欢寮�澶寸殑 @prettier + requirePragma: false, + // 涓嶉渶瑕佽嚜鍔ㄥ湪鏂囦欢寮�澶存彃鍏� @prettier + insertPragma: false, + // 浣跨敤榛樿鐨勬姌琛屾爣鍑� + proseWrap: 'preserve', + // 鏍规嵁鏄剧ず鏍峰紡鍐冲畾 html 瑕佷笉瑕佹姌琛� + htmlWhitespaceSensitivity: 'css', + // 鎹㈣绗︿娇鐢� lf + endOfLine: 'lf', +}; diff --git a/project-web/.travis.yml b/project-web/.travis.yml new file mode 100644 index 0000000..f4be7a0 --- /dev/null +++ b/project-web/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: 10 +script: npm run test +notifications: + email: false diff --git a/project-web/LICENSE b/project-web/LICENSE new file mode 100644 index 0000000..6151575 --- /dev/null +++ b/project-web/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-present PanJiaChen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git "a/project-web/README-\346\263\250\346\204\217\344\272\213\351\241\271.md" "b/project-web/README-\346\263\250\346\204\217\344\272\213\351\241\271.md" new file mode 100644 index 0000000..c371950 --- /dev/null +++ "b/project-web/README-\346\263\250\346\204\217\344\272\213\351\241\271.md" @@ -0,0 +1,81 @@ +# 瑙勮寖 +1. 鎵�鏈夌姸鎬侊細榛樿涓哄惎鐢ㄣ�傜粺涓�鍚嶇О涓猴細鍚敤/绂佺敤 +```sql +{ + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +``` +2. 鎵�鏈夋彁绀烘锛� + 杈撳叆妗嗕负锛氳杈撳叆銆俻laceholder: '璇疯緭鍏�' + 閫夋嫨妗嗕负锛氳閫夋嫨銆俻laceholder: '璇烽�夋嫨' + +3. 鎵�鏈夎緭鍏ユ瀹藉害涓猴細150px + style="width: 150px" + +4. 鎵�鏈塼able鍒楋細 + 鏂囧瓧瀛楃鐩稿悓鏃跺�欏眳涓�備緥濡傦細鎵嬫満鍙� + 鏂囧瓧瀛楃涓嶇浉鍚屾椂鍊欏眳宸︺�備緥濡傦細浜哄憳鍚嶇О + 鏁板瓧灞呭彸銆備緥濡傦細3.14 + +5. 鍚敤/绂佺敤/鍒犻櫎鏃跺�欓渶瑕乧onfirm鎻愮ず +```sql +switch: row => { + const result = {} + if (row.belongProvince == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鏄�', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '鍚�', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } +``` +```sql +// 淇敼鐘舵�� + updState(row) { + let vm = this + let text = row.belongProvince == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"涓虹渷鐩寸鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.belongProvince = row.belongProvince === 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.belongProvince = row.belongProvince === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) + }, +``` +6. 鏃堕棿杞崲锛歶tils->DateFormatter.js +```sql +formatter: row => { + return { value: DateFormatter.LongToDateTime(row.create_time) } + } +``` + diff --git a/project-web/README.ZBKJ.md b/project-web/README.ZBKJ.md new file mode 100644 index 0000000..0d979dd --- /dev/null +++ b/project-web/README.ZBKJ.md @@ -0,0 +1,55 @@ +鍏敤缁勪欢 +鏃犻檺鏋佸垎绫荤粍浠� src/components/Category +浣跨敤鑼冨洿锛氳彍鍗曪紝鏂囩珷绛夊悇绉嶅垎绫婚厤缃暟鎹� + +琛ㄥ崟鐢熸垚缁勪欢 +https://github.com/JakHuang/form-generator + +json娓叉煋琛ㄥ崟浠ュ強鏄惁闇�瑕佺紪杈戞暟鎹洖濉殑鍔熻兘浠ヤ笅涓轰緥 +绀轰緥锛歴rc/views/maintain/devconfig/combineEdit.vue + + +<parser v-if="formConf.fields.length > 0" :isEdit="isCreate === 1" :form-conf="formConf" :formEditData="editData" @submit="handlerSubmit" /> +娉ㄦ剰锛氳缃崟閫夋寜閽殑鍊兼椂闇�瑕佸甫涓婂崟寮曞彿锛岃涓嶆覆鏌撳緟缂栬緫鏁版嵁鏃朵笉浼氳嚜鍔ㄩ�変腑 + +鎻愮ず:濡傛灉涓嶉渶瑕佹瘡娆″埛鏂伴〉闈㈤兘寮瑰嚭浜岀淮鐮侊紝璇峰湪src/layout/index.vue涓敞閲婃垨鑰呭垹闄�15琛屼唬鐮併�� +``` +<div class="open-image" @click="clear" v-if="openImage"><img src="@/assets/imgs/pc1.png" alt=""></div> +``` + +-- 鐘舵�佸叏閮ㄤ负 鍚敤/绂佺敤 +// 琛ㄦ牸鍏叡淇敼鐘舵�佹柟娉� +鍒楅噷闈㈠啓click + click: () => { + this.updState(row) + } +methods 閲屽啓鍏ユ柟娉� +updState(row) { + let vm = this + let text = row.belongProvince == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鐪佺洿绠″悧锛�').then(function() { + let params = Object.assign({},row) + params.belongProvince = row.belongProvince===1 ? 0 : 1 + finsystenant.edit(params).then(res=>{ + if(res){ + row.belongProvince = row.belongProvince===1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) +}, + +updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function() { + let params = Object.assign({},row) + params.status = row.status == 1 ? 0 : 1 + finsysserver.edit(params).then(res=>{ + if(res){ + row.status = row.status == 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) +}, \ No newline at end of file diff --git a/project-web/README.md b/project-web/README.md new file mode 100644 index 0000000..d7977b7 --- /dev/null +++ b/project-web/README.md @@ -0,0 +1,235 @@ +# Mike +## 寮�鍙戣鑼� +缁熶竴浣跨敤ES6 璇硶 +鏂规硶娉ㄩ噴 +/* +* th => 琛ㄥご +* data => 鏁版嵁 +* fileName => 鏂囦欢鍚� +* fileType => 鏂囦欢绫诲瀷 +* sheetName => sheet椤靛悕 +*/ +export default function toExcel ({ th, data, fileName, fileType, sheetName }) +琛屾敞閲� // + +### 鍛藉悕 + +椤甸潰鐩綍 鏂囦欢澶瑰懡鍚嶆牸寮忛獑椹煎紡鍛藉悕娉�,渚嬪锛氱敤鎴峰垪琛� userList +渚嬪锛氬晢鍝佹ā鍧� +store 鍟嗗搧 + 鈹溾攢 store 鍟嗗搧绠$悊 + 鈹溾攢index.vue 棣栭〉 + 鈹溾攢 creatStore 鏂板缓鍟嗗搧 + 鈹溾攢 index.vue + 鈹溾攢 sort 鍟嗗搧鍒嗙被 + 鈹溾攢 index.vue + 鈹溾攢storeAttr 鍟嗗搧瑙勬牸 + 鈹溾攢 index.vue + 鈹溾攢storeComment 鍟嗗搧璇勮 + 鈹溾攢 index.vue + +椤甸潰鍛藉悕銆佺粍寤恒�佹枃浠跺す 鍛藉悕鏍煎紡灏忛┘宄板懡鍚嶆硶,渚嬪锛氱敤鎴峰垪琛� userList + +绫诲悕鍑芥暟鍛藉悕 澶ч┘宄板紡 渚嬪锛歛ddUser +鍙橀噺鍛藉悕 灏忛┘宄板紡 渚嬪锛歶ser 鎴栬�� userInfo +甯搁噺 閲囩敤鍏ㄥぇ浜涗笅鍒掔嚎鍛藉悕 渚嬪锛歏UE_APP_API_URl + +### 鏂囦欢绠$悊瑙勮寖 +views 椤甸潰妯″潡蹇呴』浠舵枃浠跺す鍖哄垎 +api 鎺ュ彛涓�涓ā鍧椾竴涓枃浠� +缁勫缓 涓�涓粍寤轰竴涓枃浠跺す +plugins 鎻掍欢涓�涓彃浠朵竴涓枃浠跺す +vuex 璺敱鐘舵�佺鐞嗭紝涓�涓ā鍧楀湪modules 涓缓涓�涓枃浠跺す +router 涓�涓ā鍧椾竴涓ā鍧楀湪modules 涓缓涓�涓枃浠跺す +style 鏍峰紡灏介噺閲囩敤iView鑷甫缁勫缓锛宑ommon.less 绯荤粺閫氱敤鏍峰紡涓嶈杞绘槗鍔� +鑷畾涔夐�氱敤鏍峰紡 style.less,姣忔娣诲姞蹇呴』鍔犳敞閲婏紝椤甸潰鐙珛鏍峰紡鍦ㄥ湪椤甸潰鍐呭啓锛屽悗缂�less 鏍煎紡 +缁勫缓鏍峰紡 styles 涓坊鍔犳枃浠跺す composents 瀵瑰簲components 鐩綍鏂板缓鏍峰紡鏂囦欢 +utils 鑷畾涔夊伐鍏穓s 鐙珛鍛藉悕锛屼竴鑸笉鐢ㄦ柊寤烘枃浠跺す + +## 妯″潡鍛藉悕 +~~~ +鈹溾攢 login 鐧诲綍 +鈹溾攢 dashboard 棣栭〉 +鈹溾攢 store 鍟嗗搧绠$悊 +鈹溾攢 order 绯荤粺璁㈠崟绠$悊 +鈹溾攢 distribution 鍒嗛攢 +鈹溾攢 user 鐢ㄦ埛绠$悊 +鈹溾攢 content 鍐呭绠$悊 +鈹溾攢 appSetting 鍚勪釜搴旂敤妯″潡鍔熻兘绠$悊鍏紬鍙枫�佸皬绋嬪簭銆佹敮浠樺疂銆佺櫨搴﹀皬绋嬪簭銆佷粖鏃ュご鏉″皬绋嬪簭 +鈹溾攢 marketing 钀ラ攢绠$悊 浼樻儬鍔� 绉垎 绉掓潃 +鈹溾攢 sms 璁剧疆 鐭俊璁剧疆 +鈹溾攢 systemSetting 璁剧疆 绠$悊鍛樻潈闄� 绯荤粺璁剧疆 鐗╂祦璁剧疆 +鈹溾攢 maintain 缁存姢 閰嶇疆鍒嗙被 缁勫悎鏁版嵁 琛ㄥ崟閰嶇疆 +鈹溾攢 error-page 閿欒椤� + +~~~ +## 鐩綍缁撴瀯 +涓昏鐩綍缁撴瀯鍙婅鏄庯細 +~~~ +鈹溾攢鈹� public # 闈欐�佽祫婧� +鈹� 鈹溾攢鈹� favicon.ico # favicon鍥炬爣 +鈹� 鈹斺攢鈹� index.html # html 妯℃澘 +鈹溾攢鈹� src # 婧愪唬鐮� +鈹� 鈹溾攢鈹� api # 鎵�鏈夎姹� +鈹� 鈹� 鈹斺攢鈹�user.js # 鏈夊叧鐧诲綍/鐢ㄦ埛鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�article.js # 鏈夊叧鍐呭鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�categoryApi.js # 鏈夊叧閰嶇疆鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�configTabApi.js # 鏈夊叧閰嶇疆鍒嗙被鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�dashboard.js # 鏈夊叧鎺у埗鍙扮殑鎺ュ彛 +鈹� 鈹� 鈹斺攢鈹�distribution.js # 鏈夊叧鍒嗛攢鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�logistics.js # 鏈夊叧鍩庡競鏁版嵁銆佺墿娴侀厤缃殑鎺ュ彛 +鈹� 鈹� 鈹斺攢鈹�marketing.js # 鏈夊叧浼樻儬鍒搞�佺鍒伴厤缃殑鎺ュ彛 +鈹� 鈹� 鈹斺攢鈹�order.js # 鏈夊叧璁㈠崟鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�role.js # 鏈夊叧鏉冮檺鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�roleApi.js # 鏈夊叧鑿滃崟鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�schedule.js # 鏈夊叧瀹氭椂浠诲姟鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�sms.js # 鏈夊叧鐭俊鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�product.js # 鏈夊叧鍟嗗搧鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�system.js # 鏈夊叧鍗忚鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�systemadmin.js # 鏈夊叧绠$悊鍛樼殑鎺ュ彛 +鈹� 鈹� 鈹斺攢鈹�systemConfig.js # 鏈夊叧绯荤粺閰嶇疆鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�systemFormConfig.js # 鏈夊叧琛ㄥ崟閰嶇疆鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�systemGroup.js # 鏈夊叧缁勫悎鏁版嵁鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�systemSetting.js # 鏈夊叧涓婁紶鏂囦欢鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�user.js # 鏈夊叧鐢ㄦ埛鐨勬帴鍙� +鈹� 鈹� 鈹斺攢鈹�videoChannel.js # 鏈夊叧瑙嗛鍙风殑鎺ュ彛 +鈹� 鈹� 鈹斺攢鈹�wxApi.js # 鏈夊叧寰俊鐨勬帴鍙� +鈹� 鈹溾攢鈹� assets # 鍥剧墖銆乻vg 绛夐潤鎬佽祫婧� +鈹� 鈹溾攢鈹� components # 鍏叡缁勪欢 +鈹� 鈹� 鈹斺攢鈹�articleList # 鏂囩珷鍒楄〃 +鈹� 鈹� 鈹斺攢鈹�base # 鍏叡缁勪欢 +鈹� 鈹� 鈹斺攢鈹�Breadcrumb # 澶撮儴鏍囬鏍囩 +鈹� 鈹� 鈹斺攢鈹�cards # 缁熻灏忔柟鍧� +鈹� 鈹� 鈹斺攢鈹�echartsNew # 缁熻鍥� +鈹� 鈹� 鈹斺攢鈹�Category # 鍟嗗搧鍒嗙被銆佹枃瀛楀垎绫� +鈹� 鈹� 鈹斺攢鈹�FormGenerator # 琛ㄥ崟閰嶇疆 +鈹� 鈹� 鈹斺攢鈹�goodsList # 鍟嗗搧鍒楄〃 +鈹� 鈹� 鈹斺攢鈹�Hamburger # 瀵艰埅鏀剁缉缁勪欢 +鈹� 鈹� 鈹斺攢鈹�HeaderSearch # 瀵艰埅鎼滅储缁勪欢 +鈹� 鈹� 鈹斺攢鈹�linkaddress # 椤甸潰璁捐绉诲姩绔〉闈㈣矾鐢� +鈹� 鈹� 鈹斺攢鈹�merchantName # 鍟嗘埛鍚嶇О鎼滅储缁勪欢 +鈹� 鈹� 鈹斺攢鈹�OrderDetail # 璁㈠崟璇︽儏 +鈹� 鈹� 鈹斺攢鈹�RightPanel # 鍙充晶璁剧疆鎸夐挳锛岃缃鑸浉鍏� +鈹� 鈹� 鈹斺攢鈹�Screenfull # 鍏ㄥ睆 +鈹� 鈹� 鈹斺攢鈹�SvgIcon # svg鍥炬爣 +鈹� 鈹� 鈹斺攢鈹�Tinymce # 瀵屾枃鏈紪杈戝櫒 +鈹� 鈹� 鈹斺攢鈹�TopNav # 椤堕儴涓�绾у鑸� +鈹� 鈹� 鈹斺攢鈹�ThemePicker # 鍙充晶璁剧疆鎸夐挳锛岃缃粍棰橀鑹� +鈹� 鈹� 鈹斺攢鈹�Upload # 涓婁紶鏂囦欢缁勪欢 +鈹� 鈹� 鈹斺攢鈹�UploadExcel # 涓嬭浇Excel +鈹� 鈹� 鈹斺攢鈹�userList # 鐢ㄦ埛鍒楄〃 +鈹� 鈹溾攢鈹� layouts # 瀵艰埅甯冨眬 +鈹� 鈹� 鈹溾攢鈹�index # 涓婚〉闈� +鈹� 鈹� 鈹溾攢鈹�components # 瀵艰埅缁勪欢 +鈹� 鈹� 鈹斺攢鈹�copyright # 鑴氶儴鐗堟潈淇℃伅 +鈹� 鈹� 鈹斺攢鈹�Settings # 鍙宠竟灏忔寜閽紝璁剧疆瀵艰埅绛� +鈹� 鈹� 鈹斺攢鈹�Sidebar # 渚ц竟瀵艰埅 +鈹� 鈹� 鈹斺攢鈹�TagsView # tab鏍囩椤靛鑸� +鈹� 鈹� 鈹斺攢鈹�Navbar # 澶撮儴瀵艰埅 +鈹� 鈹� 鈹斺攢鈹�AppMain # 瀵艰埅璺敱 +鈹� 鈹� 鈹斺攢鈹�index.js # 缁勪欢寮曠敤 +鈹� 鈹� 鈹斺攢鈹�mixins # 鑷�傚簲澶у皬 +鈹� 鈹溾攢鈹� libs # 鍏叡js鏂规硶 +鈹� 鈹� 鈹斺攢鈹�settingMer # 閰嶇疆璇锋眰鍦板潃 +鈹� 鈹� 鈹斺攢鈹�dialog # 绉诲姩绔悙涓濆脊绐� +鈹� 鈹� 鈹斺攢鈹�index.js # 閰嶇疆鍏ㄥ眬浣跨敤鎻掍欢 +鈹� 鈹� 鈹斺攢鈹�modal-icon.js # 鍥炬爣搴撴彃浠� +鈹� 鈹� 鈹斺攢鈹�modal-parserFrom.js # 鑷畾涔夎〃鍗曞脊绐楁彃浠� +鈹� 鈹� 鈹斺攢鈹�modal-sure.js # 纭畾寮圭獥鎻掍欢 +鈹� 鈹� 鈹斺攢鈹�timeOptions.js # 褰撳墠鏃堕棿鏃ユ湡閫夋嫨鍣ㄧ壒鏈夌殑閫夐」 +鈹� 鈹� 鈹斺攢鈹�wechat.js # 寰俊鐩稿叧 +鈹� 鈹� 鈹斺攢鈹�yearOptions.js # 褰撳墠骞翠唤閫夋嫨鍣ㄧ壒鏈夌殑閫夐」 +鈹� 鈹溾攢鈹� views # 鎵�鏈夐〉闈� +鈹� 鈹� 鈹斺攢鈹�login # 鐧诲綍 +鈹� 鈹� 鈹斺攢鈹�index # 鐧诲綍 +鈹� 鈹� 鈹斺攢鈹�dashboard # 棣栭〉 +鈹� 鈹� 鈹斺攢鈹�error-page # 閿欒椤� +鈹� 鈹� 鈹斺攢鈹�404 # 閿欒椤�404 +鈹� 鈹� 鈹斺攢鈹�403 # 閿欒椤�403 +鈹� 鈹溾攢鈹� filters # 杩囨护鍣� +鈹� 鈹溾攢鈹� router # 璺敱閰嶇疆 +鈹� 鈹� 鈹斺攢鈹�modules # 椤甸潰璺敱妯″潡 +鈹� 鈹� 鈹斺攢鈹�content.js # 鏈夊叧鍐呭 鏂囩珷 +鈹� 鈹� 鈹斺攢鈹�user.js # 鏈夊叧鐢ㄦ埛 +鈹� 鈹� 鈹斺攢鈹�application.js # 鏈夊叧搴旂敤 +鈹� 鈹� 鈹斺攢鈹�marketing.js # 鏈夊叧绉垎銆佺鍒� +鈹� 鈹� 鈹斺攢鈹�operation.js # 鏈夊叧璁剧疆 +鈹� 鈹� 鈹斺攢鈹�index.js # 璺敱鐨勬眹鎬� +鈹� 鈹溾攢鈹� store # Vuex 鐘舵�佺鐞� +鈹� 鈹溾攢鈹� utils # 鍏ㄥ眬鍏敤鏂规硶 +鈹� 鈹� 鈹斺攢鈹�auth.js # Cookies绠$悊 +鈹� 鈹� 鈹斺攢鈹�request.js # 璇锋眰灏佽 +鈹� 鈹� 鈹斺攢鈹�settingIplatform.js # 璇锋眰鍦板潃閰嶇疆 +鈹� 鈹� 鈹斺攢鈹�ZBKJIutil.js # 鍏叡鍑芥暟宸ュ叿 +鈹� 鈹� 鈹斺攢鈹�validate.js # 鍏叡鏁欐牎楠屽伐鍏� +鈹� 鈹� 鈹斺攢鈹�parsing.js # 閫氱敤js鏂规硶灏佽宸ュ叿 +鈹� 鈹� 鈹斺攢鈹�constants.js # 鍏ㄥ眬闈欐�佸彉閲忓伐鍏� +鈹� 鈹� 鈹斺攢鈹�clipboard.js # 绮樿创澶嶅埗宸ュ叿 +鈹� 鈹� 鈹斺攢鈹�permission.js # 鏉冮檺鍒ゆ柇 +鈹� 鈹溾攢鈹� styles # 鏍峰紡绠$悊 +鈹� 鈹溾攢鈹� permission.js # 璺敱鎷︽埅 +鈹� 鈹溾攢鈹� main.js # 鍏ュ彛鏂囦欢 鍔犺浇缁勪欢 鍒濆鍖栫瓑 +鈹� 鈹斺攢鈹� App.vue # 鍏ュ彛椤甸潰 +鈹溾攢鈹� tests # 娴嬭瘯 +鈹溾攢鈹� .env.xxx # 鐜鍙橀噺閰嶇疆 +鈹溾攢鈹� .eslintrc.js # eslint 閰嶇疆椤� +鈹溾攢鈹� .babelrc # babel-loader 閰嶇疆 +鈹溾攢鈹� .travis.yml # 鑷姩鍖朇I閰嶇疆 +鈹溾攢鈹� vue.config.js # vue-cli 閰嶇疆 +鈹溾攢鈹� postcss.config.js # postcss 閰嶇疆 +鈹斺攢鈹� package.json # package.json + + +~~~ +## 寮�鍙� + +```bash +# 鍏嬮殕椤圭洰 +git clone https://gitee.com/ZhongBangKeJi/crmeb_java/ + +# 杩涘叆椤圭洰鐩綍 +cd ## + +# 瀹夎渚濊禆 +npm install + +# 寤鸿涓嶈鐩存帴浣跨敤 cnpm 瀹夎渚濊禆锛屼細鏈夊悇绉嶈寮傜殑 bug銆傚彲浠ラ�氳繃濡備笅鎿嶄綔瑙e喅 npm 涓嬭浇閫熷害鎱㈢殑闂 +npm install --registry=https://registry.npm.taobao.org + +# 鍚姩鏈嶅姟 +npm run dev +``` + +娴忚鍣ㄨ闂� http://localhost + +## 鍙戝竷 + +```bash +# 鏋勫缓娴嬭瘯鐜 +npm run build:stage + +# 鏋勫缓鐢熶骇鐜 +npm run build:prod +``` + +## 鍏跺畠 + +```bash +# 棰勮鍙戝竷鐜鏁堟灉 +npm run preview + +# 棰勮鍙戝竷鐜鏁堟灉 + 闈欐�佽祫婧愬垎鏋� +npm run preview -- --report + +# 浠g爜鏍煎紡妫�鏌ュ苟鑷姩淇 +npm run prettier +``` + +## 鍙兘闇�瑕佺殑搴� +```bash +# 閲嶆柊瀹夎 +npm install --registry=https://registry.npm.taobao.org +``` + "highlight.js": "10.7.3", + + diff --git a/project-web/babel.config.js b/project-web/babel.config.js new file mode 100644 index 0000000..5072fb2 --- /dev/null +++ b/project-web/babel.config.js @@ -0,0 +1,10 @@ +module.exports = { + presets: [ + ['@vue/app', + { + 'useBuiltIns': 'entry', + polyfills: ['es6.promise', 'es6.symbol'] + } + ] + ] +} diff --git a/project-web/build/index.js b/project-web/build/index.js new file mode 100644 index 0000000..0c57de2 --- /dev/null +++ b/project-web/build/index.js @@ -0,0 +1,35 @@ +const { run } = require('runjs') +const chalk = require('chalk') +const config = require('../vue.config.js') +const rawArgv = process.argv.slice(2) +const args = rawArgv.join(' ') + +if (process.env.npm_config_preview || rawArgv.includes('--preview')) { + const report = rawArgv.includes('--report') + + run(`vue-cli-service build ${args}`) + + const port = 9526 + const publicPath = config.publicPath + + var connect = require('connect') + var serveStatic = require('serve-static') + const app = connect() + + app.use( + publicPath, + serveStatic('./dist', { + index: ['index.html', '/'] + }) + ) + + app.listen(port, function () { + console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) + if (report) { + console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) + } + + }) +} else { + run(`vue-cli-service build ${args}`) +} diff --git a/project-web/jest.config.js b/project-web/jest.config.js new file mode 100644 index 0000000..143cdc8 --- /dev/null +++ b/project-web/jest.config.js @@ -0,0 +1,24 @@ +module.exports = { + moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], + transform: { + '^.+\\.vue$': 'vue-jest', + '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': + 'jest-transform-stub', + '^.+\\.jsx?$': 'babel-jest' + }, + moduleNameMapper: { + '^@/(.*)$': '<rootDir>/src/$1' + }, + snapshotSerializers: ['jest-serializer-vue'], + testMatch: [ + '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' + ], + collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], + coverageDirectory: '<rootDir>/tests/unit/coverage', + // 'collectCoverage': true, + 'coverageReporters': [ + 'lcov', + 'text-summary' + ], + testURL: 'http://localhost/' +} diff --git a/project-web/jsconfig.json b/project-web/jsconfig.json new file mode 100644 index 0000000..958df04 --- /dev/null +++ b/project-web/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} \ No newline at end of file diff --git a/project-web/package.json b/project-web/package.json new file mode 100644 index 0000000..3aaa013 --- /dev/null +++ b/project-web/package.json @@ -0,0 +1,114 @@ +{ + "name": "psm-web", + "version": "0.0.1", + "description": "Fixed asset project schedule management.", + "author": "king source", + "license": "MIT", + "scripts": { + "dev": "vue-cli-service serve", + "build:prod": "vue-cli-service build", + "build:stage": "vue-cli-service build --mode staging", + "preview": "node build/index.js --preview", + "prettier:comment": "鑷姩鏍煎紡鍖栧綋鍓嶇洰褰曚笅鐨勬墍鏈夋枃浠�", + "prettier": "prettier --write .", + "lint": "eslint --fix --ext .js,.vue src", + "test:unit": "jest --clearCache && vue-cli-service test:unit", + "test:ci": "npm run lint && npm run test:unit", + "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", + "new": "plop" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "src/**/*.{js,vue}": [ + "eslint --fix", + "git add" + ] + }, + "dependencies": { + "@babel/parser": "^7.9.6", + "@riophae/vue-treeselect": "0.4.0", + "async-validator": "^1.11.2", + "axios": "^0.24.0", + "babel-polyfill": "^6.26.0", + "clipboard": "^2.0.4", + "core-js": "^2.6.11", + "crypto-js": "^4.1.1", + "echarts": "4.2.1", + "echarts-wordcloud": "^1.1.3", + "element-ui": "2.15.6", + "file-saver": "2.0.1", + "fuse.js": "3.4.4", + "html2canvas": "^1.4.1", + "js-cookie": "3.0.1", + "jsencrypt": "^3.3.2", + "jsonlint": "1.6.3", + "jszip": "3.2.1", + "mpvue-calendar": "^2.3.7", + "normalize.css": "7.0.0", + "nprogress": "0.2.0", + "path-to-regexp": "2.4.0", + "qrcodejs2": "^0.0.2", + "sass": "1.26.2", + "sass-loader": "^7.2.0", + "screenfull": "4.2.0", + "script-loader": "0.7.2", + "store": "^2.0.12", + "throttle-debounce": "^2.1.0", + "vconsole": "^3.3.2", + "viewerjs": "^1.11.3", + "vue": "2.6.10", + "vue-awesome-swiper": "^3.1.3", + "vue-baidu-map": "^0.21.22", + "vue-cropper": "^0.5.8", + "vue-echarts": "^4.0.3", + "vue-router": "3.0.2", + "vue-ydui": "^1.2.6", + "vuedraggable": "^2.20.0", + "vuex": "3.1.0", + "wechat-jssdk": "^5.0.4", + "wordcloud": "^1.2.2", + "xlsx": "0.14.1" + }, + "devDependencies": { + "@babel/core": "7.0.0", + "@babel/register": "7.0.0", + "@vue/cli-plugin-babel": "3.5.3", + "@vue/cli-plugin-eslint": "^3.9.1", + "@vue/cli-plugin-unit-jest": "3.5.3", + "@vue/cli-service": "3.5.3", + "@vue/test-utils": "1.0.0-beta.29", + "babel-core": "7.0.0-bridge.0", + "babel-jest": "23.6.0", + "chalk": "2.4.2", + "chokidar": "^3.1.1", + "connect": "3.6.6", + "eslint": "5.15.3", + "eslint-plugin-vue": "5.2.2", + "html-webpack-plugin": "3.2.0", + "husky": "1.3.1", + "lint-staged": "8.1.5", + "mockjs": "^1.0.1-beta3", + "plop": "2.3.0", + "prettier": "^2.5.1", + "runjs": "^4.3.2", + "script-ext-html-webpack-plugin": "2.1.3", + "script-loader": "^0.7.2", + "serve-static": "^1.13.2", + "svg-sprite-loader": "4.1.3", + "svgo": "1.2.0", + "vue-lazyload": "^1.3.3", + "vue-template-compiler": "2.6.10" + }, + "engines": { + "node": ">=8.9", + "npm": ">= 3.0.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/project-web/plop-templates/component/index.hbs b/project-web/plop-templates/component/index.hbs new file mode 100644 index 0000000..7661055 --- /dev/null +++ b/project-web/plop-templates/component/index.hbs @@ -0,0 +1,26 @@ +{{#if template}} +<template> + <div /> +</template> +{{/if}} + +{{#if script}} +<script> +export default { + name: '{{ properCase name }}', + props: {}, + data() { + return {} + }, + created() {}, + mounted() {}, + methods: {} +} +</script> +{{/if}} + +{{#if style}} +<style lang="scss" scoped> + +</style> +{{/if}} diff --git a/project-web/plop-templates/component/prompt.js b/project-web/plop-templates/component/prompt.js new file mode 100644 index 0000000..9f346ed --- /dev/null +++ b/project-web/plop-templates/component/prompt.js @@ -0,0 +1,55 @@ +const { notEmpty } = require('../utils.js') + +module.exports = { + description: 'generate vue component', + prompts: [{ + type: 'input', + name: 'name', + message: 'component name please', + validate: notEmpty('name') + }, + { + type: 'checkbox', + name: 'blocks', + message: 'Blocks:', + choices: [{ + name: '<wxTemplate>', + value: 'template', + checked: true + }, + { + name: '<script>', + value: 'script', + checked: true + }, + { + name: 'style', + value: 'style', + checked: true + } + ], + validate(value) { + if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { + return 'Components require at least a <script> or <wxTemplate> tag.' + } + return true + } + } + ], + actions: data => { + const name = '{{properCase name}}' + const actions = [{ + type: 'add', + path: `src/components/${name}/index.vue`, + templateFile: 'plop-templates/component/index.hbs', + data: { + name: name, + template: data.blocks.includes('template'), + script: data.blocks.includes('script'), + style: data.blocks.includes('style') + } + }] + + return actions + } +} diff --git a/project-web/plop-templates/store/index.hbs b/project-web/plop-templates/store/index.hbs new file mode 100644 index 0000000..4f8e2dc --- /dev/null +++ b/project-web/plop-templates/store/index.hbs @@ -0,0 +1,16 @@ +{{#if state}} +const state = {} +{{/if}} + +{{#if mutations}} +const mutations = {} +{{/if}} + +{{#if actions}} +const actions = {} +{{/if}} + +export default { + namespaced: true, + {{options}} +} diff --git a/project-web/plop-templates/store/prompt.js b/project-web/plop-templates/store/prompt.js new file mode 100644 index 0000000..bcbc11d --- /dev/null +++ b/project-web/plop-templates/store/prompt.js @@ -0,0 +1,62 @@ +const { notEmpty } = require('../utils.js') + +module.exports = { + description: 'generate store', + prompts: [{ + type: 'input', + name: 'name', + message: 'store name please', + validate: notEmpty('name') + }, + { + type: 'checkbox', + name: 'blocks', + message: 'Blocks:', + choices: [{ + name: 'state', + value: 'state', + checked: true + }, + { + name: 'mutations', + value: 'mutations', + checked: true + }, + { + name: 'actions', + value: 'actions', + checked: true + } + ], + validate(value) { + if (!value.includes('state') || !value.includes('mutations')) { + return 'store require at least state and mutations' + } + return true + } + } + ], + actions(data) { + const name = '{{name}}' + const { blocks } = data + const options = ['state', 'mutations'] + const joinFlag = `, + ` + if (blocks.length === 3) { + options.push('actions') + } + + const actions = [{ + type: 'add', + path: `src/store/modules/${name}.js`, + templateFile: 'plop-templates/store/index.hbs', + data: { + options: options.join(joinFlag), + state: blocks.includes('state'), + mutations: blocks.includes('mutations'), + actions: blocks.includes('actions') + } + }] + return actions + } +} diff --git a/project-web/plop-templates/utils.js b/project-web/plop-templates/utils.js new file mode 100644 index 0000000..0310ca0 --- /dev/null +++ b/project-web/plop-templates/utils.js @@ -0,0 +1,9 @@ +exports.notEmpty = name => { + return v => { + if (!v || v.trim === '') { + return `${name} is required` + } else { + return true + } + } +} diff --git a/project-web/plop-templates/view/index.hbs b/project-web/plop-templates/view/index.hbs new file mode 100644 index 0000000..7661055 --- /dev/null +++ b/project-web/plop-templates/view/index.hbs @@ -0,0 +1,26 @@ +{{#if template}} +<template> + <div /> +</template> +{{/if}} + +{{#if script}} +<script> +export default { + name: '{{ properCase name }}', + props: {}, + data() { + return {} + }, + created() {}, + mounted() {}, + methods: {} +} +</script> +{{/if}} + +{{#if style}} +<style lang="scss" scoped> + +</style> +{{/if}} diff --git a/project-web/plop-templates/view/prompt.js b/project-web/plop-templates/view/prompt.js new file mode 100644 index 0000000..10e00d5 --- /dev/null +++ b/project-web/plop-templates/view/prompt.js @@ -0,0 +1,55 @@ +const { notEmpty } = require('../utils.js') + +module.exports = { + description: 'generate a view', + prompts: [{ + type: 'input', + name: 'name', + message: 'view name please', + validate: notEmpty('name') + }, + { + type: 'checkbox', + name: 'blocks', + message: 'Blocks:', + choices: [{ + name: '<wxTemplate>', + value: 'template', + checked: true + }, + { + name: '<script>', + value: 'script', + checked: true + }, + { + name: 'style', + value: 'style', + checked: true + } + ], + validate(value) { + if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { + return 'View require at least a <script> or <wxTemplate> tag.' + } + return true + } + } + ], + actions: data => { + const name = '{{name}}' + const actions = [{ + type: 'add', + path: `src/views/${name}/index.vue`, + templateFile: 'plop-templates/view/index.hbs', + data: { + name: name, + template: data.blocks.includes('template'), + script: data.blocks.includes('script'), + style: data.blocks.includes('style') + } + }] + + return actions + } +} diff --git a/project-web/plopfile.js b/project-web/plopfile.js new file mode 100644 index 0000000..57387bf --- /dev/null +++ b/project-web/plopfile.js @@ -0,0 +1,9 @@ +const viewGenerator = require('./plop-templates/view/prompt') +const componentGenerator = require('./plop-templates/component/prompt') +const storeGenerator = require('./plop-templates/store/prompt.js') + +module.exports = function(plop) { + plop.setGenerator('view', viewGenerator) + plop.setGenerator('component', componentGenerator) + plop.setGenerator('store', storeGenerator) +} diff --git a/project-web/postcss.config.js b/project-web/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/project-web/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/project-web/public/favicon.ico b/project-web/public/favicon.ico new file mode 100644 index 0000000..95a0ea1 --- /dev/null +++ b/project-web/public/favicon.ico Binary files differ diff --git a/project-web/public/index.html b/project-web/public/index.html new file mode 100644 index 0000000..729a200 --- /dev/null +++ b/project-web/public/index.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="renderer" content="webkit"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> + <meta name="author" content="CRMEB! Team and CRMEB UI Team" /> + <meta name="copyright" content="2023-2033 KEY SOURCE" /> + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <title><%= webpackConfig.name %></title> + </head> + <body> + <script src="<%= BASE_URL %>static/tinymce4.7.5/tinymce.min.js"></script> + <script src="<%= BASE_URL %>static/js/jquery.min.js"></script> + <script src="<%= BASE_URL %>static/js/reconnecting-websocket.js"></script> + <script src="<%= BASE_URL %>static/js/niuniucapture.js"></script> + <script src="<%= BASE_URL %>static/js/capturewrapper.js"></script> + <script src="https://map.qq.com/api/gljs?v=1.exp&key=PGNBZ-XZ7C3-MPE34-OF2VP-7MRH6-BOFUG"></script> + <div id="app"></div> + <!-- built files will be auto injected --> + <div class="pre-loader" id="pre-loader"> + <div class="inner one"></div> + <div class="inner two"></div> + <div class="inner three"></div> + </div> + </body> +</html> diff --git a/project-web/public/preview.html b/project-web/public/preview.html new file mode 100644 index 0000000..8e43983 --- /dev/null +++ b/project-web/public/preview.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html lang="zh"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <title>form-generator-preview</title> + <link href="https://cdn.bootcss.com/element-ui/2.12.0/theme-chalk/index.css" rel="stylesheet"> + <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script> + <script src="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js"></script> + <!-- <script src="https://cdn.bootcss.com/axios/0.19.0/axios.min.js"></script> --> + <script src="https://cdn.bootcss.com/element-ui/2.12.0/index.js"></script> + <style> + body{ + margin: 0; + padding: 0; + overflow-x: hidden; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + height: calc(100vh - 33px); + padding: 12px; + box-sizing: border-box; + font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; + } + input, textarea{ + font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; + } + </style> + </head> + <body> + <noscript> + <strong>鎶辨瓑锛宩avascript琚鐢紝璇峰紑鍚悗閲嶈瘯銆�</strong> + </noscript> + <div id="previewApp"></div> + </body> +</html> \ No newline at end of file diff --git a/project-web/public/static/config.js b/project-web/public/static/config.js new file mode 100644 index 0000000..96f2e66 --- /dev/null +++ b/project-web/public/static/config.js @@ -0,0 +1,23 @@ + +// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞 +const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; +const VUE_APP_WS_URL = + process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; + +const SettingIplatform = { + // 鏈嶅姟鍣ㄥ湴鍧� + // 鏈嶅姟鍣ㄥ湴鍧� + httpUrl: VUE_APP_API_URL, + // 涓婁紶璺緞 + ftpUrl: 'http://172.16.60.209:8082/progress',//寮�鍙� + // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, +// 鎺ュ彛璇锋眰鍦板潃 +// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 + apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� +// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, + // socket杩炴帴 + wsSocketUrl: VUE_APP_WS_URL, + debug: true //璋冭瘯寮�鍏� true鏃朵細杈撳嚭璇锋眰鏃ュ織 +}; + +export default SettingIplatform; diff --git a/project-web/public/static/emoji/100.gif b/project-web/public/static/emoji/100.gif new file mode 100644 index 0000000..2378eb4 --- /dev/null +++ b/project-web/public/static/emoji/100.gif Binary files differ diff --git a/project-web/public/static/emoji/101.gif b/project-web/public/static/emoji/101.gif new file mode 100644 index 0000000..574caa7 --- /dev/null +++ b/project-web/public/static/emoji/101.gif Binary files differ diff --git a/project-web/public/static/emoji/102.gif b/project-web/public/static/emoji/102.gif new file mode 100644 index 0000000..64b71c7 --- /dev/null +++ b/project-web/public/static/emoji/102.gif Binary files differ diff --git a/project-web/public/static/emoji/103.gif b/project-web/public/static/emoji/103.gif new file mode 100644 index 0000000..ddc55f6 --- /dev/null +++ b/project-web/public/static/emoji/103.gif Binary files differ diff --git a/project-web/public/static/emoji/104.gif b/project-web/public/static/emoji/104.gif new file mode 100644 index 0000000..aa9f755 --- /dev/null +++ b/project-web/public/static/emoji/104.gif Binary files differ diff --git a/project-web/public/static/emoji/105.gif b/project-web/public/static/emoji/105.gif new file mode 100644 index 0000000..a2069d9 --- /dev/null +++ b/project-web/public/static/emoji/105.gif Binary files differ diff --git a/project-web/public/static/emoji/106.gif b/project-web/public/static/emoji/106.gif new file mode 100644 index 0000000..364a2f2 --- /dev/null +++ b/project-web/public/static/emoji/106.gif Binary files differ diff --git a/project-web/public/static/emoji/107.gif b/project-web/public/static/emoji/107.gif new file mode 100644 index 0000000..eb82906 --- /dev/null +++ b/project-web/public/static/emoji/107.gif Binary files differ diff --git a/project-web/public/static/emoji/108.gif b/project-web/public/static/emoji/108.gif new file mode 100644 index 0000000..d6e17f7 --- /dev/null +++ b/project-web/public/static/emoji/108.gif Binary files differ diff --git a/project-web/public/static/emoji/109.gif b/project-web/public/static/emoji/109.gif new file mode 100644 index 0000000..e38ccd8 --- /dev/null +++ b/project-web/public/static/emoji/109.gif Binary files differ diff --git a/project-web/public/static/emoji/110.gif b/project-web/public/static/emoji/110.gif new file mode 100644 index 0000000..fb4daf1 --- /dev/null +++ b/project-web/public/static/emoji/110.gif Binary files differ diff --git a/project-web/public/static/emoji/111.gif b/project-web/public/static/emoji/111.gif new file mode 100644 index 0000000..156bd67 --- /dev/null +++ b/project-web/public/static/emoji/111.gif Binary files differ diff --git a/project-web/public/static/emoji/112.gif b/project-web/public/static/emoji/112.gif new file mode 100644 index 0000000..4ee3c71 --- /dev/null +++ b/project-web/public/static/emoji/112.gif Binary files differ diff --git a/project-web/public/static/emoji/113.gif b/project-web/public/static/emoji/113.gif new file mode 100644 index 0000000..bcdf0ff --- /dev/null +++ b/project-web/public/static/emoji/113.gif Binary files differ diff --git a/project-web/public/static/emoji/114.gif b/project-web/public/static/emoji/114.gif new file mode 100644 index 0000000..9778059 --- /dev/null +++ b/project-web/public/static/emoji/114.gif Binary files differ diff --git a/project-web/public/static/emoji/115.gif b/project-web/public/static/emoji/115.gif new file mode 100644 index 0000000..87a52f3 --- /dev/null +++ b/project-web/public/static/emoji/115.gif Binary files differ diff --git a/project-web/public/static/emoji/116.gif b/project-web/public/static/emoji/116.gif new file mode 100644 index 0000000..73af643 --- /dev/null +++ b/project-web/public/static/emoji/116.gif Binary files differ diff --git a/project-web/public/static/emoji/117.gif b/project-web/public/static/emoji/117.gif new file mode 100644 index 0000000..0468b91 --- /dev/null +++ b/project-web/public/static/emoji/117.gif Binary files differ diff --git a/project-web/public/static/emoji/118.gif b/project-web/public/static/emoji/118.gif new file mode 100644 index 0000000..a877841 --- /dev/null +++ b/project-web/public/static/emoji/118.gif Binary files differ diff --git a/project-web/public/static/emoji/119.gif b/project-web/public/static/emoji/119.gif new file mode 100644 index 0000000..421062d --- /dev/null +++ b/project-web/public/static/emoji/119.gif Binary files differ diff --git a/project-web/public/static/emoji/120.gif b/project-web/public/static/emoji/120.gif new file mode 100644 index 0000000..b1ef5c7 --- /dev/null +++ b/project-web/public/static/emoji/120.gif Binary files differ diff --git a/project-web/public/static/emoji/121.gif b/project-web/public/static/emoji/121.gif new file mode 100644 index 0000000..97495df --- /dev/null +++ b/project-web/public/static/emoji/121.gif Binary files differ diff --git a/project-web/public/static/emoji/122.gif b/project-web/public/static/emoji/122.gif new file mode 100644 index 0000000..8623717 --- /dev/null +++ b/project-web/public/static/emoji/122.gif Binary files differ diff --git a/project-web/public/static/emoji/123.gif b/project-web/public/static/emoji/123.gif new file mode 100644 index 0000000..72a5f3d --- /dev/null +++ b/project-web/public/static/emoji/123.gif Binary files differ diff --git a/project-web/public/static/emoji/124.gif b/project-web/public/static/emoji/124.gif new file mode 100644 index 0000000..9974dbe --- /dev/null +++ b/project-web/public/static/emoji/124.gif Binary files differ diff --git a/project-web/public/static/emoji/125.gif b/project-web/public/static/emoji/125.gif new file mode 100644 index 0000000..aaca1f7 --- /dev/null +++ b/project-web/public/static/emoji/125.gif Binary files differ diff --git a/project-web/public/static/emoji/126.gif b/project-web/public/static/emoji/126.gif new file mode 100644 index 0000000..2aa7522 --- /dev/null +++ b/project-web/public/static/emoji/126.gif Binary files differ diff --git a/project-web/public/static/emoji/127.gif b/project-web/public/static/emoji/127.gif new file mode 100644 index 0000000..b59f3c6 --- /dev/null +++ b/project-web/public/static/emoji/127.gif Binary files differ diff --git a/project-web/public/static/emoji/128.gif b/project-web/public/static/emoji/128.gif new file mode 100644 index 0000000..cbed60d --- /dev/null +++ b/project-web/public/static/emoji/128.gif Binary files differ diff --git a/project-web/public/static/emoji/129.gif b/project-web/public/static/emoji/129.gif new file mode 100644 index 0000000..05d9353 --- /dev/null +++ b/project-web/public/static/emoji/129.gif Binary files differ diff --git a/project-web/public/static/emoji/130.gif b/project-web/public/static/emoji/130.gif new file mode 100644 index 0000000..ae2036b --- /dev/null +++ b/project-web/public/static/emoji/130.gif Binary files differ diff --git a/project-web/public/static/emoji/131.gif b/project-web/public/static/emoji/131.gif new file mode 100644 index 0000000..dbba4ca --- /dev/null +++ b/project-web/public/static/emoji/131.gif Binary files differ diff --git a/project-web/public/static/emoji/132.gif b/project-web/public/static/emoji/132.gif new file mode 100644 index 0000000..652ec1c --- /dev/null +++ b/project-web/public/static/emoji/132.gif Binary files differ diff --git a/project-web/public/static/emoji/133.gif b/project-web/public/static/emoji/133.gif new file mode 100644 index 0000000..8e335c4 --- /dev/null +++ b/project-web/public/static/emoji/133.gif Binary files differ diff --git a/project-web/public/static/emoji/134.gif b/project-web/public/static/emoji/134.gif new file mode 100644 index 0000000..fcf91ea --- /dev/null +++ b/project-web/public/static/emoji/134.gif Binary files differ diff --git a/project-web/public/static/emoji/135.gif b/project-web/public/static/emoji/135.gif new file mode 100644 index 0000000..003124b --- /dev/null +++ b/project-web/public/static/emoji/135.gif Binary files differ diff --git a/project-web/public/static/emoji/136.gif b/project-web/public/static/emoji/136.gif new file mode 100644 index 0000000..b2080f2 --- /dev/null +++ b/project-web/public/static/emoji/136.gif Binary files differ diff --git a/project-web/public/static/emoji/137.gif b/project-web/public/static/emoji/137.gif new file mode 100644 index 0000000..de27554 --- /dev/null +++ b/project-web/public/static/emoji/137.gif Binary files differ diff --git a/project-web/public/static/emoji/138.gif b/project-web/public/static/emoji/138.gif new file mode 100644 index 0000000..293a32f --- /dev/null +++ b/project-web/public/static/emoji/138.gif Binary files differ diff --git a/project-web/public/static/emoji/139.gif b/project-web/public/static/emoji/139.gif new file mode 100644 index 0000000..55631ca --- /dev/null +++ b/project-web/public/static/emoji/139.gif Binary files differ diff --git a/project-web/public/static/emoji/140.gif b/project-web/public/static/emoji/140.gif new file mode 100644 index 0000000..a5d3c79 --- /dev/null +++ b/project-web/public/static/emoji/140.gif Binary files differ diff --git a/project-web/public/static/emoji/141.gif b/project-web/public/static/emoji/141.gif new file mode 100644 index 0000000..3c16c48 --- /dev/null +++ b/project-web/public/static/emoji/141.gif Binary files differ diff --git a/project-web/public/static/emoji/142.gif b/project-web/public/static/emoji/142.gif new file mode 100644 index 0000000..627c579 --- /dev/null +++ b/project-web/public/static/emoji/142.gif Binary files differ diff --git a/project-web/public/static/emoji/143.gif b/project-web/public/static/emoji/143.gif new file mode 100644 index 0000000..4023df7 --- /dev/null +++ b/project-web/public/static/emoji/143.gif Binary files differ diff --git a/project-web/public/static/emoji/144.gif b/project-web/public/static/emoji/144.gif new file mode 100644 index 0000000..a9b8c84 --- /dev/null +++ b/project-web/public/static/emoji/144.gif Binary files differ diff --git a/project-web/public/static/emoji/145.gif b/project-web/public/static/emoji/145.gif new file mode 100644 index 0000000..d6db48f --- /dev/null +++ b/project-web/public/static/emoji/145.gif Binary files differ diff --git a/project-web/public/static/emoji/146.gif b/project-web/public/static/emoji/146.gif new file mode 100644 index 0000000..0f03b7d --- /dev/null +++ b/project-web/public/static/emoji/146.gif Binary files differ diff --git a/project-web/public/static/emoji/147.gif b/project-web/public/static/emoji/147.gif new file mode 100644 index 0000000..6e2f1fd --- /dev/null +++ b/project-web/public/static/emoji/147.gif Binary files differ diff --git a/project-web/public/static/emoji/148.gif b/project-web/public/static/emoji/148.gif new file mode 100644 index 0000000..11e7ddc --- /dev/null +++ b/project-web/public/static/emoji/148.gif Binary files differ diff --git a/project-web/public/static/emoji/149.gif b/project-web/public/static/emoji/149.gif new file mode 100644 index 0000000..f85e1c0 --- /dev/null +++ b/project-web/public/static/emoji/149.gif Binary files differ diff --git a/project-web/public/static/emoji/150.gif b/project-web/public/static/emoji/150.gif new file mode 100644 index 0000000..444083f --- /dev/null +++ b/project-web/public/static/emoji/150.gif Binary files differ diff --git a/project-web/public/static/emoji/151.gif b/project-web/public/static/emoji/151.gif new file mode 100644 index 0000000..c875ea7 --- /dev/null +++ b/project-web/public/static/emoji/151.gif Binary files differ diff --git a/project-web/public/static/emoji/152.gif b/project-web/public/static/emoji/152.gif new file mode 100644 index 0000000..df63eac --- /dev/null +++ b/project-web/public/static/emoji/152.gif Binary files differ diff --git a/project-web/public/static/emoji/153.gif b/project-web/public/static/emoji/153.gif new file mode 100644 index 0000000..dc696d6 --- /dev/null +++ b/project-web/public/static/emoji/153.gif Binary files differ diff --git a/project-web/public/static/emoji/154.gif b/project-web/public/static/emoji/154.gif new file mode 100644 index 0000000..d28380b --- /dev/null +++ b/project-web/public/static/emoji/154.gif Binary files differ diff --git a/project-web/public/static/emoji/155.gif b/project-web/public/static/emoji/155.gif new file mode 100644 index 0000000..9042b9d --- /dev/null +++ b/project-web/public/static/emoji/155.gif Binary files differ diff --git a/project-web/public/static/emoji/156.gif b/project-web/public/static/emoji/156.gif new file mode 100644 index 0000000..edf96f0 --- /dev/null +++ b/project-web/public/static/emoji/156.gif Binary files differ diff --git a/project-web/public/static/emoji/157.gif b/project-web/public/static/emoji/157.gif new file mode 100644 index 0000000..da352f3 --- /dev/null +++ b/project-web/public/static/emoji/157.gif Binary files differ diff --git a/project-web/public/static/emoji/158.gif b/project-web/public/static/emoji/158.gif new file mode 100644 index 0000000..4faf41f --- /dev/null +++ b/project-web/public/static/emoji/158.gif Binary files differ diff --git a/project-web/public/static/emoji/159.gif b/project-web/public/static/emoji/159.gif new file mode 100644 index 0000000..918288b --- /dev/null +++ b/project-web/public/static/emoji/159.gif Binary files differ diff --git a/project-web/public/static/emoji/160.gif b/project-web/public/static/emoji/160.gif new file mode 100644 index 0000000..869559e --- /dev/null +++ b/project-web/public/static/emoji/160.gif Binary files differ diff --git a/project-web/public/static/emoji/161.gif b/project-web/public/static/emoji/161.gif new file mode 100644 index 0000000..d347251 --- /dev/null +++ b/project-web/public/static/emoji/161.gif Binary files differ diff --git a/project-web/public/static/emoji/162.gif b/project-web/public/static/emoji/162.gif new file mode 100644 index 0000000..be2b213 --- /dev/null +++ b/project-web/public/static/emoji/162.gif Binary files differ diff --git a/project-web/public/static/emoji/163.gif b/project-web/public/static/emoji/163.gif new file mode 100644 index 0000000..d58fcf6 --- /dev/null +++ b/project-web/public/static/emoji/163.gif Binary files differ diff --git a/project-web/public/static/emoji/164.gif b/project-web/public/static/emoji/164.gif new file mode 100644 index 0000000..c4e00bd --- /dev/null +++ b/project-web/public/static/emoji/164.gif Binary files differ diff --git a/project-web/public/static/emoji/165.gif b/project-web/public/static/emoji/165.gif new file mode 100644 index 0000000..3549c83 --- /dev/null +++ b/project-web/public/static/emoji/165.gif Binary files differ diff --git a/project-web/public/static/emoji/166.gif b/project-web/public/static/emoji/166.gif new file mode 100644 index 0000000..f99e583 --- /dev/null +++ b/project-web/public/static/emoji/166.gif Binary files differ diff --git a/project-web/public/static/emoji/167.gif b/project-web/public/static/emoji/167.gif new file mode 100644 index 0000000..441da4a --- /dev/null +++ b/project-web/public/static/emoji/167.gif Binary files differ diff --git a/project-web/public/static/emoji/168.gif b/project-web/public/static/emoji/168.gif new file mode 100644 index 0000000..b74d3cb --- /dev/null +++ b/project-web/public/static/emoji/168.gif Binary files differ diff --git a/project-web/public/static/emoji/169.gif b/project-web/public/static/emoji/169.gif new file mode 100644 index 0000000..2639428 --- /dev/null +++ b/project-web/public/static/emoji/169.gif Binary files differ diff --git a/project-web/public/static/emoji/170.gif b/project-web/public/static/emoji/170.gif new file mode 100644 index 0000000..5d96fa5 --- /dev/null +++ b/project-web/public/static/emoji/170.gif Binary files differ diff --git a/project-web/public/static/emoji/171.gif b/project-web/public/static/emoji/171.gif new file mode 100644 index 0000000..8053885 --- /dev/null +++ b/project-web/public/static/emoji/171.gif Binary files differ diff --git a/project-web/public/static/emoji/172.gif b/project-web/public/static/emoji/172.gif new file mode 100644 index 0000000..ae51343 --- /dev/null +++ b/project-web/public/static/emoji/172.gif Binary files differ diff --git a/project-web/public/static/emoji/173.gif b/project-web/public/static/emoji/173.gif new file mode 100644 index 0000000..c0293c3 --- /dev/null +++ b/project-web/public/static/emoji/173.gif Binary files differ diff --git a/project-web/public/static/emoji/174.gif b/project-web/public/static/emoji/174.gif new file mode 100644 index 0000000..31203c5 --- /dev/null +++ b/project-web/public/static/emoji/174.gif Binary files differ diff --git a/project-web/public/static/emoji/175.gif b/project-web/public/static/emoji/175.gif new file mode 100644 index 0000000..f71d4a1 --- /dev/null +++ b/project-web/public/static/emoji/175.gif Binary files differ diff --git a/project-web/public/static/emoji/176.gif b/project-web/public/static/emoji/176.gif new file mode 100644 index 0000000..41f821e --- /dev/null +++ b/project-web/public/static/emoji/176.gif Binary files differ diff --git a/project-web/public/static/emoji/177.gif b/project-web/public/static/emoji/177.gif new file mode 100644 index 0000000..8f882f5 --- /dev/null +++ b/project-web/public/static/emoji/177.gif Binary files differ diff --git a/project-web/public/static/emoji/178.gif b/project-web/public/static/emoji/178.gif new file mode 100644 index 0000000..557551d --- /dev/null +++ b/project-web/public/static/emoji/178.gif Binary files differ diff --git a/project-web/public/static/emoji/179.gif b/project-web/public/static/emoji/179.gif new file mode 100644 index 0000000..6bc874d --- /dev/null +++ b/project-web/public/static/emoji/179.gif Binary files differ diff --git a/project-web/public/static/emoji/180.gif b/project-web/public/static/emoji/180.gif new file mode 100644 index 0000000..9a77936 --- /dev/null +++ b/project-web/public/static/emoji/180.gif Binary files differ diff --git a/project-web/public/static/emoji/181.gif b/project-web/public/static/emoji/181.gif new file mode 100644 index 0000000..2329101 --- /dev/null +++ b/project-web/public/static/emoji/181.gif Binary files differ diff --git a/project-web/public/static/emoji/182.gif b/project-web/public/static/emoji/182.gif new file mode 100644 index 0000000..644748a --- /dev/null +++ b/project-web/public/static/emoji/182.gif Binary files differ diff --git a/project-web/public/static/emoji/183.gif b/project-web/public/static/emoji/183.gif new file mode 100644 index 0000000..fbf275b --- /dev/null +++ b/project-web/public/static/emoji/183.gif Binary files differ diff --git a/project-web/public/static/emoji/184.gif b/project-web/public/static/emoji/184.gif new file mode 100644 index 0000000..bfc39e4 --- /dev/null +++ b/project-web/public/static/emoji/184.gif Binary files differ diff --git a/project-web/public/static/emoji/185.gif b/project-web/public/static/emoji/185.gif new file mode 100644 index 0000000..f1f6aa3 --- /dev/null +++ b/project-web/public/static/emoji/185.gif Binary files differ diff --git a/project-web/public/static/emoji/186.gif b/project-web/public/static/emoji/186.gif new file mode 100644 index 0000000..860885d --- /dev/null +++ b/project-web/public/static/emoji/186.gif Binary files differ diff --git a/project-web/public/static/emoji/187.gif b/project-web/public/static/emoji/187.gif new file mode 100644 index 0000000..3b88548 --- /dev/null +++ b/project-web/public/static/emoji/187.gif Binary files differ diff --git a/project-web/public/static/emoji/188.gif b/project-web/public/static/emoji/188.gif new file mode 100644 index 0000000..947934f --- /dev/null +++ b/project-web/public/static/emoji/188.gif Binary files differ diff --git a/project-web/public/static/emoji/189.gif b/project-web/public/static/emoji/189.gif new file mode 100644 index 0000000..fdb9f32 --- /dev/null +++ b/project-web/public/static/emoji/189.gif Binary files differ diff --git a/project-web/public/static/emoji/190.gif b/project-web/public/static/emoji/190.gif new file mode 100644 index 0000000..ddd6178 --- /dev/null +++ b/project-web/public/static/emoji/190.gif Binary files differ diff --git a/project-web/public/static/emoji/191.gif b/project-web/public/static/emoji/191.gif new file mode 100644 index 0000000..35d794c --- /dev/null +++ b/project-web/public/static/emoji/191.gif Binary files differ diff --git a/project-web/public/static/emoji/192.gif b/project-web/public/static/emoji/192.gif new file mode 100644 index 0000000..61a10bc --- /dev/null +++ b/project-web/public/static/emoji/192.gif Binary files differ diff --git a/project-web/public/static/emoji/193.gif b/project-web/public/static/emoji/193.gif new file mode 100644 index 0000000..ee297f9 --- /dev/null +++ b/project-web/public/static/emoji/193.gif Binary files differ diff --git a/project-web/public/static/emoji/194.gif b/project-web/public/static/emoji/194.gif new file mode 100644 index 0000000..c8c1fc3 --- /dev/null +++ b/project-web/public/static/emoji/194.gif Binary files differ diff --git a/project-web/public/static/emoji/195.gif b/project-web/public/static/emoji/195.gif new file mode 100644 index 0000000..5ef6d38 --- /dev/null +++ b/project-web/public/static/emoji/195.gif Binary files differ diff --git a/project-web/public/static/emoji/196.gif b/project-web/public/static/emoji/196.gif new file mode 100644 index 0000000..a1aee93 --- /dev/null +++ b/project-web/public/static/emoji/196.gif Binary files differ diff --git a/project-web/public/static/emoji/197.gif b/project-web/public/static/emoji/197.gif new file mode 100644 index 0000000..08a1e56 --- /dev/null +++ b/project-web/public/static/emoji/197.gif Binary files differ diff --git a/project-web/public/static/emoji/198.gif b/project-web/public/static/emoji/198.gif new file mode 100644 index 0000000..d161bc4 --- /dev/null +++ b/project-web/public/static/emoji/198.gif Binary files differ diff --git a/project-web/public/static/emoji/199.gif b/project-web/public/static/emoji/199.gif new file mode 100644 index 0000000..58192b0 --- /dev/null +++ b/project-web/public/static/emoji/199.gif Binary files differ diff --git a/project-web/public/static/emoji/200.png b/project-web/public/static/emoji/200.png new file mode 100644 index 0000000..e24f01a --- /dev/null +++ b/project-web/public/static/emoji/200.png Binary files differ diff --git a/project-web/public/static/emoji/201.png b/project-web/public/static/emoji/201.png new file mode 100644 index 0000000..9851384 --- /dev/null +++ b/project-web/public/static/emoji/201.png Binary files differ diff --git a/project-web/public/static/emoji/202.png b/project-web/public/static/emoji/202.png new file mode 100644 index 0000000..02a5efc --- /dev/null +++ b/project-web/public/static/emoji/202.png Binary files differ diff --git a/project-web/public/static/emoji/203.png b/project-web/public/static/emoji/203.png new file mode 100644 index 0000000..6939c18 --- /dev/null +++ b/project-web/public/static/emoji/203.png Binary files differ diff --git a/project-web/public/static/emoji/204.png b/project-web/public/static/emoji/204.png new file mode 100644 index 0000000..5e7b75c --- /dev/null +++ b/project-web/public/static/emoji/204.png Binary files differ diff --git a/project-web/public/static/emoji/205.png b/project-web/public/static/emoji/205.png new file mode 100644 index 0000000..528583f --- /dev/null +++ b/project-web/public/static/emoji/205.png Binary files differ diff --git a/project-web/public/static/emoji/206.png b/project-web/public/static/emoji/206.png new file mode 100644 index 0000000..a6d5c99 --- /dev/null +++ b/project-web/public/static/emoji/206.png Binary files differ diff --git a/project-web/public/static/emoji/207.png b/project-web/public/static/emoji/207.png new file mode 100644 index 0000000..0fdeecf --- /dev/null +++ b/project-web/public/static/emoji/207.png Binary files differ diff --git a/project-web/public/static/emoji/208.png b/project-web/public/static/emoji/208.png new file mode 100644 index 0000000..719ccb7 --- /dev/null +++ b/project-web/public/static/emoji/208.png Binary files differ diff --git a/project-web/public/static/emoji/209.png b/project-web/public/static/emoji/209.png new file mode 100644 index 0000000..2ca6609 --- /dev/null +++ b/project-web/public/static/emoji/209.png Binary files differ diff --git a/project-web/public/static/emoji/210.png b/project-web/public/static/emoji/210.png new file mode 100644 index 0000000..43c73ed --- /dev/null +++ b/project-web/public/static/emoji/210.png Binary files differ diff --git a/project-web/public/static/emoji/211.png b/project-web/public/static/emoji/211.png new file mode 100644 index 0000000..1a83aa2 --- /dev/null +++ b/project-web/public/static/emoji/211.png Binary files differ diff --git a/project-web/public/static/emoji/212.png b/project-web/public/static/emoji/212.png new file mode 100644 index 0000000..a7bf1d7 --- /dev/null +++ b/project-web/public/static/emoji/212.png Binary files differ diff --git a/project-web/public/static/emoji/213.png b/project-web/public/static/emoji/213.png new file mode 100644 index 0000000..13448ff --- /dev/null +++ b/project-web/public/static/emoji/213.png Binary files differ diff --git a/project-web/public/static/emoji/214.png b/project-web/public/static/emoji/214.png new file mode 100644 index 0000000..c3efa2d --- /dev/null +++ b/project-web/public/static/emoji/214.png Binary files differ diff --git a/project-web/public/static/emoji/215.png b/project-web/public/static/emoji/215.png new file mode 100644 index 0000000..f00e239 --- /dev/null +++ b/project-web/public/static/emoji/215.png Binary files differ diff --git a/project-web/public/static/emoji/216.png b/project-web/public/static/emoji/216.png new file mode 100644 index 0000000..c84c03a --- /dev/null +++ b/project-web/public/static/emoji/216.png Binary files differ diff --git a/project-web/public/static/emoji/217.png b/project-web/public/static/emoji/217.png new file mode 100644 index 0000000..85f2ba1 --- /dev/null +++ b/project-web/public/static/emoji/217.png Binary files differ diff --git a/project-web/public/static/emoji/218.png b/project-web/public/static/emoji/218.png new file mode 100644 index 0000000..8360340 --- /dev/null +++ b/project-web/public/static/emoji/218.png Binary files differ diff --git a/project-web/public/static/emoji/219.png b/project-web/public/static/emoji/219.png new file mode 100644 index 0000000..af57d5e --- /dev/null +++ b/project-web/public/static/emoji/219.png Binary files differ diff --git a/project-web/public/static/js/capturewrapper.js b/project-web/public/static/js/capturewrapper.js new file mode 100644 index 0000000..0b1b9a0 --- /dev/null +++ b/project-web/public/static/js/capturewrapper.js @@ -0,0 +1,226 @@ +var savedPictureContent = ''; +var extendName = ''; +var captureObj = null; +var downloadUrl = '/CaptureInstall.exe?'; + +/* +鐢ㄤ簬鍒濆鍖栫墰鐗涙埅鍥炬帶浠讹紝姝ゅ嚱鏁伴渶瑕佸湪椤甸潰鍔犺浇瀹屾垚鍚庣珛鍗宠皟鐢� +鍦ㄦ鍑芥暟涓紝鎮ㄥ彲浠ヨ缃浉鍏崇殑鎴浘鐨刄I鎺у埗锛屽锛岀敾绗斿ぇ灏忋�佽竟妗嗛鑹茬瓑绛� 銆愯繖閮ㄥ垎淇℃伅鍦╪iuniucapture.js涓篃鏈夐粯璁ゅ�硷紝鐩存帴淇敼榛樿鍊间篃鍙� 銆� +*/ +function InitCapture() { + if (isMacintosh()) { + downloadUrl = '/CaptureInstall.dmg?'; + } else if (isLinux()) { + if (isMips()) { + downloadUrl = '/CaptureInstall_mips.deb?'; + } else if (isaarch()) { + downloadUrl = '/CaptureInstall_aarch.deb?'; + } else if (isloongarch()) { + downloadUrl = '/CaptureInstall_loongarch64.deb?'; + } else { + downloadUrl = '/CaptureInstall.deb?'; + } + } + captureObj = new NiuniuCaptureObject(); + captureObj.NiuniuAuthKey = "niuniu"; + //姝ゅ鍙互璁剧疆鐩稿叧鍙傛暟 + captureObj.TrackColor = rgb2value(255, 0, 0); + captureObj.EditBorderColor = rgb2value(0, 0, 255); + + //璁剧疆宸ュ叿鏍忕殑TOOLTIP + //captureObj.ToolTipText = "tipRectangle|tipCircle|tipArrow|tipBrush|tipGlitter|tipMosaic|tipText|tipUndo|tipSave|tipCancel|tipFinish|Finish"; + + //濡傛灉瑕佽缃澶栫殑鍙傛暟锛屽線濡備笅杩欎釜鏁扮粍涓鍔狅紝渚嬪瑕侀殣钘忔寚瀹氱殑鎸夐挳 + //captureObj.More_Ext_Params[0] = "2,rectangle|text"; + + //璁剧疆鎺т欢鍔犺浇瀹屾垚浠ュ強鎴浘瀹屾垚鐨勫洖璋冨嚱鏁� + captureObj.FinishedCallback = OnCaptureFinishedCallback; + captureObj.PluginLoadedCallback = PluginLoadedCallback; + captureObj.VersionCallback = VersionCallback; + + //鍒濆鍖栨帶浠� + captureObj.InitNiuniuCapture(); +} + +//鐢ㄤ簬杩斿洖鎺т欢鐨勭増鏈彿 +function VersionCallback(ver) { + //captureObj.Version; + //鍙互鍦ㄦ鏍规嵁鏈�鏂扮殑鐗堟湰鍙蜂笌鎺т欢杩斿洖鐨勭増鏈彿瀵规瘮锛屽喅瀹氭槸鍚﹁鎻愮ず鍗囩骇 + //alert(ver); +} + +/* +褰撴帶浠舵垚鍔熷姞杞藉悗鍥炶皟鐨勭殑鍑芥暟锛屾偍鍙互鍦ㄦ鎺у埗鐩稿簲鐨刄I鏄剧ず +*/ +function PluginLoadedCallback(success) { + if (success) { + console.log('鎴浘鎻掍欢鍔犺浇鎴愬姛') + }else{ + console.log('鎴浘鎻掍欢鍔犺浇澶辫触') + } +} + +//鏍规嵁鏄惁鏄疌hrome鏂扮増鏈潵鎺у埗涓嬭浇涓嶅悓鐨勬帶浠跺畨瑁呭寘 +function ShowDownLoad() { + $('#info').html('濡傛灉瓒呰繃5绉掓棤鍝嶅簲锛岃鐐规<a target="_blank" href="' + downloadUrl + '" + date.getMinutes() + date.getSeconds()">瀹夎</a>'); +} + +/* +褰撴彁绀哄畨瑁呮帶浠跺悗锛岄渶瑕侀噸鏂板姞杞芥帶浠舵潵浣跨敤鎴浘锛� +涔熸湁閮ㄥ垎鏄渶瑕佸埛鏂版祻瑙堝櫒鐨� +*/ +function ReloadPlugin() { + captureObj.LoadPlugin(); + $('#btnReload').hide(); + $('#btnCapture').show(); + if (captureObj.pluginValid()) { + $('#downloadNotice').hide(); + $('#info').html("鎴浘鎺т欢宸茬粡瀹夎瀹屾瘯锛屾偍鍙互杩涜鎴浘浜嗐��"); + } else { + var browserInfo = "鏌ョ湅鎺т欢鏄惁琚祻瑙堝櫒闃绘锛屾垨閫氳繃娴忚鍣ㄨ缃腑鐨勫姞杞介」鏌ョ湅NiuniuCapture鏄惁鍔犺浇骞舵甯歌繍琛�"; + $('#info').html('鎴浘鎺т欢鏈兘璇嗗埆鍒帮紝璇锋寜濡備笅姝ラ妫�鏌�:<br/>1. 纭畾鎮ㄥ凡缁忎笅杞芥帶浠跺畨瑁呭寘骞舵甯稿畨瑁� <br/>2. ' + browserInfo + + '<br/>3. 鍒锋柊椤甸潰鎴栭噸鏂板惎鍔ㄦ祻瑙堝櫒璇曚笅<br/>4. 濡傛灉浠嶆棫涓嶈兘鎴浘锛屽嚭澶ф嫑鍚э細' + + '<a target="_blank" style="color:#ff0000;" class="btn" href="http://shang.qq.com/wpa/qunwpa?idkey=a9dab7a14df03d19a2833e6b5f17a33639027d06213cf61bdb7554b04492b6e5">涓�閿姞缇ゆ眰鍔�</a>'); + } +} + +/* +鎴浘鍏ュ彛鍑芥暟锛岀敤浜庢帶鍒禪I鏍囩鐨勬樉绀� +*/ +function StartCapture() { + + $('#imgshow').hide(); + $('#imgshow').attr('src', "./image/loading.gif?v=1"); + var captureRet = Capture(); + //浠庤繑鍥炲�兼潵瑙f瀽鏄剧ず + if (captureRet == emCaptureFailed) { + ShowDownLoad(); + } else if (captureRet == emCaptureUnknown) { + $('#info').html('姝e湪鎴浘涓�, 濡傛灉瓒呰繃5绉掓棤鍝嶅簲锛岃鐐规<a target="_blank" href="' + downloadUrl + '" + date.getMinutes() + date.getSeconds()">瀹夎</a>'); + } +} + +/* +姝ゅ嚱鏁版槸鏍规嵁鍦ㄦ祴璇曢〉闈笂鐨勪笉鍚岄�夐」鏉ヨ繘琛屾埅鍥撅紝鍦ㄥ疄闄呭簲鐢ㄤ腑锛屾偍鍙渶瑕佹牴鎹偍瀹為檯闇�瑕佺殑鎴浘妯″紡锛屼紶鍏ョ浉搴旂殑鍙傛暟鍗冲彲 +*/ +function Capture() { + var defaultName = "1.png"; //姝ゅ涓轰簡闃叉涓婁紶鐨勬暟鎹繃澶э紝寤鸿浣跨敤JPG鏍煎紡 + var hideFlag = 0; + var autoFlag = 0; + var captureRet = true; + if (autoFlag == 0) { + return captureObj.DoCapture("1.png", hideFlag, 0, 0, 0, 0, 0); + } else { + autoFlag = $('#getimagefromclipboard').is(':checked') ? 4 : 1; + if (autoFlag == 4) { + return captureObj.DoCapture("", 0, 4, 0, 0, 0, 0); + } + autoFlag = $('#showprewindow').is(':checked') ? 3 : 1; + if (autoFlag == 3) { + //姝ゆ椂濡傛灉x, y, width, height鍏ㄤ负0锛屽垯琛ㄧず棰勬埅鍥剧獥鍙g偣鍑烩�滃紑濮嬫埅鍥锯�濇椂锛屾墜宸ュ厛鎶婂尯鍩� + //x, y, width, height鍏ㄤ负1锛屽垯琛ㄧず棰勬埅鍥剧獥鍙g偣鍑烩�滃紑濮嬫埅鍥锯�濇椂锛岃嚜鍔ㄦ埅鍙栨暣涓闈� + //鍏朵粬鎯呭喌锛屽垯鑷姩鎴彇 x, y, width, height 鎸囧畾鐨勫尯鍩� + return captureObj.DoCapture("1.png", hideFlag, 3, 0, 0, 0, 0); + } + autoFlag = $('#fullscreen').is(':checked') ? 2 : 1; + if (autoFlag == 2) { + return captureObj.DoCapture("1.png", hideFlag, 2, 0, 0, 0, 0); + } else { + return captureObj.DoCapture("1.png", hideFlag, 1, $('#xpos').val(), $('#ypos').val(), $('#width').val(), $('#height').val()); + } + } +} + +/* +姝ゅ鏄埅鍥惧悗鐨勫洖璋冨嚱鏁帮紝鐢ㄤ簬灏嗘埅鍥剧殑璇︾粏淇℃伅鍙嶉鍥炴潵锛屼綘闇�瑕佽皟鏁存鍑芥暟锛屽畬鎴愬浘鍍忔暟鎹殑浼犺緭涓庢樉绀� +*/ +function OnCaptureFinishedCallback(type, x, y, width, height, extinfo, content, localpath) { + if (type < 0) { + //闇�瑕侀噸鏂板畨瑁呮帶浠� + // ShowDownLoad(); + return; + } + + //extinfo鏄竴涓墿灞曠殑json瀛楃涓诧紝鍙互鍙栧嚭鏉ュ悗杩涜瑙f瀽锛岀洰鍓嶇敤浜庤繑鍥炵偣鍑诲畬鎴愭埅鍥剧殑鎸夐挳鍚嶇О锛岀敤浜庢墿灞曟寜閽� + //姣斿锛歿"btnname":"finish"} + $('#show').hide(); + switch (type) { + case 1: { + $('#info').html('鎴浘瀹屾垚锛� x:' + x + ',y:' + y + ',widht:' + width + ',height:' + height); + UploadCaptureData(content, localpath); + break; + } + case 2: { + $('#info').html('鎮ㄥ彇娑堜簡鎴浘'); + break; + } + case 3: { + $('#info').html('鎮ㄤ繚瀛樹簡鎴浘鍒版湰鍦帮細 x:' + x + ',y:' + y + ',widht:' + width + ',height:' + height + ' ' + localpath); + UploadCaptureData(content, localpath); + break; + } + case 4: { + if (content != '') { + $('#info').html('浠庡壀璐存澘鑾峰彇鍒颁簡鎴浘锛� ' + localpath); + UploadCaptureData(content, localpath); + } else { + $('#info').html('浠庡壀璐存澘鑾峰彇鍥剧墖澶辫触銆�'); + } + break; + } + } +} + +//鎺у埗涓婁紶 +function UploadCaptureData(content, localpath) { + savedPictureContent = content; + + //鑾峰彇鍥剧墖鐨勬墿灞曞悕 + var pos = localpath.lastIndexOf('.'); + extendName = localpath.substr(pos + 1); + if (extendName == '') { + extendname = 'jpg'; + } + $('#show').html('鎴浘宸茬粡瀹屾垚锛岃鐐瑰嚮'); + $('#show').show(); + var autoUpload = $("#autoupload").attr("checked") == "checked" ? 1 : 0; + if (autoUpload) { + UploadData(); + } else { + $('#btnUpload').show(); + } +} + + +/* +瀹為檯涓婁紶鍥惧儚鏁版嵁鐨勫嚱鏁帮紝姝ゅ涓昏鏄皢BASE64鐨勫浘鍍忔暟鎹紝閫氳繃AJAX鐨勬柟寮廝OST鍒版湇鍔″櫒淇濆瓨鎴愭枃浠讹紝骞朵笖鏄剧ず鍦ㄩ〉闈笂 +*/ +function UploadData() { + $('#show').html('鎴浘瀹屾垚锛屾鍦ㄤ笂浼狅紝璇风◢鍚�...'); + $('#btnUpload').hide(); + //涓婁紶鐨勬暟鎹櫎浜嗗浘鐗囧锛岃繕鍙互鍖呭惈鑷繁闇�瑕佷紶閫掔殑鍙傛暟 + var data = "userid=test111&extendname=" + extendName + "&picdata=" + encodeURIComponent(savedPictureContent); + + $.ajax({ + type: "POST", + url: "./upload.php", + dataType: "json", + data: data, + success: function (obj) { + if (obj.code == 0) { + $('#show').html('涓婁紶鎴愬姛锛屽浘鐗囧湴鍧�锛�' + obj.info); + $('#imgshow').show(); + $('#imgshow').attr('src', obj.info); + } else { + $('#show').html('涓婁紶澶辫触 :' + obj.info); + } + }, + error: function () { + $('#show').html('鐢变簬缃戠粶鍘熷洜锛屼笂浼犲け璐ャ��'); + } + }); +} + +function TestSetWatermarkPicture() { + captureObj.SetWatermarkPicture("iVBORw0KGgoAAAANSUhEUgAAAF0AAABQCAYAAAB773kdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDkvMTX+60k3AAAFXUlEQVR4nO2c3XWjSBCFr/fMMxoisDeC9UZgO4LRRLD4kIAmgsERrBwA5+AIRorAOAKPIlgUASsS0D5QaFiJn+6uamhkfW+W6KK4LhXd1QVX+/0eXPLQiwCs/Lj4yTbmMHno3QKY+3ERcexccUUnR979uLhiGZoIeejtAfzJCbDfBPxYCtiYGqxrZomeh94CwB2ADcfOxNgAuKNrN8JY9Dz0bgBE9Oe/pnYmSHWtEWmgDSfSEwCzI0c+AtW1zlBqoI2R6LW0UnHWs5Yj6tdqlGa0RT9KKxcM0oxJpCf4lVYqMgM7UyU7+ls7zWiJ3pBW2hw5Z7KGz7TSjLLol7TSi3Ka0Yn0JU7TCgDAj4tUw86k6bjWGRQXTUqi56E3B/BFza0PzRfSqpNe0fPQ+4zuG8VWw6lzoeuaE9KsFZVIT9CSVohMwca5kXV81zub6RT9klaM6UwzraIrpJWKVN+nyZMqHNOaZj51DUJ3Wqm4yUPvXuG4c+JG4ZgqzZxEfOMmBv00fjAdu1Dy1Y+LVf2DE9HpJ/ETwPWAjp0zWwC3flwcKrFNOT3CRXBJrnG0kv9fpFNufh3UpY/DQ7WaPYh+SSvWOaSZenqJcBHcJoc0c7Xf7y9pZVgeqkhPxvTig5Gwm436oHtFBrWFVhsvflwEiudLAPzFONcOwE19iieNRLNRHwF4gm8B6Gz+LsCrfM5Q+myNIUQ3bsohAp2oo2MD5jm5PndiVfQ89ALwZkTPJrtSNOaZcd5r8t0KtiM9Yozd+HFhHHE0ltPuFzHGdmJNdIEoDwTc4NiwFu02Iz1gjH2S6HUnG08MEwHXhyasTBmZi603Py7u5bwB8tBL0dyvo8KDdLeDrUiPDMftYCe6ArJtQiTnRol4pDOj/JsfF729I/T0R3XcQiUVUQfW34Z+iUa7jUgPDMe9KQoeAXhHmS7uALzTZ52Q7TdD3wLDcY2IRjq1lf1jMLR36U3RnQD4o+WQDcqFVGvUM0sSv/txkRmMO0E60iPDca2rzjz0Pueht0QZ3W2Cg757z0Nv2bYLz1ytRobjThCLdEaUr/24aOwRoftDAv35/hblPzJtsbuCWT+PSLRLRnpgMGbbNo7y9CvMFljXAF47cn0As6JYYDDmBJFIZ+TKp+MHYRVyty6NuZ7+Id81bYmUfaUiPYDZzel7vf2Mlt0p5AQH2UrrS3o6p67ggFDZVzKnB+joYe9gB+AeZTmVs/mgwgtKH1OY+bnw4yLhOiE9Zaz6H3VvUjvwNjpsn2sNzbp+F7ZqL3OUETX17oItyuhe9R6pgZXaCzl5i/LnPFVeUPapiAoOWIr0OhT1CYZLH1x2KFOJuNgV1kUHDgunFWRnJTbYoHyfS2bzJIOIXiHQHmET5TYPLkN0Axygi3oc8pyKPA4lODCw6ABA81yXhH+UmHvrMLjogFPCDy44MJLowEF4Tm8Kl+cxBAcGvpE2wdw0NkV881uH0SK9xhzmm8Ym7NDwxNuQjC66UO+hDmI1FFNGFx04lA3WA5xqbXOlqYoTohML2E0zO1juxlXFGdFp6W3zxZpL28t7VZwRnVjCTrTv4NCbUp0SnW5wNsRZjn3zrOOU6IQV0S3YNMY50SkiJWcya5eiHHBQdELyjabOvR3VOdFpc1tyxTjve6fW0DgnOsq5tHTfixPz84rRC151hB70bcL6A7k6uBbpc9jZwJ5h5CJXHddEv52obS0uoo+Aa6JnE7WthWuiJxO1rYVTotOTEzY2rB9devO1U6IDVjoFRtnx78I50QHRToHRdvy7cFJ0InLEhjjOii5QbXSuuljhrOgEp0LoXHWxwnXR05HGWuU/oYwAt7g/Ov4AAAAASUVORK5CYII="); +} diff --git a/project-web/public/static/js/jquery.min.js b/project-web/public/static/js/jquery.min.js new file mode 100644 index 0000000..4d9b3a2 --- /dev/null +++ b/project-web/public/static/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); diff --git a/project-web/public/static/js/niuniucapture.js b/project-web/public/static/js/niuniucapture.js new file mode 100644 index 0000000..8aea5cf --- /dev/null +++ b/project-web/public/static/js/niuniucapture.js @@ -0,0 +1,643 @@ +/******************************************************************************* + 鐗涚墰鎴浘鐨凧S閮ㄥ垎鐨勬牳蹇冩祦绋嬪皝瑁呭湪姝ゆ枃浠朵腑锛岀粷澶ч儴鍒嗘儏鍐典笅锛屾偍涓嶉渶瑕佷慨鏀规鏂囦欢涓殑JS鍐呭锛屽畠宸茬粡鍖呭惈浜嗗湪鎵�鏈夋祻瑙堝櫒涓婂簲鐢� + 鐗涚墰鎴浘鎵�闇�瑕佺殑鎵�鏈変唬鐮侊紝鎮ㄥ彧闇�瑕佸幓淇敼capturewrapper.js锛屽皢鐩稿簲鐨勫嚱鏁颁慨鏀规垚涓庢偍鐨刄I鍖归厤鐨勫嵆鍙� + *******************************************************************************/ + +/*******************************************************************************/ +//璁剧疆鎴浘鐨勫弬鏁� +var emPensize = 1; //璁剧疆鐢荤瑪澶у皬 +var emDrawType = 2; //璁剧疆鏄吘璁鏍艰繕鏄�360椋庢牸 0锛� 鑵捐椋庢牸 1锛� 360椋庢牸 +var emTrackColor = 3; //鑷姩璇嗗埆鐨勮竟妗嗙殑棰滆壊 +var emEditBorderColor = 4; //鏂囨湰杈撳叆鐨勮竟妗嗛鑹� +var emTransparent = 5; //宸ュ叿鏍忕殑閫忔槑搴� +var emWindowAware = 6; //璁剧疆鏄惁绂佺敤闅忕潃DPI鏀惧ぇ +var emSetSaveName = 8; //璁剧疆淇濆瓨鏃剁殑寮�濮嬫枃瀛� 鍏嶈垂鐗堟湰鏃犳晥 +var emSetMagnifierBkColor = 9; //璁剧疆鏀惧ぇ闀滅殑鑳屾櫙鑹诧紝涓嶈缃垯閫忔槑 +var emSetMagnifierLogoText = 10; //璁剧疆鏀惧ぇ闀滀笂鐨凩OGO瀛楃锛屽彲鎻愮ず蹇嵎閿紝濡傦細 鐗涚墰鎴浘(CTRL + SHIFT + A) 鍏嶈垂鐗堟湰鏃犳晥 +var emSetWatermarkPictureType = 20; //璁剧疆姘村嵃鐨勭被鍨� +var emSetWatermarkPicturePath = 21; //璁剧疆姘村嵃鐨勮矾寰� +var emSetWatermarkTextType = 22; //璁剧疆姘村嵃鏂囧瓧鐨勭被鍨� +var emSetWatermarkTextValue = 23; //璁剧疆姘村嵃鏂囧瓧鐨勫瓧绗︿覆 +var emSetMosaicType = 24; //鎸囧畾椹禌鍏嬬殑绫诲瀷锛�1涓虹煩褰紝2涓虹敾绾� +var emSetTooltipText = 25; //鐢ㄤ簬璁剧疆宸ュ叿鏍忓浘鏍囩殑TOOLTIP鏂囧瓧 +var emSetMoreInfo = 26; //璁剧疆棰濆鐨勪俊鎭紝鐢ㄤ簬鐗规畩闇�姹� +var connectTimes = 0 //閾炬帴娆℃暟 +var maxConnectTimes = 9 //鏈�澶ч噸杩炴鏁� +/*******************************************************************************/ + + +var emClosed = 1; +var emConnected = 2; +var emConnecting = 3; + +var emCaptureSuccess = 0; +var emCaptureFailed = 1; +var emCaptureUnknown = 2; + +var emCmdReady = -1; +var emCmdCapture = 0; +var emCmdSaveFile = 1; + + +function isMacintosh() { + return navigator.platform.indexOf('Mac') > -1; +} + +function isLinux() { + return navigator.platform.indexOf('Linux') > -1; +} + +function isMips() { + return navigator.platform.indexOf('mips') > -1; +} + +function isaarch() { + return navigator.platform.indexOf('aarch') > -1; +} + +function isloongarch() { + return navigator.platform.indexOf('loongarch') > -1; +} + +function rgb2value(r, g, b) { + return r | g << 8 | b << 16; +} + +var captureObjSelf = null; + +function onpluginLoaded() { + captureObjSelf.pluginLoaded(false); +} + +function NiuniuCaptureObject() { + var self = this; + captureObjSelf = this; + this.PenSize = 2; + this.DrawType = 0; + this.TrackColor = rgb2value(255, 0, 0); + this.EditBorderColor = rgb2value(255, 0, 0); + this.Transparent = 255; + this.WindowAware = 1; + this.MosaicType = 1; + this.SaveName = "娴嬭瘯淇濆瓨"; + this.MagnifierLogoText = "娴嬭瘯鎴浘"; + this.WatermarkPictureType = "2|100|100|400|400|20"; + this.WatermarkPicturePath = ""; + this.WatermarkTextType = "2|100|100|100|40|20|0|150|30|80,55,55,55"; + this.WatermarkTextValue = ""; + this.NiuniuAuthKey = ""; + this.ToolTipText = ""; //tipRectangle|tipCircle|tipArrow|tipBrush|tipGlitter|tipMosaic|tipText|tipUndo|tipSave|tipCancel|tipFinish|txtFinish + this.MoreInfo = "1,100|300|600"; + + this.More_Ext_Params = new Array(); + + this.useCustomizedProtoco = true; //鏄惁浣跨敤娴忚鍣ㄨ嚜瀹氫箟鍗忚鍔爓ebsocket + + this.IsWaitCustomizedCallBack = false; + this.autoConnectAfterPageLoad = true; + this.IsFirstConnect = true; + this.IsEverConnected = false; + this.reconnectTryTime = 0; + this.TimeIntervalID = -1; + this.ReceivedEchoBack = false; + + this.Version = "1.0.0.0"; + this.hostPort = "30101,30102"; + this.hostPortIndex = 0; + this.CaptureName = "NiuniuCapture"; + this.NiuniuSocket = null; + this.connectState = emClosed; + + this.SocketTimeStamp = new Date().getTime(); + this.TimeOutID = -1; + + this.FinishedCallback = null; + this.PluginLoadedCallback = null; + this.VersionCallback = null; + this.OnConnectFailed = function (isReconnect) { + self.WriteLog(isReconnect ? "reconnect failed, the capture control process is exit." : "connect failed at the first time."); + } + + this.LoadPlugin = function () { + var obj = $('#capturecontainer'); + if (obj.length < 1) { + $("body").append('<div id="capturecontainer" style="height:0px;width:0px;"></div>'); + obj = $('#capturecontainer'); + } + obj.html(''); + obj.html('<object id="niuniuCapture" type="application/x-niuniuwebcapture" width="0" height="0"><param name="onload" value="onpluginLoaded" /></object>'); + + var iframeObj = $('startCaptureFrame'); + if (iframeObj.length < 1) { + $("body").append('<iframe id="startCaptureFrame" style="display:none;"></iframe>'); + } + } + + this.niuniuCapture = function () { + return document.getElementById('niuniuCapture'); + } + + this.addEvent = function (obj, name, func) { + if (obj.attachEvent) { + obj.attachEvent("on" + name, func); + } else { + obj.addEventListener(name, func, false); + } + } + + this.pluginValid = function () { + try { + if (self.niuniuCapture().valid) { + return true; + } + } catch (e) { + } + return false; + } + + this.OnCaptureFinished = function (x, y, width, height, content, localpath) { + self.OnCaptureFinishedEx(1, x, y, width, height, "", content, localpath); + } + + this.OnCaptureFinishedEx = function (type, x, y, width, height, info, content, localpath) { + //浜ょ粰涓婂眰鍘诲鐞嗘埅鍥惧畬鎴愬悗鐨勪簨椤� + if (self.FinishedCallback != null) { + self.FinishedCallback(type, x, y, width, height, info, content, localpath); + } else { + alert("鎴浘瀹屾垚鐨勪簨浠舵湭缁戝畾锛屽皢涓嶈兘瀵瑰浘鐗囪繘琛屽鐞嗭紝璇锋寚瀹欶inishedCallback鍥炶皟鍑芥暟"); + } + } + + this.pluginLoaded = function (fromWebsocket) { + if (!fromWebsocket && !self.pluginValid()) { + if (self.PluginLoadedCallback != null) { + self.PluginLoadedCallback(false); + } + return false; + } + + self.GetVersion(); + if (self.PluginLoadedCallback != null) { + self.PluginLoadedCallback(true); + } + + if (!self.pluginValid()) { + return false; + } + //姝ゅ嚱鏁板繀闇�璋冪敤锛屼紶閫掓纭殑鍙傛暟锛屼笖蹇呴渶鍏堜簬鍏朵粬鍑芥暟璋冪敤 + self.niuniuCapture().InitCapture(self.NiuniuAuthKey); + + self.niuniuCapture().InitParam(emPensize, self.PenSize); + self.niuniuCapture().InitParam(emDrawType, self.DrawType); + self.niuniuCapture().InitParam(emTrackColor, self.TrackColor); + self.niuniuCapture().InitParam(emEditBorderColor, self.EditBorderColor); + self.niuniuCapture().InitParam(emTransparent, self.Transparent); + + self.niuniuCapture().InitParam(emSetSaveName, self.SaveName); + self.niuniuCapture().InitParam(emSetMagnifierLogoText, self.MagnifierLogoText); + self.niuniuCapture().InitParam(emSetMosaicType, self.MosaicType); + + //璁剧疆宸ュ叿鏍忎笂鐨勬寜閽甌OOLTIP + self.niuniuCapture().InitParam(emSetTooltipText, self.ToolTipText); + + //self.niuniuCapture().InitParam(emSetMoreInfo, self.MoreInfo); + + for (i = 0; i < self.More_Ext_Params.length; i++) { + self.niuniuCapture().InitParam(emSetMoreInfo, self.More_Ext_Params[i]); + } + + + //niuniuCapture().InitParam(23, "娴嬭瘯鏂囧瓧."); + //姝ASE64瀛楃涓茶〃绀虹墰鐗涢粯璁ょ殑姘村嵃鍥剧墖锛屽彲浠ユ浛鎹� + // niuniuCapture().InitParam(21, "iVBORw0KGgoAAAANSUhEUgAAAF0AAABQCAYAAAB773kdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDkvMTX+60k3AAAFXUlEQVR4nO2c3XWjSBCFr/fMMxoisDeC9UZgO4LRRLD4kIAmgsERrBwA5+AIRorAOAKPIlgUASsS0D5QaFiJn+6uamhkfW+W6KK4LhXd1QVX+/0eXPLQiwCs/Lj4yTbmMHno3QKY+3ERcexccUUnR979uLhiGZoIeejtAfzJCbDfBPxYCtiYGqxrZomeh94CwB2ADcfOxNgAuKNrN8JY9Dz0bgBE9Oe/pnYmSHWtEWmgDSfSEwCzI0c+AtW1zlBqoI2R6LW0UnHWs5Yj6tdqlGa0RT9KKxcM0oxJpCf4lVYqMgM7UyU7+ls7zWiJ3pBW2hw5Z7KGz7TSjLLol7TSi3Ka0Yn0JU7TCgDAj4tUw86k6bjWGRQXTUqi56E3B/BFza0PzRfSqpNe0fPQ+4zuG8VWw6lzoeuaE9KsFZVIT9CSVohMwca5kXV81zub6RT9klaM6UwzraIrpJWKVN+nyZMqHNOaZj51DUJ3Wqm4yUPvXuG4c+JG4ZgqzZxEfOMmBv00fjAdu1Dy1Y+LVf2DE9HpJ/ETwPWAjp0zWwC3flwcKrFNOT3CRXBJrnG0kv9fpFNufh3UpY/DQ7WaPYh+SSvWOaSZenqJcBHcJoc0c7Xf7y9pZVgeqkhPxvTig5Gwm436oHtFBrWFVhsvflwEiudLAPzFONcOwE19iieNRLNRHwF4gm8B6Gz+LsCrfM5Q+myNIUQ3bsohAp2oo2MD5jm5PndiVfQ89ALwZkTPJrtSNOaZcd5r8t0KtiM9Yozd+HFhHHE0ltPuFzHGdmJNdIEoDwTc4NiwFu02Iz1gjH2S6HUnG08MEwHXhyasTBmZi603Py7u5bwB8tBL0dyvo8KDdLeDrUiPDMftYCe6ArJtQiTnRol4pDOj/JsfF729I/T0R3XcQiUVUQfW34Z+iUa7jUgPDMe9KQoeAXhHmS7uALzTZ52Q7TdD3wLDcY2IRjq1lf1jMLR36U3RnQD4o+WQDcqFVGvUM0sSv/txkRmMO0E60iPDca2rzjz0Pueht0QZ3W2Cg757z0Nv2bYLz1ytRobjThCLdEaUr/24aOwRoftDAv35/hblPzJtsbuCWT+PSLRLRnpgMGbbNo7y9CvMFljXAF47cn0As6JYYDDmBJFIZ+TKp+MHYRVyty6NuZ7+Id81bYmUfaUiPYDZzel7vf2Mlt0p5AQH2UrrS3o6p67ggFDZVzKnB+joYe9gB+AeZTmVs/mgwgtKH1OY+bnw4yLhOiE9Zaz6H3VvUjvwNjpsn2sNzbp+F7ZqL3OUETX17oItyuhe9R6pgZXaCzl5i/LnPFVeUPapiAoOWIr0OhT1CYZLH1x2KFOJuNgV1kUHDgunFWRnJTbYoHyfS2bzJIOIXiHQHmET5TYPLkN0Axygi3oc8pyKPA4lODCw6ABA81yXhH+UmHvrMLjogFPCDy44MJLowEF4Tm8Kl+cxBAcGvpE2wdw0NkV881uH0SK9xhzmm8Ym7NDwxNuQjC66UO+hDmI1FFNGFx04lA3WA5xqbXOlqYoTohML2E0zO1juxlXFGdFp6W3zxZpL28t7VZwRnVjCTrTv4NCbUp0SnW5wNsRZjn3zrOOU6IQV0S3YNMY50SkiJWcya5eiHHBQdELyjabOvR3VOdFpc1tyxTjve6fW0DgnOsq5tHTfixPz84rRC151hB70bcL6A7k6uBbpc9jZwJ5h5CJXHddEv52obS0uoo+Aa6JnE7WthWuiJxO1rYVTotOTEzY2rB9devO1U6IDVjoFRtnx78I50QHRToHRdvy7cFJ0InLEhjjOii5QbXSuuljhrOgEp0LoXHWxwnXR05HGWuU/oYwAt7g/Ov4AAAAASUVORK5CYII="); + //娉細浠ヤ笂璁剧疆LOGO鍙婁繚瀛樺悕鐨勬帴鍙o紝鍏嶈垂鐗堟湰鏃犳晥 + + //娣诲姞鎺т欢鐨勪簨浠剁洃鍚� + self.addEvent(self.niuniuCapture(), 'CaptureFinishedEx', self.OnCaptureFinishedEx); + //浠ヤ笅杩欎釜浜嬩欢涓昏鏄敤浜庡吋瀹规棫鐨勬祻瑙堝櫒鎺т欢鐨勪簨浠堕�氱煡 + self.addEvent(self.niuniuCapture(), 'CaptureFinished', self.OnCaptureFinished); + } + + this.SetWatermarkPicture = function (watermarPicData) { + self.WatermarkPicturePath = watermarPicData; + //璁剧疆娴嬭瘯鐨勬按鍗板浘鐗囩殑Base64瀛楃涓诧紝姝ゆ搷浣滃簲璇ユ槸鍦ㄩ〉闈㈠姞杞戒腑澶勭悊姣旇緝鍚堥�� + if (!self.pluginValid()) + return; + self.niuniuCapture().InitParam(emSetWatermarkPicturePath, self.WatermarkPicturePath); + self.niuniuCapture().InitParam(emSetWatermarkPictureType, self.WatermarkPictureType); + } + + this.SetWatermarkText = function (watermarkText) { + self.WatermarkTextValue = watermarkText; + //璁剧疆娴嬭瘯鐨勬按鍗版枃瀛楋紝姝ゆ搷浣滃簲璇ユ槸鍦ㄩ〉闈㈠姞杞戒腑澶勭悊姣旇緝鍚堥�� + if (!self.pluginValid()) + return; + //nShowType|nMinWidth|nMinHeight|nVerticalInterval|nOffset|nFontSize|nIsBold|nTextWidth|nTextHeight|colorText + self.niuniuCapture().InitParam(emSetWatermarkTextValue, self.WatermarkTextValue); + self.niuniuCapture().InitParam(emSetWatermarkTextType, self.WatermarkTextType); + } + + + this.SavePicture = function (savename) { + if (self.pluginValid()) { + self.niuniuCapture().SavePicture(savename); + } + } + + this.GetCursorPosition = function () { + if (self.pluginValid()) { + var val = self.niuniuCapture().GetCursorPosition(); + return val; + } + return ""; + } + + this.NewCaptureParamObject = function (defaultpath, hideCurrWindow, autoCaptureFlag, x, y, width, height) { + var obj = new Object(); + obj.CmdType = 1; + obj.IsGBK = 0; //鏄惁鏄疓BK缂栫爜锛岃繖鏍蜂細娑夊強鍒扮紪鐮佽浆鎹� + obj.AuthKey = self.NiuniuAuthKey; // + obj.Pensize = self.PenSize; //璁剧疆鐢荤瑪澶у皬 + obj.DrawType = self.DrawType; //璁剧疆鏄吘璁鏍艰繕鏄�360椋庢牸 + obj.TrackColor = self.TrackColor; //鑷姩璇嗗埆鐨勮竟妗嗙殑棰滆壊 + obj.EditBorderColor = self.EditBorderColor; //鏂囨湰杈撳叆鐨勮竟妗嗛鑹� + obj.Transparent = self.Transparent; //宸ュ叿鏍忕殑閫忔槑搴� + obj.SetSaveName = self.SaveName; //璁剧疆淇濆瓨鏃剁殑寮�濮嬫枃瀛� + obj.SetMagnifierLogoText = self.MagnifierLogoText; //璁剧疆鏀惧ぇ闀滀笂鐨凩OGO瀛楃 + obj.SetWatermarkPictureTypeEx = self.WatermarkPictureType; //璁剧疆姘村嵃鐨勭被鍨� + obj.SetWatermarkPicturePath = self.WatermarkPicturePath; //璁剧疆姘村嵃鐨勮矾寰� + obj.SetWatermarkTextTypeEx = self.WatermarkTextType; //璁剧疆姘村嵃鏂囧瓧鐨勭被鍨� + obj.SetWatermarkTextValue = self.WatermarkTextValue; //璁剧疆姘村嵃鏂囧瓧 + obj.MosaicType = self.MosaicType; //璁剧疆椹禌鍏嬬殑绫诲瀷 + obj.SetToolbarText = self.ToolTipText; + obj.MoreInfo = this.MoreInfo; + if (self.More_Ext_Params.length > 0) { + obj.more_ext_count = self.More_Ext_Params.length; + for (i = 0; i < self.More_Ext_Params.length; i++) { + switch (i) { + case 0: + obj.more_ext0 = self.More_Ext_Params[i]; + break; + case 1: + obj.more_ext1 = self.More_Ext_Params[i]; + break; + case 2: + obj.more_ext2 = self.More_Ext_Params[i]; + break; + case 3: + obj.more_ext3 = self.More_Ext_Params[i]; + break; + case 4: + obj.more_ext4 = self.More_Ext_Params[i]; + break; + case 5: + obj.more_ext5 = self.More_Ext_Params[i]; + break; + case 6: + obj.more_ext6 = self.More_Ext_Params[i]; + break; + case 7: + obj.more_ext7 = self.More_Ext_Params[i]; + break; + case 8: + obj.more_ext8 = self.More_Ext_Params[i]; + break; + case 9: + obj.more_ext9 = self.More_Ext_Params[i]; + break; + } + } + } + + //浠ヤ笅鏄埅鍥炬椂浼犻�掔殑鍙傛暟 + obj.DefaultPath = defaultpath; + obj.HideCurrentWindow = hideCurrWindow; + obj.AutoCaptureFlag = autoCaptureFlag; + obj.x = x; + obj.y = y; + obj.Width = width; + obj.Height = height; + return obj; + } + + this.DoCapture = function (name, hide, AutoCapture, x, y, width, height) { + if (self.IsNeedCustomizedProtocol()) { + return self.DoCaptureForCustomize(name, hide, AutoCapture, parseInt(x), parseInt(y), parseInt(width), parseInt(height)); + } + + if (!self.pluginValid()) { + return emCaptureFailed; + } + self.niuniuCapture().Capture(name, hide, AutoCapture, x, y, width, height); + return emCaptureSuccess; + } + + this.InitNiuniuCapture = function () { + self.LoadPlugin(); + setTimeout("captureObjSelf.InitWebSocketAndBindCallback();", 200); + } + + this.InitWebSocketAndBindCallback = function () { + if (!self.autoConnectAfterPageLoad || !self.IsNeedCustomizedProtocol()) { + return; + } + self.connectHost(); + } + + this.getNextPort = function () { + //init port params flag + //杩涜鎷嗗垎澶勭悊 self.hostPort; + var portArray = self.hostPort.split(","); + if (portArray.length < 1) { + alert("鏈嶅姟绔彛涓虹┖"); + return 30101; + } + if (self.hostPortIndex < 0) { + self.hostPortIndex = 0; + } + if (self.hostPortIndex > portArray.length - 1) { + self.hostPortIndex = portArray.length - 1; + } + var nPort = parseInt(portArray[self.hostPortIndex]); + self.hostPortIndex++; + if (self.hostPortIndex > portArray.length - 1) { + self.hostPortIndex = 0; + } + return nPort; + } + + this.connectHost = function () { + connectTimes++ + if (self.NiuniuSocket != null) { + self.WriteLog("connectHost NiuniuSocket is not null, return."); + return; + } + clearTimeout(self.TimeOutID); + self.connectState = emConnecting; + + if(connectTimes>maxConnectTimes){ + clearInterval(self.TimeIntervalID); + } + try { + var wshosts = ['127.0.0.1', 'localhost']; + for (var i in wshosts) { + try { + var host = "ws://127.0.0.1:" + self.getNextPort() + "/" + self.CaptureName; + self.NiuniuSocket = new WebSocket(host); + break; + } catch (ee) { + var ggg = 0; + } + } + + //OutputLog('Socket Status: '+socket.readyState); + self.NiuniuSocket.onopen = function (evt) { + self.NiuniuSocket.send('0' + self.SocketTimeStamp); + self.WriteLog("NiuniuSocket.onopen."); + clearTimeout(self.TimeOutID); + } + + self.NiuniuSocket.onmessage = function (msg) { + var str = ""; + str = msg.data; + var id = str.substr(0, 1); + var arg1 = str.substr(1); + clearTimeout(self.TimeOutID); + if (id == "0") { + self.hostPortIndex--; + //琛ㄧず杩炴帴鎴愬姛锛屾鏃跺簲璇ユ彁绀哄彲浠ユ埅鍥句簡 + self.connectState = emConnected; + self.pluginLoaded(true); + self.IsEverConnected = true; + self.IsFirstConnect = false; + if (self.IsWaitCustomizedCallBack) { + setTimeout("captureObjSelf.SendReadyRecvData();", 3); + } + self.WriteLog("connect sucess."); + self.ReceivedEchoBack = true; + clearInterval(self.TimeIntervalID); + self.TimeIntervalID = setInterval("captureObjSelf.LoopEchoMessage()", 3000); + } + if (id == "1") { + //瑙f瀽娑堟伅 + var _aoResult = eval("(" + arg1 + ")"); + self.ReceivedEchoBack = true; + if (_aoResult.command == "echo") { + self.WriteLog("received echo"); + return; + } + self.WriteLog("received capturedata."); + if (_aoResult.command == "version") { + self.WriteLog(_aoResult.Ver); + self.VersionCallback(_aoResult.Ver); + } else { + self.OnCaptureFinishedEx(_aoResult.Type, _aoResult.x, _aoResult.y, _aoResult.Width, _aoResult.Height, _aoResult.Info, _aoResult.Content, _aoResult.LocalPath); + } + } + } + + self.NiuniuSocket.onclose = function (evt) { + self.OnWebSocketError("self.NiuniuSocket.onclose." + evt.data); + } + self.NiuniuSocket.onerror = function (evt) { + self.OnWebSocketError("self.NiuniuSocket.onerror." + evt.data); + }; + + } catch (e) { + self.OnWebSocketError("connect exception." + e.message); + } + } + + this.WriteLog = function (txt) { + //鍐欐棩蹇� + try { + if(txt==='connect failed at the first time.'){ + self.PluginLoadedCallback(false); + } + } catch (e) { + + } + } + + this.OnWebSocketError = function (type) { + //濡傛灉涓嶅浜庤繛鎺ユ垚鍔熺姸鎬侊紝璇存槑涓嶆槸鏂紑杩炴帴锛岃�屾槸杩炴帴澶辫触 + var isConnectedFailed = false; + if (self.connectState != emConnected) { + isConnectedFailed = true; + } + self.WriteLog(type); + self.ReceivedEchoBack = false; + self.connectState = emClosed; + + if (self.NiuniuSocket != null) { + self.NiuniuSocket.close(); + } + + self.NiuniuSocket = null; + clearTimeout(self.TimeOutID); + clearInterval(self.TimeIntervalID); + + if (isConnectedFailed) { + if (self.IsFirstConnect) { + self.IsFirstConnect = false; + if (self.OnConnectFailed != null) { + self.OnConnectFailed(false); + } + return; + } + + if (self.IsEverConnected) { + self.reconnectTryTime++; + //閫氱煡杩炴帴杩炴帴鏂紑 + if (self.reconnectTryTime > 3) { + self.IsEverConnected = false; + self.reconnectTryTime = 0; + if (self.OnConnectFailed != null) { + self.OnConnectFailed(true); + } + return; + } + } + } + if(connectTimes>maxConnectTimes){ + return + } + self.TimeOutID = setTimeout("captureObjSelf.connectHost();", 800); + } + + this.LoopEchoMessage = function () { + if (!self.ReceivedEchoBack) { + self.OnWebSocketError("this.LoopEchoMessage, !self.ReceivedEchoBack"); + self.ReceivedEchoBack = false; + clearInterval(self.TimeIntervalID); + self.TimeIntervalID = setInterval("captureObjSelf.LoopEchoMessage()", 3000); + return; + } + self.ReceivedEchoBack = false; + clearTimeout(self.TimeOutID); + if (self.connectState != emConnected) { + clearInterval(self.TimeIntervalID); + return; + } + var obj = new Object(); + obj.command = "echo"; + self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj))); + } + + this.SendReadyRecvData = function () { + self.WriteLog("SendReadyRecvData."); + var obj = self.NewCaptureParamObject("", 0, 0, 0, 0, 0, 0); + obj.CmdType = -1; + self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj))); + } + + this.DoCaptureForCustomize = function (name, hide, AutoCapture, x, y, width, height) { + var obj = self.NewCaptureParamObject(name, hide, AutoCapture, x, y, width, height); + try { + //鍚姩瀹㈡埛绔紝鎴栬�呴�氳繃websocket鍘诲彂閫佹暟鎹� + if (self.connectState == emConnected) { + var json = JSON.stringify(obj); + self.NiuniuSocket.send('1' + encodeURIComponent(json)); + } else { + //棣栨鍚姩鏃讹紝涓嶆敮鎸佹按鍗帮紝鍚﹀垯浼氳繃闀� + obj.SetWatermarkPicturePath = ""; + //obj.SetWatermarkTextValue = ""; + console.log(obj) + var json = JSON.stringify(obj); + self.WriteLog(json.length); + var newUrl = self.CaptureName + "://" + encodeURIComponent(json); + if (isLinux()) { + newUrl = self.CaptureName + "://xxxx"; + } + self.WriteLog(newUrl.length); + + //鍚姩瀹㈡埛绔� + $('#startCaptureFrame').attr('src', newUrl); + + self.IsWaitCustomizedCallBack = true; + self.connectHost(); + return emCaptureUnknown; + } + + return emCaptureSuccess; + } catch (e) { + alert('message' + e.message); + } + return emCaptureUnknown; + } + + + this.IsNeedCustomizedProtocol = function () { + if (isMacintosh()) { + return true; + } + if (!self.useCustomizedProtoco) { + return false; + } + + if (self.pluginValid()) { + return false; + } + + try { + var agent = window.navigator.userAgent.toLowerCase(); + var isIE = agent.indexOf("compatible") > -1 && agent.indexOf("msie") > -1; + if (isIE) { + return false; + } + + var isIE11 = agent.indexOf('trident') > -1 && agent.indexOf("rv:11.0") > -1; + if (isIE11) { + return false; + } + var isQQBrowser = agent.indexOf("qqbrowser") != -1; + //if(isQQBrowser) + //{ + // return false; + //} + var isUBrowser = agent.indexOf("ubrowser") != -1; + if (isUBrowser) { + return false; + } + + //濡傛灉鏄痜irefox 涓斿湪50鐗堟湰浠ヤ笂锛屽垯闇�瑕� + var isFirefox = agent.indexOf("firefox") != -1; + if (isFirefox) { + return true; + } + + var isEdge = agent.indexOf("edge") != -1; + if (isEdge) { + return true; + } + + var isChrome = agent.indexOf("chrome") != -1; + if (isChrome) { + return true; + } + return false; + } catch (e) { + self.WriteLog("IsNeedCustomizedProtocol exception: " + e.message); + } + return true; + } + + this.GetVersion = function () { + if (self.IsNeedCustomizedProtocol()) { + if (self.connectState != emConnected) { + return; + } + var obj = new Object(); + obj.command = "version"; + self.NiuniuSocket.send("1" + encodeURIComponent(JSON.stringify(obj))); + return; + } + + if (!self.pluginValid()) { + return; + } + var verSion = self.niuniuCapture().GetVersion(); + self.VersionCallback(verSion); + self.WriteLog(verSion); + } +} diff --git a/project-web/public/static/js/reconnecting-websocket.js b/project-web/public/static/js/reconnecting-websocket.js new file mode 100644 index 0000000..0cd4332 --- /dev/null +++ b/project-web/public/static/js/reconnecting-websocket.js @@ -0,0 +1,365 @@ +// MIT License: +// +// Copyright (c) 2010-2012, Joe Walnes +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/** + * This behaves like a WebSocket in every way, except if it fails to connect, + * or it gets disconnected, it will repeatedly poll until it successfully connects + * again. + * + * It is API compatible, so when you have: + * ws = new WebSocket('ws://....'); + * you can replace with: + * ws = new ReconnectingWebSocket('ws://....'); + * + * The event stream will typically look like: + * onconnecting + * onopen + * onmessage + * onmessage + * onclose // lost connection + * onconnecting + * onopen // sometime later... + * onmessage + * onmessage + * etc... + * + * It is API compatible with the standard WebSocket API, apart from the following members: + * + * - `bufferedAmount` + * - `extensions` + * - `binaryType` + * + * Latest version: https://github.com/joewalnes/reconnecting-websocket/ + * - Joe Walnes + * + * Syntax + * ====== + * var socket = new ReconnectingWebSocket(url, protocols, options); + * + * Parameters + * ========== + * url - The url you are connecting to. + * protocols - Optional string or array of protocols. + * options - See below + * + * Options + * ======= + * Options can either be passed upon instantiation or set after instantiation: + * + * var socket = new ReconnectingWebSocket(url, null, { debug: true, reconnectInterval: 4000 }); + * + * or + * + * var socket = new ReconnectingWebSocket(url); + * socket.debug = true; + * socket.reconnectInterval = 4000; + * + * debug + * - Whether this instance should log debug messages. Accepts true or false. Default: false. + * + * automaticOpen + * - Whether or not the websocket should attempt to connect immediately upon instantiation. The socket can be manually opened or closed at any time using ws.open() and ws.close(). + * + * reconnectInterval + * - The number of milliseconds to delay before attempting to reconnect. Accepts integer. Default: 1000. + * + * maxReconnectInterval + * - The maximum number of milliseconds to delay a reconnection attempt. Accepts integer. Default: 30000. + * + * reconnectDecay + * - The rate of increase of the reconnect delay. Allows reconnect attempts to back off when problems persist. Accepts integer or float. Default: 1.5. + * + * timeoutInterval + * - The maximum time in milliseconds to wait for a connection to succeed before closing and retrying. Accepts integer. Default: 2000. + * + */ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof module !== 'undefined' && module.exports){ + module.exports = factory(); + } else { + global.ReconnectingWebSocket = factory(); + } +})(this, function () { + + if (!('WebSocket' in window)) { + return; + } + + function ReconnectingWebSocket(url, protocols, options) { + + // Default settings + var settings = { + + /** Whether this instance should log debug messages. */ + debug: false, + + /** Whether or not the websocket should attempt to connect immediately upon instantiation. */ + automaticOpen: true, + + /** The number of milliseconds to delay before attempting to reconnect. */ + reconnectInterval: 1000, + /** The maximum number of milliseconds to delay a reconnection attempt. */ + maxReconnectInterval: 30000, + /** The rate of increase of the reconnect delay. Allows reconnect attempts to back off when problems persist. */ + reconnectDecay: 1.5, + + /** The maximum time in milliseconds to wait for a connection to succeed before closing and retrying. */ + timeoutInterval: 2000, + + /** The maximum number of reconnection attempts to make. Unlimited if null. */ + maxReconnectAttempts: null, + + /** The binary type, possible values 'blob' or 'arraybuffer', default 'blob'. */ + binaryType: 'blob' + } + if (!options) { options = {}; } + + // Overwrite and define settings with options if they exist. + for (var key in settings) { + if (typeof options[key] !== 'undefined') { + this[key] = options[key]; + } else { + this[key] = settings[key]; + } + } + + // These should be treated as read-only properties + + /** The URL as resolved by the constructor. This is always an absolute URL. Read only. */ + this.url = url; + + /** The number of attempted reconnects since starting, or the last successful connection. Read only. */ + this.reconnectAttempts = 0; + + /** + * The current state of the connection. + * Can be one of: WebSocket.CONNECTING, WebSocket.OPEN, WebSocket.CLOSING, WebSocket.CLOSED + * Read only. + */ + this.readyState = WebSocket.CONNECTING; + + /** + * A string indicating the name of the sub-protocol the server selected; this will be one of + * the strings specified in the protocols parameter when creating the WebSocket object. + * Read only. + */ + this.protocol = null; + + // Private state variables + + var self = this; + var ws; + var forcedClose = false; + var timedOut = false; + var eventTarget = document.createElement('div'); + + // Wire up "on*" properties as event handlers + + eventTarget.addEventListener('open', function(event) { self.onopen(event); }); + eventTarget.addEventListener('close', function(event) { self.onclose(event); }); + eventTarget.addEventListener('connecting', function(event) { self.onconnecting(event); }); + eventTarget.addEventListener('message', function(event) { self.onmessage(event); }); + eventTarget.addEventListener('error', function(event) { self.onerror(event); }); + + // Expose the API required by EventTarget + + this.addEventListener = eventTarget.addEventListener.bind(eventTarget); + this.removeEventListener = eventTarget.removeEventListener.bind(eventTarget); + this.dispatchEvent = eventTarget.dispatchEvent.bind(eventTarget); + + /** + * This function generates an event that is compatible with standard + * compliant browsers and IE9 - IE11 + * + * This will prevent the error: + * Object doesn't support this action + * + * http://stackoverflow.com/questions/19345392/why-arent-my-parameters-getting-passed-through-to-a-dispatched-event/19345563#19345563 + * @param s String The name that the event should use + * @param args Object an optional object that the event will use + */ + function generateEvent(s, args) { + var evt = document.createEvent("CustomEvent"); + evt.initCustomEvent(s, false, false, args); + return evt; + }; + + this.open = function (reconnectAttempt) { + ws = new WebSocket(self.url, protocols || []); + ws.binaryType = this.binaryType; + + if (reconnectAttempt) { + if (this.maxReconnectAttempts && this.reconnectAttempts > this.maxReconnectAttempts) { + return; + } + } else { + eventTarget.dispatchEvent(generateEvent('connecting')); + this.reconnectAttempts = 0; + } + + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'attempt-connect', self.url); + } + + var localWs = ws; + var timeout = setTimeout(function() { + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'connection-timeout', self.url); + } + timedOut = true; + localWs.close(); + timedOut = false; + }, self.timeoutInterval); + + ws.onopen = function(event) { + clearTimeout(timeout); + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'onopen', self.url); + } + self.protocol = ws.protocol; + self.readyState = WebSocket.OPEN; + self.reconnectAttempts = 0; + var e = generateEvent('open'); + e.isReconnect = reconnectAttempt; + reconnectAttempt = false; + eventTarget.dispatchEvent(e); + }; + + ws.onclose = function(event) { + clearTimeout(timeout); + ws = null; + if (forcedClose) { + self.readyState = WebSocket.CLOSED; + eventTarget.dispatchEvent(generateEvent('close')); + } else { + self.readyState = WebSocket.CONNECTING; + var e = generateEvent('connecting'); + e.code = event.code; + e.reason = event.reason; + e.wasClean = event.wasClean; + eventTarget.dispatchEvent(e); + if (!reconnectAttempt && !timedOut) { + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'onclose', self.url); + } + eventTarget.dispatchEvent(generateEvent('close')); + } + + var timeout = self.reconnectInterval * Math.pow(self.reconnectDecay, self.reconnectAttempts); + setTimeout(function() { + self.reconnectAttempts++; + self.open(true); + }, timeout > self.maxReconnectInterval ? self.maxReconnectInterval : timeout); + } + }; + ws.onmessage = function(event) { + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'onmessage', self.url, event.data); + } + var e = generateEvent('message'); + e.data = event.data; + eventTarget.dispatchEvent(e); + }; + ws.onerror = function(event) { + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'onerror', self.url, event); + } + eventTarget.dispatchEvent(generateEvent('error')); + }; + } + + // Whether or not to create a websocket upon instantiation + if (this.automaticOpen == true) { + this.open(false); + } + + /** + * Transmits data to the server over the WebSocket connection. + * + * @param data a text string, ArrayBuffer or Blob to send to the server. + */ + this.send = function(data) { + if (ws) { + if (self.debug || ReconnectingWebSocket.debugAll) { + console.debug('ReconnectingWebSocket', 'send', self.url, data); + } + return ws.send(data); + } else { + throw 'INVALID_STATE_ERR : Pausing to reconnect websocket'; + } + }; + + /** + * Closes the WebSocket connection or connection attempt, if any. + * If the connection is already CLOSED, this method does nothing. + */ + this.close = function(code, reason) { + // Default CLOSE_NORMAL code + if (typeof code == 'undefined') { + code = 1000; + } + forcedClose = true; + if (ws) { + ws.close(code, reason); + } + }; + + /** + * Additional public API method to refresh the connection if still open (close, re-open). + * For example, if the app suspects bad data / missed heart beats, it can try to refresh. + */ + this.refresh = function() { + if (ws) { + ws.close(); + } + }; + } + + /** + * An event listener to be called when the WebSocket connection's readyState changes to OPEN; + * this indicates that the connection is ready to send and receive data. + */ + ReconnectingWebSocket.prototype.onopen = function(event) {}; + /** An event listener to be called when the WebSocket connection's readyState changes to CLOSED. */ + ReconnectingWebSocket.prototype.onclose = function(event) {}; + /** An event listener to be called when a connection begins being attempted. */ + ReconnectingWebSocket.prototype.onconnecting = function(event) {}; + /** An event listener to be called when a message is received from the server. */ + ReconnectingWebSocket.prototype.onmessage = function(event) {}; + /** An event listener to be called when an error occurs. */ + ReconnectingWebSocket.prototype.onerror = function(event) {}; + + /** + * Whether all instances of ReconnectingWebSocket should log debug messages. + * Setting this to true is the equivalent of setting all instances of ReconnectingWebSocket.debug to true. + */ + ReconnectingWebSocket.debugAll = false; + + ReconnectingWebSocket.CONNECTING = WebSocket.CONNECTING; + ReconnectingWebSocket.OPEN = WebSocket.OPEN; + ReconnectingWebSocket.CLOSING = WebSocket.CLOSING; + ReconnectingWebSocket.CLOSED = WebSocket.CLOSED; + + return ReconnectingWebSocket; +}); diff --git a/project-web/public/static/js/reconnecting-websocket.min.js b/project-web/public/static/js/reconnecting-websocket.min.js new file mode 100644 index 0000000..3015099 --- /dev/null +++ b/project-web/public/static/js/reconnecting-websocket.min.js @@ -0,0 +1 @@ +!function(a,b){"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports?module.exports=b():a.ReconnectingWebSocket=b()}(this,function(){function a(b,c,d){function l(a,b){var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,!1,!1,b),c}var e={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3};d||(d={});for(var f in e)this[f]="undefined"!=typeof d[f]?d[f]:e[f];this.url=b,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var h,g=this,i=!1,j=!1,k=document.createElement("div");k.addEventListener("open",function(a){g.onopen(a)}),k.addEventListener("close",function(a){g.onclose(a)}),k.addEventListener("connecting",function(a){g.onconnecting(a)}),k.addEventListener("message",function(a){g.onmessage(a)}),k.addEventListener("error",function(a){g.onerror(a)}),this.addEventListener=k.addEventListener.bind(k),this.removeEventListener=k.removeEventListener.bind(k),this.dispatchEvent=k.dispatchEvent.bind(k),this.open=function(b){h=new WebSocket(g.url,c||[]),b||k.dispatchEvent(l("connecting")),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",g.url);var d=h,e=setTimeout(function(){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",g.url),j=!0,d.close(),j=!1},g.timeoutInterval);h.onopen=function(){clearTimeout(e),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onopen",g.url),g.protocol=h.protocol,g.readyState=WebSocket.OPEN,g.reconnectAttempts=0;var d=l("open");d.isReconnect=b,b=!1,k.dispatchEvent(d)},h.onclose=function(c){if(clearTimeout(e),h=null,i)g.readyState=WebSocket.CLOSED,k.dispatchEvent(l("close"));else{g.readyState=WebSocket.CONNECTING;var d=l("connecting");d.code=c.code,d.reason=c.reason,d.wasClean=c.wasClean,k.dispatchEvent(d),b||j||((g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onclose",g.url),k.dispatchEvent(l("close")));var e=g.reconnectInterval*Math.pow(g.reconnectDecay,g.reconnectAttempts);setTimeout(function(){g.reconnectAttempts++,g.open(!0)},e>g.maxReconnectInterval?g.maxReconnectInterval:e)}},h.onmessage=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",g.url,b.data);var c=l("message");c.data=b.data,k.dispatchEvent(c)},h.onerror=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onerror",g.url,b),k.dispatchEvent(l("error"))}},1==this.automaticOpen&&this.open(!1),this.send=function(b){if(h)return(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","send",g.url,b),h.send(b);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(a,b){"undefined"==typeof a&&(a=1e3),i=!0,h&&h.close(a,b)},this.refresh=function(){h&&h.close()}}return a.prototype.onopen=function(){},a.prototype.onclose=function(){},a.prototype.onconnecting=function(){},a.prototype.onmessage=function(){},a.prototype.onerror=function(){},a.debugAll=!1,a.CONNECTING=WebSocket.CONNECTING,a.OPEN=WebSocket.OPEN,a.CLOSING=WebSocket.CLOSING,a.CLOSED=WebSocket.CLOSED,a}); diff --git a/project-web/public/static/tinymce4.7.5/langs/zh_CN.js b/project-web/public/static/tinymce4.7.5/langs/zh_CN.js new file mode 100644 index 0000000..b6c299c --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/langs/zh_CN.js @@ -0,0 +1,234 @@ +tinymce.addI18n('zh_CN',{ +"Cut": "\u526a\u5207", +"Heading 5": "\u6807\u98985", +"Header 2": "\u6807\u98982", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002", +"Heading 4": "\u6807\u98984", +"Div": "Div\u533a\u5757", +"Heading 2": "\u6807\u98982", +"Paste": "\u7c98\u8d34", +"Close": "\u5173\u95ed", +"Font Family": "\u5b57\u4f53", +"Pre": "\u9884\u683c\u5f0f\u6587\u672c", +"Align right": "\u53f3\u5bf9\u9f50", +"New document": "\u65b0\u6587\u6863", +"Blockquote": "\u5f15\u7528", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Heading 1": "\u6807\u98981", +"Headings": "\u6807\u9898", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Formats": "\u683c\u5f0f", +"Headers": "\u6807\u9898", +"Select all": "\u5168\u9009", +"Header 3": "\u6807\u98983", +"Blocks": "\u533a\u5757", +"Undo": "\u64a4\u6d88", +"Strikethrough": "\u5220\u9664\u7ebf", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Header 1": "\u6807\u98981", +"Superscript": "\u4e0a\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Font Sizes": "\u5b57\u53f7", +"Subscript": "\u4e0b\u6807", +"Header 6": "\u6807\u98986", +"Redo": "\u91cd\u590d", +"Paragraph": "\u6bb5\u843d", +"Ok": "\u786e\u5b9a", +"Bold": "\u7c97\u4f53", +"Code": "\u4ee3\u7801", +"Italic": "\u659c\u4f53", +"Align center": "\u5c45\u4e2d", +"Header 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Heading 3": "\u6807\u98983", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Header 4": "\u6807\u98984", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Underline": "\u4e0b\u5212\u7ebf", +"Cancel": "\u53d6\u6d88", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Inline": "\u6587\u672c", +"Copy": "\u590d\u5236", +"Align left": "\u5de6\u5bf9\u9f50", +"Visual aids": "\u7f51\u683c\u7ebf", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Square": "\u65b9\u5757", +"Default": "\u9ed8\u8ba4", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"Name": "\u540d\u79f0", +"Anchor": "\u951a\u70b9", +"Id": "\u6807\u8bc6\u7b26", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Source code": "\u6e90\u4ee3\u7801", +"Language": "\u8bed\u8a00", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"B": "B", +"R": "R", +"G": "G", +"Color": "\u989c\u8272", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Emoticons": "\u8868\u60c5", +"Robots": "\u673a\u5668\u4eba", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Encoding": "\u7f16\u7801", +"Description": "\u63cf\u8ff0", +"Author": "\u4f5c\u8005", +"Fullscreen": "\u5168\u5c4f", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Source": "\u5730\u5740", +"Border": "\u8fb9\u6846", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Style": "\u6837\u5f0f", +"Dimensions": "\u5927\u5c0f", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image": "\u56fe\u7247", +"Zoom in": "\u653e\u5927", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Back": "\u540e\u9000", +"Gamma": "\u4f3d\u9a6c\u503c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Sharpen": "\u9510\u5316", +"Zoom out": "\u7f29\u5c0f", +"Image options": "\u56fe\u7247\u9009\u9879", +"Apply": "\u5e94\u7528", +"Brightness": "\u4eae\u5ea6", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Crop": "\u88c1\u526a", +"Orientation": "\u65b9\u5411", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Invert": "\u53cd\u8f6c", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Url": "\u5730\u5740", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Anchors": "\u951a\u70b9", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Link": "\u94fe\u63a5", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"None": "\u65e0", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Media": "\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Poster": "\u5c01\u9762", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Embed": "\u5185\u5d4c", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print": "\u6253\u5370", +"Save": "\u4fdd\u5b58", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Replace": "\u66ff\u6362", +"Next": "\u4e0b\u4e00\u4e2a", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Replace with": "\u66ff\u6362\u4e3a", +"Find": "\u67e5\u627e", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Prev": "\u4e0a\u4e00\u4e2a", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Finish": "\u5b8c\u6210", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Ignore": "\u5ffd\u7565", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Rows": "\u884c", +"Height": "\u9ad8", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Column group": "\u5217\u7ec4", +"Row": "\u884c", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Row type": "\u884c\u7c7b\u578b", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Body": "\u8868\u4f53", +"Caption": "\u6807\u9898", +"Footer": "\u8868\u5c3e", +"Delete row": "\u5220\u9664\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Scope": "\u8303\u56f4", +"Delete table": "\u5220\u9664\u8868\u683c", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Column": "\u5217", +"Row group": "\u884c\u7ec4", +"Cell": "\u5355\u5143\u683c", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Copy row": "\u590d\u5236\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Header": "\u8868\u5934", +"Right": "\u53f3\u5bf9\u9f50", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Cols": "\u5217", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Width": "\u5bbd", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Left": "\u5de6\u5bf9\u9f50", +"Cut row": "\u526a\u5207\u884c", +"Delete column": "\u5220\u9664\u5217", +"Center": "\u5c45\u4e2d", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Insert template": "\u63d2\u5165\u6a21\u677f", +"Templates": "\u6a21\u677f", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Text color": "\u6587\u5b57\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"Insert": "\u63d2\u5165", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Tools": "\u5de5\u5177", +"View": "\u89c6\u56fe", +"Table": "\u8868\u683c", +"Format": "\u683c\u5f0f", + "Upload":"\u4e0a\u4f20", + "Browse for an image":"\u4e0a\u4f20\u56fe\u7247", + "OR":"\u6216", + "DROP AN IMAGE HERE":"\u5c06\u56fe\u7247\u62d6\u62fd\u5230\u6b64\u5904" +}); diff --git a/project-web/public/static/tinymce4.7.5/plugins/codesample/css/prism.css b/project-web/public/static/tinymce4.7.5/plugins/codesample/css/prism.css new file mode 100644 index 0000000..128237f --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/codesample/css/prism.css @@ -0,0 +1,138 @@ +/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #a67f59; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif new file mode 100644 index 0000000..ba90cc3 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif new file mode 100644 index 0000000..74d897a --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif new file mode 100644 index 0000000..963a96b --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif new file mode 100644 index 0000000..c7cf101 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif new file mode 100644 index 0000000..716f55e --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif new file mode 100644 index 0000000..334d49e --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif new file mode 100644 index 0000000..4efd549 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif new file mode 100644 index 0000000..82c5b18 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif new file mode 100644 index 0000000..ca2451e --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif new file mode 100644 index 0000000..fe66220 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif new file mode 100644 index 0000000..fd27edf --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif new file mode 100644 index 0000000..0cc9bb7 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif new file mode 100644 index 0000000..2075dc1 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif new file mode 100644 index 0000000..bef7e25 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif new file mode 100644 index 0000000..0631c76 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif new file mode 100644 index 0000000..648e6e8 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css b/project-web/public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css new file mode 100644 index 0000000..96e4d7c --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css @@ -0,0 +1,154 @@ +.mce-visualblocks p { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); + background-repeat: no-repeat; +} + +.mce-visualblocks h1 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks h2 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks h3 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); + background-repeat: no-repeat; +} + +.mce-visualblocks h4 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks h5 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks h6 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks div:not([data-mce-bogus]) { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); + background-repeat: no-repeat; +} + +.mce-visualblocks section { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); + background-repeat: no-repeat; +} + +.mce-visualblocks article { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); + background-repeat: no-repeat; +} + +.mce-visualblocks blockquote { + padding-top: 10px; + border: 1px dashed #BBB; + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); + background-repeat: no-repeat; +} + +.mce-visualblocks address { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); + background-repeat: no-repeat; +} + +.mce-visualblocks pre { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks figure { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); + background-repeat: no-repeat; +} + +.mce-visualblocks hgroup { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); + background-repeat: no-repeat; +} + +.mce-visualblocks aside { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); + background-repeat: no-repeat; +} + +.mce-visualblocks figcaption { + border: 1px dashed #BBB; +} + +.mce-visualblocks ul { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks ol { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); + background-repeat: no-repeat; +} + +.mce-visualblocks dl { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); + background-repeat: no-repeat; +} diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css b/project-web/public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css new file mode 100644 index 0000000..7b45d33 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css @@ -0,0 +1 @@ +.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} \ No newline at end of file diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/content.min.css b/project-web/public/static/tinymce4.7.5/skins/lightgray/content.min.css new file mode 100644 index 0000000..bad168c --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/content.min.css @@ -0,0 +1 @@ +body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} a {color: #1478F0;} diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff new file mode 100644 index 0000000..1e3be03 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot new file mode 100644 index 0000000..b144ba0 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg new file mode 100644 index 0000000..b4ee6f4 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg @@ -0,0 +1,63 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by IcoMoon</metadata> +<defs> +<font id="tinymce-small" horiz-adv-x="1024"> +<font-face units-per-em="1024" ascent="960" descent="-64" /> +<missing-glyph horiz-adv-x="1024" /> +<glyph unicode=" " horiz-adv-x="512" d="" /> +<glyph unicode="" glyph-name="save" d="M960 80v591.938l-223.938 224.062h-592.062c-44.182 0-80-35.816-80-80v-736c0-44.184 35.818-80 80-80h736c44.184 0 80 35.816 80 80zM576 768h64v-192h-64v192zM704 128h-384v255.882c0.034 0.042 0.076 0.082 0.116 0.118h383.77c0.040-0.036 0.082-0.076 0.116-0.118l-0.002-255.882zM832 128h-64v256c0 35.2-28.8 64-64 64h-384c-35.2 0-64-28.8-64-64v-256h-64v640h64v-192c0-35.2 28.8-64 64-64h320c35.2 0 64 28.8 64 64v171.010l128-128.072v-490.938z" /> +<glyph unicode="" glyph-name="newdocument" d="M850.746 717.254l-133.492 133.49c-24.888 24.892-74.054 45.256-109.254 45.256h-416c-35.2 0-64-28.8-64-64v-768c0-35.2 28.8-64 64-64h640c35.2 0 64 28.8 64 64v544c0 35.2-20.366 84.364-45.254 109.254zM805.49 672.002c6.792-6.796 13.792-19.162 18.894-32.002h-184.384v184.386c12.84-5.1 25.204-12.1 32-18.896l133.49-133.488zM831.884 64h-639.77c-0.040 0.034-0.082 0.076-0.114 0.116v767.77c0.034 0.040 0.076 0.082 0.114 0.114h383.886v-256h256v-511.884c-0.034-0.040-0.076-0.082-0.116-0.116z" /> +<glyph unicode="" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" /> +<glyph unicode="" glyph-name="alignleft" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM64 576h576v-128h-576zM64 192h576v-128h-576z" /> +<glyph unicode="" glyph-name="aligncenter" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM256 576h512v-128h-512zM256 192h512v-128h-512z" /> +<glyph unicode="" glyph-name="alignright" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM384 576h576v-128h-576zM384 192h576v-128h-576z" /> +<glyph unicode="" glyph-name="alignjustify" d="M64 768h896v-128h-896zM64 384h896v-128h-896zM64 576h896v-128h-896zM64 192h896v-128h-896z" /> +<glyph unicode="" glyph-name="cut" d="M864.408 289.868c-46.47 46.47-106.938 68.004-161.082 62.806l-63.326 63.326 192 192c0 0 128 128 0 256l-320-320-320 320c-128-128 0-256 0-256l192-192-63.326-63.326c-54.144 5.198-114.61-16.338-161.080-62.806-74.98-74.98-85.112-186.418-22.626-248.9 62.482-62.482 173.92-52.354 248.9 22.626 46.47 46.468 68.002 106.938 62.806 161.080l63.326 63.326 63.328-63.328c-5.196-54.144 16.336-114.61 62.806-161.078 74.978-74.98 186.418-85.112 248.898-22.626 62.488 62.482 52.356 173.918-22.624 248.9zM353.124 201.422c-2.212-24.332-15.020-49.826-35.14-69.946-22.212-22.214-51.080-35.476-77.218-35.476-10.524 0-25.298 2.228-35.916 12.848-21.406 21.404-17.376 73.132 22.626 113.136 22.212 22.214 51.080 35.476 77.218 35.476 10.524 0 25.298-2.228 35.916-12.848 13.112-13.11 13.47-32.688 12.514-43.19zM512 352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM819.152 108.848c-10.62-10.62-25.392-12.848-35.916-12.848-26.138 0-55.006 13.262-77.218 35.476-20.122 20.12-32.928 45.614-35.138 69.946-0.958 10.502-0.6 30.080 12.514 43.192 10.618 10.622 25.39 12.848 35.916 12.848 26.136 0 55.006-13.262 77.216-35.474 40.004-40.008 44.032-91.736 22.626-113.14z" /> +<glyph unicode="" glyph-name="paste" d="M704 576v160c0 17.6-14.4 32-32 32h-160v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-160c-17.602 0-32-14.4-32-32v-512c0-17.6 14.398-32 32-32h224v-192h384l192 192v384h-192zM320 831.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 640v64h384v-64h-384zM704 90.51v101.49h101.49l-101.49-101.49zM832 256h-192v-192h-256v448h448v-256z" /> +<glyph unicode="" glyph-name="searchreplace" d="M888 576h-56v256h64v64h-320v-64h64v-256h-256v256h64v64h-320v-64h64v-256h-56c-39.6 0-72-32.4-72-72v-432c0-39.6 32.4-72 72-72h240c39.6 0 72 32.4 72 72v312h128v-312c0-39.6 32.4-72 72-72h240c39.6 0 72 32.4 72 72v432c0 39.6-32.4 72-72 72zM348 64h-184c-19.8 0-36 14.4-36 32s16.2 32 36 32h184c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM860 64h-184c-19.8 0-36 14.4-36 32s16.2 32 36 32h184c19.8 0 36-14.4 36-32s-16.2-32-36-32z" /> +<glyph unicode="" glyph-name="bullist" d="M384 832h576v-128h-576zM384 512h576v-128h-576zM384 192h576v-128h-576zM128 768c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM128 448c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM128 128c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64z" /> +<glyph unicode="" glyph-name="numlist" d="M384 832h576v-128h-576zM384 512h576v-128h-576zM384 192h576v-128h-576zM320 430v146h-64v320h-128v-64h64v-256h-64v-64h128v-50l-128-60v-146h128v-64h-128v-64h128v-64h-128v-64h192v320h-128v50z" /> +<glyph unicode="" glyph-name="indent" d="M64 768h896v-128h-896zM384 384h576v-128h-576zM384 576h576v-128h-576zM64 192h896v-128h-896zM64 576l224-160-224-160z" /> +<glyph unicode="" glyph-name="outdent" d="M64 768h896v-128h-896zM64 384h576v-128h-576zM64 576h576v-128h-576zM64 192h896v-128h-896zM960 576l-224-160 224-160z" /> +<glyph unicode="" glyph-name="blockquote" d="M256.428 535.274c105.8 0 191.572-91.17 191.572-203.638 0-112.464-85.772-203.636-191.572-203.636-105.802 0-191.572 91.17-191.572 203.636l-0.856 29.092c0 224.93 171.54 407.272 383.144 407.272v-116.364c-73.1 0-141.826-30.26-193.516-85.204-9.954-10.578-19.034-21.834-27.224-33.656 9.784 1.64 19.806 2.498 30.024 2.498zM768.428 535.274c105.8 0 191.572-91.17 191.572-203.638 0-112.464-85.772-203.636-191.572-203.636-105.802 0-191.572 91.17-191.572 203.636l-0.856 29.092c0 224.93 171.54 407.272 383.144 407.272v-116.364c-73.1 0-141.826-30.26-193.516-85.204-9.956-10.578-19.036-21.834-27.224-33.656 9.784 1.64 19.806 2.498 30.024 2.498z" /> +<glyph unicode="" glyph-name="undo" d="M704 0c59 199 134.906 455.266-256 446.096v-222.096l-336.002 336 336.002 336v-217.326c468.092 12.2 544-358.674 256-678.674z" /> +<glyph unicode="" glyph-name="redo" d="M576 678.674v217.326l336.002-336-336.002-336v222.096c-390.906 9.17-315-247.096-256-446.096-288 320-212.092 690.874 256 678.674z" /> +<glyph unicode="" glyph-name="unlink" d="M927.274 729.784l-133.49 133.488c-21.104 21.104-49.232 32.728-79.198 32.728s-58.094-11.624-79.196-32.726l-165.492-165.49c-43.668-43.668-43.668-114.724 0-158.392l2.746-2.746 67.882 67.882-2.746 2.746c-6.132 6.132-6.132 16.494 0 22.626l165.492 165.492c4.010 4.008 8.808 4.608 11.312 4.608s7.302-0.598 11.312-4.61l133.49-133.488c6.132-6.134 6.132-16.498 0.002-22.628l-165.494-165.494c-4.008-4.008-8.806-4.608-11.31-4.608s-7.302 0.6-11.312 4.612l-2.746 2.746-67.88-67.884 2.742-2.742c21.106-21.108 49.23-32.728 79.2-32.728s58.094 11.624 79.196 32.726l165.494 165.492c43.662 43.666 43.662 114.72-0.004 158.39zM551.356 359.356l-67.882-67.882 2.746-2.746c4.008-4.008 4.61-8.806 4.61-11.31 0-2.506-0.598-7.302-4.606-11.314l-165.494-165.49c-4.010-4.010-8.81-4.61-11.314-4.61s-7.304 0.6-11.314 4.61l-133.492 133.486c-4.010 4.010-4.61 8.81-4.61 11.314s0.598 7.3 4.61 11.312l165.49 165.488c4.010 4.012 8.81 4.612 11.314 4.612s7.304-0.6 11.314-4.612l2.746-2.742 67.882 67.88-2.746 2.746c-21.104 21.104-49.23 32.726-79.196 32.726s-58.092-11.624-79.196-32.726l-165.488-165.486c-21.106-21.104-32.73-49.234-32.73-79.198s11.624-58.094 32.726-79.198l133.49-133.49c21.106-21.102 49.232-32.726 79.198-32.726s58.092 11.624 79.196 32.726l165.494 165.492c21.104 21.104 32.722 49.23 32.722 79.196s-11.624 58.094-32.726 79.196l-2.744 2.746zM352 250c-9.724 0-19.45 3.71-26.87 11.128-14.84 14.84-14.84 38.898 0 53.738l320 320c14.84 14.84 38.896 14.84 53.736 0 14.844-14.84 14.844-38.9 0-53.74l-320-320c-7.416-7.416-17.142-11.126-26.866-11.126z" /> +<glyph unicode="" glyph-name="link" d="M927.274 729.784l-133.49 133.488c-21.104 21.104-49.232 32.728-79.198 32.728s-58.094-11.624-79.196-32.726l-165.492-165.49c-43.668-43.668-43.668-114.724 0-158.392l2.746-2.746 67.882 67.882-2.746 2.746c-6.132 6.132-6.132 16.494 0 22.626l165.492 165.492c4.010 4.008 8.808 4.608 11.312 4.608s7.302-0.598 11.312-4.61l133.49-133.488c6.132-6.134 6.132-16.498 0.002-22.628l-165.494-165.494c-4.008-4.008-8.806-4.608-11.31-4.608s-7.302 0.6-11.312 4.612l-2.746 2.746-67.88-67.884 2.742-2.742c21.106-21.108 49.23-32.728 79.2-32.728s58.094 11.624 79.196 32.726l165.494 165.492c43.662 43.666 43.662 114.72-0.004 158.39zM551.356 359.356l-67.882-67.882 2.746-2.746c4.008-4.008 4.61-8.806 4.61-11.31 0-2.506-0.598-7.302-4.606-11.314l-165.494-165.49c-4.010-4.010-8.81-4.61-11.314-4.61s-7.304 0.6-11.314 4.61l-133.492 133.486c-4.010 4.010-4.61 8.81-4.61 11.314s0.598 7.3 4.61 11.312l165.49 165.488c4.010 4.012 8.81 4.612 11.314 4.612s7.304-0.6 11.314-4.612l2.746-2.742 67.882 67.88-2.746 2.746c-21.104 21.104-49.23 32.726-79.196 32.726s-58.092-11.624-79.196-32.726l-165.488-165.486c-21.106-21.104-32.73-49.234-32.73-79.198s11.624-58.094 32.726-79.198l133.49-133.49c21.106-21.102 49.232-32.726 79.198-32.726s58.092 11.624 79.196 32.726l165.494 165.492c21.104 21.104 32.722 49.23 32.722 79.196s-11.624 58.094-32.726 79.196l-2.744 2.746zM800 122c-9.724 0-19.45 3.708-26.87 11.13l-128 127.998c-14.844 14.84-14.844 38.898 0 53.738 14.84 14.844 38.896 14.844 53.736 0l128-128c14.844-14.84 14.844-38.896 0-53.736-7.416-7.422-17.142-11.13-26.866-11.13zM608 0c-17.674 0-32 14.326-32 32v128c0 17.674 14.326 32 32 32s32-14.326 32-32v-128c0-17.674-14.326-32-32-32zM928 320h-128c-17.674 0-32 14.326-32 32s14.326 32 32 32h128c17.674 0 32-14.326 32-32s-14.326-32-32-32zM224 774c9.724 0 19.45-3.708 26.87-11.13l128-128c14.842-14.84 14.842-38.898 0-53.738-14.84-14.844-38.898-14.844-53.738 0l-128 128c-14.842 14.84-14.842 38.898 0 53.738 7.418 7.422 17.144 11.13 26.868 11.13zM416 896c17.674 0 32-14.326 32-32v-128c0-17.674-14.326-32-32-32s-32 14.326-32 32v128c0 17.674 14.326 32 32 32zM96 576h128c17.674 0 32-14.326 32-32s-14.326-32-32-32h-128c-17.674 0-32 14.326-32 32s14.326 32 32 32z" /> +<glyph unicode="" glyph-name="bookmark" d="M256 896v-896l256 256 256-256v896h-512zM704 170.51l-192 192-192-192v661.49h384v-661.49z" /> +<glyph unicode="" glyph-name="image" d="M896 832h-768c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h768c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM896 128.116c-0.012-0.014-0.030-0.028-0.042-0.042l-191.958 319.926-160-128-224 288-191.968-479.916c-0.010 0.010-0.022 0.022-0.032 0.032v639.77c0.034 0.040 0.076 0.082 0.114 0.114h767.77c0.040-0.034 0.082-0.076 0.116-0.116v-639.768zM640 608c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96s-96-42.981-96-96z" /> +<glyph unicode="" glyph-name="media" d="M896 832h-768c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h768c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM256 128h-128v128h128v-128zM256 384h-128v128h128v-128zM256 640h-128v128h128v-128zM704 128h-384v640h384v-640zM896 128h-128v128h128v-128zM896 384h-128v128h128v-128zM896 640h-128v128h128v-128zM384 640v-384l288 192z" /> +<glyph unicode="" glyph-name="help" d="M448 256h128v-128h-128v128zM704 704c35.346 0 64-28.654 64-64v-166l-228-154h-92v64l192 128v64h-320v128h384zM512 896c-119.666 0-232.166-46.6-316.784-131.216-84.614-84.618-131.216-197.118-131.216-316.784 0-119.664 46.602-232.168 131.216-316.784 84.618-84.616 197.118-131.216 316.784-131.216 119.664 0 232.168 46.6 316.784 131.216s131.216 197.12 131.216 316.784c0 119.666-46.6 232.166-131.216 316.784-84.616 84.616-197.12 131.216-316.784 131.216z" /> +<glyph unicode="" glyph-name="code" d="M416 256l-192 192 192 192-64 64-256-256 256-256zM672 704l-64-64 192-192-192-192 64-64 256 256z" /> +<glyph unicode="" glyph-name="insertdatetime" d="M77.798 655.376l81.414-50.882c50.802 81.114 128.788 143.454 221.208 174.246l-30.366 91.094c-113.748-37.898-209.728-114.626-272.256-214.458zM673.946 869.834l-30.366-91.094c92.422-30.792 170.404-93.132 221.208-174.248l81.412 50.882c-62.526 99.834-158.506 176.562-272.254 214.46zM607.974 255.992c-4.808 0-9.692 1.090-14.286 3.386l-145.688 72.844v211.778c0 17.672 14.328 32 32 32s32-14.328 32-32v-172.222l110.31-55.156c15.806-7.902 22.214-27.124 14.31-42.932-5.604-11.214-16.908-17.696-28.646-17.698zM512 768c-212.078 0-384-171.922-384-384s171.922-384 384-384c212.078 0 384 171.922 384 384s-171.922 384-384 384zM512 96c-159.058 0-288 128.942-288 288s128.942 288 288 288c159.058 0 288-128.942 288-288s-128.942-288-288-288z" /> +<glyph unicode="" glyph-name="preview" d="M64 504.254c45.318 49.92 97.162 92.36 153.272 125.124 90.332 52.744 192.246 80.622 294.728 80.622 102.48 0 204.396-27.878 294.726-80.624 56.112-32.764 107.956-75.204 153.274-125.124v117.432c-33.010 28.118-68.124 53.14-104.868 74.594-105.006 61.314-223.658 93.722-343.132 93.722s-238.128-32.408-343.134-93.72c-36.742-21.454-71.856-46.478-104.866-74.596v-117.43zM512 640c-183.196 0-345.838-100.556-448-256 102.162-155.448 264.804-256 448-256s345.838 100.552 448 256c-102.162 155.444-264.804 256-448 256zM512 448c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.348 28.654 64 64 64s64-28.652 64-64zM728.066 263.338c-67.434-39.374-140.128-59.338-216.066-59.338s-148.632 19.964-216.066 59.338c-51.554 30.104-98.616 71.31-138.114 120.662 39.498 49.35 86.56 90.558 138.116 120.66 13.276 7.752 26.758 14.74 40.426 20.982-10.512-23.742-16.362-50.008-16.362-77.642 0-106.040 85.962-192 192-192 106.040 0 192 85.96 192 192 0 27.634-5.85 53.9-16.36 77.642 13.668-6.244 27.15-13.23 40.426-20.982 51.554-30.102 98.616-71.31 138.116-120.66-39.498-49.352-86.56-90.558-138.116-120.662z" /> +<glyph unicode="" glyph-name="forecolor" d="M651.168 676.166c-24.612 81.962-28.876 91.834-107.168 91.834h-64c-79.618 0-82.664-10.152-108.418-96 0-0.002 0-0.002-0.002-0.004l-143.998-479.996h113.636l57.6 192h226.366l57.6-192h113.63l-145.246 484.166zM437.218 512l38.4 136c10.086 33.618 36.38 30 36.38 30s26.294 3.618 36.38-30h0.004l38.4-136h-149.564z" /> +<glyph unicode="" glyph-name="table" d="M64 768v-704h896v704h-896zM384 320v128h256v-128h-256zM640 256v-128h-256v128h256zM640 640v-128h-256v128h256zM320 640v-128h-192v128h192zM128 448h192v-128h-192v128zM704 448h192v-128h-192v128zM704 512v128h192v-128h-192zM128 256h192v-128h-192v128zM704 128v128h192v-128h-192z" /> +<glyph unicode="" glyph-name="hr" d="M64 512h896v-128h-896z" /> +<glyph unicode="" glyph-name="removeformat" d="M64 192h512v-128h-512v128zM768 768h-220.558l-183.766-512h-132.288l183.762 512h-223.15v128h576v-128zM929.774 64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774-62.226-62.226z" /> +<glyph unicode="" glyph-name="subscript" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" /> +<glyph unicode="" glyph-name="superscript" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" /> +<glyph unicode="" glyph-name="charmap" d="M704 128v37.004c151.348 61.628 256 193.82 256 346.996 0 212.078-200.576 384-448 384s-448-171.922-448-384c0-153.176 104.654-285.368 256-346.996v-37.004h-192l-64 96v-224h320v222.812c-100.9 51.362-170.666 161.54-170.666 289.188 0 176.732 133.718 320 298.666 320s298.666-143.268 298.666-320c0-127.648-69.766-237.826-170.666-289.188v-222.812h320v224l-64-96h-192z" /> +<glyph unicode="" glyph-name="emoticons" d="M512 820c99.366 0 192.782-38.694 263.042-108.956s108.958-163.678 108.958-263.044-38.696-192.782-108.958-263.042-163.676-108.958-263.042-108.958-192.782 38.696-263.044 108.958-108.956 163.676-108.956 263.042 38.694 192.782 108.956 263.044 163.678 108.956 263.044 108.956zM512 896c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448v0zM320 576c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM576 576c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64s-64-28.654-64-64zM512 304c-101.84 0-192.56 36.874-251.166 94.328 23.126-117.608 126.778-206.328 251.166-206.328s228.040 88.72 251.168 206.328c-58.608-57.454-149.328-94.328-251.168-94.328z" /> +<glyph unicode="" glyph-name="print" d="M256 832h512v-128h-512v128zM896 640h-768c-35.2 0-64-28.8-64-64v-256c0-35.2 28.796-64 64-64h128v-192h512v192h128c35.2 0 64 28.8 64 64v256c0 35.2-28.8 64-64 64zM704 128h-384v256h384v-256zM910.4 544c0-25.626-20.774-46.4-46.398-46.4s-46.402 20.774-46.402 46.4 20.778 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" /> +<glyph unicode="" glyph-name="fullscreen" d="M480 576l-192 192 128 128h-352v-352l128 128 192-192zM640 480l192 192 128-128v352h-352l128-128-192-192zM544 320l192-192-128-128h352v352l-128-128-192 192zM384 416l-192-192-128 128v-352h352l-128 128 192 192z" /> +<glyph unicode="" glyph-name="spellcheck" d="M960 832v64h-192c-35.202 0-64-28.8-64-64v-320c0-15.856 5.858-30.402 15.496-41.614l-303.496-260.386-142 148-82-70 224-288 416 448h128v64h-192v320h192zM256 448h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192h128v-192zM128 704v128h128v-128h-128zM640 512v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64zM448 832h128v-128h-128v128zM448 640h128v-128h-128v128z" /> +<glyph unicode="" glyph-name="nonbreaking" d="M448 448h-128v128h128v128h128v-128h128v-128h-128v-128h-128v128zM960 384v-320h-896v320h128v-192h640v192h128z" /> +<glyph unicode="" glyph-name="template" d="M512 576h128v-64h-128zM512 192h128v-64h-128zM576 384h128v-64h-128zM768 384v-192h-64v-64h128v256zM384 384h128v-64h-128zM320 192h128v-64h-128zM320 576h128v-64h-128zM192 768v-256h64v192h64v64zM704 512h128v256h-64v-192h-64zM64 896v-896h896v896h-896zM896 64h-768v768h768v-768zM192 384v-256h64v192h64v64zM576 768h128v-64h-128zM384 768h128v-64h-128z" /> +<glyph unicode="" glyph-name="pagebreak" d="M816 896l16-384h-640l16 384h32l16-320h512l16 320h32zM208 0l-16 320h640l-16-320h-32l-16 256h-512l-16-256h-32zM64 448h128v-64h-128zM256 448h128v-64h-128zM448 448h128v-64h-128zM640 448h128v-64h-128zM832 448h128v-64h-128z" /> +<glyph unicode="" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" /> +<glyph unicode="" glyph-name="bold" d="M625.442 465.818c48.074 38.15 78.558 94.856 78.558 158.182 0 114.876-100.29 208-224 208h-224v-768h288c123.712 0 224 93.124 224 208 0 88.196-59.118 163.562-142.558 193.818zM384 656c0 26.51 21.49 48 48 48h67.204c42.414 0 76.796-42.98 76.796-96s-34.382-96-76.796-96h-115.204v144zM547.2 192h-115.2c-26.51 0-48 21.49-48 48v144h163.2c42.418 0 76.8-42.98 76.8-96s-34.382-96-76.8-96z" /> +<glyph unicode="" glyph-name="italic" d="M832 832v-64h-144l-256-640h144v-64h-448v64h144l256 640h-144v64h448z" /> +<glyph unicode="" glyph-name="underline" d="M192 128h576v-64h-576v64zM640 832v-384c0-31.312-14.7-61.624-41.39-85.352-30.942-27.502-73.068-42.648-118.61-42.648-45.544 0-87.668 15.146-118.608 42.648-26.692 23.728-41.392 54.040-41.392 85.352v384h-128v-384c0-141.382 128.942-256 288-256s288 114.618 288 256v384h-128z" /> +<glyph unicode="" glyph-name="strikethrough" d="M960 448h-265.876c-50.078 35.42-114.43 54.86-182.124 54.86-89.206 0-164.572 50.242-164.572 109.712s75.366 109.714 164.572 109.714c75.058 0 140.308-35.576 159.12-82.286h113.016c-7.93 50.644-37.58 97.968-84.058 132.826-50.88 38.16-117.676 59.174-188.078 59.174-70.404 0-137.196-21.014-188.074-59.174-54.788-41.090-86.212-99.502-86.212-160.254s31.424-119.164 86.212-160.254c1.956-1.466 3.942-2.898 5.946-4.316h-265.872v-64h512.532c58.208-17.106 100.042-56.27 100.042-100.572 0-59.468-75.368-109.71-164.572-109.71-75.060 0-140.308 35.574-159.118 82.286h-113.016c7.93-50.64 37.582-97.968 84.060-132.826 50.876-38.164 117.668-59.18 188.072-59.18 70.402 0 137.198 21.016 188.074 59.174 54.79 41.090 86.208 99.502 86.208 160.254 0 35.298-10.654 69.792-30.294 100.572h204.012v64z" /> +<glyph unicode="" glyph-name="visualchars" d="M384 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448z" /> +<glyph unicode="" glyph-name="ltr" d="M448 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448zM64 64l224 192-224 192z" /> +<glyph unicode="" glyph-name="rtl" d="M320 832c-123.712 0-224-100.288-224-224s100.288-224 224-224v-320h128v640h64v-640h128v640h128v128h-448zM960 448l-224-192 224-192z" /> +<glyph unicode="" glyph-name="copy" d="M832 640h-192v64l-192 192h-384v-704h384v-192h576v448l-192 192zM832 549.49l101.49-101.49h-101.49v101.49zM448 805.49l101.49-101.49h-101.49v101.49zM128 832h256v-192h192v-384h-448v576zM960 64h-448v128h128v384h128v-192h192v-320z" /> +<glyph unicode="" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" /> +<glyph unicode="" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM840.34 256h87.66l32 448h-896l64-640h356.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM874.996 110.25l-134.496 110.692c17.454 28.922 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l110.692-134.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM576 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" /> +<glyph unicode="" glyph-name="pastetext" d="M704 576v160c0 17.6-14.4 32-32 32h-160v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-160c-17.602 0-32-14.4-32-32v-512c0-17.6 14.398-32 32-32h224v-192h576v576h-192zM320 831.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 640v64h384v-64h-384zM832 64h-448v448h448v-448zM448 448v-128h32l32 64h64v-192h-48v-64h160v64h-48v192h64l32-64h32v128z" /> +<glyph unicode="" glyph-name="codesample" d="M200.015 577.994v103.994c0 43.077 34.919 77.997 77.997 77.997h26v103.994h-26c-100.51 0-181.991-81.481-181.991-181.991v-103.994c0-43.077-34.919-77.997-77.997-77.997h-26v-103.994h26c43.077 0 77.997-34.919 77.997-77.997v-103.994c0-100.509 81.481-181.991 181.991-181.991h26v103.994h-26c-43.077 0-77.997 34.919-77.997 77.997v103.994c0 50.927-20.928 96.961-54.642 129.994 33.714 33.032 54.642 79.065 54.642 129.994zM823.985 577.994v103.994c0 43.077-34.919 77.997-77.997 77.997h-26v103.994h26c100.509 0 181.991-81.481 181.991-181.991v-103.994c0-43.077 34.919-77.997 77.997-77.997h26v-103.994h-26c-43.077 0-77.997-34.919-77.997-77.997v-103.994c0-100.509-81.482-181.991-181.991-181.991h-26v103.994h26c43.077 0 77.997 34.919 77.997 77.997v103.994c0 50.927 20.928 96.961 54.642 129.994-33.714 33.032-54.642 79.065-54.642 129.994zM615.997 603.277c0-57.435-46.56-103.994-103.994-103.994s-103.994 46.56-103.994 103.994c0 57.435 46.56 103.994 103.994 103.994s103.994-46.56 103.994-103.994zM512 448.717c-57.435 0-103.994-46.56-103.994-103.994 0-55.841 26-100.107 105.747-103.875-23.715-33.413-59.437-46.608-105.747-50.94v-61.747c0 0 207.991-18.144 207.991 216.561-0.202 57.437-46.56 103.996-103.994 103.996z" /> +</font></defs></svg> \ No newline at end of file diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf new file mode 100644 index 0000000..a983e2d --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff new file mode 100644 index 0000000..d8962df --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot new file mode 100644 index 0000000..5336c38 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg new file mode 100644 index 0000000..9fa215f --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg @@ -0,0 +1,131 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by IcoMoon</metadata> +<defs> +<font id="tinymce" horiz-adv-x="1024"> +<font-face units-per-em="1024" ascent="960" descent="-64" /> +<missing-glyph horiz-adv-x="1024" /> +<glyph unicode=" " horiz-adv-x="512" d="" /> +<glyph unicode="" glyph-name="save" d="M896 960h-896v-1024h1024v896l-128 128zM512 832h128v-256h-128v256zM896 64h-768v768h64v-320h576v320h74.978l53.022-53.018v-714.982z" /> +<glyph unicode="" glyph-name="newdocument" d="M903.432 760.57l-142.864 142.862c-31.112 31.112-92.568 56.568-136.568 56.568h-480c-44 0-80-36-80-80v-864c0-44 36-80 80-80h736c44 0 80 36 80 80v608c0 44-25.456 105.458-56.568 136.57zM858.178 715.314c3.13-3.13 6.25-6.974 9.28-11.314h-163.458v163.456c4.34-3.030 8.184-6.15 11.314-9.28l142.864-142.862zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16h480c4.832 0 10.254-0.61 16-1.704v-254.296h254.296c1.094-5.746 1.704-11.166 1.704-16v-608z" /> +<glyph unicode="" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" /> +<glyph unicode="" glyph-name="alignleft" d="M0 896h1024v-128h-1024zM0 704h640v-128h-640zM0 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" /> +<glyph unicode="" glyph-name="aligncenter" d="M0 896h1024v-128h-1024zM192 704h640v-128h-640zM192 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" /> +<glyph unicode="" glyph-name="alignright" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" /> +<glyph unicode="" glyph-name="alignjustify" d="M0 896h1024v-128h-1024zM0 704h1024v-128h-1024zM0 512h1024v-128h-1024zM0 320h1024v-128h-1024zM0 128h1024v-128h-1024z" /> +<glyph unicode="" glyph-name="cut" d="M890.774 250.846c-45.654 45.556-103.728 69.072-157.946 69.072h-29.112l-63.904 64.008 255.62 256.038c63.904 64.010 63.904 192.028 0 256.038l-383.43-384.056-383.432 384.054c-63.904-64.008-63.904-192.028 0-256.038l255.622-256.034-63.906-64.008h-29.114c-54.22 0-112.292-23.518-157.948-69.076-81.622-81.442-92.65-202.484-24.63-270.35 29.97-29.902 70.288-44.494 112.996-44.494 54.216 0 112.29 23.514 157.946 69.072 53.584 53.464 76.742 124 67.084 185.348l65.384 65.488 65.376-65.488c-9.656-61.348 13.506-131.882 67.084-185.348 45.662-45.558 103.732-69.072 157.948-69.072 42.708 0 83.024 14.592 112.994 44.496 68.020 67.866 56.988 188.908-24.632 270.35zM353.024 114.462c-7.698-17.882-19.010-34.346-33.626-48.926-14.636-14.604-31.172-25.918-49.148-33.624-16.132-6.916-32.96-10.568-48.662-10.568-15.146 0-36.612 3.402-52.862 19.612-16.136 16.104-19.52 37.318-19.52 52.288 0 15.542 3.642 32.21 10.526 48.212 7.7 17.884 19.014 34.346 33.626 48.926 14.634 14.606 31.172 25.914 49.15 33.624 16.134 6.914 32.96 10.568 48.664 10.568 15.146 0 36.612-3.4 52.858-19.614 16.134-16.098 19.522-37.316 19.522-52.284 0.002-15.542-3.638-32.216-10.528-48.214zM512.004 293.404c-49.914 0-90.376 40.532-90.376 90.526 0 49.992 40.462 90.52 90.376 90.52s90.372-40.528 90.372-90.52c0-49.998-40.46-90.526-90.372-90.526zM855.272 40.958c-16.248-16.208-37.712-19.612-52.86-19.612-15.704 0-32.53 3.652-48.666 10.568-17.972 7.706-34.508 19.020-49.142 33.624-14.614 14.58-25.926 31.042-33.626 48.926-6.886 15.998-10.526 32.672-10.526 48.212 0 14.966 3.384 36.188 19.52 52.286 16.246 16.208 37.712 19.614 52.86 19.614 15.7 0 32.53-3.654 48.66-10.568 17.978-7.708 34.516-19.018 49.15-33.624 14.61-14.58 25.924-31.042 33.626-48.926 6.884-15.998 10.526-32.67 10.526-48.212-0.002-14.97-3.39-36.186-19.522-52.288z" /> +<glyph unicode="" glyph-name="paste" d="M832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h448l192 192v512h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM832 26.51v101.49h101.49l-101.49-101.49zM960 192h-192v-192h-320v576h512v-384z" /> +<glyph unicode="" glyph-name="searchreplace" d="M64 960h384v-64h-384zM576 960h384v-64h-384zM952 640h-56v256h-256v-256h-256v256h-256v-256h-56c-39.6 0-72-32.4-72-72v-560c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v376h128v-376c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v560c0 39.6-32.4 72-72 72zM348 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM924 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32z" /> +<glyph unicode="" glyph-name="bullist" d="M384 896h640v-128h-640v128zM384 512h640v-128h-640v128zM384 128h640v-128h-640v128zM0 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 64c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128z" /> +<glyph unicode="" glyph-name="numlist" d="M384 128h640v-128h-640zM384 512h640v-128h-640zM384 896h640v-128h-640zM192 960v-256h-64v192h-64v64zM128 434v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM256 256v-320h-192v64h128v64h-128v64h128v64h-128v64z" /> +<glyph unicode="" glyph-name="indent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM0 256v384l256-192z" /> +<glyph unicode="" glyph-name="outdent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM256 640v-384l-256 192z" /> +<glyph unicode="" glyph-name="blockquote" d="M225 512c123.712 0 224-100.29 224-224 0-123.712-100.288-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.634-11.636-22.252-24.016-31.83-37.020 11.438 1.8 23.16 2.746 35.104 2.746zM801 512c123.71 0 224-100.29 224-224 0-123.712-100.29-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.636-11.636-22.254-24.016-31.832-37.020 11.44 1.8 23.16 2.746 35.106 2.746z" /> +<glyph unicode="" glyph-name="undo" d="M761.862-64c113.726 206.032 132.888 520.306-313.862 509.824v-253.824l-384 384 384 384v-248.372c534.962 13.942 594.57-472.214 313.862-775.628z" /> +<glyph unicode="" glyph-name="redo" d="M576 711.628v248.372l384-384-384-384v253.824c-446.75 10.482-427.588-303.792-313.86-509.824-280.712 303.414-221.1 789.57 313.86 775.628z" /> +<glyph unicode="" glyph-name="link" d="M320 256c17.6-17.6 47.274-16.726 65.942 1.942l316.118 316.116c18.668 18.668 19.54 48.342 1.94 65.942s-47.274 16.726-65.942-1.942l-316.116-316.116c-18.668-18.668-19.542-48.342-1.942-65.942zM476.888 284.888c4.56-9.050 6.99-19.16 6.99-29.696 0-17.616-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.382 99.382c-12.248 12.248-18.992 28.694-18.992 46.308s6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994 10.536 0 20.644-2.43 29.696-6.99l65.338 65.338c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-60.67-60.67-60.67-159.948 0-220.618l99.382-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c55.82 55.82 60.238 144.298 13.344 205.344l-65.34-65.34zM978.498 815.116l-99.382 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994s34.060-6.746 46.308-18.994l99.382-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c60.67 60.666 60.67 159.944 0 220.614z" /> +<glyph unicode="" glyph-name="unlink" d="M476.888 284.886c4.56-9.048 6.99-19.158 6.99-29.696 0-17.616-6.744-34.058-18.992-46.308l-163.38-163.38c-12.248-12.248-28.696-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.38 99.38c-12.248 12.25-18.992 28.696-18.992 46.308s6.744 34.060 18.992 46.308l163.38 163.382c12.248 12.246 28.696 18.992 46.308 18.992 10.538 0 20.644-2.43 29.696-6.988l65.338 65.336c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.38-163.382c-60.67-60.67-60.67-159.95 0-220.618l99.38-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.38 163.38c55.82 55.82 60.238 144.298 13.344 205.346l-65.34-65.338zM978.496 815.116l-99.38 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.97-15.166-110.306-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.246 12.248 28.694 18.994 46.306 18.994 17.616 0 34.060-6.746 46.308-18.994l99.38-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.38-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.504l163.38 163.38c60.672 60.666 60.672 159.944 0 220.614zM233.368 681.376l-191.994 191.994 45.256 45.256 191.994-191.994zM384 960h64v-192h-64zM0 576h192v-64h-192zM790.632 214.624l191.996-191.996-45.256-45.256-191.996 191.996zM576 128h64v-192h-64zM832 384h192v-64h-192z" /> +<glyph unicode="" glyph-name="anchor" d="M192 960v-1024l320 320 320-320v1024h-640zM768 90.51l-256 256-256-256v805.49h512v-805.49z" /> +<glyph unicode="" glyph-name="image" d="M0 832v-832h1024v832h-1024zM960 64h-896v704h896v-704zM704 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM896 128h-768l192 512 256-320 128 96z" /> +<glyph unicode="" glyph-name="media" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" /> +<glyph unicode="" glyph-name="help" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" /> +<glyph unicode="" glyph-name="code" d="M320 704l-256-256 256-256h128l-256 256 256 256zM704 704h-128l256-256-256-256h128l256 256z" /> +<glyph unicode="" glyph-name="inserttime" d="M512 768c-212.076 0-384-171.922-384-384s171.922-384 384-384c212.074 0 384 171.922 384 384s-171.926 384-384 384zM715.644 180.354c-54.392-54.396-126.716-84.354-203.644-84.354s-149.25 29.958-203.646 84.354c-54.396 54.394-84.354 126.718-84.354 203.646s29.958 149.25 84.354 203.646c54.396 54.396 126.718 84.354 203.646 84.354s149.252-29.958 203.642-84.354c54.402-54.396 84.358-126.718 84.358-203.646s-29.958-149.252-84.356-203.646zM325.93 756.138l-42.94 85.878c-98.874-49.536-179.47-130.132-229.006-229.008l85.876-42.94c40.248 80.336 105.732 145.822 186.070 186.070zM884.134 570.070l85.878 42.938c-49.532 98.876-130.126 179.472-229.004 229.008l-42.944-85.878c80.338-40.248 145.824-105.732 186.070-186.068zM512 576h-64v-192c0-10.11 4.7-19.11 12.022-24.972l-0.012-0.016 160-128 39.976 49.976-147.986 118.39v176.622z" /> +<glyph unicode="" glyph-name="preview" d="M512 640c-209.368 0-395.244-100.556-512-256 116.756-155.446 302.632-256 512-256s395.244 100.554 512 256c-116.756 155.444-302.632 256-512 256zM448 512c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM773.616 254.704c-39.648-20.258-81.652-35.862-124.846-46.376-44.488-10.836-90.502-16.328-136.77-16.328-46.266 0-92.282 5.492-136.768 16.324-43.194 10.518-85.198 26.122-124.846 46.376-63.020 32.202-120.222 76.41-167.64 129.298 47.418 52.888 104.62 97.1 167.64 129.298 32.336 16.522 66.242 29.946 101.082 40.040-19.888-30.242-31.468-66.434-31.468-105.336 0-106.040 85.962-192 192-192s192 85.96 192 192c0 38.902-11.582 75.094-31.466 105.34 34.838-10.096 68.744-23.52 101.082-40.042 63.022-32.198 120.218-76.408 167.638-129.298-47.42-52.886-104.618-97.1-167.638-129.296zM860.918 716.278c-108.72 55.554-226.112 83.722-348.918 83.722s-240.198-28.168-348.918-83.722c-58.772-30.032-113.732-67.904-163.082-112.076v-109.206c55.338 58.566 120.694 107.754 192.194 144.29 99.62 50.904 207.218 76.714 319.806 76.714s220.186-25.81 319.804-76.716c71.502-36.536 136.858-85.724 192.196-144.29v109.206c-49.35 44.174-104.308 82.046-163.082 112.078z" /> +<glyph unicode="" glyph-name="forecolor" d="M322.018 128l57.6 192h264.764l57.6-192h113.632l-191.996 640h-223.236l-192-640h113.636zM475.618 640h72.764l57.6-192h-187.964l57.6 192z" /> +<glyph unicode="" glyph-name="table" d="M0 896v-896h1024v896h-1024zM384 320v192h256v-192h-256zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" /> +<glyph unicode="" glyph-name="hr" d="M0 512h1024v-128h-1024z" /> +<glyph unicode="" glyph-name="removeformat" d="M0 64h576v-128h-576zM192 960h704v-128h-704zM277.388 128l204.688 784.164 123.85-32.328-196.25-751.836zM929.774-64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774z" /> +<glyph unicode="" glyph-name="sub" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" /> +<glyph unicode="" glyph-name="sup" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" /> +<glyph unicode="" glyph-name="charmap" d="M704 64h256l64 128v-256h-384v214.214c131.112 56.484 224 197.162 224 361.786 0 214.432-157.598 382.266-352 382.266-194.406 0-352-167.832-352-382.266 0-164.624 92.886-305.302 224-361.786v-214.214h-384v256l64-128h256v32.59c-187.63 66.46-320 227.402-320 415.41 0 247.424 229.23 448 512 448s512-200.576 512-448c0-188.008-132.37-348.95-320-415.41v-32.59z" /> +<glyph unicode="" glyph-name="emoticons" d="M512 960c-282.77 0-512-229.228-512-512 0-282.77 229.228-512 512-512 282.77 0 512 229.23 512 512 0 282.772-229.23 512-512 512zM512 16c-238.586 0-432 193.412-432 432 0 238.586 193.414 432 432 432 238.59 0 432-193.414 432-432 0-238.588-193.41-432-432-432zM384 640c0-35.346-28.654-64-64-64s-64 28.654-64 64 28.654 64 64 64 64-28.654 64-64zM768 640c0-35.346-28.652-64-64-64s-64 28.654-64 64 28.652 64 64 64 64-28.654 64-64zM512 308c141.074 0 262.688 57.532 318.462 123.192-20.872-171.22-156.288-303.192-318.462-303.192-162.118 0-297.498 132.026-318.444 303.168 55.786-65.646 177.386-123.168 318.444-123.168z" /> +<glyph unicode="" glyph-name="print" d="M256 896h512v-128h-512zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM704 64h-384v320h384v-320zM974.4 608c0-25.626-20.774-46.4-46.398-46.4-25.626 0-46.402 20.774-46.402 46.4s20.776 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" /> +<glyph unicode="" glyph-name="fullscreen" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" /> +<glyph unicode="" glyph-name="spellchecker" d="M128 704h128v-192h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192zM128 896h128v-128h-128v128zM960 896v64h-192c-35.202 0-64-28.8-64-64v-320c0-35.2 28.798-64 64-64h192v64h-192v320h192zM640 800v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64zM576 576h-128v128h128v-128zM576 768h-128v128h128v-128zM832 384l-416-448-224 288 82 70 142-148 352 302z" /> +<glyph unicode="" glyph-name="nonbreaking" d="M448 384h-192v128h192v192h128v-192h192v-128h-192v-192h-128zM1024 320v-384h-1024v384h128v-256h768v256z" /> +<glyph unicode="" glyph-name="template" d="M384 768h128v-64h-128zM576 768h128v-64h-128zM896 768v-256h-192v64h128v128h-64v64zM320 576h128v-64h-128zM512 576h128v-64h-128zM192 704v-128h64v-64h-128v256h192v-64zM384 384h128v-64h-128zM576 384h128v-64h-128zM896 384v-256h-192v64h128v128h-64v64zM320 192h128v-64h-128zM512 192h128v-64h-128zM192 320v-128h64v-64h-128v256h192v-64zM960 896h-896v-896h896v896zM1024 960v0-1024h-1024v1024h1024z" /> +<glyph unicode="" glyph-name="pagebreak" d="M0 448h128v-64h-128zM192 448h192v-64h-192zM448 448h128v-64h-128zM640 448h192v-64h-192zM896 448h128v-64h-128zM880 960l16-448h-768l16 448h32l16-384h640l16 384zM144-64l-16 384h768l-16-384h-32l-16 320h-640l-16-320z" /> +<glyph unicode="" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" /> +<glyph unicode="" glyph-name="bold" d="M707.88 475.348c37.498 44.542 60.12 102.008 60.12 164.652 0 141.16-114.842 256-256 256h-320v-896h384c141.158 0 256 114.842 256 256 0 92.956-49.798 174.496-124.12 219.348zM384 768h101.5c55.968 0 101.5-57.42 101.5-128s-45.532-128-101.5-128h-101.5v256zM543 128h-159v256h159c58.45 0 106-57.42 106-128s-47.55-128-106-128z" /> +<glyph unicode="" glyph-name="italic" d="M896 896v-64h-128l-320-768h128v-64h-448v64h128l320 768h-128v64z" /> +<glyph unicode="" glyph-name="underline" d="M704 896h128v-416c0-159.058-143.268-288-320-288-176.73 0-320 128.942-320 288v416h128v-416c0-40.166 18.238-78.704 51.354-108.506 36.896-33.204 86.846-51.494 140.646-51.494s103.75 18.29 140.646 51.494c33.116 29.802 51.354 68.34 51.354 108.506v416zM192 128h640v-128h-640z" /> +<glyph unicode="" glyph-name="strikethrough" d="M731.42 442.964c63.92-47.938 100.58-116.086 100.58-186.964s-36.66-139.026-100.58-186.964c-59.358-44.518-137.284-69.036-219.42-69.036-82.138 0-160.062 24.518-219.42 69.036-63.92 47.938-100.58 116.086-100.58 186.964h128c0-69.382 87.926-128 192-128s192 58.618 192 128c0 69.382-87.926 128-192 128-82.138 0-160.062 24.518-219.42 69.036-63.92 47.94-100.58 116.086-100.58 186.964s36.66 139.024 100.58 186.964c59.358 44.518 137.282 69.036 219.42 69.036 82.136 0 160.062-24.518 219.42-69.036 63.92-47.94 100.58-116.086 100.58-186.964h-128c0 69.382-87.926 128-192 128s-192-58.618-192-128c0-69.382 87.926-128 192-128 82.136 0 160.062-24.518 219.42-69.036zM0 448h1024v-64h-1024z" /> +<glyph unicode="" glyph-name="visualchars" d="M384 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224z" /> +<glyph unicode="" glyph-name="ltr" d="M448 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM64 512l256-224-256-224z" /> +<glyph unicode="" glyph-name="rtl" d="M256 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM960 64l-256 224 256 224z" /> +<glyph unicode="" glyph-name="copy" d="M832 704h-192v64l-192 192h-448v-768h384v-256h640v576l-192 192zM832 613.49l101.49-101.49h-101.49v101.49zM448 869.49l101.49-101.49h-101.49v101.49zM64 896h320v-192h192v-448h-512v640zM960 0h-512v192h192v448h128v-192h192v-448z" /> +<glyph unicode="" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" /> +<glyph unicode="" glyph-name="checkbox" d="M128 416l288-288 480 480-128 128-352-352-160 160z" /> +<glyph unicode="" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM904.34 256h74.86l44.8 448h-1024l64-640h484.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM1002.996 46.25l-198.496 174.692c17.454 28.92 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l174.692-198.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM640 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" /> +<glyph unicode="" glyph-name="pastetext" d="M512 448v-128h32l32 64h64v-256h-48v-64h224v64h-48v256h64l32-64h32v128zM832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h640v704h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM960 0h-512v576h512v-576z" /> +<glyph unicode="" glyph-name="gamma" d="M483.2 320l-147.2 336c-9.6 25.6-19.2 44.8-25.6 54.4s-16 12.8-25.6 12.8c-16 0-25.6-3.2-28.8-3.2v70.4c9.6 6.4 25.6 6.4 38.4 9.6 32 0 57.6-6.4 73.6-22.4 6.4-6.4 12.8-16 19.2-25.6 6.4-12.8 12.8-25.6 16-41.6l121.6-291.2 150.4 371.2h92.8l-198.4-470.4v-224h-86.4v224zM0 960v-1024h1024v1024h-1024zM960 0h-896v896h896v-896z" /> +<glyph unicode="" glyph-name="orientation" d="M627.2 80h-579.2v396.8h579.2v-396.8zM553.6 406.4h-435.2v-256h435.2v256zM259.2 732.8c176 176 457.6 176 633.6 0s176-457.6 0-633.6c-121.6-121.6-297.6-160-454.4-108.8 121.6-28.8 262.4 9.6 361.6 108.8 150.4 150.4 160 384 22.4 521.6-121.6 121.6-320 128-470.4 19.2l86.4-86.4-294.4-22.4 22.4 294.4 92.8-92.8z" /> +<glyph unicode="" glyph-name="invert" d="M892.8-22.4l-89.6 89.6c-70.4-80-172.8-131.2-288-131.2-208 0-380.8 166.4-384 377.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4v0c0 0 0 0 0 3.2 0 0 0 3.2 0 3.2 3.2 105.6 48 211.2 105.6 304l-192 192 44.8 44.8 182.4-182.4c0 0 0 0 0 0l569.6-569.6c0 0 0 0 0 0l99.2-99.2-48-44.8zM896 326.4c0 0 0 0 0 0 0 3.2 0 6.4 0 6.4-9.6 316.8-384 627.2-384 627.2s-108.8-89.6-208-220.8l70.4-70.4c6.4 9.6 16 22.4 22.4 32 41.6 51.2 83.2 96 115.2 128v0c32-32 73.6-76.8 115.2-128 108.8-137.6 169.6-265.6 172.8-371.2 0 0 0-3.2 0-3.2v0 0c0-3.2 0-3.2 0-6.4s0-3.2 0-3.2v0 0c0-22.4-3.2-41.6-9.6-64l76.8-76.8c16 41.6 28.8 89.6 28.8 137.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4z" /> +<glyph unicode="" glyph-name="codesample" d="M199.995 578.002v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-100.518 0-182.003-81.485-182.003-182.003v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-100.515 81.485-182.003 182.003-182.003h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 50.931-20.928 96.966-54.646 130.002 33.716 33.036 54.646 79.072 54.646 130.002zM824.005 578.002v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c100.515 0 182.003-81.485 182.003-182.003v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-100.515-81.488-182.003-182.003-182.003h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 50.931 20.928 96.966 54.646 130.002-33.716 33.036-54.646 79.072-54.646 130.002zM616.002 603.285c0-57.439-46.562-104.002-104.002-104.002s-104.002 46.562-104.002 104.002c0 57.439 46.562 104.002 104.002 104.002s104.002-46.562 104.002-104.002zM512 448.717c-57.439 0-104.002-46.562-104.002-104.002 0-55.845 26-100.115 105.752-103.88-23.719-33.417-59.441-46.612-105.752-50.944v-61.751c0 0 208.003-18.144 208.003 216.577-0.202 57.441-46.56 104.004-104.002 104.004z" /> +<glyph unicode="" glyph-name="tablerowprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" /> +<glyph unicode="" glyph-name="tablecellprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" /> +<glyph unicode="" glyph-name="table2" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-896v192h896v-192z" /> +<glyph unicode="" glyph-name="tablemergecells" d="M0 896v-896h1024v896h-1024zM384 64v448h576v-448h-576zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192z" /> +<glyph unicode="" glyph-name="tableinsertcolbefore" d="M320 188.8v182.4h-182.4v89.6h182.4v182.4h86.4v-182.4h185.6v-89.6h-185.6v-182.4zM0 896v-896h1024v896h-1024zM640 64h-576v704h576v-704zM960 64h-256v192h256v-192zM960 320h-256v192h256v-192zM960 576h-256v192h256v-192z" /> +<glyph unicode="" glyph-name="tableinsertcolafter" d="M704 643.2v-182.4h182.4v-89.6h-182.4v-182.4h-86.4v182.4h-185.6v89.6h185.6v182.4zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v704h576v-704z" /> +<glyph unicode="" glyph-name="tableinsertrowbefore" d="M691.2 508.8h-144v-144h-70.4v144h-144v67.2h144v144h70.4v-144h144zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM640 64h-256v192h256v-192zM960 64h-256v192h256v-192zM960 316.8h-896v451.2h896v-451.2z" /> +<glyph unicode="" glyph-name="tableinsertrowafter" d="M332.8 323.2h144v144h70.4v-144h144v-67.2h-144v-144h-70.4v144h-144zM0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM64 768h256v-192h-256v192zM960 64h-896v451.2h896v-451.2zM960 576h-256v192h256v-192z" /> +<glyph unicode="" glyph-name="tablesplitcells" d="M0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v448h576v-448zM960 576h-256v192h256v-192zM864 156.8l-60.8-60.8-131.2 131.2-131.2-131.2-60.8 60.8 131.2 131.2-131.2 131.2 60.8 60.8 131.2-131.2 131.2 131.2 60.8-60.8-131.2-131.2z" /> +<glyph unicode="" glyph-name="tabledelete" d="M0 896h1024v-896h-1024v896zM60.8 768v-704h899.2v704h-899.2zM809.6 211.2l-96-96-204.8 204.8-204.8-204.8-96 96 204.8 204.8-204.8 204.8 96 96 204.8-204.8 204.8 204.8 96-96-204.8-204.8z" /> +<glyph unicode="" glyph-name="tableleftheader" d="M0 896v-832h1024v832h-1024zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM640 640h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-256v192h256v-192z" /> +<glyph unicode="" glyph-name="tabletopheader" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192z" /> +<glyph unicode="" glyph-name="tabledeleterow" d="M886.4 572.8l-156.8-156.8 160-160-76.8-76.8-160 160-156.8-156.8-76.8 73.6 160 160-163.2 163.2 76.8 76.8 163.2-163.2 156.8 156.8 73.6-76.8zM0 896v-896h1024v896h-1024zM960 576h-22.4l-64-64h86.4v-192h-89.6l64-64h25.6v-192h-896v192h310.4l64 64h-374.4v192h371.2l-64 64h-307.2v192h896v-192z" /> +<glyph unicode="" glyph-name="tabledeletecol" d="M320 499.2l64-64v-12.8l-64-64v140.8zM640 422.4l64-64v137.6l-64-64v-9.6zM1024 896v-896h-1024v896h1024zM960 768h-256v-51.2l-12.8 12.8-51.2-51.2v89.6h-256v-89.6l-51.2 51.2-12.8-12.8v51.2h-256v-704h256v118.4l35.2-35.2 28.8 28.8v-115.2h256v115.2l48-48 16 16v-83.2h256v707.2zM672 662.4l-156.8-156.8-163.2 163.2-76.8-76.8 163.2-163.2-156.8-156.8 76.8-76.8 156.8 156.8 160-160 76.8 76.8-160 160 156.8 156.8-76.8 76.8z" /> +<glyph unicode="" glyph-name="a11y" d="M960 704v64l-448-128-448 128v-64l320-128v-256l-128-448h64l192 448 192-448h64l-128 448v256zM416 800q0 40 28 68t68 28 68-28 28-68-28-68-68-28-68 28-28 68z" /> +<glyph unicode="" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM0 512h128v-128h-128v128zM192 512h832v-128h-832v128zM0 128h128v-128h-128v128zM192 128h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM192 320h128v-128h-128v128zM384 320h640v-128h-640v128z" /> +<glyph unicode="" glyph-name="fill" d="M521.6 915.2l-67.2-67.2-86.4 86.4-86.4-86.4 86.4-86.4-368-368 432-432 518.4 518.4-428.8 435.2zM435.2 134.4l-262.4 262.4 35.2 35.2 576 51.2-348.8-348.8zM953.6 409.6c-6.4-6.4-16-16-28.8-32-28.8-32-41.6-64-41.6-89.6v0 0 0 0 0 0 0c0-16 6.4-35.2 22.4-48 12.8-12.8 32-22.4 48-22.4s35.2 6.4 48 22.4 22.4 32 22.4 48v0 0 0 0 0 0 0c0 25.6-12.8 54.4-41.6 89.6-9.6 16-22.4 25.6-28.8 32v0z" /> +<glyph unicode="" glyph-name="borderwidth" d="M0 265.6h1024v-128h-1024v128zM0 32h1024v-64h-1024v64zM0 566.4h1024v-192h-1024v192zM0 928h1024v-256h-1024v256z" /> +<glyph unicode="" glyph-name="line" d="M739.2 627.2l-502.4-502.4h-185.6v185.6l502.4 502.4 185.6-185.6zM803.2 688l-185.6 185.6 67.2 67.2c22.4 22.4 54.4 22.4 76.8 0l108.8-108.8c22.4-22.4 22.4-54.4 0-76.8l-67.2-67.2zM41.6 48h940.8v-112h-940.8v112z" /> +<glyph unicode="" glyph-name="count" d="M0 480h1024v-64h-1024v64zM304 912v-339.2h-67.2v272h-67.2v67.2zM444.8 694.4v-54.4h134.4v-67.2h-201.6v153.6l134.4 64v54.4h-134.4v67.2h201.6v-153.6zM854.4 912v-339.2h-204.8v67.2h137.6v67.2h-137.6v70.4h137.6v67.2h-137.6v67.2zM115.2 166.4c3.2 57.6 38.4 83.2 108.8 83.2 38.4 0 67.2-9.6 86.4-25.6s25.6-35.2 25.6-70.4v-112c0-25.6 0-28.8 9.6-41.6h-73.6c-3.2 9.6-3.2 9.6-6.4 19.2-22.4-19.2-41.6-25.6-70.4-25.6-54.4 0-89.6 32-89.6 76.8s28.8 70.4 99.2 80l38.4 6.4c16 3.2 22.4 6.4 22.4 16 0 12.8-12.8 22.4-38.4 22.4s-41.6-9.6-44.8-28.8h-67.2zM262.4 115.2c-6.4-3.2-12.8-6.4-25.6-6.4l-25.6-6.4c-25.6-6.4-38.4-16-38.4-28.8 0-16 12.8-25.6 35.2-25.6s41.6 9.6 54.4 32v35.2zM390.4 336h73.6v-112c22.4 16 41.6 22.4 67.2 22.4 64 0 105.6-51.2 105.6-124.8 0-76.8-44.8-134.4-108.8-134.4-32 0-48 9.6-67.2 35.2v-28.8h-70.4v342.4zM460.8 121.6c0-41.6 22.4-70.4 51.2-70.4s51.2 28.8 51.2 70.4c0 44.8-19.2 70.4-51.2 70.4-28.8 0-51.2-28.8-51.2-70.4zM851.2 153.6c-3.2 22.4-19.2 35.2-44.8 35.2-32 0-51.2-25.6-51.2-70.4 0-48 19.2-73.6 51.2-73.6 25.6 0 41.6 12.8 44.8 41.6l70.4-3.2c-9.6-60.8-54.4-96-118.4-96-73.6 0-121.6 51.2-121.6 128 0 80 48 131.2 124.8 131.2 64 0 108.8-35.2 112-96h-67.2z" /> +<glyph unicode="" glyph-name="reload" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" /> +<glyph unicode="" glyph-name="translate" d="M553.6 304l-118.4 118.4c80 89.6 137.6 195.2 172.8 304h137.6v92.8h-326.4v92.8h-92.8v-92.8h-326.4v-92.8h518.4c-32-89.6-80-176-147.2-249.6-44.8 48-80 99.2-108.8 156.8h-92.8c35.2-76.8 80-147.2 137.6-211.2l-236.8-233.6 67.2-67.2 233.6 233.6 144-144c3.2 0 38.4 92.8 38.4 92.8zM816 540.8h-92.8l-208-560h92.8l51.2 140.8h220.8l51.2-140.8h92.8l-208 560zM691.2 214.4l76.8 201.6 76.8-201.6h-153.6z" /> +<glyph unicode="" glyph-name="drag" d="M576 896h128v-128h-128v128zM576 640h128v-128h-128v128zM320 640h128v-128h-128v128zM576 384h128v-128h-128v128zM320 384h128v-128h-128v128zM320 128h128v-128h-128v128zM576 128h128v-128h-128v128zM320 896h128v-128h-128v128z" /> +<glyph unicode="" glyph-name="home" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" /> +<glyph unicode="" glyph-name="books" d="M576.234 670.73l242.712 81.432 203.584-606.784-242.712-81.432zM0 64h256v704h-256v-704zM64 640h128v-64h-128v64zM320 64h256v704h-256v-704zM384 640h128v-64h-128v64z" /> +<glyph unicode="" glyph-name="upload" d="M839.432 760.57c27.492-27.492 50.554-78.672 55.552-120.57h-318.984v318.984c41.898-4.998 93.076-28.060 120.568-55.552l142.864-142.862zM512 576v384h-368c-44 0-80-36-80-80v-864c0-44 36-80 80-80h672c44 0 80 36 80 80v560h-384zM576 192v-192h-192v192h-160l256 256 256-256h-160z" /> +<glyph unicode="" glyph-name="editimage" d="M768 416v-352h-640v640h352l128 128h-512c-52.8 0-96-43.2-96-96v-704c0-52.8 43.2-96 96-96h704c52.798 0 96 43.2 96 96v512l-128-128zM864 960l-608-608v-160h160l608 608c0 96-64 160-160 160zM416 320l-48 48 480 480 48-48-480-480z" /> +<glyph unicode="" glyph-name="bubble" d="M928 896h-832c-52.8 0-96-43.2-96-96v-512c0-52.8 43.2-96 96-96h160v-256l307.2 256h364.8c52.8 0 96 43.2 96 96v512c0 52.8-43.2 96-96 96zM896 320h-379.142l-196.858-174.714v174.714h-192v448h768v-448z" /> +<glyph unicode="" glyph-name="user" d="M622.826 257.264c-22.11 3.518-22.614 64.314-22.614 64.314s64.968 64.316 79.128 150.802c38.090 0 61.618 91.946 23.522 124.296 1.59 34.054 48.96 267.324-190.862 267.324s-192.45-233.27-190.864-267.324c-38.094-32.35-14.57-124.296 23.522-124.296 14.158-86.486 79.128-150.802 79.128-150.802s-0.504-60.796-22.614-64.314c-71.22-11.332-337.172-128.634-337.172-257.264h896c0 128.63-265.952 245.932-337.174 257.264z" /> +<glyph unicode="" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" /> +<glyph unicode="" glyph-name="unlock" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" /> +<glyph unicode="" glyph-name="settings" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" /> +<glyph unicode="" glyph-name="remove2" d="M192-64h640l64 704h-768zM640 832v128h-256v-128h-320v-192l64 64h768l64-64v192h-320zM576 832h-128v64h128v-64z" /> +<glyph unicode="" glyph-name="menu" d="M384 896h256v-256h-256zM384 576h256v-256h-256zM384 256h256v-256h-256z" /> +<glyph unicode="" glyph-name="warning" d="M1009.956 44.24l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648s-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.302 0 96.792 48.708 63.302 108.24zM512 64c-35.346 0-64 28.654-64 64 0 35.348 28.654 64 64 64 35.348 0 64-28.652 64-64 0-35.346-28.652-64-64-64zM556 256h-88l-20 256c0 35.346 28.654 64 64 64s64-28.654 64-64l-20-256z" /> +<glyph unicode="" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" /> +<glyph unicode="" glyph-name="pluscircle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM768 384h-192v-192h-128v192h-192v128h192v192h128v-192h192z" /> +<glyph unicode="" glyph-name="info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM448 768h128v-128h-128v128zM640 128h-256v64h64v256h-64v64h192v-320h64v-64z" /> +<glyph unicode="" glyph-name="notice" d="M1024 224l-288 736h-448l-288-288v-448l288-288h448l288 288v448l-288 288zM576 128h-128v128h128v-128zM576 384h-128v384h128v-384z" /> +<glyph unicode="" glyph-name="drop" d="M864.626 486.838c-65.754 183.44-205.11 348.15-352.626 473.162-147.516-125.012-286.87-289.722-352.626-473.162-40.664-113.436-44.682-236.562 12.584-345.4 65.846-125.14 198.632-205.438 340.042-205.438s274.196 80.298 340.040 205.44c57.27 108.838 53.25 231.962 12.586 345.398zM738.764 201.044c-43.802-83.252-132.812-137.044-226.764-137.044-55.12 0-108.524 18.536-152.112 50.652 13.242-1.724 26.632-2.652 40.112-2.652 117.426 0 228.668 67.214 283.402 171.242 44.878 85.292 40.978 173.848 23.882 244.338 14.558-28.15 26.906-56.198 36.848-83.932 22.606-63.062 40.024-156.34-5.368-242.604z" /> +<glyph unicode="" glyph-name="minus" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" /> +<glyph unicode="" glyph-name="plus" d="M992 576h-352v352c0 17.672-14.328 32-32 32h-192c-17.672 0-32-14.328-32-32v-352h-352c-17.672 0-32-14.328-32-32v-192c0-17.672 14.328-32 32-32h352v-352c0-17.672 14.328-32 32-32h192c17.672 0 32 14.328 32 32v352h352c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32z" /> +<glyph unicode="" glyph-name="arrowup" d="M0 320l192-192 320 320 320-320 192 192-511.998 512z" /> +<glyph unicode="" glyph-name="arrowright" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" /> +<glyph unicode="" glyph-name="arrowdown" d="M1024 576l-192 192-320-320-320 320-192-192 512-511.998z" /> +<glyph unicode="" glyph-name="arrowup2" d="M768 320l-256 256-256-256z" /> +<glyph unicode="" glyph-name="arrowdown2" d="M256 576l256-256 256 256z" /> +<glyph unicode="" glyph-name="menu2" d="M256 704l256-256 256 256zM255.996 384.004l256-256 256 256z" /> +<glyph unicode="" glyph-name="newtab" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" /> +<glyph unicode="" glyph-name="rotateleft" d="M607.998 831.986c-212.070 0-383.986-171.916-383.986-383.986h-191.994l246.848-246.848 246.848 246.848h-191.994c0 151.478 122.798 274.276 274.276 274.276 151.48 0 274.276-122.798 274.276-274.276 0-151.48-122.796-274.276-274.276-274.276v-109.71c212.070 0 383.986 171.916 383.986 383.986s-171.916 383.986-383.986 383.986z" /> +<glyph unicode="" glyph-name="rotateright" d="M416.002 831.986c212.070 0 383.986-171.916 383.986-383.986h191.994l-246.848-246.848-246.848 246.848h191.994c0 151.478-122.798 274.276-274.276 274.276-151.48 0-274.276-122.798-274.276-274.276 0-151.48 122.796-274.276 274.276-274.276v-109.71c-212.070 0-383.986 171.916-383.986 383.986s171.916 383.986 383.986 383.986z" /> +<glyph unicode="" glyph-name="flipv" d="M0 576h1024v384zM1024 0v384h-1024z" /> +<glyph unicode="" glyph-name="fliph" d="M576 960v-1024h384zM0-64h384v1024z" /> +<glyph unicode="" glyph-name="zoomin" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" /> +<glyph unicode="" glyph-name="zoomout" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" /> +<glyph unicode="" glyph-name="sharpen" d="M768 832h-512l-256-256 512-576 512 576-256 256zM512 181.334v2.666h-2.37l-14.222 16h16.592v16h-30.814l-14.222 16h45.036v16h-59.258l-14.222 16h73.48v16h-87.704l-14.222 16h101.926v16h-116.148l-14.222 16h130.37v16h-144.592l-14.222 16h158.814v16h-173.038l-14.222 16h187.26v16h-201.482l-14.222 16h215.704v16h-229.926l-14.222 16h244.148v16h-258.372l-14.222 16h272.594v16h-286.816l-14.222 16h301.038v16h-315.26l-14.222 16h329.482v16h-343.706l-7.344 8.262 139.072 139.072h211.978v-3.334h215.314l16-16h-231.314v-16h247.314l16-16h-263.314v-16h279.314l16-16h-295.314v-16h311.314l16-16h-327.314v-16h343.312l7.738-7.738-351.050-394.928z" /> +<glyph unicode="" glyph-name="options" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" /> +<glyph unicode="" glyph-name="sun" d="M512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.348 0-64 28.654-64 64s28.652 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.258c24.992-24.99 24.992-65.516 0-90.508-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.99-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.518 24.992 90.508 0 24.994-24.994 24.994-65.52 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0s-24.994 65.518 0 90.508l45.256 45.258zM512 704c-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 141.384-114.616 256-256 256zM512 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" /> +<glyph unicode="" glyph-name="moon" d="M715.812 895.52c-60.25 34.784-124.618 55.904-189.572 64.48 122.936-160.082 144.768-384.762 37.574-570.42-107.2-185.67-312.688-279.112-512.788-252.68 39.898-51.958 90.376-97.146 150.628-131.934 245.908-141.974 560.37-57.72 702.344 188.198 141.988 245.924 57.732 560.372-188.186 702.356z" /> +<glyph unicode="" glyph-name="contrast" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM128 448c0 212.078 171.922 384 384 384v-768c-212.078 0-384 171.922-384 384z" /> +<glyph unicode="" glyph-name="remove22" d="M893.254 738.746l-90.508 90.508-290.746-290.744-290.746 290.744-90.508-90.506 290.746-290.748-290.746-290.746 90.508-90.508 290.746 290.746 290.746-290.746 90.508 90.51-290.744 290.744z" /> +<glyph unicode="" glyph-name="arrowleft" d="M672-64l192 192-320 320 320 320-192 192-512-512z" /> +<glyph unicode="" glyph-name="resize2" d="M0 896v-384c0-35.346 28.654-64 64-64s64 28.654 64 64v229.488l677.488-677.488h-229.488c-35.346 0-64-28.652-64-64 0-35.346 28.654-64 64-64h384c35.346 0 64 28.654 64 64v384c0 35.348-28.654 64-64 64s-64-28.652-64-64v-229.488l-677.488 677.488h229.488c35.346 0 64 28.654 64 64s-28.652 64-64 64h-384c-35.346 0-64-28.654-64-64z" /> +<glyph unicode="" glyph-name="crop" d="M832 704l192 192-64 64-192-192h-448v192h-128v-192h-192v-128h192v-512h512v-192h128v192h192v128h-192v448zM320 640h320l-320-320v320zM384 256l320 320v-320h-320z" /> +</font></defs></svg> \ No newline at end of file diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf new file mode 100644 index 0000000..61a48a5 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff new file mode 100644 index 0000000..aace5d9 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif new file mode 100644 index 0000000..606348c --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/img/loader.gif b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/loader.gif new file mode 100644 index 0000000..c69e937 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/loader.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/img/object.gif b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/object.gif new file mode 100644 index 0000000..cccd7f0 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/object.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/img/trans.gif b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/trans.gif new file mode 100644 index 0000000..3884865 --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/img/trans.gif Binary files differ diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css b/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css new file mode 100644 index 0000000..4ad815b --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:'';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-right:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubtn button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 4px 6px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-selected .mce-ico{color:#595959}.mce-menu-item.mce-active.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #595959;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;overflow:auto;overflow-x:hidden}.mce-menu.mce-animate{opacity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-splitbtn.mce-active:hover .mce-open{border-left:1px solid white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:relative;overflow:hidden}.mce-browsebutton button{position:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr}/*# sourceMappingURL=skin.min.css.map */ \ No newline at end of file diff --git a/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map b/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map new file mode 100644 index 0000000..c8763dc --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["./src/skins/lightgray/main/less/desktop/Reset.less","./src/skins/lightgray/main/less/desktop/Variables.less","./src/skins/lightgray/main/less/desktop/Mixins.less","./src/skins/lightgray/main/less/desktop/Animations.less","./src/skins/lightgray/main/less/desktop/TinyMCE.less","./src/skins/lightgray/main/less/desktop/CropRect.less","./src/skins/lightgray/main/less/desktop/ImagePanel.less","./src/skins/lightgray/main/less/desktop/Arrows.less","./src/skins/lightgray/main/less/desktop/Sidebar.less","./src/skins/lightgray/main/less/desktop/Container.less","./src/skins/lightgray/main/less/desktop/Scrollable.less","./src/skins/lightgray/main/less/desktop/Panel.less","./src/skins/lightgray/main/less/desktop/FloatPanel.less","./src/skins/lightgray/main/less/desktop/Window.less","./src/skins/lightgray/main/less/desktop/ToolTip.less","./src/skins/lightgray/main/less/desktop/Progress.less","./src/skins/lightgray/main/less/desktop/Notification.less","./src/skins/lightgray/main/less/desktop/AbsoluteLayout.less","./src/skins/lightgray/main/less/desktop/Button.less","./src/skins/lightgray/main/less/desktop/ButtonGroup.less","./src/skins/lightgray/main/less/desktop/Checkbox.less","./src/skins/lightgray/main/less/desktop/ComboBox.less","./src/skins/lightgray/main/less/desktop/ColorBox.less","./src/skins/lightgray/main/less/desktop/ColorButton.less","./src/skins/lightgray/main/less/desktop/ColorPicker.less","./src/skins/lightgray/main/less/desktop/Path.less","./src/skins/lightgray/main/less/desktop/FieldSet.less","./src/skins/lightgray/main/less/desktop/FitLayout.less","./src/skins/lightgray/main/less/desktop/FlowLayout.less","./src/skins/lightgray/main/less/desktop/Iframe.less","./src/skins/lightgray/main/less/desktop/InfoBox.less","./src/skins/lightgray/main/less/desktop/Label.less","./src/skins/lightgray/main/less/desktop/MenuBar.less","./src/skins/lightgray/main/less/desktop/MenuButton.less","./src/skins/lightgray/main/less/desktop/MenuItem.less","./src/skins/lightgray/main/less/desktop/Throbber.less","./src/skins/lightgray/main/less/desktop/Menu.less","./src/skins/lightgray/main/less/desktop/ListBox.less","./src/skins/lightgray/main/less/desktop/ResizeHandle.less","./src/skins/lightgray/main/less/desktop/SelectBox.less","./src/skins/lightgray/main/less/desktop/Slider.less","./src/skins/lightgray/main/less/desktop/Spacer.less","./src/skins/lightgray/main/less/desktop/SplitButton.less","./src/skins/lightgray/main/less/desktop/StackLayout.less","./src/skins/lightgray/main/less/desktop/TabPanel.less","./src/skins/lightgray/main/less/desktop/TextBox.less","./src/skins/lightgray/main/less/desktop/DropZone.less","./src/skins/lightgray/main/less/desktop/BrowseButton.less","./src/skins/lightgray/main/less/desktop/Icons.less","./src/skins/lightgray/main/less/desktop/FilePicker.less"],"names":[],"mappings":"AAEA,CAAC,GAAS,WAAY,CAAC,GAAS,UAAW,GAAG,CAAC,GAAS,QAAS,CAAC,GAAS,OAAQ,GAAG,CAAC,GAAS,OAC9F,QAAA,CAAW,SAAA,CAAY,QAAA,CAAW,SAAA,CAClC,kBAAA,CAAqB,sBAAA,CACrB,oBAAA,CAAuB,aAAA,CACvB,YCU+B,2CDV/B,CACA,cAAA,CAAuB,gBAAA,CAAmB,UAAA,CAC1C,eAAA,CAAkB,UAAA,CAAa,WAAA,CAC/B,kBAAA,CAAqB,cAAA,CACrB,uCAAA,CACA,kBAAA,CAAqB,kBAAA,CACrB,eAAA,CACA,2BAAA,CACA,8BAAA,CACA,sBAAA,CACA,aAAA,CACA,eAGF,CAAC,GAAS,OAAQ,QAChB,0BAAA,CACA,6BAAA,CACA,sBAGF,CAAC,GAAS,UAAW,EAAC,eACpB,qBAAA,CACA,wBAAA,CACA,mBAAA,CACA,iBEyBF,WACE,oBAAA,CACA,wBAAA,CACA,oBAAA,CACA,qBAAA,CACA,gBAAA,CACA,iBAAA,CACA,oBAAA,CACA,aC7DF,CAAC,GAAS,MACR,SAAA,CDqCA,sCAAA,CACA,+BCnCA,CAJD,GAAS,KAIP,CAAC,GAAS,IACT,UCPJ,CAAC,GAAS,SAER,kBAAA,YACA,kBAGF,CAAC,GAAS,YACR,QAAA,CAAW,SAAA,CAAY,QAAA,CACvB,eAAA,CACA,WAAA,CACA,YAGF,GAAG,CAAC,GAAS,YACX,cAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CACA,YAGF,CAAC,GAAS,SACR,aAAA,CFaA,+CAAA,CACA,4CAAA,CACA,wCEVF,CAAC,GAAS,UAAW,EAAG,GAAS,gBAC/B,YAAA,CACA,mBAFF,CAAC,GAAS,UAAW,EAAG,GAAS,eAI/B,EAAC,GAAS,MACR,OAIJ,CAAC,GAAS,WACR,iBAAA,CACA,wBAAA,CACA,cAGF,GAAG,CAAC,GAAS,WACX,eAAA,CACA,YAGF,CAAC,GAAS,WACR,kBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,gBAC7B,iBAAA,CACA,eAGF,CAAC,GAAS,WAAY,EAAC,GAAS,cAC9B,aAGF,CAAC,GAAS,UAAW,EAAC,GAAS,kBAC7B,SAKF,CAAC,GAAS,SACR,yBAGF,CAAC,GAAS,QAAS,IACjB,cAAA,CACA,wBAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,qBAAA,CACA,YAGF,CAAC,GAAS,QAAS,GAAG,KACpB,kBAGF,CAAC,GAAS,QAAS,GAAE,OACnB,iBAGF,CAAC,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,KACrC,wBAAA,CACA,UAAA,CAAa,WAAA,CACb,QAAA,CACA,eAEA,CAND,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,IAMpC,OACC,qBAGF,CAVD,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,IAUpC,WACC,mBAIJ,CAAC,GAAS,MACR,kBAAA,CACA,yBAFF,CAAC,GAAS,KAIR,GACE,aAAA,CACA,6BAEA,CARH,GAAS,KAIR,EAIG,OAAQ,CARZ,GAAS,KAIR,EAIY,OACR,qBAKN,CAAC,GAAS,aACR,mBADF,CAAC,GAAS,YAGR,GACE,oBAAA,CACA,UAAA,CAAa,YALjB,CAAC,GAAS,YAQR,EAAC,OARH,CAAC,GAAS,YAQC,EAAC,CAAC,GAAS,QAClB,oBAAA,CACA,mBAIJ,CAAC,GAAS,aACR,kBAGF,GAAG,CAAC,GAAS,gBACX,WAGF,CAAC,GAAS,eAAgB,KACxB,iBAAA,CACA,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,WACR,YAAa,gCASf,CAAC,GAAS,YAAa,EAAC,GAAS,kBAC/B,gBAKF,CAAC,GAAS,UAAW,GACnB,iBAGF,CAAC,GAAS,UAAW,GACnB,kBAGF,CAAC,GAAS,UAAW,GACnB,cAAA,CACA,cACA,CAHD,GAAS,UAAW,EAGlB,OACC,0BAIJ,CAAC,GAAS,UAAW,IACnB,iBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,wBAAA,CACA,YAFF,CAAC,GAAS,UAAW,EAAC,GAAS,cAG7B,MAAM,IACJ,yBAJJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAG7B,MAAM,GAEJ,IACE,iBANN,CAAC,GAAS,UAAW,EAAC,GAAS,cAS7B,IATF,CAAC,GAAS,UAAW,EAAC,GAAS,cASzB,IACF,YAVJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAY7B,GAAE,UAAU,OACV,yBAbJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAe7B,MAAM,GAAI,OACR,yBAIJ,CAAC,GAAS,UACR,iBAAA,CACA,wBAAA,CACA,eAAA,CACA,cAJF,CAAC,GAAS,SAMR,GACE,iBAAA,CACA,cAIJ,CAAC,GAAS,UACR,kBAGF,CAAC,GAAS,SAAS,SAEjB,QAAS,EAAT,CACA,iBAAA,CF7LA,+CAAA,CACA,4CAAA,CACA,uCAAA,CE6LA,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,oBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,WACvB,MAAA,CACA,WAGF,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAG,GAAS,eAC/B,EAAG,YACD,eAAA,CACA,kBAJN,CAAC,GAAS,IAQR,EAAC,GAAS,MACR,gBAAA,CACA,mBCvPJ,CAAC,GAAS,oBACR,iBAAA,CACA,KAAA,CACA,OAGF,CAAC,GAAS,iBACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CAAa,WAAA,CACb,uBAGF,CAAC,GAAS,oBACR,wBAAA,CACA,oBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,qBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,uBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,sBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,sBACR,iBAAA,CACA,WAAA,CACA,SAGF,CAAC,GAAS,gBH9CR,UAAA,CAEA,wBAAA,CACA,MAAA,CG6CA,iBAAA,CACA,iBAGF,CAAC,GAAS,gBAAgB,OACxB,qBAGF,CAAC,GAAS,qBAAqB,OAC7B,0BC1DF,CAAC,GAAS,YACR,aAAA,CACA,iBAGF,CAAC,GAAS,eACR,iBAAA,CACA,eAAgB,sGAGlB,CAAC,GAAS,WAAY,KACpB,kBAGF,CAAC,GAAS,UAAU,CAAC,GAAS,IAAK,EAAC,GAAS,KAC3C,aAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CACA,cAAA,CACA,YCrBF,CAAC,GAAS,UACR,gBAGF,CAAC,GAAS,YACR,iBAGF,CAAC,GAAS,MAAM,QAChB,CAAC,GAAS,MAAM,OACd,iBAAA,CACA,QAAA,CACA,aAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,QAAS,GAGX,CAAC,GAAS,MAAM,CAAC,GAAS,SAAS,QACjC,QAAA,CACA,2BAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACnC,WAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SAAS,OACjC,QAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,WAAA,CACA,qBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACrC,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACnC,SAEF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QACtC,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OACpC,SAAA,CACA,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QACpC,UAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OACpC,UAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QAC1E,SAAA,CACA,OAAA,CACA,0BAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OAC1E,SAAA,CACA,OAAA,CACA,uBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAC/D,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QAC3E,UAAA,CACA,OAAA,CACA,yBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OAC3E,UAAA,CACA,OAAA,CACA,sBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,aAC/D,kBC/GF,CAAC,GAAS,oBAAqB,EAAG,GAAS,gBACzC,aADF,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAGzC,EAAC,GAAS,WACR,OAJJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAOzC,EAAC,GAAS,QAAS,EAAG,GAAS,gBAC7B,YAAA,CACA,mBAAA,CACA,YAVJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAazC,EAAC,GAAS,eACR,eAAA,CACA,eAAA,CACA,kBAhBJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAazC,EAAC,GAAS,cAKR,EAAG,GAAS,gBACV,iBAAA,CACA,UAAA,CAAa,WAAA,CACb,aAAA,CACA,KAAA,CAAQ,OAKd,CAAC,GAAS,iBACR,sBAAA,CACA,sBAFF,CAAC,GAAS,gBAIR,EAAC,GAAS,KACR,aAAA,CACA,eANJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,QAT1B,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,OAC9D,yBAVJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,OAGtB,QAZJ,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,MAG9D,QAZJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,OAGd,OAAO,GAZnB,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,MAGtD,OAAO,GACb,WAAA,CACA,yBAKN,CAAC,GAAS,eACR,sBAAA,CACA,sBChDF,CAAC,GAAS,WAAY,CAAC,GAAS,gBAC9B,cAGF,CAAC,GAAS,YACR,gBCLF,CAAC,GAAS,WACR,iBAAA,CACA,SAAA,CACA,WAAA,CACA,OAAA,CACA,SAAA,CRJA,UAAA,CAEA,wBAAA,CACA,OQKF,CAAC,GAAS,aACR,QAAA,CACA,UAAA,CACA,QAAA,CACA,UAAA,CACA,UAAA,CACA,WAGF,CAAC,GAAS,iBACR,iBAAA,CACA,qBAAA,CACA,qBAAA,CACA,+BAAA,CACA,SAAA,CACA,YAIF,CAAC,GAAS,YAAa,EAAC,GAAS,iBAC/B,UAAA,CACA,WAGF,CAAC,GAAS,UAAU,OAAQ,CAAC,GAAS,UAAU,CAAC,GAAS,QACxD,qBAAA,CRjCA,UAAA,CAEA,wBAAA,CACA,OQmCF,CAAC,GAAS,QACR,kBCxCF,CAAC,GAAS,OACR,sBAAA,CACA,sBAAA,CACA,sBCHF,CAAC,GAAS,YACR,iBAAA,CV+BA,+CAAA,CACA,4CAAA,CACA,wCU7BF,CAAC,GAAS,WAAW,CAAC,GAAS,OAC7B,eAKF,CAAC,GAAS,WAAY,EAAC,GAAS,OAChC,CAAC,GAAS,WAAY,EAAC,GAAS,MAAM,OACpC,iBAAA,CACA,aAAA,CACA,OAAA,CACA,QAAA,CACA,wBAAA,CACA,mBAGF,CAAC,GAAS,WAAY,EAAC,GAAS,OAC9B,kBAGF,CAAC,GAAS,WAAY,EAAC,GAAS,MAAM,OACpC,iBAAA,CACA,QAAS,GAGX,CAAC,GAAS,WAAW,CAAC,GAAS,SVmB7B,OAAQ,2DAAR,CACA,sBAAA,CAlBA,+CAAA,CACA,4CAAA,CACA,uCAAA,CUAA,KAAA,CACA,MAAA,CACA,eAAA,CACA,wBAAA,CACA,kCAEA,CAVD,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,QACT,eAAA,CACA,cAEA,CAdH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAIP,EAAG,GAAS,OACZ,QAAA,CACA,iBAAA,CACA,kBAAA,CACA,2BAAA,CACA,oCAAA,CACA,UAEA,CAtBL,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAIP,EAAG,GAAS,MAQX,OACC,OAAA,CACA,iBAAA,CACA,kBAAA,CACA,yBAIJ,CA9BH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAoBR,CAAC,GAAS,OAAS,kBACpB,CA/BH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAqBR,CAAC,GAAS,MAAO,EAAG,GAAS,OAAS,UAEvC,CAjCH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAuBR,CAAC,GAAS,KAAO,iBAClB,CAlCH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAwBR,CAAC,GAAS,IAAK,EAAG,GAAS,OAAS,UAAA,CAAa,UChEtD,CAAC,GAAS,YACR,QAAA,CAAW,SAAA,CAAY,QAAA,CACvB,eAAA,CACA,YAGF,GAAG,CAAC,GAAS,YACX,cAAA,CACA,KAAA,CAAQ,OAGV,CAAC,GAAS,aXVR,SAAA,CAEA,uBAAA,CACA,MAAA,CWSA,cAAA,CACA,MAAA,CAAS,KAAA,CACT,UAAA,CAAa,WAAA,CACb,gBAGF,CAAC,GAAS,YAAY,CAAC,GAAS,IXlB9B,UAAA,CAEA,wBAAA,CACA,OWmBF,CAAC,GAAS,aACR,YAGF,CAAC,GAAS,QXKR,+CAAA,CACA,4CAAA,CACA,uCAAA,CAeA,OAAQ,2DAAR,CACA,sBAAA,CWnBA,eAAA,CACA,cAAA,CACA,KAAA,CAAQ,MAAA,CACR,SAAA,CACA,UAAW,SAAX,CACA,yDAGF,CAAC,GAAS,OAAO,CAAC,GAAS,IACzB,UAAW,QAAX,CACA,UAGF,CAAC,GAAS,aACR,gBAAA,CACA,+BAAA,CACA,kBAGF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,iBAAA,CACA,OAAA,CACA,KAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,eAPF,CAAC,GAAS,YAAa,EAAC,GAAS,MAS/B,GACE,cAIJ,CAAC,GAAS,MAAM,MAAO,GACrB,cAGF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,iCAAA,CACA,mBAGF,CAAC,GAAS,OAAQ,EAAC,GAAS,gBAC1B,cAGF,CAAC,GAAS,MACR,aAAA,CACA,qBAAA,CACA,6BAIF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,WAAA,CACA,SAAA,CACA,YAGF,CAAC,GAAS,OAAQ,QAChB,UAAA,CACA,YAOF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,qBAGF,CAAC,GAAS,OACR,EAAC,GAAS,IAAI,OACZ,qBAFJ,CAAC,GAAS,OAKR,EAAC,GAAS,IAAI,OACZ,qBAIJ,CAAC,GAAS,YAAa,EAAC,GAAS,KAAM,CAAC,GAAS,KAAM,EAAC,GAAS,KAC/D,qBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,IAAI,CAAC,GAAS,SACtC,yBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,iBAAA,CACA,UAAA,CACA,UAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,SAAA,CACA,QAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,aAAA,CACA,iBC7IF,CAAC,GAAS,SACR,iBAAA,CACA,WAAA,CZDA,UAAA,CAEA,wBAAA,CACA,MAAA,CYAA,eAGF,CAAC,GAAS,eACR,cAAA,CACA,qBAAA,CACA,WAAA,CACA,eAAA,CACA,uBAAA,CACA,iBAAA,CACA,mBAOF,CAAC,GAAS,eZWR,uBAAA,CACA,oBAAA,CACA,gBYTF,CAAC,GAAS,eACR,iBAAA,CACA,OAAA,CACA,QAAA,CACA,aAAA,CACA,uBAGF,CAAC,GAAS,iBACR,yBAGF,CAAC,GAAS,iBACR,sBAGF,CAAC,GAAS,iBACR,uBAGF,CAAC,GAAS,iBACR,wBAGF,CAAC,GAAS,YAAa,CAAC,GAAS,YAC/B,kBAGF,CAAC,GAAS,YAAa,CAAC,GAAS,YAC/B,iBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,KAAA,CACA,QAAA,CACA,gBAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,KAAA,CACA,SAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,KAAA,CACA,UAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,QAAA,CACA,QAAA,CACA,gBAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,QAAA,CACA,SAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,QAAA,CACA,UAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,OAAA,CACA,OAAA,CACA,eAAA,CACA,uBAAA,CACA,iBAAA,CACA,4BAAA,CACA,gCAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,MAAA,CACA,OAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CACA,4BAAA,CACA,gCClIF,CAAC,GAAS,UACR,oBAAA,CACA,iBAAA,CACA,YAGF,CAAC,GAAS,SAAU,EAAC,GAAS,eAC5B,oBAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,qBAAA,CACA,gBAIF,CAAC,GAAS,SAAU,EAAC,GAAS,MAC5B,oBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,UAAA,CACA,cAGF,CAAC,GAAS,KACR,aAAA,CACA,OAAA,CACA,WAAA,CACA,wBAAA,CbSA,iCAAA,CACA,0BcvCF,CAAC,GAAS,cACR,iBAAA,CACA,qBAAA,CACA,WAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CACA,oBAAA,CACA,wDAAA,CACA,SAAA,CACA,sBAGF,CAAC,GAAS,aAAa,CAAC,GAAS,IAC/B,UAGF,CAAC,GAAS,sBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,mBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,sBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,oBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,aAAa,CAAC,GAAS,WAC/B,mBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,KAChC,eAGF,CAAC,GAAS,oBdSR,oBAAA,CACA,wBAAA,CACA,oBAAA,CACA,qBAAA,CACA,gBAAA,CACA,iBAAA,CACA,oBAAA,CACA,YAAA,CcdA,oBAAA,CACA,cAAA,CACA,sBAAA,CACA,iBAAA,CACA,kBAAA,CACA,cAGF,CAAC,GAAS,mBAAoB,GAC5B,yBAAA,CACA,eAGF,CAAC,GAAS,aAAc,EAAC,GAAS,UAChC,iBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,MACpD,eAGF,CAAC,GAAS,aAAc,GAAG,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/E,cAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,eACpD,qBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KAC7E,yBAGF,CAAC,GAAS,qBAAsB,GAAG,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/F,cAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC5D,qBAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACrF,yBAGF,CAAC,GAAS,kBAAmB,GAAG,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,MACzF,cAGF,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,eACzD,qBAGF,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KAClF,yBAGF,CAAC,GAAS,qBAAsB,GAAG,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/F,cAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC5D,qBAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACrF,yBAGF,CAAC,GAAS,mBAAoB,GAAG,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC3F,cAGF,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC1D,qBAGF,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACnF,yBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,OAChC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,aAAA,CACA,eCxIF,CAAC,GAAS,YACR,kBAGF,IAAK,EAAC,GAAS,iBAAkB,CAAC,GAAS,SACzC,kBAGF,CAAC,GAAS,SACR,SAAA,CAAY,WAGd,CAAC,GAAS,eAAe,CAAC,GAAS,YACjC,gBCbF,CAAC,GAAS,KACR,wBAAA,CACA,4DAAA,CACA,iBAAA,CACA,4CAAA,CACA,gBAAA,ChBsCA,oBAAA,CACA,eAAA,CACA,OAAA,CAbA,uBAAA,CACA,oBAAA,CACA,gBgBvBA,CAXD,GAAS,IAWP,OAAQ,CAXV,GAAS,IAWE,QACR,gBAAA,CACA,aAAA,CACA,qBAGF,CAjBD,GAAS,IAiBP,OACC,gBAAA,CACA,aAAA,CACA,qBAGF,CAvBD,GAAS,IAuBP,CAAC,GAAS,SAAU,QAAQ,CAvB9B,GAAS,IAuBsB,CAAC,GAAS,SAAS,MAAO,QACtD,cAAA,ChBQF,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OgByBA,CA7BD,GAAS,IA6BP,CAAC,GAAS,QACX,CA9BD,GAAS,IA8BP,CAAC,GAAS,OAAO,OAClB,CA/BD,GAAS,IA+BP,CAAC,GAAS,OAAO,OAClB,CAhCD,GAAS,IAgCP,CAAC,GAAS,OAAO,QhBAlB,uBAAA,CACA,oBAAA,CACA,eAAA,CgBAE,kBAAA,CACA,WAAA,CACA,yBAGF,CAvCD,GAAS,IAuCP,CAAC,GAAS,OAAQ,QAAQ,CAvC5B,GAAS,IAuCoB,CAAC,GAAS,OAAO,MAAO,QACpD,CAxCD,GAAS,IAwCP,CAAC,GAAS,OAAQ,GAAG,CAxCvB,GAAS,IAwCe,CAAC,GAAS,OAAO,MAAO,GAC7C,YAGF,CA5CD,GAAS,IA4CP,MAAO,EAAC,GAAS,OAChB,yBAGF,CAhDD,GAAS,IAgDP,CAAC,GAAS,OAAQ,EAAC,GAAS,OAAQ,CAhDtC,GAAS,IAgD8B,CAAC,GAAS,OAAO,MAAO,EAAC,GAAS,OACtE,uBAIJ,CAAC,GAAS,IAAK,QACb,eAAA,CACA,cAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,aAAA,CACA,iBAAA,CAGA,gBAAA,CACA,wBACA,CAZD,GAAS,IAAK,OAYZ,mBACC,QAAA,CACA,UAIJ,CAAC,GAAS,IAAK,GACb,yBAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,cAC1B,eAGF,CAAC,GAAS,SACR,WAAA,CACA,4BAAA,CACA,wBAAA,CACA,yBAEA,CAND,GAAS,QAMP,OAAQ,CANV,GAAS,QAME,OACR,wBAAA,CACA,yBAGF,CAXD,GAAS,QAWP,CAAC,GAAS,SAAU,QAAQ,CAX9B,GAAS,QAWsB,CAAC,GAAS,SAAS,MAAO,QACtD,cAAA,ChB3DF,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OgB4FA,CAjBD,GAAS,QAiBP,CAAC,GAAS,QAAS,CAjBrB,GAAS,QAiBa,CAAC,GAAS,OAAO,OAAQ,CAjB/C,GAAS,QAiBuC,IAAI,eAAqB,QACtE,wBAAA,ChBjEF,uBAAA,CACA,oBAAA,CACA,gBgBoEF,CAAC,GAAS,QAAS,QAAQ,CAAC,GAAS,QAAS,OAAO,GACnD,WAAA,CACA,yBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,KACvB,iBAAA,CACA,mBAAA,CACA,cAGF,CAAC,GAAS,UAAW,QACnB,gBAAA,CACA,cAAA,CACA,mBAIF,CAAC,GAAS,UAAW,GACnB,eAGF,CAAC,GAAS,UAAW,QACnB,eAAA,CACA,cAAA,CACA,oBAGF,CAAC,GAAS,UAAW,GACnB,gBAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,OACvB,cAAA,CACA,cAGF,CAAC,GAAS,UAAW,EAAC,GAAS,OAC7B,cAAA,CACA,cAGF,CAAC,GAAS,OhBvGR,oBAAA,CACA,eAAA,CACA,OAAA,CgBuGA,OAAA,CAAU,QAAA,CACV,kBAAA,CACA,4BAAA,CACA,kCAAA,CACA,iCAAA,CACA,QAAS,GAGX,CAAC,GAAS,SAAU,EAAC,GAAS,OAC5B,sBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,IACxB,+BAAA,CACA,aAGF,CAAC,GAAS,UACR,QAAA,CACA,sBAAA,ChBvIA,uBAAA,CACA,oBAAA,CACA,eAAA,CgBwIA,YAGF,CAAC,GAAS,SAAS,OAAQ,CAAC,GAAS,SAAS,CAAC,GAAS,QAAS,CAAC,GAAS,SAAS,OAAQ,CAAC,GAAS,SAAS,QAC7G,QAAA,CACA,kBAAA,CACA,WAAA,ChBhJA,uBAAA,CACA,oBAAA,CACA,gBgBkJF,CAAC,GAAS,aAAc,EAAC,GAAS,KAChC,kBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,IAAK,QAC5B,cC3LF,CAAC,GAAS,QAAS,EAAC,GAAS,WAC3B,QAAA,CACA,cAWF,CAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,gBAAA,CACA,QAAA,CAEA,gBAcF,CAAC,GAAS,UAAU,IAAI,eACtB,6BAAA,CACA,cAAA,CACA,gBAGF,CAAC,GAAS,WAGR,gBAYF,CAAC,GAAS,UAAW,EAAC,GAAS,IAAI,CAAC,GAAS,kBAC3C,SAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,KAC5C,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,OAC5C,eAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,IAAI,eACrC,gBAAA,CACA,8BAAA,CACA,iBAAA,CACA,iBCvEF,CAAC,GAAS,UACR,eAGF,CAAC,CAAC,GAAS,YACT,gBAAA,CACA,wBAAA,ClB0BA,uBAAA,CACA,oBAAA,CACA,eAAA,CkBzBA,sBAAA,CACA,iBAAA,CACA,gBAGF,CAAC,GAAS,QAAS,EAAC,CAAC,GAAS,YAC5B,aAAA,CACA,cAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,SAAS,MAAO,EAAC,CAAC,GAAS,YAAa,CAAC,GAAS,SAAS,CAAC,GAAS,MAAO,EAAC,CAAC,GAAS,YAC/F,wBAAA,ClBUA,uBAAA,CACA,oBAAA,CACA,gBkBRF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,OAAQ,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,CAAC,GAAS,YACzG,cAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAC5B,sBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UACvB,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,CAAC,GAAS,YACxB,iBC1CF,CAAC,GAAS,UACR,iBAAA,CnB0CA,oBAAA,CACA,eAAA,CACA,OAAA,CAbA,uBAAA,CACA,oBAAA,CACA,eAAA,CmB7BA,aAGF,CAAC,GAAS,SAAU,OAClB,wBAAA,CACA,0BAAA,CACA,YAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,OACrC,cAOF,CAAC,GAAS,SAAU,EAAC,GAAS,KAC5B,wBAAA,CACA,aAAA,CAEA,SAGF,CAAC,GAAS,SAAU,QAClB,iBAAA,CACA,iBAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,IAAK,QACpD,cAAA,CnBHA,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OmBoCF,CAAC,GAAS,SAAU,EAAC,GAAS,QAC5B,iBAAA,CACA,SAAA,CACA,OAAA,CACA,gBAAA,CACA,eAAA,CACA,cAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,eAGF,CAAC,GAAS,SAAS,CAAC,GAAS,WAAY,OACvC,mBAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,QAC/C,WAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAAO,CAAC,GAAS,WAC7C,cAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAAO,CAAC,GAAS,aAC7C,cAGF,CAAC,GAAS,KAAK,CAAC,GAAS,eACvB,YAAA,CACA,YAAA,CACA,iBAHF,CAAC,GAAS,KAAK,CAAC,GAAS,cAKvB,EAAC,GAAS,WACR,uBAAA,CACA,eAPJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAUvB,EAAC,GAAS,eACR,UAXJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAcvB,EAAC,GAAS,MACR,eAfJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAkBvB,EAAC,GAAS,gBAlBZ,CAAC,GAAS,KAAK,CAAC,GAAS,cAkBI,EAAC,GAAS,eAAgB,GACnD,eAnBJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAsBvB,EAAC,GAAS,KAAM,GACd,eC5FJ,CAAC,GAAS,SAAU,GAClB,wBAAA,CACA,UAAA,CAAa,YCFf,CAAC,GAAS,YAAa,EAAC,GAAS,KAC/B,kBAGF,CAAC,GAAS,kBACR,WAQF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,iBAAA,CACA,aAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,UAAA,CACA,UAAA,CACA,gBAGF,CAAC,GAAS,YAAY,CAAC,GAAS,UAAW,EAAC,GAAS,SACnD,iBAAA,CACA,eAAA,CACA,WAmBF,CAAC,GAAS,IAAK,EAAC,GAAS,aACvB,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,SAC9C,aAAA,CACA,eAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAY,CAAC,GAAS,UAAW,EAAC,GAAS,SAClE,aAAA,CACA,eAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,MAC9C,gBAAA,CACA,iBAAA,CACA,cCpEF,CAAC,GAAS,aACR,iBAAA,CACA,WAAA,CACA,aAGF,CAAC,GAAS,gBACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,SAAA,CACA,WAAA,CACA,wBAAA,CACA,gBAAA,CACA,gBAGF,CAAC,GAAS,qBACR,WAGF,CAAC,GAAS,sBAAuB,CAAC,GAAS,sBACzC,UAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,OAGF,CAAC,GAAS,sBACR,OAAQ,yEAAwE,uBAAuB,YAAvG,CACA,WAAY,6GAAZ,CACA,WAAY,qDAGd,CAAC,GAAS,sBACR,OAAQ,yEAAwE,yBAAyB,UAAzG,CACA,WAAY,6GAAZ,CACA,WAAY,gDAGd,CAAC,GAAS,uBACR,eAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CACA,sBAAA,CACA,kBAGF,CAAC,GAAS,uBACR,iBAAA,CACA,UAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAGF,CAAC,GAAS,eACR,iBAAA,CACA,KAAA,CAAQ,OAAA,CACR,UAAA,CACA,WAAA,CACA,wBAAA,CACA,iBAGF,CAAC,GAAS,sBACR,eAAA,CACA,iBAAA,CACA,KAAA,CACA,SAAA,CACA,UAAA,CACA,sBAAA,CACA,gBAAA,CACA,UAAA,CACA,YC5EF,CAAC,GAAS,MvB2CR,oBAAA,CACA,eAAA,CACA,OAAA,CuB3CA,WAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,KACxB,oBAAA,CACA,kBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,WACxB,qBAGF,CAAC,GAAS,WvB2BR,oBAAA,CACA,eAAA,CACA,OAAA,CuB3BA,cAAA,CACA,aAAA,CACA,iBAAA,CACA,yBAGF,CAAC,GAAS,UAAU,OAClB,0BAGF,CAAC,GAAS,UAAU,OAClB,kBAAA,CACA,YAGF,CAAC,GAAS,KAAM,EAAC,GAAS,SACxB,cAAA,CACA,kBAGF,CAAC,GAAS,SAAU,EAAC,GAAS,WAC5B,WAKF,CAAC,GAAS,IAAK,EAAC,GAAS,MACvB,cC7CF,CAAC,GAAS,UACR,uBAIF,CAAC,GAAS,SAAU,EAAG,GAAS,gBAC9B,iBAGF,CAAC,GAAS,gBACR,eAAA,CACA,oBCXF,CAAC,GAAS,YzB2CR,oBAAA,CACA,eAAA,CACA,QyBzCF,CAAC,GAAS,iBACR,kBCLF,CAAC,GAAS,kB1B2CR,oBAAA,CACA,eAAA,CACA,Q0BzCF,CAAC,GAAS,kBACR,qBAGF,CAAC,GAAS,iBAAiB,CAAC,GAAS,MACnC,iBAGF,CAAC,GAAS,aACR,mBAGF,CAAC,GAAS,eAAgB,EAAC,GAAS,aAClC,mBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,aACvB,gBAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,kBACvB,qBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,iBAAiB,CAAC,GAAS,MAClD,gBChCF,CAAC,GAAS,QACR,sBAAA,CACA,UAAA,CAAa,YCFf,CAAC,GAAS,S5B2CR,oBAAA,CACA,eAAA,CACA,OAAA,C4B3CA,4CAAA,CACA,eAAA,CACA,qBAJF,CAAC,GAAS,QAMR,KACE,aAAA,CACA,WARJ,CAAC,GAAS,QAMR,IAIE,QACE,iBAAA,CACA,OAAA,CAAU,SAAA,CACV,cAAA,CACA,eAAA,CACA,aAfN,CAAC,GAAS,QAMR,IAYE,OAAM,OACJ,0BAKN,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,KACE,kBAFJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAK1B,QACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,QAI1B,KACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,QAI1B,KACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,OAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,MAI1B,KACE,cAMJ,CAAC,GAAS,IAAK,EAAC,GAAS,QACvB,KACE,gBAAA,CACA,cClEJ,CAAC,GAAS,O7B2CR,oBAAA,CACA,eAAA,CACA,OAAA,C6B3CA,4CAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,UACxB,WAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WACxB,qBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,OACxB,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,OACvB,gBAAA,CACA,cClCF,CAAC,GAAS,SACR,yBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,SAC3B,wBAAA,CACA,sBAAA,C9B0BA,uBAAA,CACA,oBAAA,CACA,eAAA,C8BzBA,YAGF,CAAC,GAAS,QAAS,EAAC,GAAS,QAAS,OAAO,MAC3C,cAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,yBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,EAAC,GAAS,OAD0B,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,MACzE,EAAC,GAAS,OACR,yBAIJ,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,OAAQ,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,CAAC,GAAS,QAAS,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,OACxI,oBAAA,CACA,gBAAA,CACA,WAAA,C9BGA,uBAAA,CACA,oBAAA,CACA,gB8BDF,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,CAAC,GAAS,QAC7C,kBAAA,CACA,cCnCF,GAAG,CAAC,GAAS,QAAQ,CAAC,GAAS,QAC7B,yBAAA,CACA,cAGF,CAAC,GAAS,QAAS,QACjB,cAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,UAAW,MACrC,eAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,YAAa,MACvC,oBAAA,CACA,iBAAA,CACA,sBAAA,CACA,WAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,YAAY,CAAC,GAAS,UAAW,MAC3D,WAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,gBAKF,CAAC,GAAS,IACR,EAAC,GAAS,QAAS,QACjB,aAAA,CACA,iBAHJ,CAAC,GAAS,IAMR,EAAC,GAAS,QAAQ,CAAC,GAAS,YAAa,MACvC,aAAA,CACA,iBCtCJ,CAAC,GAAS,WACR,aAAA,CACA,uBAAA,CACA,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,kBAAA,CACA,iCAAA,CACA,kBAXF,CAAC,GAAS,UAaR,EAAC,GAAS,OACR,cAAA,CACA,gBAAA,CACA,gCAAA,CACA,mCAAA,CACA,8BAlBJ,CAAC,GAAS,UAqBR,EAAC,GAAS,eACR,oBAAA,CACA,qBAAA,CACA,WAxBJ,CAAC,GAAS,UA2BR,EAAC,GAAS,KACR,kBAGF,CA/BD,GAAS,UA+BP,OAAQ,CA/BV,GAAS,UA+BE,OACR,mBADF,CA/BD,GAAS,UA+BP,MAGC,EAAC,GAAS,eAHH,CA/BV,GAAS,UA+BE,MAGR,EAAC,GAAS,eACR,WAJJ,CA/BD,GAAS,UA+BP,MAOC,EAAC,GAAS,MAPH,CA/BV,GAAS,UA+BE,MAOR,EAAC,GAAS,MAPZ,CA/BD,GAAS,UA+BP,MAOkB,EAAC,GAAS,KAPpB,CA/BV,GAAS,UA+BE,MAOS,EAAC,GAAS,KACzB,cAIJ,CA3CD,GAAS,UA2CP,CAAC,GAAS,UACT,mBADF,CA3CD,GAAS,UA2CP,CAAC,GAAS,SAGT,EAAC,GAAS,MAHZ,CA3CD,GAAS,UA2CP,CAAC,GAAS,SAGQ,EAAC,GAAS,KACzB,cAIJ,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,kBAC1B,mBADF,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,iBAG1B,EAAC,GAAS,MAHZ,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,iBAGT,EAAC,GAAS,KACzB,YAIJ,CA3DD,GAAS,UA2DP,CAAC,GAAS,OAAO,CAAC,GAAS,mBAC1B,EAAC,GAAS,KACR,mBAIJ,CAjED,GAAS,UAiEP,CAAC,GAAS,UAAW,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,OACxC,iBAEA,CApEH,GAAS,UAiEP,CAAC,GAAS,SAGR,OAAD,CApEH,GAAS,UAiEe,CAAC,GAAS,SAAS,MAGvC,OACC,mBAJJ,CAjED,GAAS,UAiEP,CAAC,GAAS,SAOT,EAAC,GAAS,MAPU,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,MAOxC,EAAC,GAAS,MAPZ,CAjED,GAAS,UAiEP,CAAC,GAAS,SAOQ,EAAC,GAAS,KAPP,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,MAOvB,EAAC,GAAS,KACzB,WAIJ,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,QACrC,6BAAA,CACA,iBAFF,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAIrC,EAAC,GAAS,MAJZ,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAIpB,EAAC,GAAS,KACzB,cAGF,CArFH,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAQpC,OACC,mBAKN,CAAC,GAAS,gBACR,UAAA,CACA,eAAA,CACA,sBAAA,CACA,mBAJF,CAAC,GAAS,eAMR,GACE,WAIJ,CAAC,GAAS,oBACR,aAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAGF,CAAC,GAAS,UAAU,MAAO,GAAG,CAAC,GAAS,UAAU,CAAC,GAAS,SAAU,GAAG,CAAC,GAAS,UAAU,MAAO,GAClG,cAGF,GAAG,CAAC,GAAS,KAAM,EAAC,GAAS,eAAgB,CAAC,GAAS,cAAc,OACnE,QAAA,CACA,SAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CACA,sBAAA,CACA,uCAAA,CACA,cAAA,CACA,YAGF,GAAG,CAAC,GAAS,KAAM,EAAC,GAAS,UAAW,GACtC,iBAGF,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAIhC,CAAC,GAAS,KAAK,CAAC,GAAS,KACvB,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,WACvB,gBAAA,CACA,aAAA,CACA,0BAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,OAC5C,eAAA,CACA,cAAA,CACA,8BAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,CAAC,GAAS,SAAU,EAAC,GAAS,OAAQ,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,MAAO,EAAC,GAAS,OAAQ,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,MAAO,EAAC,GAAS,OACvL,6BAAA,CACA,2BAGF,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,eAAA,CACA,iBCpKJ,CAAC,GAAS,UACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CAAa,WAAA,CjCFb,UAAA,CAEA,wBAAA,CACA,MAAA,CiCCA,oBlCyO6C,0CkCtO/C,CAAC,GAAS,iBACR,eAAA,CACA,YAGF,CAAC,GAAS,KAAM,EAAC,GAAS,iBACxB,WAAA,CACA,wBCfF,CAAC,GAAS,MACR,iBAAA,CACA,MAAA,CAAS,KAAA,ClC+CT,OAAQ,2DAAR,CACA,sBAAA,CkC9CA,YAAA,CACA,mBAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,wBAAA,CACA,wBAAA,CACA,YAAA,ClCqBA,+CAAA,CACA,4CAAA,CACA,uCAAA,CkCpBA,gBAAA,CACA,aAAA,CACA,kBAEA,CAlBD,GAAS,KAkBP,CAAC,GAAS,SACT,WAAA,CACA,UAAW,eAAe,eAA1B,CACA,0BAGF,CAxBD,GAAS,KAwBP,CAAC,GAAS,WACT,EAAC,GAAS,eADZ,CAxBD,GAAS,KAwBP,CAAC,GAAS,WACiB,EAAC,GAAS,OAClC,iBAAA,CACA,QAKN,CAAC,GAAS,KAAM,GACd,aAGF,CAAC,GAAS,eAAgB,GACxB,qBAIA,CADD,GAAS,KAAK,CAAC,GAAS,GACtB,CAAC,GAAS,SACT,SAAA,CACA,UAAW,WAAW,UAAtB,CACA,iDAIJ,CAAC,GAAS,gBAAkB,qBAC5B,CAAC,GAAS,gBAAkB,oBAC5B,CAAC,GAAS,gBAAkB,oBAC5B,CAAC,GAAS,gBAAkB,mBAI5B,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,eAAA,CACA,iBAGF,CAND,GAAS,IAMP,CAAC,GAAS,WAAY,EAAC,GAAS,OANnC,CAAC,GAAS,IAMiC,EAAC,GAAS,eACjD,UAAA,CACA,OC/DJ,CAAC,GAAS,QAAS,QACjB,eAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,iBAAA,CACA,eAAA,CACA,SAAA,CACA,QAKF,CAAC,GAAS,IAAK,EAAC,GAAS,QAAS,EAAC,GAAS,OAC1C,UAAA,CACA,SAGF,CAAC,GAAS,IAAK,EAAC,GAAS,QAAS,QAChC,kBAAA,CACA,kBCxBF,CAAC,GAAS,eAAgB,EAAC,GAAS,cAClC,iBAAA,CACA,OAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,SAGF,CAAC,GAAS,eAAgB,EAAC,GAAS,mBAClC,iBAGF,CAAC,CAAC,GAAS,UACT,cCdF,CAAC,GAAS,WACR,eAAA,CACA,yBCFF,CAAC,GAAS,QAER,wBAAA,CACA,eAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CACA,cAGF,CAAC,GAAS,OAAO,CAAC,GAAS,UACzB,UAAA,CACA,aAGF,CAAC,GAAS,eAER,wBAAA,CACA,kBAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,gBAAA,CACA,gBAGF,CAAC,GAAS,cAAc,OACtB,qBC7BF,CAAC,GAAS,QACR,kBCAA,CADD,GAAS,SACP,MAAO,EAAC,GAAS,MAChB,8BAFJ,CAAC,GAAS,SAKR,EAAC,GAAS,MACR,iCAAA,CACA,iBAAA,CACA,iBARJ,CAAC,GAAS,SAWR,EAAC,GAAS,KAAK,OACb,8BAZJ,CAAC,GAAS,SAeR,EAAC,GAAS,KAAK,OAfjB,CAAC,GAAS,SAee,EAAC,GAAS,KAAK,QACpC,8BAGF,CAnBD,GAAS,SAmBP,CAAC,GAAS,OAAO,MAAO,EAAC,GAAS,MACjC,4BAGF,CAvBD,GAAS,SAuBP,CAAC,GAAS,QACT,qBAIJ,CAAC,GAAS,SAAS,CAAC,GAAS,UAAW,EAAC,GAAS,MAChD,oBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UACvB,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,SAAU,QACjC,iBAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,SAAU,EAAC,GAAS,MAC3C,cC7CF,CAAC,GAAS,mBACR,cCDF,CAAC,GAAS,MACR,aAAA,CACA,gCAGF,CAAC,GAAS,MACV,CAAC,GAAS,KAAM,EAAG,GAAS,gBAC1B,gBAGF,CAAC,GAAS,K1CiCR,oBAAA,CACA,eAAA,CACA,OAAA,C0CjCA,wBAAA,CACA,sBAAA,CACA,eAAA,CACA,gBAAA,CACA,4CAAA,CACA,WAAA,CACA,eAGF,CAAC,GAAS,IAAI,OACZ,mBAGF,CAAC,GAAS,IAAI,CAAC,GAAS,QACtB,kBAAA,CACA,+BAAA,CACA,kBAAA,CACA,YAIF,CAAC,GAAS,IAAI,OACZ,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,MACvB,gBAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,KACvB,uBC7CF,CAAC,GAAS,SACR,eAAA,CACA,wBAAA,C3C8BA,uBAAA,CACA,oBAAA,CACA,eAAA,C2C7BA,oBAAA,C3CiCA,2DAAA,CACA,mDAAA,C2ChCA,WAAA,CACA,WAAA,CACA,mBAAA,CACA,oBAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,QAAQ,OAAQ,CAAC,GAAS,QAAQ,CAAC,GAAS,OACpD,oBAAA,C3CgBA,uBAAA,CACA,oBAAA,CACA,gB2CdF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,WAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,WAC1B,WAAA,CACA,YAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,UAC1B,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,SACvB,gBAAA,CACA,cCrCF,CAAC,GAAS,UACR,sBAAA,CACA,kBAEA,CAJD,GAAS,SAIN,MACA,wBAAA,CACA,oBAAA,CACA,sBAGF,CAVD,GAAS,SAUP,OACC,QAAQ,EAAR,CACA,WAAA,CACA,oBAAA,CACA,sBAGF,CAjBD,GAAS,SAiBP,CAAC,GAAS,U5ChBX,UAAA,CAEA,wBAAA,CACA,O4CgBE,CApBH,GAAS,SAiBP,CAAC,GAAS,SAGR,CAAC,GAAS,WACT,mBCrBN,CAAC,GAAS,cACR,iBAAA,CACA,gBAEA,CAJD,GAAS,aAIN,QACA,iBAAA,CACA,UAGF,CATD,GAAS,aASN,O7CRF,SAAA,CAEA,uBAAA,CACA,MAAA,C6COE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,UChBJ,WACE,YAAa,SAAb,CACA,QAAQ,oBAAR,CACA,QAAQ,4BAA4B,OAAO,yBACrC,sBAAsB,OAAO,YAC7B,qBAAqB,OAAO,gBAC5B,6BAA6B,OAAO,MAH1C,CAIA,kBAAA,CACA,kBAGF,WACE,YAAa,eAAb,CACA,QAAQ,0BAAR,CACA,QAAQ,kCAAkC,OAAO,yBAC3C,4BAA4B,OAAO,YACnC,2BAA2B,OAAO,gBAClC,mCAAmC,OAAO,MAHhD,CAIA,kBAAA,CACA,kBAGF,CAAC,GAAS,KACR,YAAa,eAAb,CACA,iBAAA,CACA,kBAAA,CACA,mBAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,uBAAA,CACA,kCAAA,CACA,iCAAA,CAEA,oBAAA,CACA,oCAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,cAGF,CAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,YAAa,sBAGf,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,KAAK,QAA4B,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,uBAAuB,QAAU,QAAS,QACpD,CAAC,GAAS,sBAAsB,QAAW,QAAS,QACpD,CAAC,GAAS,uBAAuB,QAAU,QAAS,QACpD,CAAC,GAAS,sBAAsB,QAAW,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAS,CAAC,GAAS,WAAW,QACjD,QAAS,QAGX,CAAC,GAAS,UAA2B,eACrC,CAAC,GAAS,YAA2B,kBACrC,CAAC,CAAC,GAAS,aAA0B,gBAAA,CAAmB,gBCjLxD,CAAC,GAAS,IAAK,EAAC,GAAS,WAAY,OACnC"} \ No newline at end of file diff --git a/project-web/public/static/tinymce4.7.5/tinymce.min.js b/project-web/public/static/tinymce4.7.5/tinymce.min.js new file mode 100644 index 0000000..75bb09c --- /dev/null +++ b/project-web/public/static/tinymce4.7.5/tinymce.min.js @@ -0,0 +1,2 @@ +// 4.7.5 (2018-01-22) +!function(){"use strict";var e,t,n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v=function(e){return function(){return e}},y={noop:function(){},noarg:function(e){return function(){return e()}},compose:function(e,t){return function(){return e(t.apply(null,arguments))}},constant:v,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(e){for(var t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=t.concat(n);return e.apply(null,o)}},not:function(e){return function(){return!e.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:v(!1),always:v(!0)},b=y.never,C=y.always,x=function(){return w},w=(r={fold:function(e,t){return e()},is:b,isSome:b,isNone:C,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:x,ap:x,each:function(){},bind:x,flatten:x,exists:b,forall:C,filter:x,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:y.constant("none()")},Object.freeze&&Object.freeze(r),r),N=function(e){var t=function(){return e},n=function(){return o},r=function(t){return t(e)},o={fold:function(t,n){return n(e)},is:function(t){return e===t},isSome:C,isNone:b,getOr:t,getOrThunk:t,getOrDie:t,or:n,orThunk:n,map:function(t){return N(t(e))},ap:function(t){return t.fold(x,function(t){return N(t(e))})},each:function(t){t(e)},bind:r,flatten:t,exists:r,forall:r,filter:function(t){return t(e)?o:w},equals:function(t){return t.is(e)},equals_:function(t,n){return t.fold(b,function(t){return n(e,t)})},toArray:function(){return[e]},toString:function(){return"some("+e+")"}};return o},E={some:N,none:x,from:function(e){return null===e||e===undefined?w:N(e)}},S=(o=Array.prototype.indexOf)===undefined?function(e,t){return D(e,t)}:function(e,t){return o.call(e,t)},k=function(e,t){return S(e,t)>-1},T=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},A=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},_=function(e,t){for(var n=e.length-1;n>=0;n--)t(e[n],n,e)},B=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},R=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return E.some(n);return E.none()},D=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},O=Array.prototype.push,P=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);O.apply(t,e[n])}return t},I=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},L=Array.prototype.slice,M={map:T,each:A,eachr:_,partition:function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var a=e[o];(t(a,o,e)?n:r).push(a)}return{pass:n,fail:r}},filter:B,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),r=[],o=[],i=0,a=e.length;i<a;i++){var s=e[i],u=t(s);u!==n&&(r.push(o),o=[]),n=u,o.push(s)}return 0!==o.length&&r.push(o),r},indexOf:function(e,t){var n=S(e,t);return-1===n?E.none():E.some(n)},foldr:function(e,t,n){return _(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return A(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return E.some(o)}return E.none()},findIndex:R,flatten:P,bind:function(e,t){var n=T(e,t);return P(n)},forall:I,exists:function(e,t){return R(e,t).isSome()},contains:k,equal:function(e,t){return e.length===t.length&&I(e,function(e,n){return e===t[n]})},reverse:function(e){var t=L.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],r=0;r<e.length;r+=t){var o=e.slice(r,r+t);n.push(o)}return n},difference:function(e,t){return B(e,function(e){return!k(t,e)})},mapToObject:function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n},pure:function(e){return[e]},sort:function(e,t){var n=L.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},head:function(e){return 0===e.length?E.none():E.some(e[0])},last:function(e){return 0===e.length?E.none():E.some(e[e.length-1])}},F="undefined"!=typeof window?window:Function("return this;")(),z=function(e,t){for(var n=t!==undefined&&null!==t?t:F,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},U=function(e,t){var n=e.split(".");return z(n,t)},V=function(e,t){var n=U(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n},H=function(){return V("URL")},q=function(e){return H().createObjectURL(e)},j=function(e){H().revokeObjectURL(e)},$=navigator,W=$.userAgent,K=function(e){return"matchMedia"in window&&matchMedia(e).matches};d=/Android/.test(W),a=(a=!(i=/WebKit/.test(W))&&/MSIE/gi.test(W)&&/Explorer/gi.test($.appName))&&/MSIE (\w+)\./.exec(W)[1],s=-1!==W.indexOf("Trident/")&&(-1!==W.indexOf("rv:")||-1!==$.appName.indexOf("Netscape"))&&11,u=-1!==W.indexOf("Edge/")&&!a&&!s&&12,a=a||s||u,c=!i&&!s&&/Gecko/.test(W),l=-1!==W.indexOf("Mac"),f=/(iPad|iPhone)/.test(W),m="FormData"in window&&"FileReader"in window&&"URL"in window&&!!q,p=K("only screen and (max-device-width: 480px)")&&(d||f),g=K("only screen and (min-width: 800px)")&&(d||f),h=-1!==W.indexOf("Windows Phone"),u&&(i=!1);var X,Y,G,J,Q,Z,ee,te,ne,re,oe,ie,ae,se,ue,ce,le,fe,de,me={opera:!1,webkit:i,ie:a,gecko:c,mac:l,iOS:f,android:d,contentEditable:!f||m||parseInt(W.match(/AppleWebKit\/(\d*)/)[1],10)>=534,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!==a,range:window.getSelection&&"Range"in window,documentMode:a&&!u?document.documentMode||7:10,fileApi:m,ceFalse:!1===a||a>8,cacheSuffix:"",container:null,overrideViewPort:null,experimentalShadowDom:!1,canHaveCSP:!1===a||a>11,desktop:!p&&!g,windowsPhone:h},pe=window.Promise?window.Promise:function(){function e(e,t){return function(){e.apply(t,arguments)}}var t=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},n=function(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],u(t,e(i,this),e(a,this))},r=n.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)};function o(e){var t=this;null!==this._state?r(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null!==n){var r;try{r=n(t._value)}catch(o){return void e.reject(o)}e.resolve(r)}else(t._state?e.resolve:e.reject)(t._value)}):this._deferreds.push(e)}function i(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void u(e(n,t),e(i,this),e(a,this))}this._state=!0,this._value=t,s.call(this)}catch(r){a.call(this,r)}}function a(e){this._state=!1,this._value=e,s.call(this)}function s(){for(var e=0,t=this._deferreds.length;e<t;e++)o.call(this,this._deferreds[e]);this._deferreds=null}function u(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(o){if(r)return;r=!0,n(o)}}return n.prototype["catch"]=function(e){return this.then(null,e)},n.prototype.then=function(e,t){var r=this;return new n(function(n,i){o.call(r,new function(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}(e,t,n,i))})},n.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&t(arguments[0])?arguments[0]:arguments);return new n(function(t,n){if(0===e.length)return t([]);var r=e.length;function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){o(i,e)},n)}e[i]=a,0==--r&&t(e)}catch(u){n(u)}}for(var i=0;i<e.length;i++)o(i,e[i])})},n.resolve=function(e){return e&&"object"==typeof e&&e.constructor===n?e:new n(function(t){t(e)})},n.reject=function(e){return new n(function(t,n){n(e)})},n.race=function(e){return new n(function(t,n){for(var r=0,o=e.length;r<o;r++)e[r].then(t,n)})},n}(),ge=function(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)},he=function(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)},ve=function(e,t){var n,r;return(r=function(){var r=arguments;clearTimeout(n),n=ge(function(){e.apply(this,r)},t)}).stop=function(){clearTimeout(n)},r},ye={requestAnimationFrame:function(e,t){X?X.then(e):X=new pe(function(e){t||(t=document.body),function(e,t){var n,r=window.requestAnimationFrame,o=["ms","moz","webkit"];for(n=0;n<o.length&&!r;n++)r=window[o[n]+"RequestAnimationFrame"];r||(r=function(e){window.setTimeout(e,0)}),r(e,t)}(e,t)}).then(e)},setTimeout:ge,setInterval:he,setEditorTimeout:function(e,t,n){return ge(function(){e.removed||t()},n)},setEditorInterval:function(e,t,n){var r;return r=he(function(){e.removed?clearInterval(r):t()},n)},debounce:ve,throttle:ve,clearInterval:function(e){return clearInterval(e)},clearTimeout:function(e){return clearTimeout(e)}},be=/^(?:mouse|contextmenu)|click/,Ce={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1},xe=function(){return!1},we=function(){return!0},Ne=function(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)},Ee=function(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)},Se=function(e,t){var n,r,o,i,a,s,u=t||{};for(n in e)Ce[n]||(u[n]=e[n]);if(u.target||(u.target=u.srcElement||document),me.experimentalShadowDom&&(u.target=(r=e,o=u.target,a=o,(i=r.path)&&i.length>0&&(a=i[0]),r.deepPath&&(i=r.deepPath())&&i.length>0&&(a=i[0]),a)),e&&be.test(e.type)&&e.pageX===undefined&&e.clientX!==undefined){var c=u.target.ownerDocument||document,l=c.documentElement,f=c.body;u.pageX=e.clientX+(l&&l.scrollLeft||f&&f.scrollLeft||0)-(l&&l.clientLeft||f&&f.clientLeft||0),u.pageY=e.clientY+(l&&l.scrollTop||f&&f.scrollTop||0)-(l&&l.clientTop||f&&f.clientTop||0)}return u.preventDefault=function(){u.isDefaultPrevented=we,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},u.stopPropagation=function(){u.isPropagationStopped=we,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},u.stopImmediatePropagation=function(){u.isImmediatePropagationStopped=we,u.stopPropagation()},0==((s=u).isDefaultPrevented===we||s.isDefaultPrevented===xe)&&(u.isDefaultPrevented=xe,u.isPropagationStopped=xe,u.isImmediatePropagationStopped=xe),"undefined"==typeof u.metaKey&&(u.metaKey=!1),u},ke=function(e,t,n){var r=e.document,o={type:"ready"};if(n.domLoaded)t(o);else{var i=function(){return"complete"===r.readyState||"interactive"===r.readyState&&r.body},a=function(){n.domLoaded||(n.domLoaded=!0,t(o))},s=function(){i()&&(Ee(r,"readystatechange",s),a())},u=function(){try{r.documentElement.doScroll("left")}catch(e){return void ye.setTimeout(u)}a()};!r.addEventListener||me.ie&&me.ie<11?(Ne(r,"readystatechange",s),r.documentElement.doScroll&&e.self===e.top&&u()):i()?a():Ne(e,"DOMContentLoaded",a),Ne(e,"load",a)}},Te=function(){var e,t,n,r,o,i=this,a={};t="mce-data-"+(+new Date).toString(32),r="onmouseenter"in document.documentElement,n="onfocusin"in document.documentElement,o={mouseenter:"mouseover",mouseleave:"mouseout"},e=1,i.domLoaded=!1,i.events=a;var s=function(e,t){var n,r,o,i,s=a[t];if(n=s&&s[e.type])for(r=0,o=n.length;r<o;r++)if((i=n[r])&&!1===i.func.call(i.scope,e)&&e.preventDefault(),e.isImmediatePropagationStopped())return};i.bind=function(u,c,l,f){var d,m,p,g,h,v,y,b=window,C=function(e){s(Se(e||b.event),d)};if(u&&3!==u.nodeType&&8!==u.nodeType){for(u[t]?d=u[t]:(d=e++,u[t]=d,a[d]={}),f=f||u,p=(c=c.split(" ")).length;p--;)v=C,h=y=!1,"DOMContentLoaded"===(g=c[p])&&(g="ready"),i.domLoaded&&"ready"===g&&"complete"===u.readyState?l.call(f,Se({type:g})):(r||(h=o[g])&&(v=function(e){var t,n;if(t=e.currentTarget,(n=e.relatedTarget)&&t.contains)n=t.contains(n);else for(;n&&n!==t;)n=n.parentNode;n||((e=Se(e||b.event)).type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,s(e,d))}),n||"focusin"!==g&&"focusout"!==g||(y=!0,h="focusin"===g?"focus":"blur",v=function(e){(e=Se(e||b.event)).type="focus"===e.type?"focusin":"focusout",s(e,d)}),(m=a[d][g])?"ready"===g&&i.domLoaded?l({type:g}):m.push({func:l,scope:f}):(a[d][g]=m=[{func:l,scope:f}],m.fakeName=h,m.capture=y,m.nativeHandler=v,"ready"===g?ke(u,v,i):Ne(u,h||g,v,y)));return u=m=0,l}},i.unbind=function(e,n,r){var o,s,u,c,l,f;if(!e||3===e.nodeType||8===e.nodeType)return i;if(o=e[t]){if(f=a[o],n){for(u=(n=n.split(" ")).length;u--;)if(s=f[l=n[u]]){if(r)for(c=s.length;c--;)if(s[c].func===r){var d=s.nativeHandler,m=s.fakeName,p=s.capture;(s=s.slice(0,c).concat(s.slice(c+1))).nativeHandler=d,s.fakeName=m,s.capture=p,f[l]=s}r&&0!==s.length||(delete f[l],Ee(e,s.fakeName||l,s.nativeHandler,s.capture))}}else{for(l in f)s=f[l],Ee(e,s.fakeName||l,s.nativeHandler,s.capture);f={}}for(l in f)return i;delete a[o];try{delete e[t]}catch(g){e[t]=null}}return i},i.fire=function(e,n,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return i;(r=Se(null,r)).type=n,r.target=e;do{(o=e[t])&&s(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow}while(e&&!r.isPropagationStopped());return i},i.clean=function(e){var n,r,o=i.unbind;if(!e||3===e.nodeType||8===e.nodeType)return i;if(e[t]&&o(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(o(e),n=(r=e.getElementsByTagName("*")).length;n--;)(e=r[n])[t]&&o(e);return i},i.destroy=function(){a={}},i.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}};(Te.Event=new Te).bind(window,"ready",function(){});var Ae="sizzle"+-new Date,_e=window.document,Be=0,Re=0,De=ft(),Oe=ft(),Pe=ft(),Ie=function(e,t){return e===t&&(ie=!0),0},Le=typeof undefined,Me=1<<31,Fe={}.hasOwnProperty,ze=[],Ue=ze.pop,Ve=ze.push,He=ze.push,qe=ze.slice,je=ze.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},$e="[\\x20\\t\\r\\n\\f]",We="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",Ke="\\["+$e+"*("+We+")(?:"+$e+"*([*^$|!~]?=)"+$e+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+We+"))|)"+$e+"*\\]",Xe=":("+We+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+Ke+")*)|.*)\\)|)",Ye=new RegExp("^"+$e+"+|((?:^|[^\\\\])(?:\\\\.)*)"+$e+"+$","g"),Ge=new RegExp("^"+$e+"*,"+$e+"*"),Je=new RegExp("^"+$e+"*([>+~]|"+$e+")"+$e+"*"),Qe=new RegExp("="+$e+"*([^\\]'\"]*?)"+$e+"*\\]","g"),Ze=new RegExp(Xe),et=new RegExp("^"+We+"$"),tt={ID:new RegExp("^#("+We+")"),CLASS:new RegExp("^\\.("+We+")"),TAG:new RegExp("^("+We+"|[*])"),ATTR:new RegExp("^"+Ke),PSEUDO:new RegExp("^"+Xe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$e+"*(even|odd|(([+-]|)(\\d*)n|)"+$e+"*(?:([+-]|)"+$e+"*(\\d+)|))"+$e+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+$e+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$e+"*((?:-\\d)?\\d*)"+$e+"*\\)|)(?=[^-]|$)","i")},nt=/^(?:input|select|textarea|button)$/i,rt=/^h\d$/i,ot=/^[^{]+\{\s*\[native \w/,it=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,at=/[+~]/,st=/'|\\/g,ut=new RegExp("\\\\([\\da-f]{1,6}"+$e+"?|("+$e+")|.)","ig"),ct=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{He.apply(ze=qe.call(_e.childNodes),_e.childNodes),ze[_e.childNodes.length].nodeType}catch(yC){He={apply:ze.length?function(e,t){Ve.apply(e,qe.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var lt=function(e,t,n,r){var o,i,a,s,u,c,l,f,d,m;if((t?t.ownerDocument||t:_e)!==se&&ae(t),t=t||se,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(ce&&!r){if(o=it.exec(e))if(a=o[1]){if(9===s){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&de(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return He.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&G.getElementsByClassName)return He.apply(n,t.getElementsByClassName(a)),n}if(G.qsa&&(!le||!le.test(e))){if(f=l=Ae,d=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=ee(e),(l=t.getAttribute("id"))?f=l.replace(st,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",u=c.length;u--;)c[u]=f+bt(c[u]);d=at.test(e)&&vt(t.parentNode)||t,m=c.join(",")}if(m)try{return He.apply(n,d.querySelectorAll(m)),n}catch(p){}finally{l||t.removeAttribute("id")}}}return ne(e.replace(Ye,"$1"),t,n,r)};function ft(){var e=[];return function t(n,r){return e.push(n+" ")>J.cacheLength&&delete t[e.shift()],t[n+" "]=r}}function dt(e){return e[Ae]=!0,e}function mt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||Me)-(~e.sourceIndex||Me);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function gt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return dt(function(t){return t=+t,dt(function(n,r){for(var o,i=e([],n.length,t),a=i.length;a--;)n[o=i[a]]&&(n[o]=!(r[o]=n[o]))})})}function vt(e){return e&&typeof e.getElementsByTagName!==Le&&e}for(Y in G=lt.support={},Z=lt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},ae=lt.setDocument=function(e){var t,n=e?e.ownerDocument||e:_e,r=n.defaultView;return n!==se&&9===n.nodeType&&n.documentElement?(se=n,ue=n.documentElement,ce=!Z(n),r&&r!==function(e){try{return e.top}catch(t){}return null}(r)&&(r.addEventListener?r.addEventListener("unload",function(){ae()},!1):r.attachEvent&&r.attachEvent("onunload",function(){ae()})),G.attributes=!0,G.getElementsByTagName=!0,G.getElementsByClassName=ot.test(n.getElementsByClassName),G.getById=!0,J.find.ID=function(e,t){if(typeof t.getElementById!==Le&&ce){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},J.filter.ID=function(e){var t=e.replace(ut,ct);return function(e){return e.getAttribute("id")===t}},J.find.TAG=G.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Le)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},J.find.CLASS=G.getElementsByClassName&&function(e,t){if(ce)return t.getElementsByClassName(e)},fe=[],le=[],G.disconnectedMatch=!0,le=le.length&&new RegExp(le.join("|")),fe=fe.length&&new RegExp(fe.join("|")),t=ot.test(ue.compareDocumentPosition),de=t||ot.test(ue.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Ie=t?function(e,t){if(e===t)return ie=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!G.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===_e&&de(_e,e)?-1:t===n||t.ownerDocument===_e&&de(_e,t)?1:oe?je.call(oe,e)-je.call(oe,t):0:4&r?-1:1)}:function(e,t){if(e===t)return ie=!0,0;var r,o=0,i=e.parentNode,a=t.parentNode,s=[e],u=[t];if(!i||!a)return e===n?-1:t===n?1:i?-1:a?1:oe?je.call(oe,e)-je.call(oe,t):0;if(i===a)return mt(e,t);for(r=e;r=r.parentNode;)s.unshift(r);for(r=t;r=r.parentNode;)u.unshift(r);for(;s[o]===u[o];)o++;return o?mt(s[o],u[o]):s[o]===_e?-1:u[o]===_e?1:0},n):se},lt.matches=function(e,t){return lt(e,null,null,t)},lt.matchesSelector=function(e,t){if((e.ownerDocument||e)!==se&&ae(e),t=t.replace(Qe,"='$1']"),G.matchesSelector&&ce&&(!fe||!fe.test(t))&&(!le||!le.test(t)))try{var n=(void 0).call(e,t);if(n||G.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(yC){}return lt(t,se,null,[e]).length>0},lt.contains=function(e,t){return(e.ownerDocument||e)!==se&&ae(e),de(e,t)},lt.attr=function(e,t){(e.ownerDocument||e)!==se&&ae(e);var n=J.attrHandle[t.toLowerCase()],r=n&&Fe.call(J.attrHandle,t.toLowerCase())?n(e,t,!ce):undefined;return r!==undefined?r:G.attributes||!ce?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},lt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},lt.uniqueSort=function(e){var t,n=[],r=0,o=0;if(ie=!G.detectDuplicates,oe=!G.sortStable&&e.slice(0),e.sort(Ie),ie){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return oe=null,e},Q=lt.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=Q(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=Q(t);return n},(J=lt.selectors={cacheLength:50,createPseudo:dt,match:tt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ut,ct),e[3]=(e[3]||e[4]||e[5]||"").replace(ut,ct),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||lt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&<.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return tt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Ze.test(n)&&(t=ee(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ut,ct).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=De[e+" "];return t||(t=new RegExp("(^|"+$e+")"+e+"("+$e+"|$)"))&&De(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Le&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var o=lt.attr(r,e);return null==o?"!="===t:!t||(o+="","="===t?o===n:"!="===t?o!==n:"^="===t?n&&0===o.indexOf(n):"*="===t?n&&o.indexOf(n)>-1:"$="===t?n&&o.slice(-n.length)===n:"~="===t?(" "+o+" ").indexOf(n)>-1:"|="===t&&(o===n||o.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,d,m,p,g=i!==a?"nextSibling":"previousSibling",h=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(h){if(i){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;p=g="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?h.firstChild:h.lastChild],a&&y){for(m=(c=(l=h[Ae]||(h[Ae]={}))[e]||[])[0]===Be&&c[1],d=c[0]===Be&&c[2],f=m&&h.childNodes[m];f=++m&&f&&f[g]||(d=m=0)||p.pop();)if(1===f.nodeType&&++d&&f===t){l[e]=[Be,m,d];break}}else if(y&&(c=(t[Ae]||(t[Ae]={}))[e])&&c[0]===Be)d=c[1];else for(;(f=++m&&f&&f[g]||(d=m=0)||p.pop())&&((s?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++d||(y&&((f[Ae]||(f[Ae]={}))[e]=[Be,d]),f!==t)););return(d-=o)===r||d%r==0&&d/r>=0}}},PSEUDO:function(e,t){var n,r=J.pseudos[e]||J.setFilters[e.toLowerCase()]||lt.error("unsupported pseudo: "+e);return r[Ae]?r(t):r.length>1?(n=[e,e,"",t],J.setFilters.hasOwnProperty(e.toLowerCase())?dt(function(e,n){for(var o,i=r(e,t),a=i.length;a--;)e[o=je.call(e,i[a])]=!(n[o]=i[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:dt(function(e){var t=[],n=[],r=te(e.replace(Ye,"$1"));return r[Ae]?dt(function(e,t,n,o){for(var i,a=r(e,null,o,[]),s=e.length;s--;)(i=a[s])&&(e[s]=!(t[s]=i))}):function(e,o,i){return t[0]=e,r(t,null,i,n),!n.pop()}}),has:dt(function(e){return function(t){return lt(e,t).length>0}}),contains:dt(function(e){return e=e.replace(ut,ct),function(t){return(t.textContent||t.innerText||Q(t)).indexOf(e)>-1}}),lang:dt(function(e){return et.test(e||"")||lt.error("unsupported lang: "+e),e=e.replace(ut,ct).toLowerCase(),function(t){var n;do{if(n=ce?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===ue},focus:function(e){return e===se.activeElement&&(!se.hasFocus||se.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!J.pseudos.empty(e)},header:function(e){return rt.test(e.nodeName)},input:function(e){return nt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[n<0?n+t:n]}),even:ht(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ht(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=J.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})J.pseudos[Y]=pt(Y);for(Y in{submit:!0,reset:!0})J.pseudos[Y]=gt(Y);function yt(){}function bt(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function Ct(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=Re++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,a){var s,u,c=[Be,i];if(a){for(;t=t[r];)if((1===t.nodeType||o)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||o){if((s=(u=t[Ae]||(t[Ae]={}))[r])&&s[0]===Be&&s[1]===i)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function xt(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function wt(e,t,n,r,o){for(var i,a=[],s=0,u=e.length,c=null!=t;s<u;s++)(i=e[s])&&(n&&!n(i,r,o)||(a.push(i),c&&t.push(s)));return a}function Nt(e,t,n,r,o,i){return r&&!r[Ae]&&(r=Nt(r)),o&&!o[Ae]&&(o=Nt(o,i)),dt(function(i,a,s,u){var c,l,f,d=[],m=[],p=a.length,g=i||function(e,t,n){for(var r=0,o=t.length;r<o;r++)lt(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),h=!e||!i&&t?g:wt(g,d,e,s,u),v=n?o||(i?e:p||r)?[]:a:h;if(n&&n(h,v,s,u),r)for(c=wt(v,m),r(c,[],s,u),l=c.length;l--;)(f=c[l])&&(v[m[l]]=!(h[m[l]]=f));if(i){if(o||e){if(o){for(c=[],l=v.length;l--;)(f=v[l])&&c.push(h[l]=f);o(null,v=[],c,u)}for(l=v.length;l--;)(f=v[l])&&(c=o?je.call(i,f):d[l])>-1&&(i[c]=!(a[c]=f))}}else v=wt(v===a?v.splice(p,v.length):v),o?o(null,a,v,u):He.apply(a,v)})}function Et(e){for(var t,n,r,o=e.length,i=J.relative[e[0].type],a=i||J.relative[" "],s=i?1:0,u=Ct(function(e){return e===t},a,!0),c=Ct(function(e){return je.call(t,e)>-1},a,!0),l=[function(e,n,r){return!i&&(r||n!==re)||((t=n).nodeType?u(e,n,r):c(e,n,r))}];s<o;s++)if(n=J.relative[e[s].type])l=[Ct(xt(l),n)];else{if((n=J.filter[e[s].type].apply(null,e[s].matches))[Ae]){for(r=++s;r<o&&!J.relative[e[r].type];r++);return Nt(s>1&&xt(l),s>1&&bt(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(Ye,"$1"),n,s<r&&Et(e.slice(s,r)),r<o&&Et(e=e.slice(r)),r<o&&bt(e))}l.push(n)}return xt(l)}yt.prototype=J.filters=J.pseudos,J.setFilters=new yt,ee=lt.tokenize=function(e,t){var n,r,o,i,a,s,u,c=Oe[e+" "];if(c)return t?0:c.slice(0);for(a=e,s=[],u=J.preFilter;a;){for(i in n&&!(r=Ge.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(o=[])),n=!1,(r=Je.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(Ye," ")}),a=a.slice(n.length)),J.filter)!(r=tt[i].exec(a))||u[i]&&!(r=u[i](r))||(n=r.shift(),o.push({value:n,type:i,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?lt.error(e):Oe(e,s).slice(0)},te=lt.compile=function(e,t){var n,r,o,i,a,s,u=[],c=[],l=Pe[e+" "];if(!l){for(t||(t=ee(e)),n=t.length;n--;)(l=Et(t[n]))[Ae]?u.push(l):c.push(l);(l=Pe(e,(r=c,i=(o=u).length>0,a=r.length>0,s=function(e,t,n,s,u){var c,l,f,d=0,m="0",p=e&&[],g=[],h=re,v=e||a&&J.find.TAG("*",u),y=Be+=null==h?1:Math.random()||.1,b=v.length;for(u&&(re=t!==se&&t);m!==b&&null!=(c=v[m]);m++){if(a&&c){for(l=0;f=r[l++];)if(f(c,t,n)){s.push(c);break}u&&(Be=y)}i&&((c=!f&&c)&&d--,e&&p.push(c))}if(d+=m,i&&m!==d){for(l=0;f=o[l++];)f(p,g,t,n);if(e){if(d>0)for(;m--;)p[m]||g[m]||(g[m]=Ue.call(s));g=wt(g)}He.apply(s,g),u&&!e&&g.length>0&&d+o.length>1&<.uniqueSort(s)}return u&&(Be=y,re=h),p},i?dt(s):s))).selector=e}return l},ne=lt.select=function(e,t,n,r){var o,i,a,s,u,c="function"==typeof e&&e,l=!r&&ee(e=c.selector||e);if(n=n||[],1===l.length){if((i=l[0]=l[0].slice(0)).length>2&&"ID"===(a=i[0]).type&&G.getById&&9===t.nodeType&&ce&&J.relative[i[1].type]){if(!(t=(J.find.ID(a.matches[0].replace(ut,ct),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=tt.needsContext.test(e)?0:i.length;o--&&(a=i[o],!J.relative[s=a.type]);)if((u=J.find[s])&&(r=u(a.matches[0].replace(ut,ct),at.test(i[0].type)&&vt(t.parentNode)||t))){if(i.splice(o,1),!(e=r.length&&bt(i)))return He.apply(n,r),n;break}}return(c||te(e,l))(r,t,!ce,n,at.test(e)&&vt(t.parentNode)||t),n},G.sortStable=Ae.split("").sort(Ie).join("")===Ae,G.detectDuplicates=!!ie,ae(),G.sortDetached=!0;var St=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},kt=function(e,t,n){var r,o;if(!e)return 0;if(n=n||e,e.length!==undefined){for(r=0,o=e.length;r<o;r++)if(!1===t.call(n,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===t.call(n,e[r],r,e))return 0;return 1},Tt=function(e,t,n){var r,o;for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return r;return-1},At={isArray:St,toArray:function(e){var t,n,r=e;if(!St(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=e[t];return r},each:kt,map:function(e,t){var n=[];return kt(e,function(r,o){n.push(t(r,o,e))}),n},filter:function(e,t){var n=[];return kt(e,function(r,o){t&&!t(r,o,e)||n.push(r)}),n},indexOf:function(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},reduce:function(e,t,n,r){var o=0;for(arguments.length<3&&(n=e[0]);o<e.length;o++)n=t.call(r,n,e[o],o);return n},findIndex:Tt,find:function(e,t,n){var r=Tt(e,t,n);return-1!==r?e[r]:undefined},last:function(e){return e[e.length-1]}},_t=/^\s*|\s*$/g,Bt=function(e){return null===e||e===undefined?"":(""+e).replace(_t,"")},Rt=function(e,t){return t?!("array"!==t||!At.isArray(e))||typeof e===t:e!==undefined},Dt=function(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),At.each(e,function(e,o){if(!1===t.call(r,e,o,n))return!1;Dt(e,t,n,r)}))},Ot={trim:Bt,isArray:At.isArray,is:Rt,toArray:At.toArray,makeMap:function(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n},each:At.each,map:At.map,grep:At.filter,inArray:At.indexOf,hasOwn:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},extend:function(e,t){for(var n,r,o,i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];var s,u=arguments;for(n=1,r=u.length;n<r;n++)for(o in t=u[n])t.hasOwnProperty(o)&&(s=t[o])!==undefined&&(e[o]=s);return e},create:function(e,t,n){var r,o,i,a,s,u=this,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),i=e[3].match(/(^|\.)(\w+)$/i)[2],!(o=u.createNS(e[3].replace(/\.\w+$/,""),n))[i]){if("static"===e[2])return o[i]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[i]));t[i]||(t[i]=function(){},c=1),o[i]=t[i],u.extend(o[i].prototype,t),e[5]&&(r=u.resolve(e[5]).prototype,a=e[5].match(/\.(\w+)$/i)[1],s=o[i],o[i]=c?function(){return r[a].apply(this,arguments)}:function(){return this.parent=r[a],s.apply(this,arguments)},o[i].prototype[i]=o[i],u.each(r,function(e,t){o[i].prototype[t]=r[t]}),u.each(t,function(e,t){r[t]?o[i].prototype[t]=function(){return this.parent=r[t],e.apply(this,arguments)}:t!==i&&(o[i].prototype[t]=e)})),u.each(t["static"],function(e,t){o[i][t]=e})}},walk:Dt,createNS:function(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)t[r=e[n]]||(t[r]={}),t=t[r];return t},resolve:function(e,t){var n,r;for(t=t||window,n=0,r=(e=e.split(".")).length;n<r&&(t=t[e[n]]);n++);return t},explode:function(e,t){return!e||Rt(e,"array")?e:At.map(e.split(t||","),Bt)},_addCacheSuffix:function(e){var t=me.cacheSuffix;return t&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}},Pt=document,It=Array.prototype.push,Lt=Array.prototype.slice,Mt=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,Ft=Te.Event,zt=Ot.makeMap("children,contents,next,prev"),Ut=function(e){return void 0!==e},Vt=function(e){return"string"==typeof e},Ht=function(e,t){var n,r,o;for(o=(t=t||Pt).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},qt=function(e,t,n,r){var o;if(Vt(t))t=Ht(t,rn(e[0]));else if(t.length&&!t.nodeType){if(t=Qt.makeArray(t),r)for(o=t.length-1;o>=0;o--)qt(e,t[o],n,r);else for(o=0;o<t.length;o++)qt(e,t[o],n,r);return e}if(t.nodeType)for(o=e.length;o--;)n.call(e[o],t);return e},jt=function(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")},$t=function(e,t,n){var r,o;return t=Qt(t)[0],e.each(function(){var e=this;n&&r===e.parentNode?o.appendChild(e):(r=e.parentNode,o=t.cloneNode(!1),e.parentNode.insertBefore(o,e),o.appendChild(e))}),e},Wt=Ot.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),Kt=Ot.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),Xt={"for":"htmlFor","class":"className",readonly:"readOnly"},Yt={"float":"cssFloat"},Gt={},Jt={},Qt=function(e,t){return new Qt.fn.init(e,t)},Zt=/^\s*|\s*$/g,en=function(e){return null===e||e===undefined?"":(""+e).replace(Zt,"")},tn=function(e,t){var n,r,o,i;if(e)if((n=e.length)===undefined){for(r in e)if(e.hasOwnProperty(r)&&(i=e[r],!1===t.call(i,r,i)))break}else for(o=0;o<n&&(i=e[o],!1!==t.call(i,o,i));o++);return e},nn=function(e,t){var n=[];return tn(e,function(e,r){t(r,e)&&n.push(r)}),n},rn=function(e){return e?9===e.nodeType?e:e.ownerDocument:Pt};Qt.fn=Qt.prototype={constructor:Qt,selector:"",context:null,length:0,init:function(e,t){var n,r,o=this;if(!e)return o;if(e.nodeType)return o.context=o[0]=e,o.length=1,o;if(t&&t.nodeType)o.context=t;else{if(t)return Qt(e).attr(t);o.context=t=document}if(Vt(e)){if(o.selector=e,!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Mt.exec(e)))return Qt(t).find(e);if(n[1])for(r=Ht(e,rn(t)).firstChild;r;)It.call(o,r),r=r.nextSibling;else{if(!(r=rn(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Ot.toArray(this)},add:function(e,t){var n,r,o=this;if(Vt(e))return o.add(Qt(e));if(!1!==t)for(n=Qt.unique(o.toArray().concat(Qt.makeArray(e))),o.length=n.length,r=0;r<n.length;r++)o[r]=n[r];else It.apply(o,Qt.makeArray(e));return o},attr:function(e,t){var n,r=this;if("object"==typeof e)tn(e,function(e,t){r.attr(e,t)});else{if(!Ut(t)){if(r[0]&&1===r[0].nodeType){if((n=Gt[e])&&n.get)return n.get(r[0],e);if(Kt[e])return r.prop(e)?e:undefined;null===(t=r[0].getAttribute(e,2))&&(t=undefined)}return t}this.each(function(){var n;if(1===this.nodeType){if((n=Gt[e])&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return r},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if("object"==typeof(e=Xt[e]||e))tn(e,function(e,t){n.prop(e,t)});else{if(!Ut(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1===this.nodeType&&(this[e]=t)})}return n},css:function(e,t){var n,r,o=this,i=function(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})},a=function(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})};if("object"==typeof e)tn(e,function(e,t){o.css(e,t)});else if(Ut(t))e=i(e),"number"!=typeof t||Wt[e]||(t=t.toString()+"px"),o.each(function(){var n=this.style;if((r=Jt[e])&&r.set)r.set(this,t);else{try{this.style[Yt[e]||e]=t}catch(o){}null!==t&&""!==t||(n.removeProperty?n.removeProperty(a(e)):n.removeAttribute(e))}});else{if(n=o[0],(r=Jt[e])&&r.get)return r.get(n);if(n.ownerDocument.defaultView)try{return n.ownerDocument.defaultView.getComputedStyle(n,null).getPropertyValue(a(e))}catch(s){return undefined}else if(n.currentStyle)return n.currentStyle[i(e)]}return o},remove:function(){for(var e,t=this.length;t--;)e=this[t],Ft.clean(e),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var e,t=this.length;t--;)for(e=this[t];e.firstChild;)e.removeChild(e.firstChild);return this},html:function(e){var t,n=this;if(Ut(e)){t=n.length;try{for(;t--;)n[t].innerHTML=e}catch(r){Qt(n[t]).empty().append(e)}return n}return n[0]?n[0].innerHTML:""},text:function(e){var t,n=this;if(Ut(e)){for(t=n.length;t--;)"innerText"in n[t]?n[t].innerText=e:n[0].textContent=e;return n}return n[0]?n[0].innerText||n[0].textContent:""},append:function(){return qt(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return qt(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){return this[0]&&this[0].parentNode?qt(this,arguments,function(e){this.parentNode.insertBefore(e,this)}):this},after:function(){return this[0]&&this[0].parentNode?qt(this,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):this},appendTo:function(e){return Qt(e).append(this),this},prependTo:function(e){return Qt(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return $t(this,e)},wrapAll:function(e){return $t(this,e,!0)},wrapInner:function(e){return this.each(function(){Qt(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){Qt(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),Qt(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?tn(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var o,i;(i=jt(r,e))!==t&&(o=r.className,i?r.className=en((" "+o+" ").replace(" "+e+" "," ")):r.className+=o?" "+e:e)}),n)},hasClass:function(e){return jt(this[0],e)},each:function(e){return tn(this,e)},on:function(e,t){return this.each(function(){Ft.bind(this,e,t)})},off:function(e,t){return this.each(function(){Ft.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?Ft.fire(this,e.type,e):Ft.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new Qt(Lt.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)Qt.find(e,this[t],r);return Qt(r)},filter:function(e){return Qt("function"==typeof e?nn(this.toArray(),function(t,n){return e(n,t)}):Qt.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof Qt&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&Qt(r).is(e)){t.push(r);break}if(r===e){t.push(r);break}r=r.parentNode}}),Qt(t)},offset:function(e){var t,n,r,o,i=0,a=0;return e?this.css(e):((t=this[0])&&(r=(n=t.ownerDocument).documentElement,t.getBoundingClientRect&&(i=(o=t.getBoundingClientRect()).left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,a=o.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:a})},push:It,sort:[].sort,splice:[].splice},Ot.extend(Qt,{extend:Ot.extend,makeArray:function(e){return(t=e)&&t===t.window||e.nodeType?[e]:Ot.toArray(e);var t},inArray:function(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1},isArray:Ot.isArray,each:tn,trim:en,grep:nn,find:lt,expr:lt.selectors,unique:lt.uniqueSort,text:lt.getText,contains:lt.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!==t[r].nodeType&&t.splice(r,1);return t=1===t.length?Qt.find.matchesSelector(t[0],e)?[t[0]]:[]:Qt.find.matches(e,t)}});var on=function(e,t,n){var r=[],o=e[t];for("string"!=typeof n&&n instanceof Qt&&(n=n[0]);o&&9!==o.nodeType;){if(n!==undefined){if(o===n)break;if("string"==typeof n&&Qt(o).is(n))break}1===o.nodeType&&r.push(o),o=o[t]}return r},an=function(e,t,n,r){var o=[];for(r instanceof Qt&&(r=r[0]);e;e=e[t])if(!n||e.nodeType===n){if(r!==undefined){if(e===r)break;if("string"==typeof r&&Qt(e).is(r))break}o.push(e)}return o},sn=function(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType===n)return e;return null};tn({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return on(e,"parentNode")},next:function(e){return sn(e,"nextSibling",1)},prev:function(e){return sn(e,"previousSibling",1)},children:function(e){return an(e.firstChild,"nextSibling",1)},contents:function(e){return Ot.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){Qt.fn[e]=function(n){var r=[];return this.each(function(){var e=t.call(r,this,n,r);e&&(Qt.isArray(e)?r.push.apply(r,e):r.push(e))}),this.length>1&&(zt[e]||(r=Qt.unique(r)),0===e.indexOf("parents")&&(r=r.reverse())),r=Qt(r),n?r.filter(n):r}}),tn({parentsUntil:function(e,t){return on(e,"parentNode",t)},nextUntil:function(e,t){return an(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return an(e,"previousSibling",1,t).slice(1)}},function(e,t){Qt.fn[e]=function(n,r){var o=[];return this.each(function(){var e=t.call(o,this,n,o);e&&(Qt.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=Qt.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=Qt(o),r?o.filter(r):o}}),Qt.fn.is=function(e){return!!e&&this.filter(e).length>0},Qt.fn.init.prototype=Qt.fn,Qt.overrideDefaults=function(e){var t,n=function(r,o){return t=t||e(),0===arguments.length&&(r=t.element),o||(o=t.context),new n.fn.init(r,o)};return Qt.extend(n,this),n};var un=function(e,t,n){tn(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})};me.ie&&me.ie<8&&(un(Gt,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?undefined:t},size:function(e){var t=e.size;return 20===t?undefined:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?undefined:t}}),un(Gt,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),me.ie&&me.ie<9&&(Yt["float"]="styleFloat",un(Jt,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),Qt.attrHooks=Gt,Qt.cssHooks=Jt;var cn,ln,fn,dn,mn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},pn=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return hn(r(1),r(2))},gn=function(){return hn(0,0)},hn=function(e,t){return{major:e,minor:t}},vn={nu:hn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?gn():pn(e,n)},unknown:gn},yn="Firefox",bn=function(e,t){return function(){return t===e}},Cn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:bn("Edge",t),isChrome:bn("Chrome",t),isIE:bn("IE",t),isOpera:bn("Opera",t),isFirefox:bn(yn,t),isSafari:bn("Safari",t)}},xn={unknown:function(){return Cn({current:undefined,version:vn.unknown()})},nu:Cn,edge:y.constant("Edge"),chrome:y.constant("Chrome"),ie:y.constant("IE"),opera:y.constant("Opera"),firefox:y.constant(yn),safari:y.constant("Safari")},wn="Windows",Nn="Android",En="Solaris",Sn="FreeBSD",kn=function(e,t){return function(){return t===e}},Tn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:kn(wn,t),isiOS:kn("iOS",t),isAndroid:kn(Nn,t),isOSX:kn("OSX",t),isLinux:kn("Linux",t),isSolaris:kn(En,t),isFreeBSD:kn(Sn,t)}},An={unknown:function(){return Tn({current:undefined,version:vn.unknown()})},nu:Tn,windows:y.constant(wn),ios:y.constant("iOS"),android:y.constant(Nn),linux:y.constant("Linux"),osx:y.constant("OSX"),solaris:y.constant(En),freebsd:y.constant(Sn)},_n=function(e,t){var n=String(t).toLowerCase();return M.find(e,function(e){return e.search(n)})},Bn=function(e,t){return _n(e,t).map(function(e){var n=vn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Rn=function(e,t){return _n(e,t).map(function(e){var n=vn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Dn=function(e,t){return-1!==e.indexOf(t)},On=function(e){return e.replace(/^\s+|\s+$/g,"")},Pn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,In=function(e){return function(t){return Dn(t,e)}},Ln=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return Dn(e,"edge/")&&Dn(e,"chrome")&&Dn(e,"safari")&&Dn(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Pn],search:function(e){return Dn(e,"chrome")&&!Dn(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return Dn(e,"msie")||Dn(e,"trident")}},{name:"Opera",versionRegexes:[Pn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:In("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:In("firefox")},{name:"Safari",versionRegexes:[Pn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(Dn(e,"safari")||Dn(e,"mobile/"))&&Dn(e,"applewebkit")}}],Mn=[{name:"Windows",search:In("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return Dn(e,"iphone")||Dn(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:In("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:In("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:In("linux"),versionRegexes:[]},{name:"Solaris",search:In("sunos"),versionRegexes:[]},{name:"FreeBSD",search:In("freebsd"),versionRegexes:[]}],Fn={browsers:y.constant(Ln),oses:y.constant(Mn)},zn=function(e){var t,n,r,o,i,a,s,u,c,l,f,d=Fn.browsers(),m=Fn.oses(),p=Bn(d,e).fold(xn.unknown,xn.nu),g=Rn(m,e).fold(An.unknown,An.nu);return{browser:p,os:g,deviceType:(n=p,r=e,o=(t=g).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,a=t.isAndroid()&&3===t.version.major,s=t.isAndroid()&&4===t.version.major,u=o||a||s&&!0===/mobile/i.test(r),c=t.isiOS()||t.isAndroid(),l=c&&!u,f=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:y.constant(o),isiPhone:y.constant(i),isTablet:y.constant(u),isPhone:y.constant(l),isTouch:y.constant(c),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:y.constant(f)})}},Un={detect:mn(function(){var e=navigator.userAgent;return zn(e)})},Vn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:y.constant(e)}},Hn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||n.childNodes.length>1)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return Vn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return Vn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return Vn(n)},fromDom:Vn,fromPoint:function(e,t,n){return E.from(e.dom().elementFromPoint(t,n)).map(Vn)}},qn=8,jn=9,$n=1,Wn=3,Kn=function(e){return e.dom().nodeName.toLowerCase()},Xn=function(e){return e.dom().nodeType},Yn=function(e){return function(t){return Xn(t)===e}},Gn=Yn($n),Jn=Yn(Wn),Qn=Yn(jn),Zn={name:Kn,type:Xn,value:function(e){return e.dom().nodeValue},isElement:Gn,isText:Jn,isDocument:Qn,isComment:function(e){return Xn(e)===qn||"#comment"===Kn(e)}},er=function(e){return function(t){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(t)===e}},tr={isString:er("string"),isObject:er("object"),isArray:er("array"),isNull:er("null"),isBoolean:er("boolean"),isUndefined:er("undefined"),isFunction:er("function"),isNumber:er("number")},nr=(cn=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:cn,rr=function(e,t){for(var n=nr(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},or=function(e,t){var n={};return rr(e,function(r,o){var i=t(r,o,e);n[i.k]=i.v}),n},ir=function(e,t){var n=[];return rr(e,function(e,r){n.push(t(e,r))}),n},ar=function(e){return ir(e,function(e){return e})},sr={bifilter:function(e,t){var n={},r={};return rr(e,function(e,o){(t(e,o)?n:r)[o]=e}),{t:n,f:r}},each:rr,map:function(e,t){return or(e,function(e,n,r){return{k:n,v:t(e,n,r)}})},mapToArray:ir,tupleMap:or,find:function(e,t){for(var n=nr(e),r=0,o=n.length;r<o;r++){var i=n[r],a=e[i];if(t(a,i,e))return E.some(a)}return E.none()},keys:nr,values:ar,size:function(e){return ar(e).length}},ur=function(e,t,n){if(!(tr.isString(n)||tr.isBoolean(n)||tr.isNumber(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},cr=function(e,t,n){ur(e.dom(),t,n)},lr=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},fr=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},dr={clone:function(e){return M.foldl(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},set:cr,setAll:function(e,t){var n=e.dom();sr.each(t,function(e,t){ur(n,t,e)})},get:lr,has:fr,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(e,t,n){Zn.isElement(e)&&Zn.isElement(t)&&M.each(n,function(n){var r,o,i;o=t,fr(r=e,i=n)&&!fr(o,i)&&cr(o,i,lr(r,i))})}},mr=mn(function(){return pr(Hn.fromDom(document))}),pr=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return Hn.fromDom(t)},gr={body:mr,getBody:pr,inBody:function(e){var t=Zn.isText(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},hr=function(e){return e.style!==undefined},vr=function(e,t,n){if(!tr.isString(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);hr(e)&&e.style.setProperty(t,n)},yr=function(e,t){return hr(e)?e.style.getPropertyValue(t):""},br=function(e,t){var n=e.dom();sr.each(t,function(e,t){vr(n,t,e)})},Cr=function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||gr.inBody(e)?r:yr(n,t);return null===o?undefined:o},xr=function(){var e=arguments;return function(){for(var t=new Array(arguments.length),n=0;n<t.length;n++)t[n]=arguments[n];if(e.length!==t.length)throw new Error('Wrong number of arguments to struct. Expected "['+e.length+']", got '+t.length+" arguments");var r={};return M.each(e,function(e,n){r[e]=y.constant(t[n])}),r}},wr=function(e,t){var n=[],r=function(e){return n.push(e),t(e)},o=t(e);do{o=o.bind(r)}while(o.isSome());return n},Nr=function(){return V("Node")},Er=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},Sr=function(e,t){return Er(e,t,Nr().DOCUMENT_POSITION_CONTAINED_BY)},kr=$n,Tr=jn,Ar=function(e){return e.nodeType!==kr&&e.nodeType!==Tr||0===e.childElementCount},_r={all:function(e,t){var n=t===undefined?document:t.dom();return Ar(n)?[]:M.map(n.querySelectorAll(e),Hn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==kr)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return Ar(n)?E.none():E.from(n.querySelector(e)).map(Hn.fromDom)}},Br=function(e,t){return e.dom()===t.dom()},Rr=Un.detect().browser.isIE()?function(e,t){return Sr(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Dr={eq:Br,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return M.exists(t,y.curry(Br,e))},contains:Rr,is:_r.is},Or=function(e){return Hn.fromDom(e.dom().ownerDocument)},Pr=function(e){var t=e.dom();return E.from(t.parentNode).map(Hn.fromDom)},Ir=function(e){var t=e.dom();return E.from(t.previousSibling).map(Hn.fromDom)},Lr=function(e){var t=e.dom();return E.from(t.nextSibling).map(Hn.fromDom)},Mr=function(e){var t=e.dom();return M.map(t.childNodes,Hn.fromDom)},Fr=function(e,t){var n=e.dom().childNodes;return E.from(n[t]).map(Hn.fromDom)},zr=xr("element","offset"),Ur={owner:Or,defaultView:function(e){var t=e.dom().ownerDocument.defaultView;return Hn.fromDom(t)},documentElement:function(e){var t=Or(e);return Hn.fromDom(t.dom().documentElement)},parent:Pr,findIndex:function(e){return Pr(e).bind(function(t){var n=Mr(t);return M.findIndex(n,function(t){return Dr.eq(e,t)})})},parents:function(e,t){for(var n=tr.isFunction(t)?t:y.constant(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=Hn.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o},siblings:function(e){return Pr(e).map(Mr).map(function(t){return M.filter(t,function(t){return!Dr.eq(e,t)})}).getOr([])},prevSibling:Ir,offsetParent:function(e){var t=e.dom();return E.from(t.offsetParent).map(Hn.fromDom)},prevSiblings:function(e){return M.reverse(wr(e,Ir))},nextSibling:Lr,nextSiblings:function(e){return wr(e,Lr)},children:Mr,child:Fr,firstChild:function(e){return Fr(e,0)},lastChild:function(e){return Fr(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=Mr(e);return n.length>0&&t<n.length?zr(n[t],0):zr(e,t)}},Vr=Un.detect().browser,Hr=function(e){return M.find(e,Zn.isElement)},qr=function(e,t,n){var r,o,i,a=0,s=0,u=e.ownerDocument;if(n=n||e,t){if(n===e&&t.getBoundingClientRect&&"static"===Cr(Hn.fromDom(e),"position"))return{x:a=(o=t.getBoundingClientRect()).left+(u.documentElement.scrollLeft||e.scrollLeft)-u.documentElement.clientLeft,y:s=o.top+(u.documentElement.scrollTop||e.scrollTop)-u.documentElement.clientTop};for(r=t;r&&r!==n&&r.nodeType;)a+=r.offsetLeft||0,s+=r.offsetTop||0,r=r.offsetParent;for(r=t.parentNode;r&&r!==n&&r.nodeType;)a-=r.scrollLeft||0,s-=r.scrollTop||0,r=r.parentNode;s+=(i=Hn.fromDom(t),Vr.isFirefox()&&"table"===Zn.name(i)?Hr(Ur.children(i)).filter(function(e){return"caption"===Zn.name(e)}).bind(function(e){return Hr(Ur.nextSiblings(e)).map(function(t){var n=t.dom().offsetTop,r=e.dom().offsetTop,o=e.dom().offsetHeight;return n<=r?-o:0})}).getOr(0):0)}return{x:a,y:s}},jr=function(e){var t=E.none(),n=[],r=function(e){o()?a(e):n.push(e)},o=function(){return t.isSome()},i=function(e){M.each(e,a)},a=function(e){t.each(function(t){setTimeout(function(){e(t)},0)})};return e(function(e){t=E.some(e),i(n),n=[]}),{get:r,map:function(e){return jr(function(t){r(function(n){t(e(n))})})},isReady:o}},$r={nu:jr,pure:function(e){return jr(function(t){t(e)})}},Wr=function(e){return function(){var t=Array.prototype.slice.call(arguments),n=this;setTimeout(function(){e.apply(n,t)},0)}},Kr=function(e){var t=function(t){e(Wr(t))};return{map:function(e){return Kr(function(n){t(function(t){var r=e(t);n(r)})})},bind:function(e){return Kr(function(n){t(function(t){e(t).get(n)})})},anonBind:function(e){return Kr(function(n){t(function(t){e.get(n)})})},toLazy:function(){return $r.nu(t)},get:t}},Xr={nu:Kr,pure:function(e){return Kr(function(t){t(e)})}},Yr=function(e,t){return t(function(t){var n=[],r=0;0===e.length?t([]):M.each(e,function(o,i){var a;o.get((a=i,function(o){n[a]=o,++r>=e.length&&t(n)}))})})},Gr=function(e){return Yr(e,Xr.nu)},Jr=Gr,Qr=function(e){return{is:function(t){return e===t},isValue:y.constant(!0),isError:y.constant(!1),getOr:y.constant(e),getOrThunk:y.constant(e),getOrDie:y.constant(e),or:function(t){return Qr(e)},orThunk:function(t){return Qr(e)},fold:function(t,n){return n(e)},map:function(t){return Qr(t(e))},each:function(t){t(e)},bind:function(t){return t(e)},exists:function(t){return t(e)},forall:function(t){return t(e)},toOption:function(){return E.some(e)}}},Zr=function(e){return{is:y.constant(!1),isValue:y.constant(!1),isError:y.constant(!0),getOr:y.identity,getOrThunk:function(e){return e()},getOrDie:function(){return y.die(e)()},or:function(e){return e},orThunk:function(e){return e()},fold:function(t,n){return t(e)},map:function(t){return Zr(e)},each:y.noop,bind:function(t){return Zr(e)},exists:y.constant(!1),forall:y.constant(!0),toOption:E.none}},eo={value:Qr,error:Zr},to=function(e,t){var n=e,r=function(e,n,r,o){var i,a;if(e){if(!o&&e[n])return e[n];if(e!==t){if(i=e[r])return i;for(a=e.parentNode;a&&a!==t;a=a.parentNode)if(i=a[r])return i}}};this.current=function(){return n},this.next=function(e){return n=r(n,"firstChild","nextSibling",e)},this.prev=function(e){return n=r(n,"lastChild","previousSibling",e)},this.prev2=function(e){return n=function(e,n,r,o){var i,a,s;if(e){if(i=e[r],t&&i===t)return;if(i){if(!o)for(s=i[n];s;s=s[n])if(!s[n])return s;return i}if((a=e.parentNode)&&a!==t)return a}}(n,"lastChild","previousSibling",e)}},no=function(e){var t;return function(n){return(t=t||M.mapToObject(e,y.constant(!0))).hasOwnProperty(Zn.name(n))}},ro=no(["h1","h2","h3","h4","h5","h6"]),oo=no(["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"]),io={isBlock:oo,isInline:function(e){return Zn.isElement(e)&&!oo(e)},isHeading:ro,isTextBlock:no(["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"]),isList:no(["ul","ol","dl"]),isListItem:no(["li","dd","dt"]),isVoid:no(["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"]),isTableSection:no(["thead","tbody","tfoot"]),isTableCell:no(["td","th"]),isBr:function(e){return Zn.isElement(e)&&"br"===Zn.name(e)}},ao=function(e){return function(t){return!!t&&t.nodeType===e}},so=ao(1),uo=function(e){var t=e.toLowerCase().split(" ");return function(e){var n,r;if(e&&e.nodeType)for(r=e.nodeName.toLowerCase(),n=0;n<t.length;n++)if(r===t[n])return!0;return!1}},co=function(e){return function(t){if(so(t)){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}},lo=ao(3),fo=ao(8),mo=ao(9),po=uo("br"),go=co("true"),ho=co("false"),vo={isText:lo,isElement:so,isComment:fo,isDocument:mo,isBr:po,isContentEditableTrue:go,isContentEditableFalse:ho,matchNodeNames:uo,hasPropValue:function(e,t){return function(n){return so(n)&&n[e]===t}},hasAttribute:function(e,t){return function(t){return so(t)&&t.hasAttribute(e)}},hasAttributeValue:function(e,t){return function(n){return so(n)&&n.getAttribute(e)===t}},matchStyleValues:function(e,t){var n=t.toLowerCase().split(" ");return function(t){var r;if(so(t))for(r=0;r<n.length;r++)if(t.ownerDocument.defaultView.getComputedStyle(t,null).getPropertyValue(e)===n[r])return!0;return!1}},isBogus:function(e){return so(e)&&e.hasAttribute("data-mce-bogus")}},yo=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},bo=function(e,t){var n,r=t.childNodes;if(!vo.isElement(t)||!yo(t)){for(n=r.length-1;n>=0;n--)bo(e,r[n]);if(!1===vo.isDocument(t)){if(vo.isText(t)&&t.nodeValue.length>0){var o=Ot.trim(t.nodeValue).length;if(e.isBlock(t.parentNode)||o>0)return;if(0===o&&(a=(i=t).previousSibling&&"SPAN"===i.previousSibling.nodeName,s=i.nextSibling&&"SPAN"===i.nextSibling.nodeName,a&&s))return}else if(vo.isElement(t)&&(1===(r=t.childNodes).length&&yo(r[0])&&t.parentNode.insertBefore(r[0],t),r.length||io.isVoid(Hn.fromDom(t))))return;e.remove(t)}var i,a,s;return t}},Co={trimNode:bo},xo=Ot.makeMap,wo=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,No=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Eo=/[<>&\"\']/g,So=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,ko={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};fn={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},dn={"<":"<",">":">","&":"&",""":'"',"'":"'"};var To=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),fn[r]||(o="&"+e[n+1]+";",i[r]=o,i[o]=r);return i}};ln=To("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var Ao={encodeRaw:function(e,t){return e.replace(t?wo:No,function(e){return fn[e]||e})},encodeAllRaw:function(e){return(""+e).replace(Eo,function(e){return fn[e]||e})},encodeNumeric:function(e,t){return e.replace(t?wo:No,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":fn[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||ln,e.replace(t?wo:No,function(e){return fn[e]||n[e]||e})},getEncodeFunc:function(e,t){return t=To(t)||ln,(e=xo(e.replace(/\+/g,","))).named&&e.numeric?function(e,n){return e.replace(n?wo:No,function(e){return fn[e]!==undefined?fn[e]:t[e]!==undefined?t[e]:e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":"&#"+e.charCodeAt(0)+";"})}:e.named?t?function(e,n){return Ao.encodeNamed(e,n,t)}:Ao.encodeNamed:e.numeric?Ao.encodeNumeric:Ao.encodeRaw},decode:function(e){return e.replace(So,function(e,t){return t?(t="x"===t.charAt(0).toLowerCase()?parseInt(t.substr(1),16):parseInt(t,10))>65535?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):ko[t]||String.fromCharCode(t):dn[e]||ln[e]||(n=e,(r=Hn.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},_o={},Bo={},Ro=Ot.makeMap,Do=Ot.each,Oo=Ot.extend,Po=Ot.explode,Io=Ot.inArray,Lo=function(e,t){return(e=Ot.trim(e))?e.split(t||" "):[]},Mo=function(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),Do(e,function(e,r){n[r]=n[r.toUpperCase()]="map"===t?Ro(e,/[, ]/):Po(e,/[, ]/)})),n},Fo=function(e){var t,n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C,x,w,N,E={},S={},k={},T=[],A={},_={},B=function(t,n,r){var o=e[t];return o?o=Ro(o,/[, ]/,Ro(o.toUpperCase(),/[, ]/)):(o=_o[t])||(o=Ro(n," ",Ro(n.toUpperCase()," ")),o=Oo(o,r),_o[t]=o),o};p=(e=e||{}).schema,x={},w=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n<r;n++)o[e[n]]=t||{};return o};for(n=n||[],t=t||"","string"==typeof n&&(n=Lo(n)),r=(e=Lo(e)).length;r--;)i={attributes:a(o=Lo([g,t].join(" "))),attributesOrder:o,children:a(n,Bo)},x[e[r]]=i},N=function(e,t){var n,r,o,i;for(n=(e=Lo(e)).length,t=Lo(t);n--;)for(r=x[e[n]],o=0,i=t.length;o<i;o++)r.attributes[t[o]]={},r.attributesOrder.push(t[o])},r=_o[p]?_o[p]:(g="id accesskey class dir lang style tabindex title role",h="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",v="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!==p&&(g+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",h+=" article aside details dialog figure header footer hgroup section nav",v+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!==p&&(g+=" xml:lang",v=[v,C="acronym applet basefont big font strike tt"].join(" "),Do(Lo(C),function(e){w(e,"",v)}),h=[h,b="center dir isindex noframes"].join(" "),y=[h,v].join(" "),Do(Lo(b),function(e){w(e,"",y)})),y=y||[h,v].join(" "),w("html","manifest","head body"),w("head","","base command link meta noscript script style title"),w("title hr noscript br"),w("base","href target"),w("link","href rel media hreflang type sizes hreflang"),w("meta","name http-equiv content charset"),w("style","media type scoped"),w("script","src async defer type charset"),w("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",y),w("address dt dd div caption","",y),w("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",v),w("blockquote","cite",y),w("ol","reversed start type","li"),w("ul","","li"),w("li","value",y),w("dl","","dt dd"),w("a","href target rel media hreflang type",v),w("q","cite",v),w("ins del","cite datetime",y),w("img","src sizes srcset alt usemap ismap width height"),w("iframe","src name width height",y),w("embed","src type width height"),w("object","data type typemustmatch name usemap form width height",[y,"param"].join(" ")),w("param","name value"),w("map","name",[y,"area"].join(" ")),w("area","alt coords shape href target rel media hreflang type"),w("table","border","caption colgroup thead tfoot tbody tr"+("html4"===p?" col":"")),w("colgroup","span","col"),w("col","span"),w("tbody thead tfoot","","tr"),w("tr","","td th"),w("td","colspan rowspan headers",y),w("th","colspan rowspan headers scope abbr",y),w("form","accept-charset action autocomplete enctype method name novalidate target",y),w("fieldset","disabled form name",[y,"legend"].join(" ")),w("label","form for",v),w("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),w("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"===p?y:v),w("select","disabled form multiple name required size","option optgroup"),w("optgroup","disabled label","option"),w("option","disabled label selected value"),w("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),w("menu","type label",[y,"li"].join(" ")),w("noscript","",y),"html4"!==p&&(w("wbr"),w("ruby","",[v,"rt rp"].join(" ")),w("figcaption","",y),w("mark rt rp summary bdi","",v),w("canvas","width height",y),w("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[y,"track source"].join(" ")),w("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[y,"track source"].join(" ")),w("picture","","img source"),w("source","src srcset type media sizes"),w("track","kind src srclang label default"),w("datalist","",[v,"option"].join(" ")),w("article section nav aside header footer","",y),w("hgroup","","h1 h2 h3 h4 h5 h6"),w("figure","",[y,"figcaption"].join(" ")),w("time","datetime",v),w("dialog","open",y),w("command","type label icon disabled checked radiogroup command"),w("output","for form name",v),w("progress","value max",v),w("meter","value min max low high optimum",v),w("details","open",[y,"summary"].join(" ")),w("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!==p&&(N("script","language xml:space"),N("style","xml:space"),N("object","declare classid code codebase codetype archive standby align border hspace vspace"),N("embed","align name hspace vspace"),N("param","valuetype type"),N("a","charset name rev shape coords"),N("br","clear"),N("applet","codebase archive code object alt name width height align hspace vspace"),N("img","name longdesc align border hspace vspace"),N("iframe","longdesc frameborder marginwidth marginheight scrolling align"),N("font basefont","size color face"),N("input","usemap align"),N("select","onchange"),N("textarea"),N("h1 h2 h3 h4 h5 h6 div p legend caption","align"),N("ul","type compact"),N("li","type"),N("ol dl menu dir","compact"),N("pre","width xml:space"),N("hr","align noshade size width"),N("isindex","prompt"),N("table","summary width frame rules cellspacing cellpadding align bgcolor"),N("col","width align char charoff valign"),N("colgroup","width align char charoff valign"),N("thead","align char charoff valign"),N("tr","align char charoff valign bgcolor"),N("th","axis align char charoff valign nowrap bgcolor width height"),N("form","accept"),N("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),N("tfoot","align char charoff valign"),N("tbody","align char charoff valign"),N("area","nohref"),N("body","background bgcolor text link vlink alink")),"html4"!==p&&(N("input button select textarea","autofocus"),N("input textarea","placeholder"),N("a","download"),N("link script img","crossorigin"),N("iframe","sandbox seamless allowfullscreen")),Do(Lo("a form meter progress dfn"),function(e){x[e]&&delete x[e].children[e]}),delete x.caption.children.table,delete x.script,_o[p]=x,x),!1===e.verify_html&&(e.valid_elements="*[*]"),t=Mo(e.valid_styles),n=Mo(e.invalid_styles,"map"),u=Mo(e.valid_classes,"map"),o=B("whitespace_elements","pre script noscript style textarea video audio iframe object code"),i=B("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),a=B("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),s=B("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),l=B("non_empty_elements","td th iframe video audio object script pre code",a),f=B("move_caret_before_on_enter_elements","table",l),d=B("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),c=B("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",d),m=B("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),Do((e.special||"script noscript noframes noembed title style textarea xmp").split(" "),function(e){_[e]=new RegExp("</"+e+"[^>]*>","gi")});var R=function(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")},D=function(e){var t,n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,x=/^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,w=/[*?+]/;if(e)for(e=Lo(e,","),S["@"]&&(h=S["@"].attributes,v=S["@"].attributesOrder),t=0,n=e.length;t<n;t++)if(i=C.exec(e[t])){if(p=i[1],c=i[2],g=i[3],u=i[5],a={attributes:d={},attributesOrder:m=[]},"#"===p&&(a.paddEmpty=!0),"-"===p&&(a.removeEmpty=!0),"!"===i[4]&&(a.removeEmptyAttrs=!0),h){for(y in h)d[y]=h[y];m.push.apply(m,v)}if(u)for(r=0,o=(u=Lo(u,"|")).length;r<o;r++)if(i=x.exec(u[r])){if(s={},f=i[1],l=i[2].replace(/[\\:]:/g,":"),p=i[3],b=i[4],"!"===f&&(a.attributesRequired=a.attributesRequired||[],a.attributesRequired.push(l),s.required=!0),"-"===f){delete d[l],m.splice(Io(m,l),1);continue}p&&("="===p&&(a.attributesDefault=a.attributesDefault||[],a.attributesDefault.push({name:l,value:b}),s.defaultValue=b),":"===p&&(a.attributesForced=a.attributesForced||[],a.attributesForced.push({name:l,value:b}),s.forcedValue=b),"<"===p&&(s.validValues=Ro(b,"?"))),w.test(l)?(a.attributePatterns=a.attributePatterns||[],s.pattern=R(l),a.attributePatterns.push(s)):(d[l]||m.push(l),d[l]=s)}h||"@"!==c||(h=d,v=m),g&&(a.outputName=c,S[g]=a),w.test(c)?(a.pattern=R(c),T.push(a)):S[c]=a}},O=function(e){S={},T=[],D(e),Do(r,function(e,t){k[t]=e.children})},P=function(e){var t=/^(~)?(.+)$/;e&&(_o.text_block_elements=_o.block_elements=null,Do(Lo(e,","),function(e){var n=t.exec(e),r="~"===n[1],o=r?"span":"div",i=n[2];if(k[i]=k[o],A[i]=o,r||(c[i.toUpperCase()]={},c[i]={}),!S[i]){var a=S[o];delete(a=Oo({},a)).removeEmptyAttrs,delete a.removeEmpty,S[i]=a}Do(k,function(e,t){e[o]&&(k[t]=e=Oo({},k[t]),e[i]=e[o])})}))},I=function(t){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;_o[e.schema]=null,t&&Do(Lo(t,","),function(e){var t,r,o=n.exec(e);o&&(r=o[1],t=r?k[o[2]]:k[o[2]]={"#comment":{}},t=k[o[2]],Do(Lo(o[3],"|"),function(e){"-"===r?delete t[e]:t[e]={}}))})},L=function(e){var t,n=S[e];if(n)return n;for(t=T.length;t--;)if((n=T[t]).pattern.test(e))return n};return e.valid_elements?O(e.valid_elements):(Do(r,function(e,t){S[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},k[t]=e.children}),"html5"!==e.schema&&Do(Lo("strong/b em/i"),function(e){e=Lo(e,"/"),S[e[1]].outputName=e[0]}),Do(Lo("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){S[e]&&(S[e].removeEmpty=!0)}),Do(Lo("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),function(e){S[e].paddEmpty=!0}),Do(Lo("span"),function(e){S[e].removeEmptyAttrs=!0})),P(e.custom_elements),I(e.valid_children),D(e.extended_valid_elements),I("+ol[ul|ol],+ul[ul|ol]"),Do({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(e,t){S[t]&&(S[t].parentsRequired=Lo(e))}),e.invalid_elements&&Do(Po(e.invalid_elements),function(e){S[e]&&delete S[e]}),L("span")||D("span[!data-mce-type|*]"),E.children=k,E.getValidStyles=function(){return t},E.getInvalidStyles=function(){return n},E.getValidClasses=function(){return u},E.getBoolAttrs=function(){return s},E.getBlockElements=function(){return c},E.getTextBlockElements=function(){return d},E.getTextInlineElements=function(){return m},E.getShortEndedElements=function(){return a},E.getSelfClosingElements=function(){return i},E.getNonEmptyElements=function(){return l},E.getMoveCaretBeforeOnEnterElements=function(){return f},E.getWhiteSpaceElements=function(){return o},E.getSpecialElements=function(){return _},E.isValidChild=function(e,t){var n=k[e.toLowerCase()];return!(!n||!n[t.toLowerCase()])},E.isValid=function(e,t){var n,r,o=L(e);if(o){if(!t)return!0;if(o.attributes[t])return!0;if(n=o.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},E.getElementRule=L,E.getCustomElements=function(){return A},E.addValidElements=D,E.setValidElements=O,E.addCustomElements=P,E.addValidChildren=I,E.elements=S,E},zo=function(e,t){var n,r,o,i,a=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,s=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,u=/\s*([^:]+):\s*([^;]+);?/g,c=/\s+$/,l={},f="\ufeff";for(e=e||{},t&&(o=t.getValidStyles(),i=t.getInvalidStyles()),r=("\\\" \\' \\; \\: ; : "+f).split(" "),n=0;n<r.length;n++)l[r[n]]=f+n,l[f+n]=r[n];var d=function(e,t,n,r){var o=function(e){return(e=parseInt(e,10).toString(16)).length>1?e:"0"+e};return"#"+o(t)+o(n)+o(r)};return{toHex:function(e){return e.replace(a,d)},parse:function(t){var r,o,i,m,p,g,h,v,y={},b=e.url_converter,C=e.url_converter_scope||this,x=function(e,t,r){var o,i,a,s;if((o=y[e+"-top"+t])&&(i=y[e+"-right"+t])&&(a=y[e+"-bottom"+t])&&(s=y[e+"-left"+t])){var u=[o,i,a,s];for(n=u.length-1;n--&&u[n]===u[n+1];);n>-1&&r||(y[e+t]=-1===n?u[0]:u.join(" "),delete y[e+"-top"+t],delete y[e+"-right"+t],delete y[e+"-bottom"+t],delete y[e+"-left"+t])}},w=function(e){var t,n=y[e];if(n){for(t=(n=n.split(" ")).length;t--;)if(n[t]!==n[0])return!1;return y[e]=n[0],!0}},N=function(e){return m=!0,l[e]},E=function(e,t){return m&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return l[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e},S=function(e){return String.fromCharCode(parseInt(e.slice(1),16))},k=function(e){return e.replace(/\\[0-9a-f]+/gi,S)},T=function(t,n,r,o,i,a){if(i=i||a)return"'"+(i=E(i)).replace(/\'/g,"\\'")+"'";if(n=E(n||r||o),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return b&&(n=b.call(C,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"};if(t){for(t=(t=t.replace(/[\u0000-\u001F]/g,"")).replace(/\\[\"\';:\uFEFF]/g,N).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,N)});r=u.exec(t);)if(u.lastIndex=r.index+r[0].length,o=r[1].replace(c,"").toLowerCase(),i=r[2].replace(c,""),o&&i){if(o=k(o),i=k(i),-1!==o.indexOf(f)||-1!==o.indexOf('"'))continue;if(!e.allow_script_urls&&("behavior"===o||/expression\s*\(|\/\*|\*\//.test(i)))continue;"font-weight"===o&&"700"===i?i="bold":"color"!==o&&"background-color"!==o||(i=i.toLowerCase()),i=(i=i.replace(a,d)).replace(s,T),y[o]=m?E(i,!0):i}x("border","",!0),x("border","-width"),x("border","-color"),x("border","-style"),x("padding",""),x("margin",""),p="border",h="border-style",v="border-color",w(g="border-width")&&w(h)&&w(v)&&(y[p]=y[g]+" "+y[h]+" "+y[v],delete y[g],delete y[h],delete y[v]),"medium none"===y.border&&delete y.border,"none"===y["border-image"]&&delete y["border-image"]}return y},serialize:function(e,t){var n,r,a,s,u,c="",l=function(t){var n,r,i,a;if(n=o[t])for(r=0,i=n.length;r<i;r++)t=n[r],(a=e[t])&&(c+=(c.length>0?" ":"")+t+": "+a+";")};if(t&&o)l("*"),l(t);else for(n in e)!(r=e[n])||i&&(a=n,s=t,u=void 0,(u=i["*"])&&u[a]||(u=i[s])&&u[a])||(c+=(c.length>0?" ":"")+n+": "+r+";");return c}}},Uo=Ot.each,Vo=Ot.is,Ho=Ot.grep,qo=me.ie,jo=/^([a-z0-9],?)+$/i,$o=/^[ \t\r\n]*$/,Wo=function(e,t){var n=t.attr("style");(n=e.serializeStyle(e.parseStyle(n),t[0].nodeName))||(n=null),t.attr("data-mce-style",n)},Ko=function(e,t){var n,r,o=0;if(e)for(n=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)r=e.nodeType,(!t||3!==r||r!==n&&e.nodeValue.length)&&(o++,n=r);return o},Xo=function(e,t){var n,r,o,i,a,s,u=this;u.doc=e,u.win=window,u.files={},u.counter=0,u.stdMode=!qo||e.documentMode>=8,u.boxModel=!qo||"CSS1Compat"===e.compatMode||u.stdMode,u.styleSheetLoader=function(e,t){var n,r=0,o={};n=(t=t||{}).maxLoadTime||5e3;var i=function(t){e.getElementsByTagName("head")[0].appendChild(t)},a=function(t,a,s){var u,c,l,f,d=function(){for(var e=f.passed,t=e.length;t--;)e[t]();f.status=2,f.passed=[],f.failed=[]},m=function(){for(var e=f.failed,t=e.length;t--;)e[t]();f.status=3,f.passed=[],f.failed=[]},p=function(e,t){e()||((new Date).getTime()-l<n?ye.setTimeout(t):m())},g=function(){p(function(){for(var t,n,r=e.styleSheets,o=r.length;o--;)if((n=(t=r[o]).ownerNode?t.ownerNode:t.owningElement)&&n.id===u.id)return d(),!0},g)},h=function(){p(function(){try{var e=c.sheet.cssRules;return d(),!!e}catch(t){}},h)};if(t=Ot._addCacheSuffix(t),o[t]?f=o[t]:(f={passed:[],failed:[]},o[t]=f),a&&f.passed.push(a),s&&f.failed.push(s),1!==f.status)if(2!==f.status)if(3!==f.status){if(f.status=1,(u=e.createElement("link")).rel="stylesheet",u.type="text/css",u.id="u"+r++,u.async=!1,u.defer=!1,l=(new Date).getTime(),"onload"in u&&!((v=navigator.userAgent.match(/WebKit\/(\d*)/))&&parseInt(v[1],10)<536))u.onload=g,u.onerror=m;else{if(navigator.userAgent.indexOf("Firefox")>0)return(c=e.createElement("style")).textContent='@import "'+t+'"',h(),void i(c);g()}var v;i(u),u.href=t}else m();else d()},s=function(e){return Xr.nu(function(t){a(e,y.compose(t,y.constant(eo.value(e))),y.compose(t,y.constant(eo.error(e))))})},u=function(e){return e.fold(y.identity,y.identity)};return{load:a,loadAll:function(e,t,n){Jr(M.map(e,s)).get(function(e){var r=M.partition(e,function(e){return e.isValue()});r.fail.length>0?n(r.fail.map(u)):t(r.pass.map(u))})}}}(e),u.boundEvents=[],u.settings=t=t||{},u.schema=t.schema?t.schema:Fo({}),u.styles=zo({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),u.fixDoc(e),u.events=t.ownEvents?new Te(t.proxy):Te.Event,u.attrHooks=(r=u,a={},s=(o=t).keep_values,i={set:function(e,t,n){o.url_converter&&(t=o.url_converter.call(o.url_converter_scope||r,t,n,e[0])),e.attr("data-mce-"+n,t).attr(n,t)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},a={style:{set:function(e,t){null===t||"object"!=typeof t?(s&&e.attr("data-mce-style",t),e.attr("style",t)):e.css(t)},get:function(e){var t=e.attr("data-mce-style")||e.attr("style");return t=r.serializeStyle(r.parseStyle(t),e[0].nodeName)}}},s&&(a.href=a.src=i),a),n=u.schema.getBlockElements(),u.$=Qt.overrideDefaults(function(){return{context:e,element:u.getRoot()}}),u.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!n[e.nodeName]):!!n[e]}};Xo.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){},clone:function(e,t){var n,r,o=this;return!qo||1!==e.nodeType||t?e.cloneNode(t):(r=o.doc,t?n.firstChild:(n=r.createElement(e.nodeName),Uo(o.getAttribs(e),function(t){o.setAttrib(n,t.nodeName,o.getAttrib(e,t.nodeName))}),n))},getRoot:function(){return this.settings.root_element||this.doc.body},getViewPort:function(e){var t,n;return t=(e=e||this.win).document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t,n;return e=this.get(e),t=this.getPos(e),n=this.getSize(e),{x:t.x,y:t.y,w:n.w,h:n.h}},getSize:function(e){var t,n;return e=this.get(e),t=this.getStyle(e,"width"),n=this.getStyle(e,"height"),-1===t.indexOf("px")&&(t=0),-1===n.indexOf("px")&&(n=0),{w:parseInt(t,10)||e.offsetWidth||e.clientWidth,h:parseInt(n,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,t,n,r){var o,i=this,a=[];for(e=i.get(e),r=r===undefined,n=n||("BODY"!==i.getRoot().nodeName?i.getRoot().parentNode:null),Vo(t,"string")&&(o=t,t="*"===t?function(e){return 1===e.nodeType}:function(e){return i.is(e,o)});e&&e!==n&&e.nodeType&&9!==e.nodeType;){if(!t||t(e)){if(!r)return e;a.push(e)}e=e.parentNode}return r?a:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,(e=this.doc.getElementById(e))&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(e,t){return lt(e,this.get(t)||this.settings.root_element||this.doc,[])},is:function(e,t){var n;if(!e)return!1;if(e.length===undefined){if("*"===t)return 1===e.nodeType;if(jo.test(t)){for(t=t.toLowerCase().split(/,/),e=e.nodeName.toLowerCase(),n=t.length-1;n>=0;n--)if(t[n]===e)return!0;return!1}}if(e.nodeType&&1!==e.nodeType)return!1;var r=e.nodeType?[e]:e;return lt(t,r[0].ownerDocument||r[0],null,r).length>0},add:function(e,t,n,r,o){var i=this;return this.run(e,function(e){var a;return a=Vo(t,"string")?i.doc.createElement(t):t,i.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):i.setHTML(a,r)),o?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r,o="";for(r in o+="<"+e,t)t.hasOwnProperty(r)&&null!==t[r]&&"undefined"!=typeof t[r]&&(o+=" "+r+'="'+this.encode(t[r])+'"');return void 0!==n?o+">"+n+"</"+e+">":o+" />"},createFragment:function(e){var t,n,r,o=this.doc;for(r=o.createElement("div"),t=o.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3===e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&Wo(this,e)},getStyle:function(e,t,n){return e=this.$$(e),n?e.css(t):("float"===(t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}))&&(t=me.ie&&me.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[t]:undefined)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&Wo(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r,o,i=this.settings;""===n&&(n=null),r=(e=this.$$(e)).attr(t),e.length&&((o=this.attrHooks[t])&&o.set?o.set(e,n,t):e.attr(t,n),r!==n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){Uo(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r,o;return(e=this.$$(e)).length&&(o=(r=this.attrHooks[t])&&r.get?r.get(e,t):e.attr(t)),void 0===o&&(o=n||""),o},getPos:function(e,t){return qr(this.doc.body,this.get(e),t)},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t,n,r=this.doc;if(this!==Xo.DOM&&r===document){var o=Xo.DOM.addedStyles;if((o=o||[])[e])return;o[e]=!0,Xo.DOM.addedStyles=o}(n=r.getElementById("mceDefaultStyles"))||((n=r.createElement("style")).id="mceDefaultStyles",n.type="text/css",(t=r.getElementsByTagName("head")[0]).firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(r.createTextNode(e))},loadCSS:function(e){var t,n=this,r=n.doc;n===Xo.DOM||r!==document?(e||(e=""),t=r.getElementsByTagName("head")[0],Uo(e.split(","),function(e){var o;e=Ot._addCacheSuffix(e),n.files[e]||(n.files[e]=!0,o=n.create("link",{rel:"stylesheet",href:e}),qo&&r.documentMode&&r.recalc&&(o.onload=function(){r.recalc&&r.recalc(),o.onload=null}),t.appendChild(o))})):Xo.DOM.loadCSS(e)},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,n){this.$$(e).toggleClass(t,n).each(function(){""===this.className&&Qt(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"===this.$$(e).css("display")},uniqueId:function(e){return(e||"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),qo?e.each(function(e,n){if(!1!==n.canHaveHTML){for(;n.firstChild;)n.removeChild(n.firstChild);try{n.innerHTML="<br>"+t,n.removeChild(n.firstChild)}catch(r){Qt("<div></div>").html("<br>"+t).contents().slice(1).appendTo(n)}return t}}):e.html(t)},getOuterHTML:function(e){return 1===(e=this.get(e)).nodeType&&"outerHTML"in e?e.outerHTML:Qt("<div></div>").append(Qt(e).clone()).html()},setOuterHTML:function(e,t){var n=this;n.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}n.remove(Qt(this).html(t),!0)})},decode:Ao.decode,encode:Ao.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,(r=t.nextSibling)?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){return this.run(t,function(t){return Vo(t,"array")&&(e=e.cloneNode(!0)),n&&Uo(Ho(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n,r=this;return e.nodeName!==t.toUpperCase()&&(n=r.create(t),Uo(r.getAttribs(e),function(t){r.setAttrib(n,t.nodeName,r.getAttrib(e,t.nodeName))}),r.replace(n,e,1)),n||e},findCommonAncestor:function(e,t){for(var n,r=e;r;){for(n=t;n&&r!==n;)n=n.parentNode;if(r===n)break;r=r.parentNode}return!r&&e.ownerDocument?e.ownerDocument.documentElement:r},toHex:function(e){return this.styles.toHex(Ot.trim(e))},run:function(e,t,n){var r,o=this;return"string"==typeof e&&(e=o.get(e)),!!e&&(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(r=[],Uo(e,function(e,i){e&&("string"==typeof e&&(e=o.get(e)),r.push(t.call(n,e,i)))}),r))},getAttribs:function(e){var t;return(e=this.get(e))?qo?(t=[],"OBJECT"===e.nodeName?e.attributes:("OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"}),e.cloneNode(!1).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t)):e.attributes:[]},isEmpty:function(e,t){var n,r,o,i,a,s,u=0;if(e=e.firstChild){a=new to(e,e.parentNode),t=t||(this.schema?this.schema.getNonEmptyElements():null),i=this.schema?this.schema.getWhiteSpaceElements():{};do{if(1===(o=e.nodeType)){var c=e.getAttribute("data-mce-bogus");if(c){e=a.next("all"===c);continue}if(s=e.nodeName.toLowerCase(),t&&t[s]){if("br"===s){u++,e=a.next();continue}return!1}for(n=(r=this.getAttribs(e)).length;n--;)if("name"===(s=r[n].nodeName)||"data-mce-bookmark"===s)return!1}if(8===o)return!1;if(3===o&&!$o.test(e.nodeValue))return!1;if(3===o&&e.parentNode&&i[e.parentNode.nodeName]&&$o.test(e.nodeValue))return!1;e=a.next()}while(e)}return u<=1},createRng:function(){return this.doc.createRange()},nodeIndex:Ko,split:function(e,t,n){var r,o,i,a=this.createRng();if(e&&t)return a.setStart(e.parentNode,this.nodeIndex(e)),a.setEnd(t.parentNode,this.nodeIndex(t)),r=a.extractContents(),(a=this.createRng()).setStart(t.parentNode,this.nodeIndex(t)+1),a.setEnd(e.parentNode,this.nodeIndex(e)+1),o=a.extractContents(),(i=e.parentNode).insertBefore(Co.trimNode(this,r),e),n?i.insertBefore(n,e):i.insertBefore(t,e),i.insertBefore(Co.trimNode(this,o),e),this.remove(e),n||t},bind:function(e,t,n,r){if(Ot.isArray(e)){for(var o=e.length;o--;)e[o]=this.bind(e[o],t,n,r);return e}return!this.settings.collect||e!==this.doc&&e!==this.win||this.boundEvents.push([e,t,n,r]),this.events.bind(e,t,n,r||this)},unbind:function(e,t,n){var r;if(Ot.isArray(e)){for(r=e.length;r--;)e[r]=this.unbind(e[r],t,n);return e}if(this.boundEvents&&(e===this.doc||e===this.win))for(r=this.boundEvents.length;r--;){var o=this.boundEvents[r];e!==o[0]||t&&t!==o[1]||n&&n!==o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1===e.nodeType?(t=e.getAttribute("data-mce-contenteditable"))&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null:null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&null===(n=this.getContentEditable(e));e=e.parentNode);return n},destroy:function(){if(this.boundEvents){for(var e=this.boundEvents.length;e--;){var t=this.boundEvents[e];this.events.unbind(t[0],t[1],t[2])}this.boundEvents=null}lt.setDocument&<.setDocument(),this.win=this.doc=this.root=this.events=this.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,o=t;if(e)for("string"==typeof o&&(o=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(o(e))return e;return null}},Xo.DOM=new Xo(document),Xo.nodeIndex=Ko;var Yo=Xo.DOM,Go=Ot.each,Jo=Ot.grep,Qo=function(e){return"function"==typeof e},Zo=function(){var e={},t=[],n={},r=[],o=0;this.isDone=function(t){return 2===e[t]},this.markDone=function(t){e[t]=2},this.add=this.load=function(r,o,i,a){e[r]===undefined&&(t.push(r),e[r]=0),o&&(n[r]||(n[r]=[]),n[r].push({success:o,failure:a,scope:i||this}))},this.remove=function(t){delete e[t],delete n[t]},this.loadQueue=function(e,n,r){this.loadScripts(t,e,n,r)},this.loadScripts=function(t,i,a,s){var u,c=[],l=function(e,t){Go(n[t],function(t){Qo(t[e])&&t[e].call(t.scope)}),n[t]=undefined};r.push({success:i,failure:s,scope:a||this}),(u=function(){var n=Jo(t);if(t.length=0,Go(n,function(t){var n,r,i,a,s,f,d;2!==e[t]?3!==e[t]?1!==e[t]&&(e[t]=1,o++,n=t,r=function(){e[t]=2,o--,l("success",t),u()},i=function(){e[t]=3,o--,c.push(t),l("failure",t),u()},d=function(){f.remove(s),a&&(a.onreadystatechange=a.onload=a=null),r()},s=(f=Yo).uniqueId(),(a=document.createElement("script")).id=s,a.type="text/javascript",a.src=Ot._addCacheSuffix(n),"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&d()}:a.onload=d,a.onerror=function(){Qo(i)?i():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+n)},(document.getElementsByTagName("head")[0]||document.body).appendChild(a)):l("failure",t):l("success",t)}),!o){var i=r.slice(0);r.length=0,Go(i,function(e){0===c.length?Qo(e.success)&&e.success.call(e.scope):Qo(e.failure)&&e.failure.call(e.scope,c)})}})()}};Zo.ScriptLoader=new Zo;var ei=Ot.each,ti=function(){this.items=[],this.urls={},this.lookup={},this._listeners=[]};ti.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:undefined},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(e,t){var n=ti.language;if(n&&!1!==ti.languageLoad){if(t)if(-1!==(t=","+t+",").indexOf(","+n.substr(0,2)+","))n=n.substr(0,2);else if(-1===t.indexOf(","+n+","))return;Zo.ScriptLoader.add(this.urls[e]+"/langs/"+n+".js")}},add:function(e,t,n){this.items.push(t),this.lookup[e]={instance:t,dependencies:n};var r=M.partition(this._listeners,function(t){return t.name===e});return this._listeners=r.fail,ei(r.pass,function(e){e.callback()}),t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(e,t){var n=this.urls[e];ei(t,function(e){Zo.ScriptLoader.add(n+"/"+e)})},load:function(e,t,n,r,o){var i=this,a=t,s=function(){var o=i.dependencies(e);ei(o,function(e){var n=i.createUrl(t,e);i.load(n.resource,n,undefined,undefined)}),n&&(r?n.call(r):n.call(Zo))};i.urls[e]||("object"==typeof t&&(a=t.prefix+t.resource+t.suffix),0!==a.indexOf("/")&&-1===a.indexOf("://")&&(a=ti.baseURL+"/"+a),i.urls[e]=a.substring(0,a.lastIndexOf("/")),i.lookup[e]?s():Zo.ScriptLoader.add(a,s,r,o))},waitFor:function(e,t){this.lookup.hasOwnProperty(e)?t():this._listeners.push({name:e,callback:t})}},ti.PluginManager=new ti,ti.ThemeManager=new ti;var ni="\ufeff",ri=function(e){return e===ni},oi=ni,ii=function(e){return e.replace(new RegExp(ni,"g"),"")},ai=vo.isElement,si=vo.isText,ui=function(e){return si(e)&&(e=e.parentNode),ai(e)&&e.hasAttribute("data-mce-caret")},ci=function(e){return si(e)&&ri(e.data)},li=function(e){return ui(e)||ci(e)},fi=function(e){return si(e)&&e.data[0]===oi},di=function(e){return si(e)&&e.data[e.data.length-1]===oi},mi={isCaretContainer:li,isCaretContainerBlock:ui,isCaretContainerInline:ci,showCaretContainerBlock:function(e){return e&&e.hasAttribute("data-mce-caret")?(t=e.getElementsByTagName("br"),n=t[t.length-1],vo.isBogus(n)&&n.parentNode.removeChild(n),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null;var t,n},insertInline:function(e,t){var n,r,o;if(r=e.ownerDocument.createTextNode(oi),o=e.parentNode,t){if(n=e.previousSibling,si(n)){if(li(n))return n;if(di(n))return n.splitText(n.data.length-1)}o.insertBefore(r,e)}else{if(n=e.nextSibling,si(n)){if(li(n))return n;if(fi(n))return n.splitText(1),n}e.nextSibling?o.insertBefore(r,e.nextSibling):o.appendChild(r)}return r},prependInline:function(e){if(vo.isText(e)){var t=e.data;return t.length>0&&t.charAt(0)!==oi&&e.insertData(0,oi),e}return null},appendInline:function(e){if(vo.isText(e)){var t=e.data;return t.length>0&&t.charAt(t.length-1)!==oi&&e.insertData(t.length,oi),e}return null},isBeforeInline:function(e){return e&&vo.isText(e.container())&&e.container().data.charAt(e.offset())===oi},isAfterInline:function(e){return e&&vo.isText(e.container())&&e.container().data.charAt(e.offset()-1)===oi},insertBlock:function(e,t,n){var r,o,i;return(r=t.ownerDocument.createElement(e)).setAttribute("data-mce-caret",n?"before":"after"),r.setAttribute("data-mce-bogus","all"),r.appendChild(((i=document.createElement("br")).setAttribute("data-mce-bogus","1"),i)),o=t.parentNode,n?o.insertBefore(r,t):t.nextSibling?o.insertBefore(r,t.nextSibling):o.appendChild(r),r},hasContent:function(e){return e.firstChild!==e.lastChild||!vo.isBr(e.firstChild)},startsWithCaretContainer:fi,endsWithCaretContainer:di},pi=vo.isContentEditableTrue,gi=vo.isContentEditableFalse,hi=vo.isBr,vi=vo.isText,yi=vo.matchNodeNames("script style textarea"),bi=vo.matchNodeNames("img input textarea hr iframe video audio object"),Ci=vo.matchNodeNames("table"),xi=mi.isCaretContainer,wi=function(e){return!xi(e)&&(vi(e)?!yi(e.parentNode):bi(e)||hi(e)||Ci(e)||gi(e))},Ni=function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode){if(gi(e))return!1;if(pi(e))return!0}return!0},Ei=wi,Si=function(e){return bi(e)||!!gi(t=e)&&!0!==At.reduce(t.getElementsByTagName("*"),function(e,t){return e||pi(t)},!1);var t},ki=function(e,t){return wi(e)&&Ni(e,t)},Ti=Math.round,Ai=function(e){return e?{left:Ti(e.left),top:Ti(e.top),bottom:Ti(e.bottom),right:Ti(e.right),width:Ti(e.width),height:Ti(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}},_i=function(e,t,n){return e>=0&&e<=Math.min(t.height,n.height)/2},Bi=function(e,t){return e.bottom-e.height/2<t.top||!(e.top>t.bottom)&&_i(t.top-e.bottom,e,t)},Ri=function(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&_i(t.bottom-e.top,e,t)},Di=Ai,Oi=function(e,t){return e=Ai(e),t?e.right=e.left:(e.left=e.left+e.width,e.right=e.left),e.width=0,e},Pi=function(e,t){return e.left===t.left&&e.top===t.top&&e.bottom===t.bottom&&e.right===t.right},Ii=Bi,Li=Ri,Mi=function(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom},Fi=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset===n+1?t.childNodes[n]:null},zi=function(e,t){return 1===e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},Ui=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),Vi=function(e){return"string"==typeof e&&e.charCodeAt(0)>=768&&Ui.test(e)},Hi=[].slice,qi=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Hi.call(arguments);return r.length-1>=e.length?e.apply(this,r.slice(1)):function(){var e=r.concat([].slice.call(arguments));return qi.apply(this,e)}},ji={constant:function(e){return function(){return e}},negate:function(e){return function(t){return!e(t)}},and:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Hi.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(!n[t](e))return!1;return!0}},or:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Hi.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(n[t](e))return!0;return!1}},curry:qi,compose:function(e,t){return function(n){return e(t(n))}},noop:function(){}},$i=vo.isElement,Wi=Ei,Ki=vo.matchStyleValues("display","block table"),Xi=vo.matchStyleValues("float","left right"),Yi=ji.and($i,Wi,ji.negate(Xi)),Gi=ji.negate(vo.matchStyleValues("white-space","pre pre-line pre-wrap")),Ji=vo.isText,Qi=vo.isBr,Zi=Xo.nodeIndex,ea=zi,ta=function(e){return"createRange"in e?e.createRange():Xo.DOM.createRng()},na=function(e){return e&&/[\r\n\t ]/.test(e)},ra=function(e){var t,n=e.startContainer,r=e.startOffset;return!!(na(e.toString())&&Gi(n.parentNode)&&(t=n.data,na(t[r-1])||na(t[r+1])))},oa=function(e){var t,n,r=[],o=function(e){var t,n,r,o,i,a,s,u;return t=(n=e.getClientRects()).length>0?Di(n[0]):Di(e.getBoundingClientRect()),Qi(e)&&0===t.left?(i=(r=e).ownerDocument,a=ta(i),s=i.createTextNode("\xa0"),(u=r.parentNode).insertBefore(s,r),a.setStart(s,0),a.setEnd(s,1),o=Di(a.getBoundingClientRect()),u.removeChild(s),o):t},i=function(e,t){return(e=Oi(e,t)).width=1,e.right=e.left+1,e},a=function(e){0!==e.height&&(r.length>0&&Pi(e,r[r.length-1])||r.push(e))},s=function(e,t){var n=ta(e.ownerDocument);if(t<e.data.length){if(Vi(e.data[t]))return r;if(Vi(e.data[t-1])&&(n.setStart(e,t),n.setEnd(e,t+1),!ra(n)))return a(i(o(n),!1)),r}t>0&&(n.setStart(e,t-1),n.setEnd(e,t),ra(n)||a(i(o(n),!1))),t<e.data.length&&(n.setStart(e,t),n.setEnd(e,t+1),ra(n)||a(i(o(n),!0)))};if(Ji(e.container()))return s(e.container(),e.offset()),r;if($i(e.container()))if(e.isAtEnd())n=ea(e.container(),e.offset()),Ji(n)&&s(n,n.data.length),Yi(n)&&!Qi(n)&&a(i(o(n),!1));else{if(n=ea(e.container(),e.offset()),Ji(n)&&s(n,0),Yi(n)&&e.isAtEnd())return a(i(o(n),!1)),r;t=ea(e.container(),e.offset()-1),Yi(t)&&!Qi(t)&&(Ki(t)||Ki(n)||!Yi(n))&&a(i(o(t),!1)),Yi(n)&&a(i(o(n),!0))}return r},ia=function(e,t,n){var r=function(){return n||(n=oa(new ia(e,t))),n};return{container:ji.constant(e),offset:ji.constant(t),toRange:function(){var n;return(n=ta(e.ownerDocument)).setStart(e,t),n.setEnd(e,t),n},getClientRects:r,isVisible:function(){return r().length>0},isAtStart:function(){return Ji(e),0===t},isAtEnd:function(){return Ji(e)?t>=e.data.length:t>=e.childNodes.length},isEqual:function(n){return n&&e===n.container()&&t===n.offset()},getNode:function(n){return ea(e,n?t-1:t)}}};ia.fromRangeStart=function(e){return new ia(e.startContainer,e.startOffset)},ia.fromRangeEnd=function(e){return new ia(e.endContainer,e.endOffset)},ia.after=function(e){return new ia(e.parentNode,Zi(e)+1)},ia.before=function(e){return new ia(e.parentNode,Zi(e))},ia.isAtStart=function(e){return!!e&&e.isAtStart()},ia.isAtEnd=function(e){return!!e&&e.isAtEnd()},ia.isTextPosition=function(e){return!!e&&vo.isText(e.container())};var aa,sa,ua,ca,la,fa=vo.isContentEditableTrue,da=vo.isContentEditableFalse,ma=vo.matchStyleValues("display","block table table-cell table-caption list-item"),pa=mi.isCaretContainer,ga=mi.isCaretContainerBlock,ha=ji.curry,va=vo.isElement,ya=Ei,ba=function(e){return e>0},Ca=function(e){return e<0},xa=function(e,t){for(var n;n=e(t);)if(!ga(n))return n;return null},wa=function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode)if(fa(e))return e;return t},Na=function(e,t){for(;e&&e!==t;){if(ma(e))return e;e=e.parentNode}return null},Ea=function(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n},Sa=function(e,t,n){var r,o,i,a;for(o=e?"previousSibling":"nextSibling";n&&n!==t;){if(r=n[o],pa(r)&&(r=r[o]),da(r)){if(a=n,Na(r,i=t)===Na(a,i))return r;break}if(ya(r))break;n=n.parentNode}return null},ka=ha(Ea,!0),Ta=ha(Ea,!1),Aa=function(e,t){return da((n=e,(r=t)?(o=r.container(),i=r.offset(),va(o)?o.childNodes[i+n]:null):null));var n,r,o,i},_a={isForwards:ba,isBackwards:Ca,findNode:function(e,t,n,r,o){var i=new to(e,r);if(Ca(t)){if((da(e)||ga(e))&&n(e=xa(i.prev,!0)))return e;for(;e=xa(i.prev,o);)if(n(e))return e}if(ba(t)){if((da(e)||ga(e))&&n(e=xa(i.next,!0)))return e;for(;e=xa(i.next,o);)if(n(e))return e}return null},getEditingHost:wa,getParentBlock:Na,isInSameBlock:function(e,t,n){return Na(e.container(),n)===Na(t.container(),n)},isInSameEditingHost:function(e,t,n){return wa(e.container(),n)===wa(t.container(),n)},isBeforeContentEditableFalse:ha(Aa,0),isAfterContentEditableFalse:ha(Aa,-1),normalizeRange:function(e,t,n){var r,o,i,a,s=ha(Sa,!0,t),u=ha(Sa,!1,t);if(o=n.startContainer,i=n.startOffset,mi.isCaretContainerBlock(o)){if(va(o)||(o=o.parentNode),"before"===(a=o.getAttribute("data-mce-caret"))&&(r=o.nextSibling,da(r)))return ka(r);if("after"===a&&(r=o.previousSibling,da(r)))return Ta(r)}if(!n.collapsed)return n;if(vo.isText(o)){if(pa(o)){if(1===e){if(r=u(o))return ka(r);if(r=s(o))return Ta(r)}if(-1===e){if(r=s(o))return Ta(r);if(r=u(o))return ka(r)}return n}if(mi.endsWithCaretContainer(o)&&i>=o.data.length-1)return 1===e&&(r=u(o))?ka(r):n;if(mi.startsWithCaretContainer(o)&&i<=1)return-1===e&&(r=s(o))?Ta(r):n;if(i===o.data.length)return(r=u(o))?ka(r):n;if(0===i)return(r=s(o))?Ta(r):n}return n}},Ba=vo.isContentEditableFalse,Ra=vo.isText,Da=vo.isElement,Oa=vo.isBr,Pa=_a.isForwards,Ia=_a.isBackwards,La=Ei,Ma=Si,Fa=ki,za=function(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null},Ua=function(e,t){if(Pa(e)){if(La(t.previousSibling)&&!Ra(t.previousSibling))return ia.before(t);if(Ra(t))return ia(t,0)}if(Ia(e)){if(La(t.nextSibling)&&!Ra(t.nextSibling))return ia.after(t);if(Ra(t))return ia(t,t.data.length)}return Ia(e)?Oa(t)?ia.before(t):ia.after(t):ia.before(t)},Va=function(e,t,n){var r,o,i,a,s,u,c,l,f,d;if(!Da(n)||!t)return null;if(t.isEqual(ia.after(n))&&n.lastChild){if(c=ia.after(n.lastChild),Ia(e)&&La(n.lastChild)&&Da(n.lastChild))return Oa(n.lastChild)?ia.before(n.lastChild):c}else c=t;if(r=c.container(),o=c.offset(),Ra(r)){if(Ia(e)&&o>0)return ia(r,--o);if(Pa(e)&&o<r.length)return ia(r,++o);i=r}else{if(Ia(e)&&o>0&&(a=za(r,o-1),La(a)))return!Ma(a)&&(s=_a.findNode(a,e,Fa,a))?Ra(s)?ia(s,s.data.length):ia.after(s):Ra(a)?ia(a,a.data.length):ia.before(a);if(Pa(e)&&o<r.childNodes.length&&(a=za(r,o),La(a)))return l=a,f=n,vo.isBr(l)&&(d=Va(1,ia.after(l),f))&&!_a.isInSameBlock(ia.before(l),ia.before(d),f)?Va(e,ia.after(a),n):!Ma(a)&&(s=_a.findNode(a,e,Fa,a))?Ra(s)?ia(s,0):ia.before(s):Ra(a)?ia(a,0):ia.after(a);i=c.getNode()}return(Pa(e)&&c.isAtEnd()||Ia(e)&&c.isAtStart())&&(i=_a.findNode(i,e,ji.constant(!0),n,!0),Fa(i,n))?Ua(e,i):(a=_a.findNode(i,e,Fa,n),!(u=At.last(At.filter(function(e,t){for(var n=[];e&&e!==t;)n.push(e),e=e.parentNode;return n}(r,n),Ba)))||a&&u.contains(a)?a?Ua(e,a):null:c=Pa(e)?ia.after(u):ia.before(u))},Ha=function(e){return{next:function(t){return Va(1,t,e)},prev:function(t){return Va(-1,t,e)}}},qa=function(e){return Ot.grep(e.childNodes,function(e){return"LI"===e.nodeName})},ja=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||vo.isBr(t));var t},$a=function(e){return e.length>0&&(!(t=e[e.length-1]).firstChild||ja(t))?e.slice(0,-1):e;var t},Wa=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},Ka=function(e,t){var n=ia.after(e),r=Ha(t).prev(n);return r?r.toRange():null},Xa=function(e,t,n){var r,o,i,a,s=e.parentNode;return Ot.each(t,function(t){s.insertBefore(t,e)}),r=e,o=n,i=ia.before(r),(a=Ha(o).next(i))?a.toRange():null},Ya=function(e,t){var n,r,o,i,a,s,u=t.firstChild,c=t.lastChild;return u&&"meta"===u.name&&(u=u.next),c&&"mce_marker"===c.attr("id")&&(c=c.prev),r=c,s=(n=e).getNonEmptyElements(),r&&(r.isEmpty(s)||(o=r,n.getBlockElements()[o.name]&&(a=o).firstChild&&a.firstChild===a.lastChild&&("br"===(i=o.firstChild).name||"\xa0"===i.value)))&&(c=c.prev),!(!u||u!==c||"ul"!==u.name&&"ol"!==u.name)},Ga=function(e,t,n,r){var o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C,x,w,N=(o=t,i=r,c=e.serialize(i),l=o.createFragment(c),s=(a=l).firstChild,u=a.lastChild,s&&"META"===s.nodeName&&s.parentNode.removeChild(s),u&&"mce_marker"===u.id&&u.parentNode.removeChild(u),a),E=Wa(t,n.startContainer),S=$a(qa(N.firstChild)),k=t.getRoot(),T=function(e){var r=ia.fromRangeStart(n),o=Ha(t.getRoot()),i=1===e?o.prev(r):o.next(r);return!i||Wa(t,i.getNode())!==E};return T(1)?Xa(E,S,k):T(2)?(f=E,d=S,m=k,t.insertAfter(d.reverse(),f),Ka(d[0],m)):(g=S,h=k,v=p=E,b=(y=n).cloneRange(),C=y.cloneRange(),b.setStartBefore(v),C.setEndAfter(v),x=[b.cloneContents(),C.cloneContents()],(w=p.parentNode).insertBefore(x[0],p),Ot.each(g,function(e){w.insertBefore(e,p)}),w.insertBefore(x[1],p),w.removeChild(p),Ka(g[g.length-1],h))},Ja=function(e,t){return!!Wa(e,t)},Qa=vo.isText,Za=vo.isBogus,es=Xo.nodeIndex,ts=function(e){var t=e.parentNode;return Za(t)?ts(t):t},ns=function(e){return e?At.reduce(e.childNodes,function(e,t){return Za(t)&&"BR"!==t.nodeName?e=e.concat(ns(t)):e.push(t),e},[]):[]},rs=function(e){return function(t){return e===t}},os=function(e){var t,n,r,o;return(Qa(e)?"text()":e.nodeName.toLowerCase())+"["+(n=ns(ts(t=e)),r=At.findIndex(n,rs(t),t),n=n.slice(0,r+1),o=At.reduce(n,function(e,t,r){return Qa(t)&&Qa(n[r-1])&&e++,e},0),n=At.filter(n,vo.matchNodeNames(t.nodeName)),(r=At.findIndex(n,rs(t),t))-o)+"]"},is=function(e,t){var n,r,o,i,a,s=[];return n=t.container(),r=t.offset(),Qa(n)?o=function(e,t){for(;(e=e.previousSibling)&&Qa(e);)t+=e.data.length;return t}(n,r):(r>=(i=n.childNodes).length?(o="after",r=i.length-1):o="before",n=i[r]),s.push(os(n)),a=function(e,t,n){var r=[];for(t=t.parentNode;!(t===e||n&&n(t));t=t.parentNode)r.push(t);return r}(e,n),a=At.filter(a,ji.negate(vo.isBogus)),(s=s.concat(At.map(a,function(e){return os(e)}))).reverse().join("/")+","+o},as=function(e,t){var n,r,o;return t?(t=(n=t.split(","))[0].split("/"),o=n.length>1?n[1]:"before",(r=At.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),n=e,r=t[1],o=parseInt(t[2],10),i=ns(n),i=At.filter(i,function(e,t){return!Qa(e)||!Qa(i[t-1])}),(i=At.filter(i,vo.matchNodeNames(r)))[o]):null;var n,r,o,i},e))?Qa(r)?function(e,t){for(var n,r=e,o=0;Qa(r);){if(n=r.data.length,t>=o&&t<=o+n){e=r,t-=o;break}if(!Qa(r.nextSibling)){e=r,t=n;break}o+=n,r=r.nextSibling}return t>e.data.length&&(t=e.data.length),new ia(e,t)}(r,parseInt(o,10)):(o="after"===o?es(r)+1:es(r),new ia(r.parentNode,o)):null):null},ss=vo.isContentEditableFalse,us=function(e,t,n,r,o){var i,a=r[o?"startContainer":"endContainer"],s=r[o?"startOffset":"endOffset"],u=[],c=0,l=e.getRoot();for(vo.isText(a)?u.push(n?function(e,t,n){var r,o;for(o=e(t.data.slice(0,n)).length,r=t.previousSibling;r&&vo.isText(r);r=r.previousSibling)o+=e(r.data).length;return o}(t,a,s):s):(s>=(i=a.childNodes).length&&i.length&&(c=1,s=Math.max(0,i.length-1)),u.push(e.nodeIndex(i[s],n)+c));a&&a!==l;a=a.parentNode)u.push(e.nodeIndex(a,n));return u},cs=function(e){vo.isText(e)&&0===e.data.length&&e.parentNode.removeChild(e)},ls=function(e,t,n){var r=0;return Ot.each(e.select(t),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!==n&&void r++}),r},fs=function(e,t){var n,r,o,i=t?"start":"end";n=e[i+"Container"],r=e[i+"Offset"],vo.isElement(n)&&"TR"===n.nodeName&&(n=(o=n.childNodes)[Math.min(t?r:r-1,o.length-1)])&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r))},ds=function(e){return fs(e,!0),fs(e,!1),e},ms=function(e,t){var n;if(vo.isElement(e)&&(e=zi(e,t),ss(e)))return e;if(mi.isCaretContainer(e)){if(vo.isText(e)&&mi.isCaretContainerBlock(e)&&(e=e.parentNode),n=e.previousSibling,ss(n))return n;if(n=e.nextSibling,ss(n))return n}},ps=function(e,t,n){var r,o,i,a,s,u,c,l=n.getNode(),f=l?l.nodeName:null,d=n.getRng();return ss(l)||"IMG"===f?{name:f,index:ls(n.dom,f,l)}:(l=ms((r=d).startContainer,r.startOffset)||ms(r.endContainer,r.endOffset))?{name:f=l.tagName,index:ls(n.dom,f,l)}:(o=e,a=t,s=d,u=(i=n).dom,(c={}).start=us(u,o,a,s,!0),i.isCollapsed()||(c.end=us(u,o,a,s,!1)),c)},gs={getBookmark:function(e,t,n){return 2===t?ps(ii,n,e):3===t?(o=(r=e).getRng(),{start:is(r.dom.getRoot(),ia.fromRangeStart(o)),end:is(r.dom.getRoot(),ia.fromRangeEnd(o))}):t?{rng:e.getRng()}:function(e){var t=e.dom,n=e.getRng(),r=t.uniqueId(),o=e.isCollapsed(),i="overflow:hidden;line-height:0px",a=e.getNode(),s=a.nodeName;if("IMG"===s)return{name:s,index:ls(t,s,a)};var u=ds(n.cloneRange());if(!o){u.collapse(!1);var c=t.create("span",{"data-mce-type":"bookmark",id:r+"_end",style:i},"");u.insertNode(c),cs(c.nextSibling)}(n=ds(n)).collapse(!0);var l=t.create("span",{"data-mce-type":"bookmark",id:r+"_start",style:i},"");return n.insertNode(l),cs(l.previousSibling),e.moveToBookmark({id:r,keep:1}),{id:r}}(e);var r,o},getUndoBookmark:y.curry(ps,y.identity,!0)},hs=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return E.none();n.push(o.getOrDie())}return E.some(t.apply(null,n))},vs=function(e,t){return!e.isBlock(t)||t.innerHTML||me.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t},ys=function(e,t,n,r){var o,i,a,s,u=n[t?"start":"end"],c=e.getRoot();if(u){for(a=u[0],i=c,o=u.length-1;o>=1;o--){if(s=i.childNodes,u[o]>s.length-1)return;i=s[u[o]]}3===i.nodeType&&(a=Math.min(u[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(u[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},bs=function(e,t,n){var r,o,i,a,s,u,c=e.get(n.id+"_"+t),l=n.keep;if(c){if(r=c.parentNode,l?(r=c.firstChild,o=1):o=e.nodeIndex(c),s=r,u=o,!l){for(a=c.previousSibling,i=c.nextSibling,Ot.each(Ot.grep(c.childNodes),function(e){vo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});c=e.get(n.id+"_"+t);)e.remove(c,1);a&&i&&a.nodeType===i.nodeType&&vo.isText(a)&&!me.opera&&(o=a.nodeValue.length,a.appendData(i.nodeValue),e.remove(i),s=a,u=o)}return E.some(ia(s,u))}return E.none()},Cs=function(e,t){var n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v=e.dom;if(t){if(Ot.isArray(t.start))return g=t,h=(p=v).createRng(),ys(p,!0,g,h)&&ys(p,!1,g,h)?E.some(h):E.none();if("string"==typeof t.start)return E.some((f=t,d=(l=v).createRng(),m=as(l.getRoot(),f.start),d.setStart(m.container(),m.offset()),m=as(l.getRoot(),f.end),d.setEnd(m.container(),m.offset()),d));if(t.id)return u=bs(o=v,"start",i=t),c=bs(o,"end",i),hs([u,(a=c,s=u,a.isSome()?a:s)],function(e,t){var n=o.createRng();return n.setStart(vs(o,e.container()),e.offset()),n.setEnd(vs(o,t.container()),t.offset()),n});if(t.name)return n=v,r=t,E.from(n.select(r.name)[r.index]).map(function(e){var t=n.createRng();return t.selectNode(e),t});if(t.rng)return E.some(t.rng)}return E.none()},xs={getBookmark:function(e,t,n){return gs.getBookmark(e,t,n)},moveToBookmark:function(e,t){Cs(e,t).each(function(t){e.setRng(t)})},isBookmarkNode:function(e){return vo.isElement(e)&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")}},ws=Ot.each,Ns=function(e){this.compare=function(t,n){if(t.nodeName!==n.nodeName)return!1;var r=function(t){var n={};return ws(e.getAttribs(t),function(r){var o=r.nodeName.toLowerCase();0!==o.indexOf("_")&&"style"!==o&&0!==o.indexOf("data-")&&(n[o]=e.getAttrib(t,o))}),n},o=function(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(void 0===(n=t[r]))return!1;if(e[r]!==n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0};return!(!o(r(t),r(n))||!o(e.parseStyle(e.getAttrib(t,"style")),e.parseStyle(e.getAttrib(n,"style")))||xs.isBookmarkNode(t)||xs.isBookmarkNode(n))}},Es=function(e,t){Ur.parent(e).each(function(n){n.dom().insertBefore(t.dom(),e.dom())})},Ss=function(e,t){e.dom().appendChild(t.dom())},ks={before:Es,after:function(e,t){Ur.nextSibling(e).fold(function(){Ur.parent(e).each(function(e){Ss(e,t)})},function(e){Es(e,t)})},prepend:function(e,t){Ur.firstChild(e).fold(function(){Ss(e,t)},function(n){e.dom().insertBefore(t.dom(),n.dom())})},append:Ss,appendAt:function(e,t,n){Ur.child(e,n).fold(function(){Ss(e,t)},function(e){Es(e,t)})},wrap:function(e,t){Es(e,t),Ss(t,e)}},Ts=function(e,t){M.each(t,function(t){ks.before(e,t)})},As=function(e,t){M.each(t,function(t){ks.append(e,t)})},_s=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Bs={empty:function(e){e.dom().textContent="",M.each(Ur.children(e),function(e){_s(e)})},remove:_s,unwrap:function(e){var t=Ur.children(e);t.length>0&&Ts(e,t),_s(e)}},Rs=(aa=Zn.isText,sa="text",ua=function(e){return aa(e)?E.from(e.dom().nodeValue):E.none()},ca=Un.detect().browser,{get:function(e){if(!aa(e))throw new Error("Can only get "+sa+" value of a "+sa+" node");return la(e).getOr("")},getOption:la=ca.isIE()&&10===ca.version.major?function(e){try{return ua(e)}catch(yC){return E.none()}}:ua,set:function(e,t){if(!aa(e))throw new Error("Can only set raw "+sa+" value of a "+sa+" node");e.dom().nodeValue=t}}),Ds=function(e){return Rs.get(e)},Os=function(e,t){return _r.all(t,e)},Ps=function(e){var t=Os(e,"br"),n=M.filter(function(e){for(var t=[],n=e.dom();n;)t.push(Hn.fromDom(n)),n=n.lastChild;return t}(e).slice(-1),io.isBr);t.length===n.length&&M.each(n,Bs.remove)},Is=function(e){Bs.empty(e),ks.append(e,Hn.fromHtml('<br data-mce-bogus="1">'))},Ls=function(e){Ur.lastChild(e).each(function(t){Ur.prevSibling(t).each(function(n){io.isBlock(e)&&io.isBr(t)&&io.isBlock(n)&&Bs.remove(t)})})},Ms=Ot.makeMap,Fs=function(e){var t,n,r,o,i,a=[];return t=(e=e||{}).indent,n=Ms(e.indent_before||""),r=Ms(e.indent_after||""),o=Ao.getEncodeFunc(e.entity_encoding||"raw",e.entities),i="html"===e.element_format,{start:function(e,s,u){var c,l,f,d;if(t&&n[e]&&a.length>0&&(d=a[a.length-1]).length>0&&"\n"!==d&&a.push("\n"),a.push("<",e),s)for(c=0,l=s.length;c<l;c++)f=s[c],a.push(" ",f.name,'="',o(f.value,!0),'"');a[a.length]=!u||i?">":" />",u&&t&&r[e]&&a.length>0&&(d=a[a.length-1]).length>0&&"\n"!==d&&a.push("\n")},end:function(e){var n;a.push("</",e,">"),t&&r[e]&&a.length>0&&(n=a[a.length-1]).length>0&&"\n"!==n&&a.push("\n")},text:function(e,t){e.length>0&&(a[a.length]=t?e:o(e))},cdata:function(e){a.push("<![CDATA[",e,"]]>")},comment:function(e){a.push("\x3c!--",e,"--\x3e")},pi:function(e,n){n?a.push("<?",e," ",o(n),"?>"):a.push("<?",e,"?>"),t&&a.push("\n")},doctype:function(e){a.push("<!DOCTYPE",e,">",t?"\n":"")},reset:function(){a.length=0},getContent:function(){return a.join("").replace(/\n$/,"")}}},zs=function(e,t){var n={},r=Fs(e);return(e=e||{}).validate=!("validate"in e)||e.validate,n.schema=t=t||Fo(),n.writer=r,n.serialize=function(n){var o,i;i=e.validate,o={3:function(e){r.text(e.value,e.raw)},8:function(e){r.comment(e.value)},7:function(e){r.pi(e.name,e.value)},10:function(e){r.doctype(e.value)},4:function(e){r.cdata(e.value)},11:function(e){if(e=e.firstChild)do{a(e)}while(e=e.next)}},r.reset();var a=function(e){var n,s,u,c,l,f,d,m,p,g=o[e.type];if(g)g(e);else{if(n=e.name,s=e.shortEnded,u=e.attributes,i&&u&&u.length>1&&((f=[]).map={},p=t.getElementRule(e.name))){for(d=0,m=p.attributesOrder.length;d<m;d++)(c=p.attributesOrder[d])in u.map&&(l=u.map[c],f.map[c]=l,f.push({name:c,value:l}));for(d=0,m=u.length;d<m;d++)(c=u[d].name)in f.map||(l=u.map[c],f.map[c]=l,f.push({name:c,value:l}));u=f}if(r.start(e.name,u,s),!s){if(e=e.firstChild)do{a(e)}while(e=e.next);r.end(n)}}};return 1!==n.type||e.inner?o[11](n):a(n),r.getContent()},n},Us=function(e){return ia.isTextPosition(e)?0===e.offset():Ei(e.getNode())},Vs=function(e){return ia.isTextPosition(e)?e.offset()===e.container().data.length:Ei(e.getNode(!0))},Hs=function(e,t){return!ia.isTextPosition(e)&&!ia.isTextPosition(t)&&e.getNode()===t.getNode(!0)},qs=function(e,t,n){return e?!Hs(t,n)&&(r=t,!(!ia.isTextPosition(r)&&vo.isBr(r.getNode())))&&Vs(t)&&Us(n):!Hs(n,t)&&Us(t)&&Vs(n);var r},js=function(e,t,n){var r=Ha(t);return E.from(e?r.next(n):r.prev(n))},$s=function(e,t){var n,r,o,i,a,s=e?t.firstChild:t.lastChild;return vo.isText(s)?E.some(new ia(s,e?0:s.data.length)):s?Ei(s)?E.some(e?ia.before(s):(a=s,vo.isBr(a)?ia.before(a):ia.after(a))):(r=t,o=s,i=(n=e)?ia.before(o):ia.after(o),js(n,r,i)):E.none()},Ws={fromPosition:js,nextPosition:y.curry(js,!0),prevPosition:y.curry(js,!1),navigate:function(e,t,n){return js(e,t,n).bind(function(r){return _a.isInSameBlock(n,r,t)&&qs(e,n,r)?js(e,t,r):E.some(r)})},positionIn:$s,firstPositionIn:y.curry($s,!0),lastPositionIn:y.curry($s,!1)},Ks=function(e){var t=ia.fromRangeStart(e),n=ia.fromRangeEnd(e),r=e.commonAncestorContainer;return Ws.fromPosition(!1,r,n).map(function(o){return!_a.isInSameBlock(t,n,r)&&_a.isInSameBlock(t,o,r)?(i=t.container(),a=t.offset(),s=o.container(),u=o.offset(),(c=document.createRange()).setStart(i,a),c.setEnd(s,u),c):e;var i,a,s,u,c}).getOr(e)},Xs=function(e){return(t=e).collapsed?t:Ks(t);var t},Ys=vo.matchNodeNames("td th"),Gs=function(e,t,n){var r,o,i,a,s,u,c,l,f,d,m,p,g=e.schema.getTextInlineElements(),h=e.selection,v=e.dom;if(/^ | $/.test(t)&&(t=function(e){var t,n,r;t=h.getRng(),n=t.startContainer,r=t.startOffset;var o=function(e){return n[e]&&3===n[e].nodeType};return 3===n.nodeType&&(r>0?e=e.replace(/^ /," "):o("previousSibling")||(e=e.replace(/^ /," ")),r<n.length?e=e.replace(/ (<br>|)$/," "):o("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}(t)),r=e.parser,p=n.merge,o=zs({validate:e.settings.validate},e.schema),m='<span id="mce_marker" data-mce-type="bookmark">​</span>',u={content:t,format:"html",selection:!0,paste:n.paste},(u=e.fire("BeforeSetContent",u)).isDefaultPrevented())e.fire("SetContent",{content:u.content,format:"html",selection:!0,paste:n.paste});else{-1===(t=u.content).indexOf("{$caret}")&&(t+="{$caret}"),t=t.replace(/\{\$caret\}/,m);var y,b,C,x,w=(l=h.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=e.getBody();w===N&&h.isCollapsed()&&v.isBlock(N.firstChild)&&(y=N.firstChild)&&!e.schema.getShortEndedElements()[y.nodeName]&&v.isEmpty(N.firstChild)&&((l=v.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),h.setRng(l)),h.isCollapsed()||(e.selection.setRng(Xs(e.selection.getRng())),e.getDoc().execCommand("Delete",!1,null),C=(b=h.getRng()).startContainer,x=b.startOffset,3===C.nodeType&&b.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(t)||(t+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(t)||(t=" "+t))));var S,k,T,A={context:(i=h.getNode()).nodeName.toLowerCase(),data:n.data,insert:!0};if(s=r.parse(t,A),!0===n.paste&&Ya(e.schema,s)&&Ja(v,i))return l=Ga(o,v,e.selection.getRng(!0),s),e.selection.setRng(l),void e.fire("SetContent",u);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(s),"mce_marker"===(f=s.lastChild).attr("id"))for(c=f,f=f.prev;f;f=f.walk(!0))if(3===f.type||!v.isBlock(f.name)){e.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(e._selectionOverrides.showBlockCaretContainer(i),A.invalid){for(h.setContent(m),i=h.getNode(),a=e.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)i=f,f=f.parentNode;t=i===a?a.innerHTML:v.getOuterHTML(i),t=o.serialize(r.parse(t.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return o.serialize(s)}))),i===a?v.setHTML(a,t):v.setOuterHTML(i,t)}else t=o.serialize(s),function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}}(e,t,i);!function(){if(p){var t=e.getBody(),n=new Ns(v);Ot.each(v.select("*[data-mce-fragment]"),function(e){for(var r=e.parentNode;r&&r!==t;r=r.parentNode)g[e.nodeName.toLowerCase()]&&n.compare(r,e)&&v.remove(e,!0)})}}(),function(t){var n,r,o;if(t){if(h.scrollIntoView(t),n=function(t){for(var n=e.getBody();t&&t!==n;t=t.parentNode)if("false"===e.dom.getContentEditable(t))return t;return null}(t))return v.remove(t),void h.select(n);l=v.createRng(),(f=t.previousSibling)&&3===f.nodeType?(l.setStart(f,f.nodeValue.length),me.ie||(d=t.nextSibling)&&3===d.nodeType&&(f.appendData(d.data),d.parentNode.removeChild(d))):(l.setStartBefore(t),l.setEndBefore(t)),r=v.getParent(t,v.isBlock),v.remove(t),r&&v.isEmpty(r)&&(e.$(r).empty(),l.setStart(r,0),l.setEnd(r,0),Ys(r)||r.getAttribute("data-mce-fragment")||!(o=function(t){var n=ia.fromRangeStart(t);if(n=Ha(e.getBody()).next(n))return n.toRange()}(l))?v.add(r,v.create("br",{"data-mce-bogus":"1"})):(l=o,v.remove(r))),h.setRng(l)}}(v.get("mce_marker")),S=e.getBody(),Ot.each(S.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),k=e.dom,T=e.selection.getStart(),E.from(k.getParent(T,"td,th")).map(Hn.fromDom).each(Ls),e.fire("SetContent",u),e.addVisual()}},Js=function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Ot.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};Gs(e,o.content,o.details)},Qs=function(e,t,n,r,o){return e(n,r)?E.some(n):tr.isFunction(o)&&o(n)?E.none():t(n,r,o)},Zs=function(e,t,n){for(var r=e.dom(),o=tr.isFunction(n)?n:y.constant(!1);r.parentNode;){r=r.parentNode;var i=Hn.fromDom(r);if(t(i))return E.some(i);if(o(i))break}return E.none()},eu=function(e,t){return M.find(e.dom().childNodes,y.compose(t,Hn.fromDom)).map(Hn.fromDom)},tu=function(e,t){var n=function(e){for(var r=0;r<e.childNodes.length;r++){if(t(Hn.fromDom(e.childNodes[r])))return E.some(Hn.fromDom(e.childNodes[r]));var o=n(e.childNodes[r]);if(o.isSome())return o}return E.none()};return n(e.dom())},nu={first:function(e){return tu(gr.body(),e)},ancestor:Zs,closest:function(e,t,n){return Qs(function(e){return t(e)},Zs,e,t,n)},sibling:function(e,t){var n=e.dom();return n.parentNode?eu(Hn.fromDom(n.parentNode),function(n){return!Dr.eq(e,n)&&t(n)}):E.none()},child:eu,descendant:tu},ru=xr("sections","settings"),ou=Un.detect().deviceType.isTouch(),iu=["lists","autolink","autosave"],au={theme:"mobile"},su=function(e){var t=tr.isArray(e)?e.join(" "):e,n=M.map(tr.isString(t)?t.split(" "):[],On);return M.filter(n,function(e){return e.length>0})},uu=function(e,t){return e.sections().hasOwnProperty(t)},cu=function(e,t,n,r){var o,i,a=su(n.forced_plugins),s=su(r.plugins),u=e&&uu(t,"mobile")?(o=s,M.filter(o,y.curry(M.contains,iu))):s,c=(i=u,[].concat(su(a)).concat(su(i)));return Ot.extend(r,{plugins:c.join(" ")})},lu=function(e,t,n,r){var o,i,a,s,u,c,l,f,d,m,p,g,h,v=(o=["mobile"],i=r,a=sr.bifilter(i,function(e,t){return M.contains(o,t)}),ru(a.t,a.f)),y=Ot.extend(t,n,v.settings(),(p=e,h=(g=v).settings().inline,p&&uu(g,"mobile")&&!h?(l="mobile",f=au,d=v.sections(),m=d.hasOwnProperty(l)?d[l]:{},Ot.extend({},f,m)):{}),{validate:!0,content_editable:v.settings().inline,external_plugins:(s=n,u=v.settings(),c=u.external_plugins?u.external_plugins:{},s&&s.external_plugins?Ot.extend({},s.external_plugins,c):c)});return cu(e,v,n,y)},fu=function(e,t,n){return E.from(t.settings[n]).filter(e)},du=y.curry(fu,tr.isString),mu=function(e,t,n,r){var o,i,a=t in e.settings?e.settings[t]:n;return"hash"===r?(i={},"string"==typeof(o=a)?M.each(o.indexOf("=")>0?o.split(/[;,](?![^=;,]*(?:[;,]|$))/):o.split(","),function(e){(e=e.split("=")).length>1?i[Ot.trim(e[0])]=Ot.trim(e[1]):i[Ot.trim(e[0])]=Ot.trim(e)}):i=o,i):"string"===r?fu(tr.isString,e,t).getOr(n):"number"===r?fu(tr.isNumber,e,t).getOr(n):"boolean"===r?fu(tr.isBoolean,e,t).getOr(n):"object"===r?fu(tr.isObject,e,t).getOr(n):"array"===r?fu(tr.isArray,e,t).getOr(n):"function"===r?fu(tr.isFunction,e,t).getOr(n):a},pu=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,gu=function(e){return pu.test(e)},hu=function(e,t){var n=t.container(),r=t.offset();return e?mi.isCaretContainerInline(n)?vo.isText(n.nextSibling)?new ia(n.nextSibling,0):ia.after(n):mi.isBeforeInline(t)?new ia(n,r+1):t:mi.isCaretContainerInline(n)?vo.isText(n.previousSibling)?new ia(n.previousSibling,n.previousSibling.data.length):ia.before(n):mi.isAfterInline(t)?new ia(n,r-1):t},vu={isInlineTarget:function(e,t){var n=du(e,"inline_boundaries_selector").getOr("a[href],code");return _r.is(Hn.fromDom(t),n)},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,M.filter(Xo.DOM.getParents(i.container(),"*",o),r));return E.from(a[a.length-1])},isRtl:function(e){return"rtl"===Xo.DOM.getStyle(e,"direction",!0)||gu(e.textContent)},isAtZwsp:function(e){return mi.isBeforeInline(e)||mi.isAfterInline(e)},normalizePosition:hu,normalizeForwards:y.curry(hu,!0),normalizeBackwards:y.curry(hu,!1),hasSameParentBlock:function(e,t,n){var r=_a.getParentBlock(t,e),o=_a.getParentBlock(n,e);return r&&r===o}},yu=function(e,t){return Dr.contains(e,t)?nu.closest(t,function(e){return io.isTextBlock(e)||io.isListItem(e)},(n=e,function(e){return Dr.eq(n,Hn.fromDom(e.dom().parentNode))})):E.none();var n},bu=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},Cu=function(e,t,n){return hs([Ws.firstPositionIn(n),Ws.lastPositionIn(n)],function(r,o){var i=vu.normalizePosition(!0,r),a=vu.normalizePosition(!1,o),s=vu.normalizePosition(!1,t);return e?Ws.nextPosition(n,s).map(function(e){return e.isEqual(a)&&t.isEqual(i)}).getOr(!1):Ws.prevPosition(n,s).map(function(e){return e.isEqual(i)&&t.isEqual(a)}).getOr(!1)}).getOr(!0)},xu=function(e,t,n){return nu.ancestor(e,function(e){return _r.is(e,t)},n)},wu=xu,Nu=function(e,t){return _r.one(t,e)},Eu=function(e,t,n){return Qs(_r.is,xu,e,t,n)},Su=function(e,t,n){return wu(e,t,n).isSome()},ku=function(e,t){return vo.isText(t)&&/^[ \t\r\n]*$/.test(t.data)&&!1===(n=e,r=t,o=Hn.fromDom(n),i=Hn.fromDom(r),Su(i,"pre,code",y.curry(Dr.eq,o)));var n,r,o,i},Tu=function(e,t){return Ei(t)&&!1===ku(e,t)||(n=t,vo.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Au(t);var n},Au=vo.hasAttribute("data-mce-bookmark"),_u=vo.hasAttribute("data-mce-bogus"),Bu=vo.hasAttributeValue("data-mce-bogus","all"),Ru=function(e){return function(e){var t,n,r=0;if(Tu(e,e))return!1;if(!(n=e.firstChild))return!0;t=new to(n,e);do{if(Bu(n))n=t.next(!0);else if(_u(n))n=t.next();else if(vo.isBr(n))r++,n=t.next();else{if(Tu(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Du=xr("block","position"),Ou=xr("from","to"),Pu=function(e,t){var n=Hn.fromDom(e),r=Hn.fromDom(t.container());return yu(n,r).map(function(e){return Du(e,t)})},Iu=function(e,t,n){var r=Pu(e,ia.fromRangeStart(n)),o=r.bind(function(n){return Ws.fromPosition(t,e,n.position()).bind(function(n){return Pu(e,n).map(function(n){return r=e,o=t,i=n,vo.isBr(i.position().getNode())&&!1===Ru(i.block())?Ws.positionIn(!1,i.block().dom()).bind(function(e){return e.isEqual(i.position())?Ws.fromPosition(o,r,e).bind(function(e){return Pu(r,e)}):E.some(i)}).getOr(i):i;var r,o,i})})});return hs([r,o],Ou).filter(function(e){return r=e,!1===Dr.eq(r.from().block(),r.to().block())&&(n=e,Ur.parent(n.from().block()).bind(function(e){return Ur.parent(n.to().block()).filter(function(t){return Dr.eq(e,t)})}).isSome())&&(t=e,!1===vo.isContentEditableFalse(t.from().block())&&!1===vo.isContentEditableFalse(t.to().block()));var t,n,r})},Lu=function(e,t,n){return n.collapsed?Iu(e,t,n):E.none()},Mu=function(e,t,n){return Dr.contains(t,e)?Ur.parents(e,function(e){return n(e)||Dr.eq(e,t)}).slice(0,-1):[]},Fu=function(e,t){return Mu(e,t,y.constant(!1))},zu=Fu,Uu=function(e,t){return[e].concat(Fu(e,t))},Vu=function(e){var t,n,r=(t=e,n=Ur.children(t),M.findIndex(n,io.isBlock).fold(function(){return n},function(e){return n.slice(0,e)}));return M.each(r,function(e){Bs.remove(e)}),r},Hu=function(e,t){Ws.positionIn(e,t.dom()).each(function(e){var t=e.getNode();vo.isBr(t)&&Bs.remove(Hn.fromDom(t))})},qu=function(e,t){var n=Uu(t,e);return M.find(n.reverse(),Ru).each(Bs.remove)},ju=function(e,t){return Dr.contains(t,e)?Ur.parent(e).bind(function(n){return Dr.eq(n,t)?E.some(e):(r=t,o=e,i=Ur.parents(o,function(e){return Dr.eq(e,r)}),E.from(i[i.length-2]));var r,o,i}):E.none()},$u=function(e,t,n){if(Ru(n))return Bs.remove(n),Ru(t)&&Is(t),Ws.firstPositionIn(t.dom());Hu(!0,t),Hu(!1,n);var r=Vu(t);return ju(t,n).fold(function(){qu(e,t);var o=Ws.lastPositionIn(n.dom());return M.each(r,function(e){ks.append(n,e)}),o},function(o){var i=Ws.prevPosition(n.dom(),ia.before(o.dom()));return M.each(r,function(e){ks.before(o,e)}),qu(e,t),i})},Wu=function(e,t,n,r){return t?$u(e,r,n):$u(e,n,r)},Ku=function(e,t){var n,r=Hn.fromDom(e.getBody());return(n=Lu(r.dom(),t,e.selection.getRng()).bind(function(e){return Wu(r,t,e.from().block(),e.to().block())})).each(function(t){e.selection.setRng(t.toRange())}),n.isSome()},Xu=function(e,t){var n=Hn.fromDom(t),r=y.curry(Dr.eq,e);return nu.ancestor(n,io.isTableCell,r).isSome()},Yu=function(e,t){var n,r,o=Ws.prevPosition(e.dom(),ia.fromRangeStart(t)).isNone(),i=Ws.nextPosition(e.dom(),ia.fromRangeEnd(t)).isNone();return!(Xu(n=e,(r=t).startContainer)||Xu(n,r.endContainer))&&o&&i},Gu=function(e){var t,n,r,o,i=Hn.fromDom(e.getBody()),a=e.selection.getRng();return Yu(i,a)?((o=e).setContent(""),o.selection.setCursorLocation(),!0):(t=i,n=e.selection,r=n.getRng(),hs([yu(t,Hn.fromDom(r.startContainer)),yu(t,Hn.fromDom(r.endContainer))],function(e,o){return!1===Dr.eq(e,o)&&(r.deleteContents(),Wu(t,!0,e,o).each(function(e){n.setRng(e.toRange())}),!0)}).getOr(!1))},Ju=function(e,t){return!e.selection.isCollapsed()&&Gu(e)},Qu=function(e){if(!tr.isArray(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");var t=[],n={};return M.each(e,function(r,o){var i=sr.keys(r);if(1!==i.length)throw new Error("one and only one name per case");var a=i[0],s=r[a];if(n[a]!==undefined)throw new Error("duplicate key detected:"+a);if("cata"===a)throw new Error("cannot have a case named cata (sorry)");if(!tr.isArray(s))throw new Error("case arguments must be an array");t.push(a),n[a]=function(){var n=arguments.length;if(n!==s.length)throw new Error("Wrong number of arguments to case "+a+". Expected "+s.length+" ("+s+"), got "+n);for(var r=new Array(n),i=0;i<r.length;i++)r[i]=arguments[i];return{fold:function(){if(arguments.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+arguments.length);return arguments[o].apply(null,r)},match:function(e){var n=sr.keys(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!M.forall(t,function(e){return M.contains(n,e)}))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[a].apply(null,r)},log:function(e){console.log(e,{constructors:t,constructor:a,params:r})}}}}),n},Zu=Qu([{remove:["element"]},{moveToElement:["element"]},{moveToPosition:["position"]}]),ec=function(e,t,n,r){var o=r.getNode(!1===t);return yu(Hn.fromDom(e),Hn.fromDom(n.getNode())).map(function(e){return Ru(e)?Zu.remove(e.dom()):Zu.moveToElement(o)}).orThunk(function(){return E.some(Zu.moveToElement(o))})},tc=function(e,t,n){return Ws.fromPosition(t,e,n).bind(function(r){return t&&vo.isContentEditableFalse(r.getNode())?ec(e,t,n,r):!1===t&&vo.isContentEditableFalse(r.getNode(!0))?ec(e,t,n,r):t&&_a.isAfterContentEditableFalse(n)?E.some(Zu.moveToPosition(r)):!1===t&&_a.isBeforeContentEditableFalse(n)?E.some(Zu.moveToPosition(r)):E.none()})},nc=function(e,t,n){return i=t,a=n.getNode(!1===i),s=i?"after":"before",vo.isElement(a)&&a.getAttribute("data-mce-caret")===s?(r=t,o=n.getNode(!1===t),r&&vo.isContentEditableFalse(o.nextSibling)?E.some(Zu.moveToElement(o.nextSibling)):!1===r&&vo.isContentEditableFalse(o.previousSibling)?E.some(Zu.moveToElement(o.previousSibling)):E.none()).fold(function(){return tc(e,t,n)},E.some):tc(e,t,n).bind(function(t){return r=e,o=n,t.fold(function(e){return E.some(Zu.remove(e))},function(e){return E.some(Zu.moveToElement(e))},function(e){return _a.isInSameBlock(o,e,r)?E.none():E.some(Zu.moveToPosition(e))});var r,o});var r,o,i,a,s},rc=function(e,t,n){var r=_a.normalizeRange(t?1:-1,e,n),o=ia.fromRangeStart(r);return!1===t&&_a.isAfterContentEditableFalse(o)?E.some(Zu.remove(o.getNode(!0))):t&&_a.isBeforeContentEditableFalse(o)?E.some(Zu.remove(o.getNode())):nc(e,t,o)},oc=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===ia.isTextPosition(n)&&o===r.parentNode&&i>ia.before(r).offset()?new ia(t.container(),t.offset()-1):t;var n,r,o,i},ic=function(e){return Ei(e.previousSibling)?E.some((t=e.previousSibling,vo.isText(t)?new ia(t,t.data.length):ia.after(t))):e.previousSibling?Ws.lastPositionIn(e.previousSibling):E.none();var t},ac=function(e){return Ei(e.nextSibling)?E.some((t=e.nextSibling,vo.isText(t)?new ia(t,0):ia.before(t))):e.nextSibling?Ws.firstPositionIn(e.nextSibling):E.none();var t},sc=function(e,t){return ic(t).orThunk(function(){return ac(t)}).orThunk(function(){return n=e,r=t,o=ia.before(r.previousSibling?r.previousSibling:r.parentNode),Ws.prevPosition(n,o).fold(function(){return Ws.nextPosition(n,ia.after(r))},E.some);var n,r,o})},uc=function(e,t){return ac(t).orThunk(function(){return ic(t)}).orThunk(function(){return n=e,r=t,Ws.nextPosition(n,ia.after(r)).fold(function(){return Ws.prevPosition(n,ia.before(r))},E.some);var n,r})},cc=function(e,t,n){return(r=e,o=t,i=n,r?uc(o,i):sc(o,i)).map(y.curry(oc,n));var r,o,i},lc=function(e,t,n){n.fold(function(){e.focus()},function(n){e.selection.setRng(n.toRange(),t)})},fc=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(Zn.name(t))},dc=function(e){if(Ru(e)){var t=Hn.fromHtml('<br data-mce-bogus="1">');return Bs.empty(e),ks.append(e,t),E.some(ia.before(t.dom()))}return E.none()},mc=function(e,t,n){var r,o,i,a=cc(t,e.getBody(),n.dom()),s=nu.ancestor(n,y.curry(fc,e),(r=e.getBody(),function(e){return e.dom()===r})),u=(o=n,i=a,hs([Ur.prevSibling(o),Ur.nextSibling(o),i],function(e,t,n){var r,i=e.dom(),a=t.dom();return vo.isText(i)&&vo.isText(a)?(r=i.data.length,i.appendData(a.data),Bs.remove(t),Bs.remove(o),n.container()===a?new ia(i,r):n):(Bs.remove(o),n)}).orThunk(function(){return Bs.remove(o),i}));e.dom.isEmpty(e.getBody())?(e.setContent(""),e.selection.setCursorLocation()):s.bind(dc).fold(function(){lc(e,t,u)},function(n){lc(e,t,E.some(n))})},pc=function(e,t){return rc(e.getBody(),t,e.selection.getRng()).map(function(n){return n.fold((a=e,s=t,function(e){return a._selectionOverrides.hideFakeCaret(),mc(a,s,Hn.fromDom(e)),!0}),(o=e,i=t,function(e){var t=i?ia.before(e):ia.after(e);return o.selection.setRng(t.toRange()),!0}),(r=e,function(e){return r.selection.setRng(e.toRange()),!0}));var r,o,i,a,s}).getOr(!1)},gc=function(e,t){var n,r=e.selection.getNode();return!!vo.isContentEditableFalse(r)&&(n=Hn.fromDom(e.getBody()),M.each(Os(n,".mce-offscreen-selection"),Bs.remove),mc(e,t,Hn.fromDom(e.selection.getNode())),bu(e),!0)},hc=function(e,t){return e.selection.isCollapsed()?pc(e,t):gc(e,t)},vc=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(vo.isContentEditableTrue(t)||vo.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return vo.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(ia.before(t).toRange())),!0},yc=vo.isText,bc=function(e){return yc(e)&&e.data[0]===oi},Cc=function(e){return yc(e)&&e.data[e.data.length-1]===oi},xc=function(e){return e.ownerDocument.createTextNode(oi)},wc=function(e,t){return e?function(e){if(yc(e.previousSibling))return Cc(e.previousSibling)?e.previousSibling:(e.previousSibling.appendData(oi),e.previousSibling);if(yc(e))return bc(e)?e:(e.insertData(0,oi),e);var t=xc(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(yc(e.nextSibling))return bc(e.nextSibling)?e.nextSibling:(e.nextSibling.insertData(0,oi),e.nextSibling);if(yc(e))return Cc(e)?e:(e.appendData(oi),e);var t=xc(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},Nc={insertInline:wc,insertInlineBefore:y.curry(wc,!0),insertInlineAfter:y.curry(wc,!1)},Ec=vo.isElement,Sc=vo.isText,kc=function(e){var t=e.parentNode;t&&t.removeChild(e)},Tc=function(e,t){0===t.length?kc(e):e.nodeValue=t},Ac=function(e){var t=ii(e);return{count:e.length-t.length,text:t}},_c=function(e,t){return Dc(e),t},Bc=function(e,t){return t.container()===e?(r=t,o=Ac((n=e).data.substr(0,r.offset())),i=Ac(n.data.substr(r.offset())),(a=o.text+i.text).length>0?(Tc(n,a),new ia(n,r.offset()-o.count)):r):_c(e,t);var n,r,o,i,a},Rc=function(e,t){return t.container()===e.parentNode?(n=e,o=(r=t).container(),i=M.indexOf(o.childNodes,n).map(function(e){return e<r.offset()?new ia(o,r.offset()-1):r}).getOr(r),Dc(n),i):_c(e,t);var n,r,o,i},Dc=function(e){if(Ec(e)&&mi.isCaretContainer(e)&&(mi.hasContent(e)?e.removeAttribute("data-mce-caret"):kc(e)),Sc(e)){var t=ii(function(e){try{return e.nodeValue}catch(t){return""}}(e));Tc(e,t)}},Oc={removeAndReposition:function(e,t){return ia.isTextPosition(t)?Bc(e,t):Rc(e,t)},remove:Dc},Pc=function(e,t){return vo.isText(e.container())?Nc.insertInline(t,e.container()):Nc.insertInline(t,e.getNode())},Ic=function(e,t){var n=t.get();return n&&e.container()===n&&mi.isCaretContainerInline(n)},Lc=function(e,t){return t.fold(function(t){Oc.remove(e.get());var n=Nc.insertInlineBefore(t);return e.set(n),E.some(new ia(n,n.length-1))},function(t){return Ws.firstPositionIn(t).map(function(t){if(Ic(t,e))return new ia(e.get(),1);Oc.remove(e.get());var n=Pc(t,!0);return e.set(n),new ia(n,1)})},function(t){return Ws.lastPositionIn(t).map(function(t){if(Ic(t,e))return new ia(e.get(),e.get().length-1);Oc.remove(e.get());var n=Pc(t,!1);return e.set(n),new ia(n,n.length-1)})},function(t){Oc.remove(e.get());var n=Nc.insertInlineAfter(t);return e.set(n),E.some(new ia(n,1))})},Mc=function(e){return e&&/^(IMG)$/.test(e.nodeName)},Fc=function(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)},zc=function(e,t,n){return"color"!==n&&"backgroundColor"!==n||(t=e.toHex(t)),"fontWeight"===n&&700===t&&(t="bold"),"fontFamily"===n&&(t=t.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+t},Uc={isInlineBlock:Mc,moveStart:function(e,t,n){var r,o,i,a=n.startContainer,s=n.startOffset;if((n.startContainer!==n.endContainer||!Mc(n.startContainer.childNodes[n.startOffset]))&&(3===a.nodeType&&s>=a.nodeValue.length&&(s=e.nodeIndex(a),a=a.parentNode),1===a.nodeType))for(s<(i=a.childNodes).length?(a=i[s],r=new to(a,e.getParent(a,e.isBlock))):(a=i[i.length-1],(r=new to(a,e.getParent(a,e.isBlock))).next(!0)),o=r.current();o;o=r.next())if(3===o.nodeType&&!Fc(o))return n.setStart(o,0),void t.setRng(n)},getNonWhiteSpaceSibling:function(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1===e.nodeType||!Fc(e))return e},isTextBlock:function(e,t){return t.nodeType&&(t=t.nodeName),!!e.schema.getTextBlockElements()[t.toLowerCase()]},isValid:function(e,t,n){return e.schema.isValidChild(t,n)},isWhiteSpaceNode:Fc,replaceVars:function(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e},isEq:function(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()===t.toLowerCase()},normalizeStyleValue:zc,getStyle:function(e,t,n){return zc(e,e.getStyle(t,n),n)},getTextDecoration:function(e,t){var n;return e.getParent(t,function(t){return(n=e.getStyle(t,"text-decoration"))&&"none"!==n}),n},getParents:function(e,t,n){return e.getParents(t,n,e.getRoot())}},Vc=xs.isBookmarkNode,Hc=Uc.getParents,qc=Uc.isWhiteSpaceNode,jc=Uc.isTextBlock,$c=function(e,t){for(void 0===t&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)(e=e.childNodes[t])&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}},Wc=function(e,t){for(var n=t;n;){if(1===n.nodeType&&e.getContentEditable(n))return"false"===e.getContentEditable(n)?n:t;n=n.parentNode}return t},Kc=function(e,t,n,r){var o,i,a=n.nodeValue;return void 0===r&&(r=e?a.length:0),e?-1===(o=(o=a.lastIndexOf(" ",r))>(i=a.lastIndexOf("\xa0",r))?o:i)||t||o++:(o=a.indexOf(" ",r),i=a.indexOf("\xa0",r),o=-1!==o&&(-1===i||o<i)?o:i),o},Xc=function(e,t,n,r,o,i){var a,s,u,c;if(3===n.nodeType){if(-1!==(u=Kc(o,i,n,r)))return{container:n,offset:u};c=n}for(a=new to(n,e.getParent(n,e.isBlock)||t);s=a[o?"prev":"next"]();)if(3===s.nodeType){if(c=s,-1!==(u=Kc(o,i,s)))return{container:s,offset:u}}else if(e.isBlock(s))break;if(c)return{container:c,offset:r=o?0:c.length}},Yc=function(e,t,n,r,o){var i,a,s,u;for(3===r.nodeType&&0===r.nodeValue.length&&r[o]&&(r=r[o]),i=Hc(e,r),a=0;a<i.length;a++)for(s=0;s<t.length;s++)if(!("collapsed"in(u=t[s])&&u.collapsed!==n.collapsed)&&e.is(i[a],u.selector))return i[a];return r},Gc=function(e,t,n,r){var o,i=e.dom,a=i.getRoot();if(t[0].wrapper||(o=i.getParent(n,t[0].block,a)),!o){var s=i.getParent(n,"LI,TD,TH");o=i.getParent(3===n.nodeType?n.parentNode:n,function(t){return t!==a&&jc(e,t)},s)}if(o&&t[0].wrapper&&(o=Hc(i,o,"ul,ol").reverse()[0]||o),!o)for(o=n;o[r]&&!i.isBlock(o[r])&&(o=o[r],!Uc.isEq(o,"br")););return o||n},Jc=function(e,t,n,r,o,i,a){var s,u,c,l,f,d;if(s=u=a?n:o,l=a?"previousSibling":"nextSibling",f=e.getRoot(),3===s.nodeType&&!qc(s)&&(a?r>0:i<s.nodeValue.length))return s;for(;;){if(!t[0].block_expand&&e.isBlock(u))return u;for(c=u[l];c;c=c[l])if(!Vc(c)&&!qc(c)&&("BR"!==(d=c).nodeName||!d.getAttribute("data-mce-bogus")||d.nextSibling))return u;if(u===f||u.parentNode===f){s=u;break}u=u.parentNode}return s},Qc=function(e,t,n,r){var o,i=t.startContainer,a=t.startOffset,s=t.endContainer,u=t.endOffset,c=e.dom;return 1===i.nodeType&&i.hasChildNodes()&&3===(i=zi(i,a)).nodeType&&(a=0),1===s.nodeType&&s.hasChildNodes()&&3===(s=zi(s,t.collapsed?u:u-1)).nodeType&&(u=s.nodeValue.length),i=Wc(c,i),s=Wc(c,s),(Vc(i.parentNode)||Vc(i))&&3===(i=(i=Vc(i)?i:i.parentNode).nextSibling||i).nodeType&&(a=0),(Vc(s.parentNode)||Vc(s))&&3===(s=(s=Vc(s)?s:s.parentNode).previousSibling||s).nodeType&&(u=s.length),n[0].inline&&(t.collapsed&&((o=Xc(c,e.getBody(),i,a,!0,r))&&(i=o.container,a=o.offset),(o=Xc(c,e.getBody(),s,u,!1,r))&&(s=o.container,u=o.offset)),s=r?s:function(e,t){var n=$c(e,t);if(n.node){for(;n.node&&0===n.offset&&n.node.previousSibling;)n=$c(n.node.previousSibling);n.node&&n.offset>0&&3===n.node.nodeType&&" "===n.node.nodeValue.charAt(n.offset-1)&&n.offset>1&&(e=n.node).splitText(n.offset-1)}return e}(s,u)),(n[0].inline||n[0].block_expand)&&(n[0].inline&&3===i.nodeType&&0!==a||(i=Jc(c,n,i,a,s,u,!0)),n[0].inline&&3===s.nodeType&&u!==s.nodeValue.length||(s=Jc(c,n,i,a,s,u,!1))),n[0].selector&&!1!==n[0].expand&&!n[0].inline&&(i=Yc(c,n,t,i,"previousSibling"),s=Yc(c,n,t,s,"nextSibling")),(n[0].block||n[0].selector)&&(i=Gc(e,n,i,"previousSibling"),s=Gc(e,n,s,"nextSibling"),n[0].block&&(c.isBlock(i)||(i=Jc(c,n,i,a,s,u,!0)),c.isBlock(s)||(s=Jc(c,n,i,a,s,u,!1)))),1===i.nodeType&&(a=c.nodeIndex(i),i=i.parentNode),1===s.nodeType&&(u=c.nodeIndex(s)+1,s=s.parentNode),{startContainer:i,startOffset:a,endContainer:s,endOffset:u}},Zc=Uc.isEq,el=function(e,t,n){var r=e.formatter.get(n);if(r)for(var o=0;o<r.length;o++)if(!1===r[o].inherit&&e.dom.is(t,r[o].selector))return!0;return!1},tl=function(e,t,n,r){var o=e.dom.getRoot();return t!==o&&(t=e.dom.getParent(t,function(t){return!!el(e,t,n)||t.parentNode===o||!!ol(e,t,n,r,!0)}),ol(e,t,n,r))},nl=function(e,t,n){return!!Zc(t,n.inline)||!!Zc(t,n.block)||(n.selector?1===t.nodeType&&e.is(t,n.selector):void 0)},rl=function(e,t,n,r,o,i){var a,s,u,c=n[r];if(n.onmatch)return n.onmatch(t,n,r);if(c)if("undefined"==typeof c.length){for(a in c)if(c.hasOwnProperty(a)){if(s="attributes"===r?e.getAttrib(t,a):Uc.getStyle(e,t,a),o&&!s&&!n.exact)return;if((!o||n.exact)&&!Zc(s,Uc.normalizeStyleValue(e,Uc.replaceVars(c[a],i),a)))return}}else for(u=0;u<c.length;u++)if("attributes"===r?e.getAttrib(t,c[u]):Uc.getStyle(e,t,c[u]))return n;return n},ol=function(e,t,n,r,o){var i,a,s,u,c=e.formatter.get(n),l=e.dom;if(c&&t)for(a=0;a<c.length;a++)if(i=c[a],nl(e.dom,t,i)&&rl(l,t,i,"attributes",o,r)&&rl(l,t,i,"styles",o,r)){if(u=i.classes)for(s=0;s<u.length;s++)if(!e.dom.hasClass(t,u[s]))return;return i}},il={matchNode:ol,matchName:nl,match:function(e,t,n,r){var o;return r?tl(e,r,t,n):(r=e.selection.getNode(),!!tl(e,r,t,n)||!((o=e.selection.getStart())===r||!tl(e,o,t,n)))},matchAll:function(e,t,n){var r,o=[],i={};return r=e.selection.getStart(),e.dom.getParent(r,function(r){var a,s;for(a=0;a<t.length;a++)s=t[a],!i[s]&&ol(e,r,s,n)&&(i[s]=!0,o.push(s))},e.dom.getRoot()),o},canApply:function(e,t){var n,r,o,i,a,s=e.formatter.get(t),u=e.dom;if(s)for(n=e.selection.getStart(),r=Uc.getParents(u,n),i=s.length-1;i>=0;i--){if(!(a=s[i].selector)||s[i].defaultBlock)return!0;for(o=r.length-1;o>=0;o--)if(u.is(r[o],a))return!0}return!1},matchesUnInheritedFormatSelector:el},al=function(e,t){return e.splitText(t)},sl={split:function(e){var t=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset;return t===r&&vo.isText(t)?n>0&&n<t.nodeValue.length&&(t=(r=al(t,n)).previousSibling,o>n?(t=r=al(r,o-=n).previousSibling,o=r.nodeValue.length,n=0):o=0):(vo.isText(t)&&n>0&&n<t.nodeValue.length&&(t=al(t,n),n=0),vo.isText(r)&&o>0&&o<r.nodeValue.length&&(o=(r=al(r,o).previousSibling).nodeValue.length)),{startContainer:t,startOffset:n,endContainer:r,endOffset:o}}},ul=oi,cl="_mce_caret",ll=function(e){return 1===e.nodeType&&e.id===cl},fl=function(e){return function(e){for(var t=[];e;){if(3===e.nodeType&&e.nodeValue!==ul||e.childNodes.length>1)return[];1===e.nodeType&&t.push(e),e=e.firstChild}return t}(e).length>0},dl=function(e){var t;if(e)for(e=(t=new to(e,e)).current();e;e=t.next())if(3===e.nodeType)return e;return null},ml=function(e){var t=Hn.fromTag("span");return dr.setAll(t,{id:cl,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&ks.append(t,Hn.fromText(ul)),t},pl=function(e,t){for(;t&&t!==e;){if(t.id===cl)return t;t=t.parentNode}return null},gl=function(e,t,n,r){var o,i,a,s;o=t.getRng(!0),i=e.getParent(n,e.isBlock),fl(n)?(!1!==r&&(o.setStartBefore(n),o.setEndBefore(n)),e.remove(n)):((s=dl(n))&&s.nodeValue.charAt(0)===ul&&s.deleteData(0,1),a=s,o.startContainer===a&&o.startOffset>0&&o.setStart(a,o.startOffset-1),o.endContainer===a&&o.endOffset>0&&o.setEnd(a,o.endOffset-1),e.remove(n,!0)),i&&e.isEmpty(i)&&Is(Hn.fromDom(i)),t.setRng(o)},hl=function(e,t,n,r,o){if(r)gl(t,n,r,o);else if(!(r=pl(e,n.getStart())))for(;r=t.get(cl);)gl(t,n,r,!1)},vl=function(e,t,n){var r=e.dom,o=r.getParent(n,ji.curry(Uc.isTextBlock,e));o&&r.isEmpty(o)?n.parentNode.replaceChild(t,n):(Ps(Hn.fromDom(n)),r.isEmpty(n)?n.parentNode.replaceChild(t,n):r.insertAfter(t,n))},yl=function(e,t){return e.appendChild(t),t},bl=function(e,t){var n=M.foldr(e,function(e,t){return yl(e,t.cloneNode(!1))},t);return yl(n,n.ownerDocument.createTextNode(ul))},Cl=function(e){var t=e.dom,n=e.selection,r=e.getBody();e.on("mouseup keydown",function(e){var o,i,a,s;o=r,i=t,a=n,s=e.keyCode,hl(o,i,a,null,!1),8===s&&a.isCollapsed()&&a.getStart().innerHTML===ul&&hl(o,i,a,pl(o,a.getStart())),37!==s&&39!==s||hl(o,i,a,pl(o,a.getStart()))})},xl=function(e,t,n){var r,o,i,a,s,u,c=e.selection;a=(r=c.getRng(!0)).startOffset,u=r.startContainer.nodeValue,(o=pl(e.getBody(),c.getStart()))&&(i=dl(o));var l,f,d=/[^\s\u00a0\u00ad\u200b\ufeff]/;u&&a>0&&a<u.length&&d.test(u.charAt(a))&&d.test(u.charAt(a-1))?(s=c.getBookmark(),r.collapse(!0),r=Qc(e,r,e.formatter.get(t)),r=sl.split(r),e.formatter.apply(t,n,r),c.moveToBookmark(s)):(o&&i.nodeValue===ul?e.formatter.apply(t,n,o):(l=e.getDoc(),f=ml(!0).dom(),i=(o=l.importNode(f,!0)).firstChild,r.insertNode(o),a=1,e.formatter.apply(t,n,o)),c.setCursorLocation(i,a))},wl=function(e,t,n,r){var o,i,a,s,u,c,l,f=e.dom,d=e.selection,m=[],p=d.getRng();for(o=p.startContainer,i=p.startOffset,u=o,3===o.nodeType&&(i!==o.nodeValue.length&&(s=!0),u=u.parentNode);u;){if(il.matchNode(e,u,t,n,r)){c=u;break}u.nextSibling&&(s=!0),m.push(u),u=u.parentNode}if(c)if(s){a=d.getBookmark(),p.collapse(!0);var g=Qc(e,p,e.formatter.get(t),!0);g=sl.split(g),e.formatter.remove(t,n,g),d.moveToBookmark(a)}else{l=pl(e.getBody(),c);var h=ml(!1).dom(),v=bl(m,h);vl(e,h,l||c),gl(f,d,l,!1),d.setCursorLocation(v,1),f.isEmpty(c)&&f.remove(c)}},Nl=ll,El=pl,Sl=function(e,t){var n=ml(!1),r=bl(t,n.dom());return ks.before(Hn.fromDom(e),n),Bs.remove(Hn.fromDom(e)),ia(r,0)},kl=function(e,t){return e.schema.getTextInlineElements().hasOwnProperty(Zn.name(t))&&!ll(t.dom())&&!vo.isBogus(t.dom())},Tl=function(e,t){for(var n=0;n<e.length;n++){var r=e[n].apply(null,t);if(r.isSome())return r}return E.none()},Al=Qu([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),_l=function(e,t){var n=_a.getParentBlock(t,e);return n||e},Bl=function(e,t,n){var r=vu.normalizeForwards(n),o=_l(t,r.container());return vu.findRootInline(e,o,r).fold(function(){return Ws.nextPosition(o,r).bind(y.curry(vu.findRootInline,e,o)).map(function(e){return Al.before(e)})},E.none)},Rl=function(e,t){return null===El(e,t)},Dl=function(e,t,n){return vu.findRootInline(e,t,n).filter(y.curry(Rl,t))},Ol=function(e,t,n){var r=vu.normalizeBackwards(n);return Dl(e,t,r).bind(function(e){return Ws.prevPosition(e,r).isNone()?E.some(Al.start(e)):E.none()})},Pl=function(e,t,n){var r=vu.normalizeForwards(n);return Dl(e,t,r).bind(function(e){return Ws.nextPosition(e,r).isNone()?E.some(Al.end(e)):E.none()})},Il=function(e,t,n){var r=vu.normalizeBackwards(n),o=_l(t,r.container());return vu.findRootInline(e,o,r).fold(function(){return Ws.prevPosition(o,r).bind(y.curry(vu.findRootInline,e,o)).map(function(e){return Al.after(e)})},E.none)},Ll=function(e){return!1===vu.isRtl(Fl(e))},Ml=function(e,t,n){return Tl([Bl,Ol,Pl,Il],[e,t,n]).filter(Ll)},Fl=function(e){return e.fold(y.identity,y.identity,y.identity,y.identity)},zl=function(e){return e.fold(y.constant("before"),y.constant("start"),y.constant("end"),y.constant("after"))},Ul=function(e){return e.fold(Al.before,Al.before,Al.after,Al.after)},Vl=function(e,t,n,r,o,i){return hs([vu.findRootInline(t,n,r),vu.findRootInline(t,n,o)],function(t,r){return t!==r&&vu.hasSameParentBlock(n,t,r)?Al.after(e?t:r):i}).getOr(i)},Hl=function(e,t){return e.fold(y.constant(!0),function(e){return r=t,!(zl(n=e)===zl(r)&&Fl(n)===Fl(r));var n,r})},ql=function(e,t){return e?t.fold(y.compose(E.some,Al.start),E.none,y.compose(E.some,Al.after),E.none):t.fold(E.none,y.compose(E.some,Al.before),E.none,y.compose(E.some,Al.end))},jl=function(e,t,n,r){var o=vu.normalizePosition(e,r),i=Ml(t,n,o);return Ml(t,n,o).bind(y.curry(ql,e)).orThunk(function(){return o=e,a=t,s=n,u=i,c=r,l=vu.normalizePosition(o,c),Ws.fromPosition(o,s,l).map(y.curry(vu.normalizePosition,o)).fold(function(){return u.map(Ul)},function(e){return Ml(a,s,e).map(y.curry(Vl,o,a,s,l,e)).filter(y.curry(Hl,u))}).filter(Ll);var o,a,s,u,c,l})},$l=Ml,Wl=jl,Kl=(y.curry(jl,!1),y.curry(jl,!0),Ul),Xl=function(e){return e.fold(Al.start,Al.start,Al.end,Al.end)},Yl=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Yl(n())}}},Gl=function(e){return tr.isFunction(e.selection.getSel().modify)},Jl=function(e,t,n){var r=e?1:-1;return t.setRng(ia(n.container(),n.offset()+r).toRange()),t.getSel().modify("move",e?"forward":"backward","word"),!0},Ql=function(e,t){var n=t.selection.getRng(),r=e?ia.fromRangeEnd(n):ia.fromRangeStart(n);return!!Gl(t)&&(e&&mi.isBeforeInline(r)?Jl(!0,t.selection,r):!(e||!mi.isAfterInline(r))&&Jl(!1,t.selection,r))},Zl=function(e,t){var n=e.dom.createRng();n.setStart(t.container(),t.offset()),n.setEnd(t.container(),t.offset()),e.selection.setRng(n)},ef=function(e){return!1!==e.settings.inline_boundaries},tf=function(e,t){e?t.setAttribute("data-mce-selected","inline-boundary"):t.removeAttribute("data-mce-selected")},nf=function(e,t,n){return Lc(t,n).map(function(t){return Zl(e,t),n})},rf=function(e,t,n){return function(){return!!ef(t)&&Ql(e,t)}},of={move:function(e,t,n){return function(){return!!ef(e)&&(r=e,o=t,i=n,a=r.getBody(),s=ia.fromRangeStart(r.selection.getRng()),u=y.curry(vu.isInlineTarget,r),Wl(i,u,a,s).bind(function(e){return nf(r,o,e)})).isSome();var r,o,i,a,s,u}},moveNextWord:y.curry(rf,!0),movePrevWord:y.curry(rf,!1),setupSelectedState:function(e){var t=new Yl(null),n=y.curry(vu.isInlineTarget,e);return e.on("NodeChange",function(r){var o,i,a,s,u;ef(e)&&(o=n,i=e.dom,a=r.parents,s=M.filter(i.select('*[data-mce-selected="inline-boundary"]'),o),u=M.filter(a,o),M.each(M.difference(s,u),y.curry(tf,!1)),M.each(M.difference(u,s),y.curry(tf,!0)),function(e,t){if(e.selection.isCollapsed()&&!0!==e.composing&&t.get()){var n=ia.fromRangeStart(e.selection.getRng());ia.isTextPosition(n)&&!1===vu.isAtZwsp(n)&&(Zl(e,Oc.removeAndReposition(t.get(),n)),t.set(null))}}(e,t),function(e,t,n,r){if(t.selection.isCollapsed()){var o=M.filter(r,e);M.each(o,function(r){var o=ia.fromRangeStart(t.selection.getRng());$l(e,t.getBody(),o).bind(function(e){return nf(t,n,e)})})}}(n,e,t,r.parents))}),t},setCaretPosition:Zl},af=function(e,t){return function(n){return Lc(t,n).map(function(t){return of.setCaretPosition(e,t),!0}).getOr(!1)}},sf=function(e,t,n,r){var o=e.getBody(),i=y.curry(vu.isInlineTarget,e);e.undoManager.ignore(function(){var a,s,u;e.selection.setRng((a=n,s=r,(u=document.createRange()).setStart(a.container(),a.offset()),u.setEnd(s.container(),s.offset()),u)),e.execCommand("Delete"),$l(i,o,ia.fromRangeStart(e.selection.getRng())).map(Xl).map(af(e,t))}),e.nodeChanged()},uf=function(e,t,n,r){var o,i,a=(o=e.getBody(),i=r.container(),_a.getParentBlock(i,o)||o),s=y.curry(vu.isInlineTarget,e),u=$l(s,a,r);return u.bind(function(e){return n?e.fold(y.constant(E.some(Xl(e))),E.none,y.constant(E.some(Kl(e))),E.none):e.fold(E.none,y.constant(E.some(Kl(e))),E.none,y.constant(E.some(Xl(e))))}).map(af(e,t)).getOrThunk(function(){var o=Ws.navigate(n,a,r),i=o.bind(function(e){return $l(s,a,e)});return u.isSome()&&i.isSome()?vu.findRootInline(s,a,r).map(function(t){return r=t,!!hs([Ws.firstPositionIn(r),Ws.lastPositionIn(r)],function(e,t){var n=vu.normalizePosition(!0,e),o=vu.normalizePosition(!1,t);return Ws.nextPosition(r,n).map(function(e){return e.isEqual(o)}).getOr(!0)}).getOr(!0)&&(mc(e,n,Hn.fromDom(t)),!0);var r}).getOr(!1):i.bind(function(i){return o.map(function(o){return n?sf(e,t,r,o):sf(e,t,o,r),!0})}).getOr(!1)})},cf=function(e,t,n){if(e.selection.isCollapsed()&&!1!==e.settings.inline_boundaries){var r=ia.fromRangeStart(e.selection.getRng());return uf(e,t,n,r)}return!1},lf=xr("start","end"),ff=xr("rng","table","cells"),df=Qu([{removeTable:["element"]},{emptyCells:["cells"]}]),mf=function(e,t){return Eu(Hn.fromDom(e),"td,th",t)},pf=function(e,t){return wu(e,"table",t)},gf=function(e){return!1===Dr.eq(e.start(),e.end())},hf=function(e,t){return(n=e,r=t,pf(n.start(),r).bind(function(e){return pf(n.end(),r).bind(function(t){return Dr.eq(e,t)?E.some(e):E.none()})})).bind(function(t){var n=Os(t,"td,th");return ff(e,t,n)});var n,r},vf=function(e,t){var n,r,o=y.curry(Dr.eq,e);return(n=t,r=o,hs([mf(n.startContainer,r),mf(n.endContainer,r)],lf).filter(gf)).map(function(e){return hf(e,o)})},yf=function(e,t){return M.findIndex(e,function(e){return Dr.eq(e,t)})},bf=function(e){return(t=e,hs([yf(t.cells(),t.rng().start()),yf(t.cells(),t.rng().end())],function(e,n){return t.cells().slice(e,n+1)})).bind(function(t){var n=e.cells();return t.length===n.length?df.removeTable(e.table()):df.emptyCells(t)});var t},Cf=function(e,t){return vf(e,t).map(bf)},xf=function(e){var t=[];if(e)for(var n=0;n<e.rangeCount;n++)t.push(e.getRangeAt(n));return t},wf=xf,Nf=function(e){return M.bind(e,function(e){var t=Fi(e);return t?[Hn.fromDom(t)]:[]})},Ef=function(e){return xf(e).length>1},Sf=function(e){return M.filter(Nf(e),io.isTableCell)},kf=function(e){return Os(e,"td[data-mce-selected],th[data-mce-selected]")},Tf=function(e,t){var n=kf(t),r=Sf(e);return n.length>0?n:r},Af=Tf,_f=function(e){return Tf(wf(e.selection.getSel()),Hn.fromDom(e.getBody()))},Bf=function(e,t){return M.each(t,Is),e.selection.setCursorLocation(t[0].dom(),0),!0},Rf=function(e,t){return mc(e,!1,t),!0},Df=function(e,t,n,r){return Pf(t,r).fold(function(){return r=e,Cf(t,n).map(function(e){return e.fold(y.curry(Rf,r),y.curry(Bf,r))});var r},function(t){return If(e,t)}).getOr(!1)},Of=function(e,t){return M.find(Uu(t,e),io.isTableCell)},Pf=function(e,t){return M.find(Uu(t,e),function(e){return"caption"===Zn.name(e)})},If=function(e,t){return Is(t),e.selection.setCursorLocation(t.dom(),0),E.some(!0)},Lf=function(e,t,n,r,o){return Ws.navigate(n,e.getBody(),o).bind(function(i){return u=r,c=n,l=o,f=i,Ws.firstPositionIn(u.dom()).bind(function(e){return Ws.lastPositionIn(u.dom()).map(function(t){return c?l.isEqual(e)&&f.isEqual(t):l.isEqual(t)&&f.isEqual(e)})}).getOr(!0)?If(e,r):(a=r,s=i,Pf(t,Hn.fromDom(s.getNode())).map(function(e){return!1===Dr.eq(e,a)}));var a,s,u,c,l,f}).or(E.some(!0))},Mf=function(e,t,n,r){var o=ia.fromRangeStart(e.selection.getRng());return Of(n,r).bind(function(r){return Ru(r)?If(e,r):(i=e,a=n,s=t,u=r,c=o,Ws.navigate(s,i.getBody(),c).bind(function(e){return Of(a,Hn.fromDom(e.getNode())).map(function(e){return!1===Dr.eq(e,u)})}));var i,a,s,u,c})},Ff=function(e,t,n){var r=Hn.fromDom(e.getBody());return Pf(r,n).fold(function(){return Mf(e,t,r,n)},function(n){return o=e,i=t,a=r,s=n,u=ia.fromRangeStart(o.selection.getRng()),Ru(s)?If(o,s):Lf(o,a,i,s,u);var o,i,a,s,u}).getOr(!1)},zf=function(e,t){var n,r,o,i,a,s=Hn.fromDom(e.selection.getStart(!0));return e.selection.isCollapsed()?Ff(e,t,s):(n=e,r=s,o=Hn.fromDom(n.getBody()),i=n.selection.getRng(),0!==(a=_f(n)).length?Bf(n,a):Df(n,o,i,r))},Uf=function(e,t){e.getDoc().execCommand(t,!1,null)},Vf=function(e){hc(e,!1)||cf(e,!1)||Ku(e,!1)||zf(e)||Ju(e,!1)||(Uf(e,"Delete"),bu(e))},Hf=function(e){hc(e,!0)||cf(e,!0)||Ku(e,!0)||zf(e)||Ju(e,!0)||Uf(e,"ForwardDelete")},qf=function(e,t){return e&&t&&e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset},jf=xr("container","offset"),$f=function(e,t,n){return null!==function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(e,t,n)},Wf=function(e,t,n){return $f(e,t,function(e){return e.nodeName===n})},Kf=function(e){return e&&"TABLE"===e.nodeName},Xf=function(e,t,n){for(var r=new to(t,e.getParent(t.parentNode,e.isBlock)||e.getRoot());t=r[n?"prev":"next"]();)if(vo.isBr(t))return!0},Yf=function(e,t,n,r,o){var i,a,s,u,c,l,f=e.getRoot(),d=e.schema.getNonEmptyElements();if(s=e.getParent(o.parentNode,e.isBlock)||f,r&&vo.isBr(o)&&t&&e.isEmpty(s))return E.some(jf(o.parentNode,e.nodeIndex(o)));for(i=new to(o,s);u=i[r?"prev":"next"]();){if("false"===e.getContentEditableParent(u)||(c=u,l=f,mi.isCaretContainer(c)&&!1===$f(c,l,Nl)))return E.none();if(vo.isText(u)&&u.nodeValue.length>0)return!1===Wf(u,f,"A")?E.some(jf(u,r?u.nodeValue.length:0)):E.none();if(e.isBlock(u)||d[u.nodeName.toLowerCase()])return E.none();a=u}return n&&a?E.some(jf(a,0)):E.none()},Gf=function(e,t,n,r){var o,i,a,s,u,c,l,f,d,m,p=e.getRoot(),g=!1;if(o=r[(n?"start":"end")+"Container"],i=r[(n?"start":"end")+"Offset"],l=vo.isElement(o)&&i===o.childNodes.length,u=e.schema.getNonEmptyElements(),c=n,mi.isCaretContainer(o))return E.none();if(vo.isElement(o)&&i>o.childNodes.length-1&&(c=!1),vo.isDocument(o)&&(o=p,i=0),o===p){if(c&&(s=o.childNodes[i>0?i-1:0])){if(mi.isCaretContainer(s))return E.none();if(u[s.nodeName]||Kf(s))return E.none()}if(o.hasChildNodes()){if(i=Math.min(!c&&i>0?i-1:i,o.childNodes.length-1),o=o.childNodes[i],i=vo.isText(o)&&l?o.data.length:0,!t&&o===p.lastChild&&Kf(o))return E.none();if(function(e,t){for(;t&&t!==e;){if(vo.isContentEditableFalse(t))return!0;t=t.parentNode}return!1}(p,o)||mi.isCaretContainer(o))return E.none();if(o.hasChildNodes()&&!1===Kf(o)){s=o,a=new to(o,p);do{if(vo.isContentEditableFalse(s)||mi.isCaretContainer(s)){g=!1;break}if(vo.isText(s)&&s.nodeValue.length>0){i=c?0:s.nodeValue.length,o=s,g=!0;break}if(u[s.nodeName.toLowerCase()]&&(!(f=s)||!/^(TD|TH|CAPTION)$/.test(f.nodeName))){i=e.nodeIndex(s),o=s.parentNode,"IMG"!==s.nodeName&&"PRE"!==s.nodeName||c||i++,g=!0;break}}while(s=c?a.next():a.prev())}}}return t&&(vo.isText(o)&&0===i&&Yf(e,l,t,!0,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),vo.isElement(o)&&((s=o.childNodes[i])||(s=o.childNodes[i-1]),!s||!vo.isBr(s)||(m="A",(d=s).previousSibling&&d.previousSibling.nodeName===m)||Xf(e,s,!1)||Xf(e,s,!0)||Yf(e,l,t,!0,s).each(function(e){o=e.container(),i=e.offset(),g=!0}))),c&&!t&&vo.isText(o)&&i===o.nodeValue.length&&Yf(e,l,t,!1,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),g?E.some(jf(o,i)):E.none()},Jf={normalize:function(e,t){var n=t.collapsed,r=t.cloneRange();return Gf(e,n,!0,r).each(function(e){r.setStart(e.container(),e.offset())}),n||Gf(e,n,!1,r).each(function(e){r.setEnd(e.container(),e.offset())}),n&&r.collapse(!0),qf(t,r)?E.none():E.some(r)}},Qf=function(e,t,n){var r=e.create("span",{}," ");n.parentNode.insertBefore(r,n),t.scrollIntoView(r),e.remove(r)},Zf=function(e,t,n,r){var o=e.createRng();r?(o.setStartBefore(n),o.setEndBefore(n)):(o.setStartAfter(n),o.setEndAfter(n)),t.setRng(o)},ed=function(e,t){var n,r,o=e.selection,i=e.dom,a=o.getRng();Jf.normalize(i,a).each(function(e){a.setStart(e.startContainer,e.startOffset),a.setEnd(e.endContainer,e.endOffset)});var s=a.startOffset,u=a.startContainer;if(1===u.nodeType&&u.hasChildNodes()){var c=s>u.childNodes.length-1;u=u.childNodes[Math.min(s,u.childNodes.length-1)]||u,s=c&&3===u.nodeType?u.nodeValue.length:0}var l=i.getParent(u,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),u&&3===u.nodeType&&s>=u.nodeValue.length&&(function(e,t,n){for(var r,o=new to(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||r.length>0)return!0}(e.schema,u,l)||(n=i.create("br"),a.insertNode(n),a.setStartAfter(n),a.setEndAfter(n),r=!0)),n=i.create("br"),a.insertNode(n),Qf(i,o,n),Zf(i,o,n,r),e.undoManager.add()},td=function(e,t){var n=Hn.fromTag("br");ks.before(Hn.fromDom(t),n),e.undoManager.add()},nd=function(e,t){rd(e.getBody(),t)||ks.after(Hn.fromDom(t),Hn.fromTag("br"));var n=Hn.fromTag("br");ks.after(Hn.fromDom(t),n),Qf(e.dom,e.selection,n.dom()),Zf(e.dom,e.selection,n.dom(),!1),e.undoManager.add()},rd=function(e,t){return n=ia.after(t),!!vo.isBr(n.getNode())||Ws.nextPosition(e,ia.after(t)).map(function(e){return vo.isBr(e.getNode())}).getOr(!1);var n},od=function(e){return e&&"A"===e.nodeName&&"href"in e},id=function(e){return e.fold(y.constant(!1),od,od,y.constant(!1))},ad=function(e,t){t.fold(y.noop,y.curry(td,e),y.curry(nd,e),y.noop)},sd=function(e,t){var n,r,o,i=(n=e,r=y.curry(vu.isInlineTarget,n),o=ia.fromRangeStart(n.selection.getRng()),$l(r,n.getBody(),o).filter(id));i.isSome()?i.each(y.curry(ad,e)):ed(e,t)},ud=Qu([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),cd=(ud.before,ud.on,ud.after,function(e){return e.fold(y.identity,y.identity,y.identity)}),ld=Qu([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),fd=xr("start","soffset","finish","foffset"),dd={domRange:ld.domRange,relative:ld.relative,exact:ld.exact,exactFromRange:function(e){return ld.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:fd,getWin:function(e){var t=e.match({domRange:function(e){return Hn.fromDom(e.startContainer)},relative:function(e,t){return cd(e)},exact:function(e,t,n,r){return e}});return Ur.defaultView(t)}},md=Un.detect().browser,pd=function(e,t){var n=Zn.isText(t)?Ds(t).length:Ur.children(t).length+1;return e>n?n:e<0?0:e},gd=function(e){return dd.range(e.start(),pd(e.soffset(),e.start()),e.finish(),pd(e.foffset(),e.finish()))},hd=function(e,t){return Dr.contains(e,t)||Dr.eq(e,t)},vd=function(e){return function(t){return hd(e,t.start())&&hd(e,t.finish())}},yd=function(e){return!0===e.inline||md.isIE()},bd=function(e){return dd.range(Hn.fromDom(e.startContainer),e.startOffset,Hn.fromDom(e.endContainer),e.endOffset)},Cd=function(e){var t=e.getSelection();return(t&&0!==t.rangeCount?E.from(t.getRangeAt(0)):E.none()).map(bd)},xd=function(e){var t=Ur.defaultView(e);return Cd(t.dom()).filter(vd(e))},wd=function(e,t){return E.from(t).filter(vd(e)).map(gd)},Nd=function(e){var t=document.createRange();return t.setStart(e.start().dom(),e.soffset()),t.setEnd(e.finish().dom(),e.foffset()),E.some(t)},Ed=function(e){return(e.bookmark?e.bookmark:E.none()).bind(y.curry(wd,Hn.fromDom(e.getBody()))).bind(Nd)},Sd=function(e){var t=yd(e)?xd(Hn.fromDom(e.getBody())):E.none();e.bookmark=t.isSome()?t:e.bookmark},kd=function(e){Ed(e).each(function(t){e.selection.setRng(t)})},Td=Ed,Ad=Ot.each,_d=Ot.extend,Bd=Ot.map,Rd=Ot.inArray,Dd=Ot.explode,Od=function(e){var t,n,r,o,i={state:{},exec:{},value:{}},a=e.settings;e.on("PreInit",function(){t=e.dom,n=e.selection,a=e.settings,r=e.formatter});var s=function(t){var n;if(!e.quirks.isHidden()&&!e.removed){if(t=t.toLowerCase(),n=i.state[t])return n(t);try{return e.getDoc().queryCommandState(t)}catch(r){}return!1}},u=function(e,t){t=t||"exec",Ad(e,function(e,n){Ad(n.toLowerCase().split(","),function(n){i[t][n]=e})})};_d(this,{execCommand:function(t,n,r,o){var a,s,u=!1;if(!e.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t)||o&&o.skip_focus?kd(e):e.focus(),(o=e.fire("BeforeExecCommand",{command:t,ui:n,value:r})).isDefaultPrevented())return!1;if(s=t.toLowerCase(),a=i.exec[s])return a(s,n,r),e.fire("ExecCommand",{command:t,ui:n,value:r}),!0;if(Ad(e.plugins,function(o){if(o.execCommand&&o.execCommand(t,n,r))return e.fire("ExecCommand",{command:t,ui:n,value:r}),u=!0,!1}),u)return u;if(e.theme&&e.theme.execCommand&&e.theme.execCommand(t,n,r))return e.fire("ExecCommand",{command:t,ui:n,value:r}),!0;try{u=e.getDoc().execCommand(t,n,r)}catch(c){}return!!u&&(e.fire("ExecCommand",{command:t,ui:n,value:r}),!0)}},queryCommandState:s,queryCommandValue:function(t){var n;if(!e.quirks.isHidden()&&!e.removed){if(t=t.toLowerCase(),n=i.value[t])return n(t);try{return e.getDoc().queryCommandValue(t)}catch(r){}}},queryCommandSupported:function(t){if(t=t.toLowerCase(),i.exec[t])return!0;try{return e.getDoc().queryCommandSupported(t)}catch(n){}return!1},addCommands:u,addCommand:function(t,n,r){t=t.toLowerCase(),i.exec[t]=function(t,o,i,a){return n.call(r||e,o,i,a)}},addQueryStateHandler:function(t,n,r){t=t.toLowerCase(),i.state[t]=function(){return n.call(r||e)}},addQueryValueHandler:function(t,n,r){t=t.toLowerCase(),i.value[t]=function(){return n.call(r||e)}},hasCustomCommand:function(e){return e=e.toLowerCase(),!!i.exec[e]}});var c=function(t,n,r){return n===undefined&&(n=!1),r===undefined&&(r=null),e.getDoc().execCommand(t,n,r)},l=function(e){return r.match(e)},f=function(t,n){r.toggle(t,n?{value:n}:undefined),e.nodeChanged()},d=function(e){o=n.getBookmark(e)},m=function(){n.moveToBookmark(o)};u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){e.undoManager.add()},"Cut,Copy,Paste":function(t){var n,r=e.getDoc();try{c(t)}catch(i){n=!0}if("paste"!==t||r.queryCommandEnabled(t)||(n=!0),n||!r.queryCommandSupported(t)){var o=e.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");me.mac&&(o=o.replace(/Ctrl\+/g,"\u2318+")),e.notificationManager.open({text:o,type:"error"})}},unlink:function(){if(n.isCollapsed()){var t=e.dom.getParent(e.selection.getStart(),"a");t&&e.dom.remove(t,!0)}else r.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"===t&&(t="justify"),Ad("left,center,right,justify".split(","),function(e){t!==e&&r.remove("align"+e)}),"none"!==t&&f("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var r,o;c(e),(r=t.getParent(n.getNode(),"ol,ul"))&&(o=r.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)&&(d(),t.split(o,r),m()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){f(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){f(e,n)},FontSize:function(e,t,n){var r,o;n>=1&&n<=7&&(o=Dd(a.font_size_style_values),n=(r=Dd(a.font_size_classes))?r[n-1]||n:o[n-1]||n),f(e,n)},RemoveFormat:function(e){r.remove(e)},mceBlockQuote:function(){f("blockquote")},FormatBlock:function(e,t,n){return f(n||"p")},mceCleanup:function(){var t=n.getBookmark();e.setContent(e.getContent({cleanup:!0}),{cleanup:!0}),n.moveToBookmark(t)},mceRemoveNode:function(t,r,o){var i=o||n.getNode();i!==e.getBody()&&(d(),e.dom.remove(i,!0),m())},mceSelectNodeDepth:function(r,o,i){var a=0;t.getParent(n.getNode(),function(e){if(1===e.nodeType&&a++===i)return n.select(e),!1},e.getBody())},mceSelectNode:function(e,t,r){n.select(r)},mceInsertContent:function(t,n,r){Js(e,r)},mceInsertRawHTML:function(t,r,o){n.setContent("tiny_mce_marker"),e.setContent(e.getContent().replace(/tiny_mce_marker/g,function(){return o}))},mceToggleFormat:function(e,t,n){f(n)},mceSetContent:function(t,n,r){e.setContent(r)},"Indent,Outdent":function(o){var i,u,l;i=a.indentation,u=/[a-z%]+$/i.exec(i),i=parseInt(i,10),s("InsertUnorderedList")||s("InsertOrderedList")?c(o):(a.forced_root_block||t.getParent(n.getNode(),t.isBlock)||r.apply("div"),Ad(n.getSelectedBlocks(),function(n){if("false"!==t.getContentEditable(n)&&"LI"!==n.nodeName){var r=e.getParam("indent_use_margin",!1)?"margin":"padding";r="TABLE"===n.nodeName?"margin":r,r+="rtl"===t.getStyle(n,"direction",!0)?"Right":"Left","outdent"===o?(l=Math.max(0,parseInt(n.style[r]||0,10)-i),t.setStyle(n,r,l?l+u:"")):(l=parseInt(n.style[r]||0,10)+i+u,t.setStyle(n,r,l))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){e.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){e.hasVisual=!e.hasVisual,e.addVisual()},mceReplaceContent:function(t,r,o){e.execCommand("mceInsertContent",!1,o.replace(/\{\$selection\}/g,n.getContent({format:"text"})))},mceInsertLink:function(e,o,i){var a;"string"==typeof i&&(i={href:i}),a=t.getParent(n.getNode(),"a"),i.href=i.href.replace(" ","%20"),a&&i.href||r.remove("link"),i.href&&r.apply("link",i,a)},selectAll:function(){var e=t.getParent(n.getStart(),vo.isContentEditableTrue);if(e){var r=t.createRng();r.selectNodeContents(e),n.setRng(r)}},"delete":function(){Vf(e)},forwardDelete:function(){Hf(e)},mceNewDocument:function(){e.setContent("")},InsertLineBreak:function(t,n,r){return sd(e,r),!0}}),u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var o="align"+e.substring(7),i=n.isCollapsed()?[t.getParent(n.getNode(),t.isBlock)]:n.getSelectedBlocks(),a=Bd(i,function(e){return!!r.matchNode(e,o)});return-1!==Rd(a,!0)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return l(e)},mceBlockQuote:function(){return l("blockquote")},Outdent:function(){var e;if(a.inline_styles){if((e=t.getParent(n.getStart(),t.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return!0;if((e=t.getParent(n.getEnd(),t.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return!0}return s("InsertUnorderedList")||s("InsertOrderedList")||!a.inline_styles&&!!t.getParent(n.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var r=t.getParent(n.getNode(),"ul,ol");return r&&("insertunorderedlist"===e&&"UL"===r.tagName||"insertorderedlist"===e&&"OL"===r.tagName)}},"state"),u({"FontSize,FontName":function(e){var r,o=0;return(r=t.getParent(n.getNode(),"span"))&&(o="fontsize"===e?r.style.fontSize:r.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),o}},"value"),u({Undo:function(){e.undoManager.undo()},Redo:function(){e.undoManager.redo()}})},Pd=Ot.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," "),Id=function(e){var t,n,r=this,o={},i=function(){return!1},a=function(){return!0};t=(e=e||{}).scope||r,n=e.toggleEvent||i;var s=function(e,t,a,s){var u,c,l;if(!1===t&&(t=i),t)for(t={func:t},s&&Ot.extend(t,s),l=(c=e.toLowerCase().split(" ")).length;l--;)e=c[l],(u=o[e])||(u=o[e]=[],n(e,!0)),a?u.unshift(t):u.push(t);return r},u=function(e,t){var i,a,s,u,c;if(e)for(i=(u=e.toLowerCase().split(" ")).length;i--;){if(e=u[i],a=o[e],!e){for(s in o)n(s,!1),delete o[s];return r}if(a){if(t)for(c=a.length;c--;)a[c].func===t&&(a=a.slice(0,c).concat(a.slice(c+1)),o[e]=a);else a.length=0;a.length||(n(e,!1),delete o[e])}}else{for(e in o)n(e,!1);o={}}return r};r.fire=function(n,r){var s,c,l,f;if(n=n.toLowerCase(),(r=r||{}).type=n,r.target||(r.target=t),r.preventDefault||(r.preventDefault=function(){r.isDefaultPrevented=a},r.stopPropagation=function(){r.isPropagationStopped=a},r.stopImmediatePropagation=function(){r.isImmediatePropagationStopped=a},r.isDefaultPrevented=i,r.isPropagationStopped=i,r.isImmediatePropagationStopped=i),e.beforeFire&&e.beforeFire(r),s=o[n])for(c=0,l=s.length;c<l;c++){if((f=s[c]).once&&u(n,f.func),r.isImmediatePropagationStopped())return r.stopPropagation(),r;if(!1===f.func.call(t,r))return r.preventDefault(),r}return r},r.on=s,r.off=u,r.once=function(e,t,n){return s(e,t,n,{once:!0})},r.has=function(e){return e=e.toLowerCase(),!(!o[e]||0===o[e].length)}};Id.isNative=function(e){return!!Pd[e.toLowerCase()]};var Ld,Md=function(e){return e._eventDispatcher||(e._eventDispatcher=new Id({scope:e,toggleEvent:function(t,n){Id.isNative(t)&&e.toggleNativeEvent&&e.toggleNativeEvent(t,n)}})),e._eventDispatcher},Fd={fire:function(e,t,n){if(this.removed&&"remove"!==e)return t;if(t=Md(this).fire(e,t,n),!1!==n&&this.parent)for(var r=this.parent();r&&!t.isPropagationStopped();)r.fire(e,t,!1),r=r.parent();return t},on:function(e,t,n){return Md(this).on(e,t,n)},off:function(e,t){return Md(this).off(e,t)},once:function(e,t){return Md(this).once(e,t)},hasEventListeners:function(e){return Md(this).has(e)}},zd=Xo.DOM,Ud=function(e,t){return"selectionchange"===t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=zd.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()},Vd=function(e,t){var n,r,o=function(e){return!e.hidden&&!e.readonly};if(e.delegates||(e.delegates={}),!e.delegates[t]&&!e.removed)if(n=Ud(e,t),e.settings.event_root){if(Ld||(Ld={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&Ld){for(t in Ld)e.dom.unbind(Ud(e,t));Ld=null}})),Ld[t])return;r=function(n){for(var r=n.target,i=e.editorManager.get(),a=i.length;a--;){var s=i[a].getBody();(s===r||zd.isChildOf(r,s))&&o(i[a])&&i[a].fire(t,n)}},Ld[t]=r,zd.bind(n,t,r)}else r=function(n){o(e)&&e.fire(t,n)},zd.bind(n,t,r),e.delegates[t]=r},Hd={bindPendingEventDelegates:function(){var e=this;Ot.each(e._pendingNativeEvents,function(t){Vd(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!==e&&"blur"!==e&&(t?n.initialized?Vd(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(Ud(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e,t=this;if(t.delegates){for(e in t.delegates)t.dom.unbind(Ud(t,e),e,t.delegates[e]);delete t.delegates}t.inline||(t.getBody().onload=null,t.dom.unbind(t.getWin()),t.dom.unbind(t.getDoc())),t.dom.unbind(t.getBody()),t.dom.unbind(t.getContainer())}},qd=Hd=Ot.extend({},Fd,Hd),jd=function(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}},$d=function(e,t){var n,r,o;e._clickBlocker&&(e._clickBlocker.unbind(),e._clickBlocker=null),t?(e._clickBlocker=(r=(n=e).getBody(),o=function(e){n.dom.getParents(e.target,"a").length>0&&e.preventDefault()},n.dom.bind(r,"click",o),{unbind:function(){n.dom.unbind(r,"click",o)}}),e.selection.controlSelection.hideResizeRect(),e.readonly=!0,e.getBody().contentEditable=!1):(e.readonly=!1,e.getBody().contentEditable=!0,jd(e,"StyleWithCSS",!1),jd(e,"enableInlineTableEditing",!1),jd(e,"enableObjectResizing",!1),e.focus(),e.nodeChanged())},Wd=function(e,t){var n=e.readonly?"readonly":"design";t!==n&&(e.initialized?$d(e,"readonly"===t):e.on("init",function(){$d(e,"readonly"===t)}),e.fire("SwitchMode",{mode:t}))},Kd=Ot.each,Xd=Ot.explode,Yd={f9:120,f10:121,f11:122},Gd=Ot.makeMap("alt,ctrl,shift,meta,access"),Jd=function(e){var t={},n=[],r=function(e){var t,n,r={};for(n in Kd(Xd(e,"+"),function(e){e in Gd?r[e]=!0:/^[0-9]{2,}$/.test(e)?r.keyCode=parseInt(e,10):(r.charCode=e.charCodeAt(0),r.keyCode=Yd[e]||e.toUpperCase().charCodeAt(0))}),t=[r.keyCode],Gd)r[n]?t.push(n):r[n]=!1;return r.id=t.join(","),r.access&&(r.alt=!0,me.mac?r.ctrl=!0:r.shift=!0),r.meta&&(me.mac?r.meta=!0:(r.ctrl=!0,r.meta=!1)),r},o=function(t,n,o,i){var a;return(a=Ot.map(Xd(t,">"),r))[a.length-1]=Ot.extend(a[a.length-1],{func:o,scope:i||e}),Ot.extend(a[0],{desc:e.translate(n),subpatterns:a.slice(1)})},i=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},a=function(e){return e.func?e.func.call(e.scope):null};e.on("keyup keypress keydown",function(e){var r,o;((o=e).altKey||o.ctrlKey||o.metaKey||"keydown"===(r=e).type&&r.keyCode>=112&&r.keyCode<=123)&&!e.isDefaultPrevented()&&(Kd(t,function(t){if(i(e,t))return n=t.subpatterns.slice(0),"keydown"===e.type&&a(t),!0}),i(e,n[0])&&(1===n.length&&"keydown"===e.type&&a(n[0]),n.shift()))}),this.add=function(n,r,i,a){var s;return s=i,"string"==typeof i?i=function(){e.execCommand(s,!1,null)}:Ot.isArray(s)&&(i=function(){e.execCommand(s[0],s[1],s[2])}),Kd(Xd(Ot.trim(n.toLowerCase())),function(e){var n=o(e,r,i,a);t[n.id]=n}),!0},this.remove=function(e){var n=o(e);return!!t[n.id]&&(delete t[n.id],!0)}},Qd=Ot.each,Zd=function(e,t,n){var r,o,i,a,s=1;for(a=e.getShortEndedElements(),(i=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex=r=n;o=i.exec(t);){if(r=i.lastIndex,"/"===o[1])s--;else if(!o[1]){if(o[2]in a)continue;s++}if(0===s)break}return r},em=function(e,t){var n=this,r=function(){};e=e||{},n.schema=t=t||Fo(),!1!==e.fix_self_closing&&(e.fix_self_closing=!0),Qd("comment cdata text start end pi doctype".split(" "),function(t){t&&(n[t]=e[t]||r)}),n.parse=function(n){var r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C,x,w,N,E,S,k,T,A,_,B,R,D=this,O=0,P=[],I=0,L=Ao.decode,M=Ot.makeMap("src,href,data,background,formaction,poster"),F=/((java|vb)script|mhtml):/i,z=/^data:/i,U=function(e){var t,n;for(t=P.length;t--&&P[t].name!==e;);if(t>=0){for(n=P.length-1;n>=t;n--)(e=P[n]).valid&&D.end(e.name);P.length=t}},V=function(t,n,r,o,i){var s,u,c;if(r=(n=n.toLowerCase())in m?n:L(r||o||i||""),g&&!l&&0==(0===(c=n).indexOf("data-")||0===c.indexOf("aria-"))){if(!(s=C[n])&&x){for(u=x.length;u--&&!(s=x[u]).pattern.test(n););-1===u&&(s=null)}if(!s)return;if(s.validValues&&!(r in s.validValues))return}if(M[n]&&!e.allow_script_urls){var f=r.replace(/[\s\u0000-\u001F]+/g,"");try{f=decodeURIComponent(f)}catch(d){f=unescape(f)}if(F.test(f))return;if(!e.allow_html_data_urls&&z.test(f)&&!/^data:image\//i.test(f))return}l&&(n in M||0===n.indexOf("on"))||(a.map[n]=r,a.push({name:n,value:r}))};for(T=new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),A=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,d=t.getShortEndedElements(),k=e.self_closing_elements||t.getSelfClosingElements(),m=t.getBoolAttrs(),g=e.validate,f=e.remove_internals,R=e.fix_self_closing,_=t.getSpecialElements(),S=n+">";r=T.exec(S);){if(O<r.index&&D.text(L(n.substr(O,r.index-O))),o=r[6])":"===(o=o.toLowerCase()).charAt(0)&&(o=o.substr(1)),U(o);else if(o=r[7]){if(r.index+r[0].length>n.length){D.text(L(n.substr(r.index))),O=r.index+r[0].length;continue}if(":"===(o=o.toLowerCase()).charAt(0)&&(o=o.substr(1)),p=o in d,R&&k[o]&&P.length>0&&P[P.length-1].name===o&&U(o),!g||(h=t.getElementRule(o))){if(v=!0,g&&(C=h.attributes,x=h.attributePatterns),(b=r[8])?((l=-1!==b.indexOf("data-mce-type"))&&f&&(v=!1),(a=[]).map={},b.replace(A,V)):(a=[]).map={},g&&!l){if(w=h.attributesRequired,N=h.attributesDefault,E=h.attributesForced,h.removeEmptyAttrs&&!a.length&&(v=!1),E)for(s=E.length;s--;)c=(y=E[s]).name,"{$uid}"===(B=y.value)&&(B="mce_"+I++),a.map[c]=B,a.push({name:c,value:B});if(N)for(s=N.length;s--;)(c=(y=N[s]).name)in a.map||("{$uid}"===(B=y.value)&&(B="mce_"+I++),a.map[c]=B,a.push({name:c,value:B}));if(w){for(s=w.length;s--&&!(w[s]in a.map););-1===s&&(v=!1)}if(y=a.map["data-mce-bogus"]){if("all"===y){O=Zd(t,n,T.lastIndex),T.lastIndex=O;continue}v=!1}}v&&D.start(o,a,p)}else v=!1;if(i=_[o]){i.lastIndex=O=r.index+r[0].length,(r=i.exec(n))?(v&&(u=n.substr(O,r.index-O)),O=r.index+r[0].length):(u=n.substr(O),O=n.length),v&&(u.length>0&&D.text(u,!0),D.end(o)),T.lastIndex=O;continue}p||(b&&b.indexOf("/")===b.length-1?v&&D.end(o):P.push({name:o,valid:v}))}else(o=r[1])?(">"===o.charAt(0)&&(o=" "+o),e.allow_conditional_comments||"[if"!==o.substr(0,3).toLowerCase()||(o=" "+o),D.comment(o)):(o=r[2])?D.cdata(o.replace(/<!--|-->/g,"")):(o=r[3])?D.doctype(o):(o=r[4])&&D.pi(o,r[5]);O=r.index+r[0].length}for(O<n.length&&D.text(L(n.substr(O))),s=P.length-1;s>=0;s--)(o=P[s]).valid&&D.end(o.name)}};em.findEndTag=Zd;var tm,nm,rm=function(e,t){var n,r,o,i,a,s,u,c,l=t,f=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,d=e.schema;for(s=e.getTempAttrs(),u=l,c=new RegExp(["\\s?("+s.join("|")+')="[^"]+"'].join("|"),"gi"),l=u.replace(c,""),a=d.getShortEndedElements();i=f.exec(l);)r=f.lastIndex,o=i[0].length,n=a[i[1]]?r:em.findEndTag(d,l,r),l=l.substring(0,r-o)+l.substring(n),f.lastIndex=r-o;return l},om=function(e,t){return ii(rm(e,t))},im=rm,am=function(e){var t=e!==undefined?e.dom():document;return E.from(t.activeElement).map(Hn.fromDom)},sm=function(e){var t=Ur.owner(e).dom();return e.dom()===t.activeElement},um=function(e){return am(Ur.owner(e)).filter(function(t){return e.dom().contains(t.dom())})},cm=function(e,t){return(n=t,n.collapsed?E.from(zi(n.startContainer,n.startOffset)).map(Hn.fromDom):E.none()).bind(function(t){return io.isTableSection(t)?E.some(t):!1===Dr.contains(e,t)?E.some(e):E.none()});var n},lm=function(e,t){cm(Hn.fromDom(e.getBody()),t).bind(function(e){return Ws.firstPositionIn(e.dom())}).fold(function(){e.selection.normalize()},function(t){e.selection.setRng(t.toRange())})},fm=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},dm=function(e){var t,n=e.getBody();return n&&(t=Hn.fromDom(n),sm(t)||um(t).isSome())},mm=function(e){return e.inline?dm(e):(t=e).iframeElement&&sm(Hn.fromDom(t.iframeElement));var t},pm=function(e){e.editorManager.setActive(e)},gm=function(e,t){e.removed||(t?pm(e):function(e){var t,n,r,o=e.selection,i=e.settings.content_editable,a=e.getBody(),s=o.getRng();if(e.quirks.refreshContentEditable(),n=e,r=o.getNode(),t=n.dom.getParent(r,function(e){return"true"===n.dom.getContentEditable(e)}),e.$.contains(a,t))return fm(t),lm(e,s),void pm(e);e.bookmark!==undefined&&!1===mm(e)&&Td(e).each(function(t){e.selection.setRng(t),s=t}),i||(me.opera||fm(a),e.getWin().focus()),(me.gecko||i)&&(fm(a),lm(e,s)),pm(e)}(e))},hm=mm,vm=function(e,t){return t.dom()[e]},ym=function(e,t){return parseInt(Cr(t,e),10)},bm=y.curry(vm,"clientWidth"),Cm=y.curry(vm,"clientHeight"),xm=y.curry(ym,"margin-top"),wm=y.curry(ym,"margin-left"),Nm=function(e,t,n){var r,o,i,a,s,u,c,l,f,d,m=Hn.fromDom(e.getBody()),p=e.inline?m:Ur.documentElement(m),g=(r=e.inline,i=t,a=n,s=(o=p).dom().getBoundingClientRect(),{x:i-(r?s.left+o.dom().clientLeft+wm(o):0),y:a-(r?s.top+o.dom().clientTop+xm(o):0)});return c=g.x,l=g.y,f=bm(u=p),d=Cm(u),c>=0&&l>=0&&c<=f&&l<=d},Em=function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,E.from(t).map(Hn.fromDom)).map(function(e){return Dr.contains(Ur.owner(e),e)}).getOr(!1)},Sm=function(e){var t,n=[],r=function(){var t,n=e.theme;return n&&n.getNotificationManagerImpl?n.getNotificationManagerImpl():{open:t=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:t,reposition:t,getArgs:t}},o=function(){n.length>0&&r().reposition(n)},i=function(e){M.findIndex(n,function(t){return t===e}).each(function(e){n.splice(e,1)})},a=function(t){if(!e.removed&&Em(e))return M.find(n,function(e){return n=r().getArgs(e),o=t,!(n.type!==o.type||n.text!==o.text||n.progressBar||n.timeout||o.progressBar||o.timeout);var n,o}).getOrThunk(function(){e.editorManager.setActive(e);var a,s=r().open(t,function(){i(s),o()});return a=s,n.push(a),o(),s})};return(t=e).on("SkinLoaded",function(){var e=t.settings.service_message;e&&a({text:e,type:"warning",timeout:0,icon:""})}),t.on("ResizeEditor ResizeWindow",function(){ye.requestAnimationFrame(o)}),t.on("remove",function(){M.each(n,function(e){r().close(e)})}),{open:a,close:function(){E.from(n[0]).each(function(e){r().close(e),i(e),o()})},getNotifications:function(){return n}}},km=function(e){var t=[],n=function(){var t,n=e.theme;return n&&n.getWindowManagerImpl?n.getWindowManagerImpl():{open:t=function(){throw new Error("Theme did not provide a WindowManager implementation.")},alert:t,confirm:t,close:t,getParams:t,setParams:t}},r=function(e,t){return function(){return t?t.apply(e,arguments):undefined}},o=function(n){var r;t.push(n),r=n,e.fire("OpenWindow",{win:r})},i=function(n){M.findIndex(t,function(e){return e===n}).each(function(r){var o;t.splice(r,1),o=n,e.fire("CloseWindow",{win:o}),0===t.length&&e.focus()})},a=function(){return E.from(t[t.length-1])};return e.on("remove",function(){M.each(t.slice(0),function(e){n().close(e)})}),{windows:t,open:function(t,r){e.editorManager.setActive(e),Sd(e);var a=n().open(t,r,i);return o(a),a},alert:function(e,t,a){var s=n().alert(e,r(a||this,t),i);o(s)},confirm:function(e,t,a){var s=n().confirm(e,r(a||this,t),i);o(s)},close:function(){a().each(function(e){n().close(e),i(e)})},getParams:function(){return a().map(n().getParams).getOr(null)},setParams:function(e){a().each(function(t){n().setParams(t,e)})},getWindows:function(){return t}}},Tm=ti.PluginManager,Am=function(e,t){var n=function(e,t){for(var n in Tm.urls)if(Tm.urls[n]+"/plugin"+t+".js"===e)return n;return null}(t,e.suffix);return n?"Failed to load plugin: "+n+" from url "+t:"Failed to load plugin url: "+t},_m=function(e,t){e.notificationManager.open({type:"error",text:t})},Bm=function(e,t){e._skinLoaded?_m(e,t):e.on("SkinLoaded",function(){_m(e,t)})},Rm=function(e,t){Bm(e,Am(e,t))},Dm=function(e,t){Bm(e,"Failed to upload image: "+t)},Om=Bm,Pm=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=window.console;r&&(r.error?r.error.apply(r,arguments):r.log.apply(r,arguments))},Im=ti.PluginManager,Lm=ti.ThemeManager,Mm=function(){return new(V("XMLHttpRequest"))},Fm=function(e,t){var n={},r=function(e,n,r,o){var i,a;(i=new Mm).open("POST",t.url),i.withCredentials=t.credentials,i.upload.onprogress=function(e){o(e.loaded/e.total*100)},i.onerror=function(){r("Image upload failed due to a XHR Transport error. Code: "+i.status)},i.onload=function(){var e,o,a;i.status<200||i.status>=300?r("HTTP Error: "+i.status):(e=JSON.parse(i.responseText))&&"string"==typeof e.location?n((o=t.basePath,a=e.location,o?o.replace(/\/$/,"")+"/"+a.replace(/^\//,""):a)):r("Invalid JSON: "+i.responseText)},(a=new FormData).append("file",e.blob(),e.filename()),i.send(a)},o=function(e,t){return{url:t,blobInfo:e,status:!0}},i=function(e,t){return{url:"",blobInfo:e,status:!1,error:t}},a=function(e,t){Ot.each(n[e],function(e){e(t)}),delete n[e]},s=function(r,s){return r=Ot.grep(r,function(t){return!e.isUploaded(t.blobUri())}),pe.all(Ot.map(r,function(r){return e.isPending(r.blobUri())?(f=r.blobUri(),new pe(function(e){n[f]=n[f]||[],n[f].push(e)})):(u=r,c=t.handler,l=s,e.markPending(u.blobUri()),new pe(function(t){var n;try{var r=function(){n&&n.close()};c(u,function(n){r(),e.markUploaded(u.blobUri(),n),a(u.blobUri(),o(u,n)),t(o(u,n))},function(n){r(),e.removeFailed(u.blobUri()),a(u.blobUri(),i(u,n)),t(i(u,n))},function(e){e<0||e>100||(n||(n=l()),n.progressBar.value(e))})}catch(s){t(i(u,s.message))}}));var u,c,l,f}))};return t=Ot.extend({credentials:!1,handler:r},t),{upload:function(e,n){return t.url||t.handler!==r?s(e,n):new pe(function(e){e([])})}}},zm=function(e,t){return new(V("Blob"))(e,t)},Um=function(e){return V("atob")(e)},Vm=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},Hm=function(e){return new pe(function(t){var n,r,o;e=Vm(e);try{n=Um(e.data)}catch(yC){return void t(new zm([]))}for(r=new function(e){return new(V("Uint8Array"))(e)}(n.length),o=0;o<r.length;o++)r[o]=n.charCodeAt(o);t(new zm([r],{type:e.type}))})},qm=function(e){return 0===e.indexOf("blob:")?(t=e,new pe(function(e,n){var r=function(){n("Cannot convert "+t+" to Blob. Resource might not exist or is inaccessible.")};try{var o=new Mm;o.open("GET",t,!0),o.responseType="blob",o.onload=function(){200===this.status?e(this.response):r()},o.onerror=r,o.send()}catch(i){r()}})):0===e.indexOf("data:")?Hm(e):null;var t},jm=function(e){return new pe(function(t){var n=new function(){return new(V("FileReader"))};n.onloadend=function(){t(n.result)},n.readAsDataURL(e)})},$m=Vm,Wm=0,Km=function(e){return(e||"blobid")+Wm++},Xm=function(e,t){var n={};return{findAll:function(r,o){var i,a,s;return o||(o=ji.constant(!0)),i=At.filter((s=r)?s.getElementsByTagName("img"):[],function(t){var n=t.src;return!!me.fileApi&&!t.hasAttribute("data-mce-bogus")&&!t.hasAttribute("data-mce-placeholder")&&!(!n||n===me.transparentSrc)&&(0===n.indexOf("blob:")?!e.isUploaded(n):0===n.indexOf("data:")&&o(t))}),a=At.map(i,function(e){var r;return n[e.src]?new pe(function(t){n[e.src].then(function(n){if("string"==typeof n)return n;t({image:e,blobInfo:n.blobInfo})})}):(r=new pe(function(n,r){var o,i,a,s,u,c;o=t,a=n,s=r,0!==(i=e).src.indexOf("blob:")?(u=$m(i.src).data,(c=o.findFirst(function(e){return e.base64()===u}))?a({image:i,blobInfo:c}):qm(i.src).then(function(e){c=o.create(Km(),e,u),o.add(c),a({image:i,blobInfo:c})},function(e){s(e)})):(c=o.getByUri(i.src))?a({image:i,blobInfo:c}):qm(i.src).then(function(e){jm(e).then(function(t){u=$m(t).data,c=o.create(Km(),e,u),o.add(c),a({image:i,blobInfo:c})})},function(e){s(e)})}).then(function(e){return delete n[e.image.src],e})["catch"](function(t){return delete n[e.src],t}),n[e.src]=r,r)}),pe.all(a)}}},Ym=0,Gm=function(e){return e+Ym+++(t=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+(new Date).getTime().toString(36)+t()+t()+t());var t},Jm=function(e){var t,n,r,o,i,a,s,u,c,l,f=(t=[],n=ji.constant,r=function(e){var t,r,o;if(!e.blob||!e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");return t=e.id||Gm("blobid"),r=e.name||t,{id:n(t),name:n(r),filename:n(r+"."+(o=e.blob.type,{"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"}[o.toLowerCase()]||"dat")),blob:n(e.blob),base64:n(e.base64),blobUri:n(e.blobUri||q(e.blob)),uri:n(e.uri)}},{create:function(e,t,n,o){return r("object"==typeof e?e:{id:e,name:o,blob:t,base64:n})},add:function(e){o(e.id())||t.push(e)},get:o=function(e){return i(function(t){return t.id()===e})},getByUri:function(e){return i(function(t){return t.blobUri()===e})},findFirst:i=function(e){return At.filter(t,e)[0]},removeByUri:function(e){t=At.filter(t,function(t){return t.blobUri()!==e||(j(t.blobUri()),!1)})},destroy:function(){At.each(t,function(e){j(e.blobUri())}),t=[]}}),d=e.settings,m=(u={},c=function(e,t){return{status:e,resultUri:t}},{hasBlobUri:l=function(e){return e in u},getResultUri:function(e){var t=u[e];return t?t.resultUri:null},isPending:function(e){return!!l(e)&&1===u[e].status},isUploaded:function(e){return!!l(e)&&2===u[e].status},markPending:function(e){u[e]=c(1,null)},markUploaded:function(e,t){u[e]=c(2,t)},removeFailed:function(e){delete u[e]},destroy:function(){u={}}}),p=function(t){return function(n){return e.selection?t(n):[]}},g=function(e,t,n){var r=0;do{-1!==(r=e.indexOf(t,r))&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1)}while(-1!==r);return e},h=function(e,t,n){return e=g(e,'src="'+t+'"','src="'+n+'"'),e=g(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')},v=function(t,n){At.each(e.undoManager.data,function(e){"fragmented"===e.type?e.fragments=At.map(e.fragments,function(e){return h(e,t,n)}):e.content=h(e.content,t,n)})},y=function(){return e.notificationManager.open({text:e.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})},b=function(t,n){f.removeByUri(t.src),v(t.src,n),e.$(t).attr({src:d.images_reuse_filename?n+"?"+(new Date).getTime():n,"data-mce-src":e.convertURL(n,"src")})},C=function(t){return a||(a=Fm(m,{url:d.images_upload_url,basePath:d.images_upload_base_path,credentials:d.images_upload_credentials,handler:d.images_upload_handler})),N().then(p(function(n){var r;return r=At.map(n,function(e){return e.blobInfo}),a.upload(r,y).then(p(function(r){var o=At.map(r,function(t,r){var o=n[r].image;return t.status&&!1!==e.settings.images_replace_blob_uris?b(o,t.url):t.error&&Dm(e,t.error),{element:o,status:t.status}});return t&&t(o),o}))}))},x=function(e){if(!1!==d.automatic_uploads)return C(e)},w=function(e){return!d.images_dataimg_filter||d.images_dataimg_filter(e)},N=function(){return s||(s=Xm(m,f)),s.findAll(e.getBody(),w).then(p(function(t){return t=At.filter(t,function(t){return"string"!=typeof t||(Om(e,t),!1)}),At.each(t,function(e){v(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),t}))},E=function(t){return t.replace(/src="(blob:[^"]+)"/g,function(t,n){var r=m.getResultUri(n);if(r)return'src="'+r+'"';var o=f.getByUri(n);return o||(o=At.reduce(e.editorManager.get(),function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null)),o?'src="data:'+o.blob().type+";base64,"+o.base64()+'"':t})};return e.on("setContent",function(){!1!==e.settings.automatic_uploads?x():N()}),e.on("RawSaveContent",function(e){e.content=E(e.content)}),e.on("getContent",function(e){e.source_view||"raw"===e.format||(e.content=E(e.content))}),e.on("PostRender",function(){e.parser.addNodeFilter("img",function(e){At.each(e,function(e){var t=e.attr("src");if(!f.getByUri(t)){var n=m.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:f,uploadImages:C,uploadImagesAuto:x,scanForImages:N,destroy:function(){f.destroy(),m.destroy(),s=a=null}}},Qm=function(e,t){return e.hasOwnProperty(t.nodeName)},Zm=function(e){var t,n,r,o,i,a,s,u,c,l,f,d=e.settings,m=e.dom,p=e.selection,g=e.schema,h=g.getBlockElements(),v=p.getStart(),y=e.getBody();if(f=d.forced_root_block,v&&vo.isElement(v)&&f&&(l=y.nodeName.toLowerCase(),g.isValidChild(l,f.toLowerCase())&&(b=h,C=y,x=v,!M.exists(zu(Hn.fromDom(x),Hn.fromDom(C)),function(e){return Qm(b,e.dom())})))){var b,C,x,w,N;for(n=(t=p.getRng()).startContainer,r=t.startOffset,o=t.endContainer,i=t.endOffset,c=hm(e),v=y.firstChild;v;)if(w=h,N=v,vo.isText(N)||vo.isElement(N)&&!Qm(w,N)&&!xs.isBookmarkNode(N)){if(vo.isText(v)&&0===v.nodeValue.length){s=v,v=v.nextSibling,m.remove(s);continue}a||(a=m.create(f,e.settings.forced_root_block_attrs),v.parentNode.insertBefore(a,v),u=!0),s=v,v=v.nextSibling,a.appendChild(s)}else a=null,v=v.nextSibling;u&&c&&(t.setStart(n,r),t.setEnd(o,i),p.setRng(t),e.nodeChanged())}},ep=function(e){e.settings.forced_root_block&&e.on("NodeChange",y.curry(Zm,e))},tp=function(e){var t,n=[];"onselectionchange"in e.getDoc()||e.on("NodeChange Click MouseUp KeyUp Focus",function(n){var r,o;o={startContainer:(r=e.selection.getRng()).startContainer,startOffset:r.startOffset,endContainer:r.endContainer,endOffset:r.endOffset},"nodechange"!==n.type&&qf(o,t)||e.fire("SelectionChange"),t=o}),e.on("contextmenu",function(){e.fire("SelectionChange")}),e.on("SelectionChange",function(){var t=e.selection.getStart(!0);!t||!me.range&&e.selection.isCollapsed()||!function(t){var r,o;if((o=e.$(t).parentsUntil(e.getBody()).add(t)).length===n.length){for(r=o.length;r>=0&&o[r]===n[r];r--);if(-1===r)return n=o,!0}return n=o,!1}(t)&&e.dom.isChildOf(t,e.getBody())&&e.nodeChanged({selectionChange:!0})}),e.on("MouseUp",function(t){t.isDefaultPrevented()||("IMG"===e.selection.getNode().nodeName?ye.setEditorTimeout(e,function(){e.nodeChanged()}):e.nodeChanged())}),this.nodeChanged=function(t){var n,r,o,i=e.selection;e.initialized&&i&&!e.settings.disable_nodechange&&!e.readonly&&(o=e.getBody(),(n=i.getStart(!0)||o).ownerDocument===e.getDoc()&&e.dom.isChildOf(n,o)||(n=o),r=[],e.dom.getParent(n,function(e){if(e===o)return!0;r.push(e)}),(t=t||{}).element=n,t.parents=r,e.fire("NodeChange",t))}},np=function(e){var t,n,r,o;return o=e.getBoundingClientRect(),n=(t=e.ownerDocument).documentElement,r=t.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}},rp=function(e,t){return n=(s=e).inline?np(s.getBody()):{left:0,top:0},a=(i=e).getBody(),r=i.inline?{left:a.scrollLeft,top:a.scrollTop}:{left:0,top:0},{pageX:(o=function(e,t){if(t.target.ownerDocument!==e.getDoc()){var n=np(e.getContentAreaContainer()),r=(i=(o=e).getBody(),a=o.getDoc().documentElement,s={left:i.scrollLeft,top:i.scrollTop},u={left:i.scrollLeft||a.scrollLeft,top:i.scrollTop||a.scrollTop},o.inline?s:u);return{left:t.pageX-n.left+r.left,top:t.pageY-n.top+r.top}}var o,i,a,s,u;return{left:t.pageX,top:t.pageY}}(e,t)).left-n.left+r.left,pageY:o.top-n.top+r.top};var n,r,o,i,a,s},op=vo.isContentEditableFalse,ip=vo.isContentEditableTrue,ap=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},sp=function(e,t){return function(n){if(0===n.button){var r=At.find(t.dom.getParents(n.target),ji.or(op,ip));if(s=t.getBody(),op(u=r)&&u!==s){var o=t.dom.getPos(r),i=t.getBody(),a=t.getDoc().documentElement;e.element=r,e.screenX=n.screenX,e.screenY=n.screenY,e.maxX=(t.inline?i.scrollWidth:a.offsetWidth)-2,e.maxY=(t.inline?i.scrollHeight:a.offsetHeight)-2,e.relX=n.pageX-o.x,e.relY=n.pageY-o.y,e.width=r.offsetWidth,e.height=r.offsetHeight,e.ghost=function(e,t,n,r){var o=t.cloneNode(!0);e.dom.setStyles(o,{width:n,height:r}),e.dom.setAttrib(o,"data-mce-selected",null);var i=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(i,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(o,{margin:0,boxSizing:"border-box"}),i.appendChild(o),i}(t,r,e.width,e.height)}}var s,u}},up=function(e,t){return function(n){if(e.dragging&&(s=t,l=t.selection,f=l.getSel().getRangeAt(0).startContainer,u=3===f.nodeType?f.parentNode:f,c=e.element,u!==c&&!s.dom.isChildOf(u,c)&&!op(u))){var r=(i=e.element,(a=i.cloneNode(!0)).removeAttribute("data-mce-selected"),a),o=t.fire("drop",{targetClone:r,clientX:n.clientX,clientY:n.clientY});o.isDefaultPrevented()||(r=o.targetClone,t.undoManager.transact(function(){ap(e.element),t.insertContent(t.dom.getOuterHTML(r)),t._selectionOverrides.hideFakeCaret()}))}var i,a,s,u,c,l,f;cp(e)}},cp=function(e){e.dragging=!1,e.element=null,ap(e.ghost)},lp=function(e){var t,n,r,o,i,a,s,u,c,l,f,d={};t=Xo.DOM,a=document,n=sp(d,e),s=d,u=e,c=ye.throttle(function(e,t){u._selectionOverrides.hideFakeCaret(),u.selection.placeCaretAt(e,t)},0),r=function(e){var t,n,r,o,i,a,l,f,d,m,p,g,h=Math.max(Math.abs(e.screenX-s.screenX),Math.abs(e.screenY-s.screenY));if(s.element&&!s.dragging&&h>10){if(u.fire("dragstart",{target:s.element}).isDefaultPrevented())return;s.dragging=!0,u.focus()}if(s.dragging){var v=(p=s,{pageX:(g=rp(u,e)).pageX-p.relX,pageY:g.pageY+5});d=s.ghost,m=u.getBody(),d.parentNode!==m&&m.appendChild(d),t=s.ghost,n=v,r=s.width,o=s.height,i=s.maxX,a=s.maxY,l=0,f=0,t.style.left=n.pageX+"px",t.style.top=n.pageY+"px",n.pageX+r>i&&(l=n.pageX+r-i),n.pageY+o>a&&(f=n.pageY+o-a),t.style.width=r-l+"px",t.style.height=o-f+"px",c(e.clientX,e.clientY)}},o=up(d,e),l=d,f=e,i=function(){cp(l),l.dragging&&f.fire("dragend")},e.on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},fp=function(e){var t;lp(e),(t=e).on("drop",function(e){var n="undefined"!=typeof e.clientX?t.getDoc().elementFromPoint(e.clientX,e.clientY):null;(op(n)||op(t.dom.getContentEditableParent(n)))&&e.preventDefault()})},dp=vo.isContentEditableFalse,mp=function(e,t){var n,r,o=null,i=function(){!function(){var t,n,r,o,i;for(t=Qt("*[contentEditable=false]",e),o=0;o<t.length;o++)r=(n=t[o]).previousSibling,mi.endsWithCaretContainer(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(i.length-1,1)),r=n.nextSibling,mi.startsWithCaretContainer(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(0,1))}(),r&&(Oc.remove(r),r=null),o&&(o.remove(),o=null),clearInterval(n)},a=function(){n=ye.setInterval(function(){e.ownerDocument.activeElement===e?Qt("div.mce-visual-caret",e).toggleClass("mce-visual-caret-hidden"):Qt("div.mce-visual-caret",e).addClass("mce-visual-caret-hidden")},500)};return{show:function(n,s){var u,c,l,f,d,m,p,g,h,v,y;return i(),(l=s)&&/^(TD|TH)$/i.test(l.nodeName)?null:t(s)?(r=mi.insertBlock("p",s,n),d=n,y=Oi((f=s).getBoundingClientRect(),d),"BODY"===e.tagName?(m=e.ownerDocument.documentElement,p=e.scrollLeft||m.scrollLeft,g=e.scrollTop||m.scrollTop):(v=e.getBoundingClientRect(),p=e.scrollLeft-v.left,g=e.scrollTop-v.top),y.left+=p,y.right+=p,y.top+=g,y.bottom+=g,y.width=1,(h=f.offsetWidth-f.clientWidth)>0&&(d&&(h*=-1),y.left+=h,y.right+=h),u=y,Qt(r).css("top",u.top),o=Qt('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(u).appendTo(e),n&&o.addClass("mce-visual-caret-before"),a(),(c=s.ownerDocument.createRange()).setStart(r,0),c.setEnd(r,0),c):(r=mi.insertInline(s,n),c=s.ownerDocument.createRange(),dp(r.nextSibling)?(c.setStart(r,0),c.setEnd(r,0)):(c.setStart(r,1),c.setEnd(r,1)),c)},hide:i,getCss:function(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"},destroy:function(){ye.clearInterval(n)}}},pp=function(e){var t=function(t){return At.map(t,function(t){return(t=Di(t)).node=e,t})};if(At.isArray(e))return At.reduce(e,function(e,t){return e.concat(pp(t))},[]);if(vo.isElement(e))return t(e.getClientRects());if(vo.isText(e)){var n=e.ownerDocument.createRange();return n.setStart(e,0),n.setEnd(e,e.data.length),t(n.getClientRects())}},gp={getClientRects:pp},hp=vo.isContentEditableFalse,vp=_a.findNode,yp=ji.curry,bp=function(e,t){return Math.abs(e.left-t)},Cp=function(e,t){return Math.abs(e.right-t)},xp=function(e,t){var n=function(e,t){return e>=t.left&&e<=t.right};return At.reduce(e,function(e,r){var o,i;return o=Math.min(bp(e,t),Cp(e,t)),i=Math.min(bp(r,t),Cp(r,t)),n(t,r)?r:n(t,e)?e:i===o&&hp(r.node)?r:i<o?r:e})},wp=function(e,t,n,r){for(;r=vp(r,e,ki,t);)if(n(r))return},Np=function(e,t){var n=[],r=function(e,r){var o;return o=At.filter(gp.getClientRects(r),function(n){return!e(n,t)}),n=n.concat(o),0===o.length};return n.push(t),wp(-1,e,yp(r,Ii),t.node),wp(1,e,yp(r,Li),t.node),n},Ep=xp,Sp=function(e,t,n){var r,o,i,a,s;return r=gp.getClientRects((i=e,At.filter(At.toArray(i.getElementsByTagName("*")),hp))),r=At.filter(r,function(e){return n>=e.top&&n<=e.bottom}),(o=xp(r,t))&&(o=xp(Np(e,o),t))&&hp(o.node)?(s=t,{node:(a=o).node,before:bp(a,s)<Cp(a,s)}):null},kp=function(e,t,n){return!n.collapsed&&M.foldl(n.getClientRects(),function(n,r){return n||Mi(r,e,t)},!1)},Tp=function(e,t){var n=null;return{cancel:function(){null!==n&&(clearTimeout(n),n=null)},throttle:function(){var r=arguments;null===n&&(n=setTimeout(function(){e.apply(null,r),n=null,r=null},t))}}},Ap=vo.isContentEditableTrue,_p=vo.isContentEditableFalse,Bp=function(e,t,n,r){return t._selectionOverrides.showCaret(e,n,r)},Rp=function(e,t){var n,r;return t=_a.normalizeRange(1,e.getBody(),t),n=ia.fromRangeStart(t),_p(n.getNode())?Bp(1,e,n.getNode(),!n.isAtEnd()):_p(n.getNode(!0))?Bp(1,e,n.getNode(!0),!1):(r=e.dom.getParent(n.getNode(),ji.or(_p,Ap)),_p(r)?Bp(1,e,r,!1):null)},Dp=Bp,Op=function(e,t){var n,r;return e.fire("BeforeObjectSelected",{target:t}).isDefaultPrevented()?null:((r=(n=t).ownerDocument.createRange()).selectNode(n),r)},Pp=Rp,Ip=function(e,t){return t&&t.collapsed&&Rp(e,t)||t},Lp=function(e){var t=Tp(function(){if(!e.removed){var t=Ip(e,e.selection.getRng());e.selection.setRng(t)}},0);e.on("focus",function(){t.throttle()}),e.on("blur",function(){t.cancel()})},Mp={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(e){return me.mac?e.metaKey:e.ctrlKey&&!e.altKey}},Fp=vo.isContentEditableTrue,zp=vo.isContentEditableFalse,Up=_a.isAfterContentEditableFalse,Vp=_a.isBeforeContentEditableFalse,Hp=function(e){var t,n,r,o=e.getBody(),i=mp(e.getBody(),function(t){return e.dom.isBlock(t)}),a="sel-"+e.dom.uniqueId(),s=function(t){t&&e.selection.setRng(t)},u=function(){return e.selection.getRng()},c=function(t,n){e.selection.scrollIntoView(t,n)},l=function(t,n,r){return e.fire("ShowCaret",{target:n,direction:t,before:r}).isDefaultPrevented()?null:(c(n,-1===t),i.show(r,n))},f=function(e,t){return t=_a.normalizeRange(e,o,t),-1===e?ia.fromRangeStart(t):ia.fromRangeEnd(t)},d=function(e){return mi.isCaretContainer(e)||mi.startsWithCaretContainer(e)||mi.endsWithCaretContainer(e)},m=function(e){return d(e.startContainer)||d(e.endContainer)},p=function(n,r){var o,i,s,u,c,d,p,g,v,y,b=e.$,C=e.dom;if(!n)return null;if(n.collapsed){if(!m(n))if(!1===r){if(g=f(-1,n),zp(g.getNode(!0)))return l(-1,g.getNode(!0),!1);if(zp(g.getNode()))return l(-1,g.getNode(),!g.isAtEnd())}else{if(g=f(1,n),zp(g.getNode()))return l(1,g.getNode(),!g.isAtEnd());if(zp(g.getNode(!0)))return l(1,g.getNode(!0),!1)}return null}return u=n.startContainer,c=n.startOffset,d=n.endOffset,3===u.nodeType&&0===c&&zp(u.parentNode)&&(u=u.parentNode,c=C.nodeIndex(u),u=u.parentNode),1!==u.nodeType?null:(d===c+1&&(o=u.childNodes[c]),zp(o)?(v=y=o.cloneNode(!0),(p=e.fire("ObjectSelected",{target:o,targetClone:v})).isDefaultPrevented()?null:(i=Nu(Hn.fromDom(e.getBody()),"#"+a).fold(function(){return b([])},function(e){return b([e.dom()])}),v=p.targetClone,0===i.length&&(i=b('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",a)).appendTo(e.getBody()),n=e.dom.createRng(),v===y&&me.ie?(i.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(v),n.setStartAfter(i[0].firstChild.firstChild),n.setEndAfter(v)):(i.empty().append("\xa0").append(v).append("\xa0"),n.setStart(i[0].firstChild,1),n.setEnd(i[0].lastChild,0)),i.css({top:C.getPos(o,e.getBody()).y}),i[0].focus(),(s=e.selection.getSel()).removeAllRanges(),s.addRange(n),M.each(Os(Hn.fromDom(e.getBody()),"*[data-mce-selected]"),function(e){dr.remove(e,"data-mce-selected")}),o.setAttribute("data-mce-selected","1"),t=o,h(),n)):null)},g=function(){t&&(t.removeAttribute("data-mce-selected"),Nu(Hn.fromDom(e.getBody()),"#"+a).each(Bs.remove),t=null)},h=function(){i.hide()};return me.ceFalse&&(function(){var n=function(t){for(var n=e.getBody();t&&t!==n;){if(Fp(t)||zp(t))return t;t=t.parentNode}return null};e.on("mouseup",function(t){var n=u();n.collapsed&&Nm(e,t.clientX,t.clientY)&&s(Pp(e,n))}),e.on("click",function(t){var r;(r=n(t.target))&&(zp(r)&&(t.preventDefault(),e.focus()),Fp(r)&&e.dom.isChildOf(r,e.selection.getNode())&&g())}),e.on("blur NewBlock",function(){g()});var r,i,c=function(t,n){var r,o,i=e.dom.getParent(t,e.dom.isBlock),a=e.dom.getParent(n,e.dom.isBlock);return i&&(r=i,o=a,!(e.dom.getParent(r,e.dom.isBlock)===e.dom.getParent(o,e.dom.isBlock)))&&function(e){var t=Ha(e);if(!e.firstChild)return!1;var n=ia.before(e.firstChild),r=t.next(n);return r&&!Vp(r)&&!Up(r)}(i)};i=!1,(r=e).on("touchstart",function(){i=!1}),r.on("touchmove",function(){i=!0}),r.on("touchend",function(e){var t=n(e.target);zp(t)&&(i||(e.preventDefault(),p(Op(r,t))))}),e.on("mousedown",function(t){var r;if(!1!==Nm(e,t.clientX,t.clientY))if(r=n(t.target))zp(r)?(t.preventDefault(),p(Op(e,r))):(g(),Fp(r)&&t.shiftKey||kp(t.clientX,t.clientY,e.selection.getRng())||e.selection.placeCaretAt(t.clientX,t.clientY));else{g(),h();var i=Sp(o,t.clientX,t.clientY);i&&(c(t.target,i.node)||(t.preventDefault(),e.getBody().focus(),s(l(1,i.node,i.before))))}}),e.on("keypress",function(t){Mp.modifierPressed(t)||(t.keyCode,zp(e.selection.getNode())&&t.preventDefault())}),e.on("getSelectionRange",function(e){var n=e.range;if(t){if(!t.parentNode)return void(t=null);(n=n.cloneRange()).selectNode(t),e.range=n}}),e.on("setSelectionRange",function(e){var t;(t=p(e.range,e.forward))&&(e.range=t)}),e.on("AfterSetSelectionRange",function(t){var n,r=t.range;m(r)||h(),n=r.startContainer.parentNode,e.dom.hasClass(n,"mce-offscreen-selection")||g()}),e.on("copy",function(t){var n,r=t.clipboardData;if(!t.isDefaultPrevented()&&t.clipboardData&&!me.ie){var o=(n=e.dom.get(a))?n.getElementsByTagName("*")[0]:n;o&&(t.preventDefault(),r.clearData(),r.setData("text/html",o.outerHTML),r.setData("text/plain",o.outerText))}}),fp(e),Lp(e)}(),n=e.contentStyles,r=".mce-content-body",n.push(i.getCss()),n.push(r+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+r+" *[contentEditable=false] {cursor: default;}"+r+" *[contentEditable=true] {cursor: text;}")),{showCaret:l,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(mi.showCaretContainerBlock(e),s(u()),c(e[0]))},hideFakeCaret:h,destroy:function(){i.destroy(),t=null}}},qp=0,jp=2,$p=1,Wp=function(e,t){var n=e.length+t.length+2,r=new Array(n),o=new Array(n),i=function(n,r,o,a,u){var c=s(n,r,o,a);if(null===c||c.start===r&&c.diag===r-a||c.end===n&&c.diag===n-o)for(var l=n,f=o;l<r||f<a;)l<r&&f<a&&e[l]===t[f]?(u.push([0,e[l]]),++l,++f):r-n>a-o?(u.push([2,e[l]]),++l):(u.push([1,t[f]]),++f);else{i(n,c.start,o,c.start-c.diag,u);for(var d=c.start;d<c.end;++d)u.push([0,e[d]]);i(c.end,r,c.end-c.diag,a,u)}},a=function(n,r,o,i){for(var a=n;a-r<i&&a<o&&e[a]===t[a-r];)++a;return{start:n,end:a,diag:r}},s=function(n,i,s,u){var c=i-n,l=u-s;if(0===c||0===l)return null;var f,d,m,p,g,h=c-l,v=l+c,y=(v%2==0?v:v+1)/2;for(r[1+y]=n,o[1+y]=i+1,f=0;f<=y;++f){for(d=-f;d<=f;d+=2){for(m=d+y,d===-f||d!==f&&r[m-1]<r[m+1]?r[m]=r[m+1]:r[m]=r[m-1]+1,g=(p=r[m])-n+s-d;p<i&&g<u&&e[p]===t[g];)r[m]=++p,++g;if(h%2!=0&&h-f<=d&&d<=h+f&&o[m-h]<=r[m])return a(o[m-h],d+n-s,i,u)}for(d=h-f;d<=h+f;d+=2){for(m=d+y-h,d===h-f||d!==h+f&&o[m+1]<=o[m-1]?o[m]=o[m+1]-1:o[m]=o[m-1],g=(p=o[m]-1)-n+s-d;p>=n&&g>=s&&e[p]===t[g];)o[m]=p--,g--;if(h%2==0&&-f<=d&&d<=f&&o[m]<=r[m+h])return a(o[m],d+n-s,i,u)}}},u=[];return i(0,e.length,0,t.length,u),u},Kp=function(e){return 1===e.nodeType?e.outerHTML:3===e.nodeType?Ao.encodeRaw(e.data,!1):8===e.nodeType?"\x3c!--"+e.data+"--\x3e":""},Xp=function(e,t,n){var r=function(e){var t,n,r;for(r=document.createElement("div"),t=document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t}(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)},Yp=function(e){return At.filter(At.map(e.childNodes,Kp),function(e){return e.length>0})},Gp=function(e,t){var n,r,o,i=At.map(t.childNodes,Kp);return n=Wp(i,e),r=t,o=0,At.each(n,function(e){e[0]===qp?o++:e[0]===$p?(Xp(r,e[1],o),o++):e[0]===jp&&function(e,t){if(e.hasChildNodes()&&t<e.childNodes.length){var n=e.childNodes[t];n.parentNode.removeChild(n)}}(r,o)}),t},Jp=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},Qp=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},Zp=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},eg=function(e){var t,n,r;return t=Yp(e.getBody()),-1!==(n=(r=M.bind(t,function(t){var n=im(e.serializer,t);return n.length>0?[n]:[]})).join("")).indexOf("</iframe>")?Jp(r):Qp(n)},tg=function(e,t,n){"fragmented"===t.type?Gp(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},ng=function(e,t){return!!e&&!!t&&Zp(e)===Zp(t)},rg=function(e){var t,n,r=this,o=0,i=[],a=0,s=function(){return 0===a},u=function(e){s()&&(r.typing=e)},c=function(t){e.setDirty(t)},l=function(e){u(!1),r.add({},e)},f=function(){r.typing&&(u(!1),r.add())};return e.on("init",function(){r.add()}),e.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(f(),r.beforeChange())}),e.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&l(e)}),e.on("ObjectResizeStart Cut",function(){r.beforeChange()}),e.on("SaveContent ObjectResized blur",l),e.on("DragEnd",l),e.on("KeyUp",function(t){var o=t.keyCode;t.isDefaultPrevented()||((o>=33&&o<=36||o>=37&&o<=40||45===o||t.ctrlKey)&&(l(),e.nodeChanged()),46!==o&&8!==o||e.nodeChanged(),n&&r.typing&&!1===ng(eg(e),i[0])&&(!1===e.isDirty()&&(c(!0),e.fire("change",{level:i[0],lastLevel:null})),e.fire("TypingUndo"),n=!1,e.nodeChanged()))}),e.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(t>=33&&t<=36||t>=37&&t<=40||45===t)r.typing&&l(e);else{var o=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||t>20)||224===t||91===t||r.typing||o||(r.beforeChange(),u(!0),r.add({},e),n=!0)}}),e.on("MouseDown",function(e){r.typing&&l(e)}),e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo"),e.on("AddUndo Undo Redo ClearUndos",function(t){t.isDefaultPrevented()||e.nodeChanged()}),r={data:i,typing:!1,beforeChange:function(){s()&&(t=gs.getUndoBookmark(e.selection))},add:function(n,r){var a,u,l,f=e.settings;if(l=eg(e),n=n||{},n=Ot.extend(n,l),!1===s()||e.removed)return null;if(u=i[o],e.fire("BeforeAddUndo",{level:n,lastLevel:u,originalEvent:r}).isDefaultPrevented())return null;if(u&&ng(u,n))return null;if(i[o]&&(i[o].beforeBookmark=t),f.custom_undo_redo_levels&&i.length>f.custom_undo_redo_levels){for(a=0;a<i.length-1;a++)i[a]=i[a+1];i.length--,o=i.length}n.bookmark=gs.getUndoBookmark(e.selection),o<i.length-1&&(i.length=o+1),i.push(n),o=i.length-1;var d={level:n,lastLevel:u,originalEvent:r};return e.fire("AddUndo",d),o>0&&(c(!0),e.fire("change",d)),n},undo:function(){var t;return r.typing&&(r.add(),r.typing=!1,u(!1)),o>0&&(t=i[--o],tg(e,t,!0),c(!0),e.fire("undo",{level:t})),t},redo:function(){var t;return o<i.length-1&&(t=i[++o],tg(e,t,!1),c(!0),e.fire("redo",{level:t})),t},clear:function(){i=[],o=0,r.typing=!1,r.data=i,e.fire("ClearUndos")},hasUndo:function(){return o>0||r.typing&&i[0]&&!ng(eg(e),i[0])},hasRedo:function(){return o<i.length-1&&!r.typing},transact:function(e){return f(),r.beforeChange(),r.ignore(e),r.add()},ignore:function(e){try{a++,e()}finally{a--}},extra:function(t,n){var a,s;r.transact(t)&&(s=i[o].bookmark,a=i[o-1],tg(e,a,!0),r.transact(n)&&(i[o-1].beforeBookmark=s))}}},og={},ig=At.filter,ag=At.each;nm=function(e){var t,n,r=e.selection.getRng();t=vo.matchNodeNames("pre"),r.collapsed||(n=e.selection.getSelectedBlocks(),ag(ig(ig(n,t),function(e){return t(e.previousSibling)&&-1!==At.indexOf(n,e.previousSibling)}),function(e){var t,n;t=e.previousSibling,Qt(n=e).remove(),Qt(t).append("<br><br>").append(n.childNodes)}))},og[tm="pre"]||(og[tm]=[]),og[tm].push(nm);var sg=function(e,t){ag(og[e],function(e){e(t)})},ug=Ot.each,cg={walk:function(e,t,n){var r,o,i,a,s,u,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,m=t.endOffset;if((c=e.select("td[data-mce-selected],th[data-mce-selected]")).length>0)ug(c,function(e){n([e])});else{var p,g,h,v=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e},y=function(e,t,n){for(var r=[];e&&e!==n;e=e[t])r.push(e);return r},b=function(e,t){do{if(e.parentNode===t)return e;e=e.parentNode}while(e)},C=function(e,t,r){var o=r?"nextSibling":"previousSibling";for(s=(a=e).parentNode;a&&a!==t;a=s)s=a.parentNode,(u=y(a===e?a:a[o],o)).length&&(r||u.reverse(),n(v(u)))};if(1===l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[f]),1===d.nodeType&&d.hasChildNodes()&&(g=m,h=(p=d).childNodes,--g>h.length-1?g=h.length-1:g<0&&(g=0),d=h[g]||p),l===d)return n(v([l]));for(r=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,r,!0);if(a===r)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,r);if(a===r)break}o=b(l,r)||l,i=b(d,r)||d,C(l,o,!0),(u=y(o===l?o:o.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&n(v(u)),C(d,i)}}},lg=/^(src|href|style)$/,fg=Ot.each,dg=Uc.isEq,mg=function(e){return/^(TH|TD)$/.test(e.nodeName)},pg=function(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],vo.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[o>i?i:o]),vo.isText(r)&&n&&o>=r.nodeValue.length&&(r=new to(r,e.getBody()).next()||r),vo.isText(r)&&!n&&0===o&&(r=new to(r,e.getBody()).prev()||r),r},gg=function(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o},hg=function(e,t,n,r){return!(t=Uc.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)},vg=function(e,t,n,r,o){var i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C=e.dom;if(l=C,!(dg(f=r,(d=t).inline)||dg(f,d.block)||(d.selector?vo.isElement(f)&&l.is(f,d.selector):void 0)||(u=r,c=t,c.links&&"A"===u.tagName)))return!1;if("all"!==t.remove)for(fg(t.styles,function(e,i){e=Uc.normalizeStyleValue(C,Uc.replaceVars(e,n),i),"number"==typeof i&&(i=e,o=0),(t.remove_similar||!o||dg(Uc.getStyle(C,o,i),e))&&C.setStyle(r,i,""),s=1}),s&&""===C.getAttrib(r,"style")&&(r.removeAttribute("style"),r.removeAttribute("data-mce-style")),fg(t.attributes,function(e,t){var i;if(e=Uc.replaceVars(e,n),"number"==typeof t&&(t=e,o=0),!o||dg(C.getAttrib(o,t),e)){if("class"===t&&(e=C.getAttrib(r,t))&&(i="",fg(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(i+=(i?" ":"")+e)}),i))return void C.setAttrib(r,t,i);"class"===t&&r.removeAttribute("className"),lg.test(t)&&r.removeAttribute("data-mce-"+t),r.removeAttribute(t)}}),fg(t.classes,function(e){e=Uc.replaceVars(e,n),o&&!C.hasClass(o,e)||C.removeClass(r,e)}),a=C.getAttribs(r),i=0;i<a.length;i++){var x=a[i].nodeName;if(0!==x.indexOf("_")&&0!==x.indexOf("data-"))return!1}return"none"!==t.remove?(m=e,g=t,v=(p=r).parentNode,y=m.dom,b=m.settings.forced_root_block,g.block&&(b?v===y.getRoot()&&(g.list_block&&dg(p,g.list_block)||fg(Ot.grep(p.childNodes),function(e){Uc.isValid(m,b,e.nodeName.toLowerCase())?h?h.appendChild(e):(h=gg(y,e,b),y.setAttribs(h,m.settings.forced_root_block_attrs)):h=0})):y.isBlock(p)&&!y.isBlock(v)&&(hg(y,p,!1)||hg(y,p.firstChild,!0,1)||p.insertBefore(y.create("br"),p.firstChild),hg(y,p,!0)||hg(y,p.lastChild,!1,1)||p.appendChild(y.create("br")))),g.selector&&g.inline&&!dg(g.inline,p)||y.remove(p,1),!0):void 0},yg=vg,bg=function(e,t,n,r,o){var i,a,s=e.formatter.get(t),u=s[0],c=!0,l=e.dom,f=e.selection,d=function(r){var i,a,c,l,f,d,m=(i=e,a=r,c=t,l=n,f=o,fg(Uc.getParents(i.dom,a.parentNode).reverse(),function(e){var t;d||"_start"===e.id||"_end"===e.id||(t=il.matchNode(i,e,c,l,f))&&!1!==t.split&&(d=e)}),d);return function(e,t,n,r,o,i,a,s){var u,c,l,f,d,m,p=e.dom;if(n){for(m=n.parentNode,u=r.parentNode;u&&u!==m;u=u.parentNode){for(c=p.clone(u,!1),d=0;d<t.length;d++)if(vg(e,t[d],s,c,c)){c=0;break}c&&(l&&c.appendChild(l),f||(f=c),l=c)}!i||a.mixed&&p.isBlock(n)||(r=p.split(n,r)),l&&(o.parentNode.insertBefore(l,o),f.appendChild(o))}return r}(e,s,m,r,r,!0,u,n)},m=function(t){var r,o,i,a,f;if(vo.isElement(t)&&l.getContentEditable(t)&&(a=c,c="true"===l.getContentEditable(t),f=!0),r=Ot.grep(t.childNodes),c&&!f)for(o=0,i=s.length;o<i&&!vg(e,s[o],n,t,t);o++);if(u.deep&&r.length){for(o=0,i=r.length;o<i;o++)m(r[o]);f&&(c=a)}},p=function(e){var t=l.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return xs.isBookmarkNode(n)&&(n=n[e?"firstChild":"lastChild"]),vo.isText(n)&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),l.remove(t,!0),n},g=function(t){var n,r,o=t.commonAncestorContainer;if(t=Qc(e,t,s,!0),u.split){if((n=pg(e,t,!0))!==(r=pg(e,t))){if(/^(TR|TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n="TR"===n.nodeName?n.firstChild.firstChild||n:n.firstChild||n),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&mg(r)&&r.firstChild&&(r=r.firstChild||r),l.isChildOf(n,r)&&n!==r&&!l.isBlock(r)&&!mg(n)&&!mg(r))return n=gg(l,n,"span",{id:"_start","data-mce-type":"bookmark"}),d(n),void(n=p(!0));n=gg(l,n,"span",{id:"_start","data-mce-type":"bookmark"}),r=gg(l,r,"span",{id:"_end","data-mce-type":"bookmark"}),d(n),d(r),n=p(!0),r=p()}else n=r=d(n);t.startContainer=n.parentNode?n.parentNode:n,t.startOffset=l.nodeIndex(n),t.endContainer=r.parentNode?r.parentNode:r,t.endOffset=l.nodeIndex(r)+1}cg.walk(l,t,function(t){fg(t,function(t){m(t),vo.isElement(t)&&"underline"===e.dom.getStyle(t,"text-decoration")&&t.parentNode&&"underline"===Uc.getTextDecoration(l,t.parentNode)&&vg(e,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,t)})})};if(r)r.nodeType?((a=l.createRng()).setStartBefore(r),a.setEndAfter(r),g(a)):g(r);else if("false"!==l.getContentEditable(f.getNode()))f.isCollapsed()&&u.inline&&!l.select("td[data-mce-selected],th[data-mce-selected]").length?wl(e,t,n,o):(i=f.getBookmark(),g(f.getRng()),f.moveToBookmark(i),u.inline&&il.match(e,t,n,f.getStart())&&Uc.moveStart(l,f,f.getRng()),e.nodeChanged());else{r=f.getNode();for(var h=0,v=s.length;h<v&&(!s[h].ceFalseOverride||!vg(e,s[h],n,r,r));h++);}},Cg=Ot.each,xg=function(e){return e&&1===e.nodeType&&!xs.isBookmarkNode(e)&&!Nl(e)&&!vo.isBogus(e)},wg=function(e,t){var n;for(n=e;n;n=n[t]){if(3===n.nodeType&&0!==n.nodeValue.length)return e;if(1===n.nodeType&&!xs.isBookmarkNode(n))return n}return e},Ng=function(e,t,n){var r,o,i=new Ns(e);if(t&&n&&(t=wg(t,"previousSibling"),n=wg(n,"nextSibling"),i.compare(t,n))){for(r=t.nextSibling;r&&r!==n;)o=r,r=r.nextSibling,t.appendChild(o);return e.remove(n),Ot.each(Ot.grep(n.childNodes),function(e){t.appendChild(e)}),t}return n},Eg=function(e,t,n){Cg(e.childNodes,function(e){xg(e)&&(t(e)&&n(e),e.hasChildNodes()&&Eg(e,t,n))})},Sg=function(e,t){return y.curry(function(t,n){return!(!n||!Uc.getStyle(e,n,t))},t)},kg=function(e,t,n){return y.curry(function(t,n,r){e.setStyle(r,t,n),""===r.getAttribute("style")&&r.removeAttribute("style"),Tg(e,r)},t,n)},Tg=function(e,t){"SPAN"===t.nodeName&&0===e.getAttribs(t).length&&e.remove(t,!0)},Ag=function(e,t){var n;1===t.nodeType&&t.parentNode&&1===t.parentNode.nodeType&&(n=Uc.getTextDecoration(e,t.parentNode),e.getStyle(t,"color")&&n?e.setStyle(t,"text-decoration",n):e.getStyle(t,"text-decoration")===n&&e.setStyle(t,"text-decoration",null))},_g=function(e,t,n,r){Cg(t,function(t){Cg(e.dom.select(t.inline,r),function(r){xg(r)&&yg(e,t,n,r,t.exact?r:null)}),function(e,t,n){if(t.clear_child_styles){var r=t.links?"*:not(a)":"*";Cg(e.select(r,n),function(n){xg(n)&&Cg(t.styles,function(t,r){e.setStyle(n,r,"")})})}}(e.dom,t,r)})},Bg=function(e,t,n,r){(t.styles.color||t.styles.textDecoration)&&(Ot.walk(r,y.curry(Ag,e),"childNodes"),Ag(e,r))},Rg=function(e,t,n,r){t.styles&&t.styles.backgroundColor&&Eg(r,Sg(e,"fontSize"),kg(e,"backgroundColor",Uc.replaceVars(t.styles.backgroundColor,n)))},Dg=function(e,t,n,r){"sub"!==t.inline&&"sup"!==t.inline||(Eg(r,Sg(e,"fontSize"),kg(e,"fontSize","")),e.remove(e.select("sup"===t.inline?"sub":"sup",r),!0))},Og=function(e,t,n,r){r&&!1!==t.merge_siblings&&(r=Ng(e,Uc.getNonWhiteSpaceSibling(r),r),r=Ng(e,r,Uc.getNonWhiteSpaceSibling(r,!0)))},Pg=function(e,t,n,r,o){il.matchNode(e,o.parentNode,n,r)&&yg(e,t,r,o)||t.merge_with_parents&&e.dom.getParent(o.parentNode,function(i){if(il.matchNode(e,i,n,r))return yg(e,t,r,o),!0})},Ig=Ot.each,Lg=function(e,t,n,r){var o,i,a=e.formatter.get(t),s=a[0],u=!r&&e.selection.isCollapsed(),c=e.dom,l=e.selection,f=function(e,t){if(t=t||s,e){if(t.onformat&&t.onformat(e,t,n,r),Ig(t.styles,function(t,r){c.setStyle(e,r,Uc.replaceVars(t,n))}),t.styles){var o=c.getAttrib(e,"style");o&&e.setAttribute("data-mce-style",o)}Ig(t.attributes,function(t,r){c.setAttrib(e,r,Uc.replaceVars(t,n))}),Ig(t.classes,function(t){t=Uc.replaceVars(t,n),c.hasClass(e,t)||c.addClass(e,t)})}},d=function(e,t){var n=!1;return!!s.selector&&(Ig(e,function(e){if(!("collapsed"in e&&e.collapsed!==u))return c.is(t,e.selector)&&!Nl(t)?(f(t,e),n=!0,!1):void 0}),n)},m=function(r,o,i,u){var c,l,m=[],p=!0;c=s.inline||s.block,l=r.create(c),f(l),cg.walk(r,o,function(o){var i,g=function(o){var h,v,y,b;if(b=p,h=o.nodeName.toLowerCase(),v=o.parentNode.nodeName.toLowerCase(),1===o.nodeType&&r.getContentEditable(o)&&(b=p,p="true"===r.getContentEditable(o),y=!0),Uc.isEq(h,"br"))return i=0,void(s.block&&r.remove(o));if(s.wrapper&&il.matchNode(e,o,t,n))i=0;else{if(p&&!y&&s.block&&!s.wrapper&&Uc.isTextBlock(e,h)&&Uc.isValid(e,v,c))return o=r.rename(o,c),f(o),m.push(o),void(i=0);if(s.selector){var C=d(a,o);if(!s.inline||C)return void(i=0)}!p||y||!Uc.isValid(e,c,h)||!Uc.isValid(e,v,c)||!u&&3===o.nodeType&&1===o.nodeValue.length&&65279===o.nodeValue.charCodeAt(0)||Nl(o)||s.inline&&r.isBlock(o)?(i=0,Ig(Ot.grep(o.childNodes),g),y&&(p=b),i=0):(i||(i=r.clone(l,!1),o.parentNode.insertBefore(i,o),m.push(i)),i.appendChild(o))}};Ig(o,g)}),!0===s.links&&Ig(m,function(e){var t=function(e){"A"===e.nodeName&&f(e,s),Ig(Ot.grep(e.childNodes),t)};t(e)}),Ig(m,function(o){var i,u,c,l,d,p=function(e){var t=!1;return Ig(e.childNodes,function(e){if((n=e)&&1===n.nodeType&&!xs.isBookmarkNode(n)&&!Nl(n)&&!vo.isBogus(n))return t=e,!1;var n}),t};u=0,Ig(o.childNodes,function(e){Uc.isWhiteSpaceNode(e)||xs.isBookmarkNode(e)||u++}),i=u,!(m.length>1)&&r.isBlock(o)||0!==i?(s.inline||s.wrapper)&&(s.exact||1!==i||((l=p(c=o))&&!xs.isBookmarkNode(l)&&il.matchName(r,l,s)&&(d=r.clone(l,!1),f(d),r.replace(d,c,!0),r.remove(l,1)),o=d||c),_g(e,a,n,o),Pg(e,s,t,n,o),Rg(r,s,n,o),Dg(r,s,n,o),Og(r,s,n,o)):r.remove(o,1)})};if("false"!==c.getContentEditable(l.getNode())){if(s){if(r)r.nodeType?d(a,r)||((i=c.createRng()).setStartBefore(r),i.setEndAfter(r),m(c,Qc(e,i,a),0,!0)):m(c,r,0,!0);else if(u&&s.inline&&!c.select("td[data-mce-selected],th[data-mce-selected]").length)xl(e,t,n);else{var p=e.selection.getNode();e.settings.forced_root_block||!a[0].defaultBlock||c.getParent(p,c.isBlock)||Lg(e,a[0].defaultBlock),e.selection.setRng(Xs(e.selection.getRng())),o=l.getBookmark(),m(c,Qc(e,l.getRng(),a)),s.styles&&Bg(c,s,n,p),l.moveToBookmark(o),Uc.moveStart(c,l,l.getRng()),e.nodeChanged()}sg(t,e)}}else{r=l.getNode();for(var g=0,h=a.length;g<h;g++)if(a[g].ceFalseOverride&&c.is(r,a[g].selector))return void f(r,a[g])}},Mg={applyFormat:Lg},Fg=Ot.each,zg=function(e,t,n,r,o){var i,a,s,u,c,l,f,d;null===t.get()&&(a=e,s={},(i=t).set({}),a.on("NodeChange",function(e){var t=Uc.getParents(a.dom,e.element),n={};t=Ot.grep(t,function(e){return 1===e.nodeType&&!e.getAttribute("data-mce-bogus")}),Fg(i.get(),function(e,r){Fg(t,function(o){return a.formatter.matchNode(o,r,{},e.similar)?(s[r]||(Fg(e,function(e){e(!0,{node:o,format:r,parents:t})}),s[r]=e),n[r]=e,!1):!il.matchesUnInheritedFormatSelector(a,o,r)&&void 0})}),Fg(s,function(r,o){n[o]||(delete s[o],Fg(r,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),c=n,l=r,f=o,d=(u=t).get(),Fg(c.split(","),function(e){d[e]||(d[e]=[],d[e].similar=f),d[e].push(l)}),u.set(d)},Ug=function(e){var t={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",styles:{fontFamily:"%value"},clear_child_styles:!0},fontsize:{inline:"span",styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(t,n,r){Ot.each(r,function(n,r){e.setAttrib(t,r,n)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]};return Ot.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){t[e]={block:e,remove:"all"}}),t},Vg=Ot.each,Hg=Xo.DOM,qg=function(e,t){var n,r,o,i=t&&t.schema||Fo({}),a=function(e){var t,n,o;return r="string"==typeof e?{name:e,classes:[],attrs:{}}:e,t=Hg.create(r.name),n=t,(o=r).classes.length&&Hg.addClass(n,o.classes.join(" ")),Hg.setAttribs(n,o.attrs),t},s=function(e,t,n){var r,o,u,c,l,f,d,m,p=t.length>0&&t[0],g=p&&p.name;if(l=g,f="string"!=typeof(c=e)?c.nodeName.toLowerCase():c,d=i.getElementRule(f),u=!(!(m=d&&d.parentsRequired)||!m.length)&&(l&&-1!==Ot.inArray(m,l)?l:m[0]))g===u?(o=t[0],t=t.slice(1)):o=u;else if(p)o=t[0],t=t.slice(1);else if(!n)return e;return o&&(r=a(o)).appendChild(e),n&&(r||(r=Hg.create("div")).appendChild(e),Ot.each(n,function(t){var n=a(t);r.insertBefore(n,e)})),s(r,t,o&&o.siblings)};return e&&e.length?(r=e[0],n=a(r),(o=Hg.create("div")).appendChild(s(n,e.slice(1),r.siblings)),o):""},jg=function(e){var t,n={classes:[],attrs:{}};return"*"!==(e=n.selector=Ot.trim(e))&&(t=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,t,r,o,i){switch(t){case"#":n.attrs.id=r;break;case".":n.classes.push(r);break;case":":-1!==Ot.inArray("checked disabled enabled read-only required".split(" "),r)&&(n.attrs[r]=r)}if("["===o){var a=i.match(/([\w\-]+)(?:\=\"([^\"]+))?/);a&&(n.attrs[a[1]]=a[2])}return""})),n.name=t||"div",n},$g=function(e){return e&&"string"==typeof e?(e=(e=e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),Ot.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Ot.map(e.split(/(?:~\+|~|\+)/),jg),n=t.pop();return t.length&&(n.siblings=t),n}).reverse()):[]},Wg=function(e,t){var n,r,o,i,a,s,u="";if(!1===(s=e.settings.preview_styles))return"";"string"!=typeof s&&(s="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");var c=function(e){return e.replace(/%(\w+)/g,"")};if("string"==typeof t){if(!(t=e.formatter.get(t)))return;t=t[0]}return"preview"in t&&!1===(s=t.preview)?"":(n=t.block||t.inline||"span",(i=$g(t.selector)).length?(i[0].name||(i[0].name=n),n=t.selector,r=qg(i,e)):r=qg([n],e),o=Hg.select(n,r)[0]||r.firstChild,Vg(t.styles,function(e,t){(e=c(e))&&Hg.setStyle(o,t,e)}),Vg(t.attributes,function(e,t){(e=c(e))&&Hg.setAttrib(o,t,e)}),Vg(t.classes,function(e){e=c(e),Hg.hasClass(o,e)||Hg.addClass(o,e)}),e.fire("PreviewFormats"),Hg.setStyles(r,{position:"absolute",left:-65535}),e.getBody().appendChild(r),a=Hg.getStyle(e.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,Vg(s.split(" "),function(t){var n=Hg.getStyle(o,t,!0);if(!("background-color"===t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=Hg.getStyle(e.getBody(),t,!0),"#ffffff"===Hg.toHex(n).toLowerCase())||"color"===t&&"#000000"===Hg.toHex(n).toLowerCase())){if("font-size"===t&&/em|%$/.test(n)){if(0===a)return;n=(n=parseFloat(n)/(/%$/.test(n)?100:1))*a+"px"}"border"===t&&n&&(u+="padding:0 2px;"),u+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),Hg.remove(r),u)},Kg=function(e,t,n,r,o){var i=t.get(n);!il.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?Mg.applyFormat(e,n,r,o):bg(e,n,r,o)},Xg=function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Italic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatBlock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])},Yg=function(e){var t,n,r,o=(n={},(r=function(e,t){e&&("string"!=typeof e?Ot.each(e,function(e,t){r(t,e)}):(t=t.length?t:[t],Ot.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))})(Ug((t=e).dom)),r(t.settings.formats),{get:function(e){return e?n[e]:n},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}),i=Yl(null);return Xg(e),Cl(e),{get:o.get,register:o.register,unregister:o.unregister,apply:y.curry(Mg.applyFormat,e),remove:y.curry(bg,e),toggle:y.curry(Kg,e,o),match:y.curry(il.match,e),matchAll:y.curry(il.matchAll,e),matchNode:y.curry(il.matchNode,e),canApply:y.curry(il.canApply,e),formatChanged:y.curry(zg,e,i),getCssText:y.curry(Wg,e)}},Gg=function(e){return function(){for(var t=new Array(arguments.length),n=0;n<t.length;n++)t[n]=arguments[n];if(0===t.length)throw new Error("Can't merge zero objects");for(var r={},o=0;o<t.length;o++){var i=t[o];for(var a in i)i.hasOwnProperty(a)&&(r[a]=e(r[a],i[a]))}return r}},Jg=Gg(function(e,t){return tr.isObject(e)&&tr.isObject(t)?Jg(e,t):t}),Qg=Gg(function(e,t){return t}),Zg={deepMerge:Jg,merge:Qg},eh=function(e,t){return e.fire("PreProcess",t)},th=function(e,t){return e.fire("PostProcess",t)},nh=function(e,t,n){e.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n,r=e.length;r--;)(n=e[r]).attr("tabindex",n.attributes.map["data-mce-tabindex"]),n.attr(t,null)}),e.addAttributeFilter("src,href,style",function(e,r){for(var o,i,a=e.length,s="data-mce-"+r,u=t.url_converter,c=t.url_converter_scope;a--;)(i=(o=e[a]).attributes.map[s])!==undefined?(o.attr(r,i.length>0?i:null),o.attr(s,null)):(i=o.attributes.map[r],"style"===r?i=n.serializeStyle(n.parseStyle(i),o.name):u&&(i=u.call(c,i,r,o.name)),o.attr(r,i.length>0?i:null))}),e.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)(n=(t=e[r]).attr("class"))&&(n=t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),t.attr("class",n.length>0?n:null))}),e.addAttributeFilter("data-mce-type",function(e,t,n){for(var r,o=e.length;o--;)"bookmark"!==(r=e[o]).attributes.map["data-mce-type"]||n.cleanup||r.remove()}),e.addNodeFilter("noscript",function(e){for(var t,n=e.length;n--;)(t=e[n].firstChild)&&(t.value=Ao.decode(t.value))}),e.addNodeFilter("script,style",function(e,n){for(var r,o,i,a=e.length,s=function(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};a--;)o=(r=e[a]).firstChild?r.firstChild.value:"","script"===n?((i=r.attr("type"))&&r.attr("type","mce-no/type"===i?null:i.replace(/^mce\-/,"")),"xhtml"===t.element_format&&o.length>0&&(r.firstChild.value="// <![CDATA[\n"+s(o)+"\n// ]]>")):"xhtml"===t.element_format&&o.length>0&&(r.firstChild.value="\x3c!--\n"+s(o)+"\n--\x3e")}),e.addNodeFilter("#comment",function(e){for(var t,n=e.length;n--;)0===(t=e[n]).value.indexOf("[CDATA[")?(t.name="#cdata",t.type=4,t.value=t.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===t.value.indexOf("mce:protected ")&&(t.name="#text",t.type=3,t.raw=!0,t.value=unescape(t.value).substr(14))}),e.addNodeFilter("xml:namespace,input",function(e,t){for(var n,r=e.length;r--;)7===(n=e[r]).type?n.remove():1===n.type&&("input"!==t||"type"in n.attributes.map||n.attr("type","text"))}),e.addAttributeFilter("data-mce-type",function(t){M.each(t,function(t){"format-caret"===t.attr("data-mce-type")&&(t.isEmpty(e.schema.getNonEmptyElements())?t.remove():t.unwrap())})}),e.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})},rh=function(e){var t,n,r=function(e){return e&&"br"===e.name};r(t=e.lastChild)&&r(n=t.prev)&&(t.remove(),n.remove())},oh=function(e,t,n){return f=n,(l=e)&&l.hasEventListeners("PreProcess")&&!f.no_events?(o=t,i=n,c=(r=e).dom,o=o.cloneNode(!0),(a=document.implementation).createHTMLDocument&&(s=a.createHTMLDocument(""),Ot.each("BODY"===o.nodeName?o.childNodes:[o],function(e){s.body.appendChild(s.importNode(e,!0))}),o="BODY"!==o.nodeName?s.body.firstChild:s.body,u=c.doc,c.doc=s),eh(r,Zg.merge(i,{node:o})),u&&(c.doc=u),o):t;var r,o,i,a,s,u,c,l,f},ih=function(e,t,n){e.addNodeFilter("font",function(e){M.each(e,function(e){var r,o,i=t.parse(e.attr("style")),a=e.attr("color"),s=e.attr("face"),u=e.attr("size");a&&(i.color=a),s&&(i["font-family"]=s),u&&(i["font-size"]=n[parseInt(e.attr("size"),10)-1]),e.name="span",e.attr("style",t.serialize(i)),r=e,o=["color","face","size"],M.each(o,function(e){r.attr(e,null)})})})},ah=function(e,t){var n,r=zo();t.convert_fonts_to_spans&&ih(e,r,Ot.explode(t.font_size_legacy_values)),n=r,e.addNodeFilter("strike",function(e){M.each(e,function(e){var t=n.parse(e.attr("style"));t["text-decoration"]="line-through",e.name="span",e.attr("style",n.serialize(t))})})},sh=function(e,t){t.inline_styles&&ah(e,t)},uh=/^[ \t\r\n]*$/,ch={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},lh=function(e,t,n){var r,o,i=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[i])return e[i];if(e!==t){if(r=e[a])return r;for(o=e.parent;o&&o!==t;o=o.parent)if(r=o[a])return r}},fh=function(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})};fh.prototype={replace:function(e){return e.parent&&e.remove(),this.insert(e,this),this.remove(),this},attr:function(e,t){var n,r;if("string"!=typeof e){for(r in e)this.attr(r,e[r]);return this}if(n=this.attributes){if(t!==undefined){if(null===t){if(e in n.map)for(delete n.map[e],r=n.length;r--;)if(n[r].name===e)return n=n.splice(r,1),this;return this}if(e in n.map){for(r=n.length;r--;)if(n[r].name===e){n[r].value=t;break}}else n.push({name:e,value:t});return n.map[e]=t,this}return n.map[e]}},clone:function(){var e,t,n,r,o,i=new fh(this.name,this.type);if(n=this.attributes){for((o=[]).map={},e=0,t=n.length;e<t;e++)"id"!==(r=n[e]).name&&(o[o.length]={name:r.name,value:r.value},o.map[r.name]=r.value);i.attributes=o}return i.value=this.value,i.shortEnded=this.shortEnded,i},wrap:function(e){return this.parent.insert(e,this),e.append(this),this},unwrap:function(){var e,t;for(e=this.firstChild;e;)t=e.next,this.insert(e,this,!0),e=t;this.remove()},remove:function(){var e=this.parent,t=this.next,n=this.prev;return e&&(e.firstChild===this?(e.firstChild=t,t&&(t.prev=null)):n.next=t,e.lastChild===this?(e.lastChild=n,n&&(n.next=null)):t.prev=n,this.parent=this.next=this.prev=null),this},append:function(e){var t;return e.parent&&e.remove(),(t=this.lastChild)?(t.next=e,e.prev=t,this.lastChild=e):this.lastChild=this.firstChild=e,e.parent=this,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(e){var t,n=[];for(t=this.firstChild;t;t=lh(t,this))t.name===e&&n.push(t);return n},empty:function(){var e,t,n;if(this.firstChild){for(e=[],n=this.firstChild;n;n=lh(n,this))e.push(n);for(t=e.length;t--;)(n=e[t]).parent=n.firstChild=n.lastChild=n.next=n.prev=null}return this.firstChild=this.lastChild=null,this},isEmpty:function(e,t,n){var r,o,i=this.firstChild;if(t=t||{},i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(e[i.name])return!1;for(r=i.attributes.length;r--;)if("name"===(o=i.attributes[r].name)||0===o.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!uh.test(i.value))return!1;if(3===i.type&&i.parent&&t[i.parent.name]&&uh.test(i.value))return!1;if(n&&n(i))return!1}while(i=lh(i,this));return!0},walk:function(e){return lh(this,null,e)}},fh.create=function(e,t){var n,r;if(n=new fh(e,ch[e]||1),t)for(r in t)n.attr(r,t[r]);return n};var dh=Ot.makeMap,mh=Ot.each,ph=Ot.explode,gh=Ot.extend,hh=function(e,t,n,r){(e.padd_empty_with_br||t.insert)&&n[r.name]?r.empty().append(new fh("br","1")).shortEnded=!0:r.empty().append(new fh("#text","3")).value="\xa0"},vh=function(e,t){return e&&e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.name===t},yh=function(e,t,n,r){return r.isEmpty(t,n,function(t){return n=t,(r=e.getElementRule(n.name))&&r.paddEmpty;var n,r})},bh=function(e,t){var n={},r={},o=[],i={},a={};return(e=e||{}).validate=!("validate"in e)||e.validate,e.root_name=e.root_name||"body",n.schema=t=t||Fo(),n.filterNode=function(e){var t,n,s;n in r&&((s=i[n])?s.push(e):i[n]=[e]),t=o.length;for(;t--;)(n=o[t].name)in e.attributes.map&&((s=a[n])?s.push(e):a[n]=[e]);return e},n.addNodeFilter=function(e,t){mh(ph(e),function(e){var n=r[e];n||(r[e]=n=[]),n.push(t)})},n.addAttributeFilter=function(e,t){mh(ph(e),function(e){var n;for(n=0;n<o.length;n++)if(o[n].name===e)return void o[n].callbacks.push(t);o.push({name:e,callbacks:[t]})})},n.parse=function(s,u){var c,l,f,d,m,p,g,h,v,y,b,C,x,w,N,E,S,k,T,A,_,B=[];u=u||{},i={},a={},C=gh(dh("script,style,head,html,body,title,meta,param"),t.getBlockElements()),A=t.getNonEmptyElements(),T=t.children,b=e.validate,_="forced_root_block"in u?u.forced_root_block:e.forced_root_block,k=t.getWhiteSpaceElements(),x=/^[ \t\r\n]+/,N=/[ \t\r\n]+$/,E=/[ \t\r\n]+/g,S=/^[ \t\r\n]+$/;var R=function(e,t){var n,o=new fh(e,t);return e in r&&((n=i[e])?n.push(o):i[e]=[o]),o},D=function(e){var n,r,o,i,a=t.getBlockElements();for(n=e.prev;n&&3===n.type;){if((o=n.value.replace(N,"")).length>0)return void(n.value=o);if(r=n.next){if(3===r.type&&r.value.length){n=n.prev;continue}if(!a[r.name]&&"script"!==r.name&&"style"!==r.name){n=n.prev;continue}}i=n.prev,n.remove(),n=i}};if(c=new em({validate:b,allow_script_urls:e.allow_script_urls,allow_conditional_comments:e.allow_conditional_comments,self_closing_elements:function(e){var t,n={};for(t in e)"li"!==t&&"p"!==t&&(n[t]=e[t]);return n}(t.getSelfClosingElements()),cdata:function(e){f.append(R("#cdata",4)).value=e},text:function(e,t){var n;w||(e=e.replace(E," "),f.lastChild&&C[f.lastChild.name]&&(e=e.replace(x,""))),0!==e.length&&((n=R("#text",3)).raw=!!t,f.append(n).value=e)},comment:function(e){f.append(R("#comment",8)).value=e},pi:function(e,t){f.append(R(e,7)).value=t,D(f)},doctype:function(e){f.append(R("#doctype",10)).value=e,D(f)},start:function(e,n,r){var i,s,u,c,l;if(u=b?t.getElementRule(e):{}){for((i=R(u.outputName||e,1)).attributes=n,i.shortEnded=r,f.append(i),(l=T[f.name])&&T[i.name]&&!l[i.name]&&B.push(i),s=o.length;s--;)(c=o[s].name)in n.map&&((v=a[c])?v.push(i):a[c]=[i]);C[e]&&D(i),r||(f=i),!w&&k[e]&&(w=!0)}},end:function(n){var r,o,i,a,s,c;if(o=b?t.getElementRule(n):{}){if(C[n]&&!w){if((r=f.firstChild)&&3===r.type)if((i=r.value.replace(x,"")).length>0)r.value=i,r=r.next;else for(a=r.next,r.remove(),r=a;r&&3===r.type;)i=r.value,a=r.next,(0===i.length||S.test(i))&&(r.remove(),r=a),r=a;if((r=f.lastChild)&&3===r.type)if((i=r.value.replace(N,"")).length>0)r.value=i,r=r.prev;else for(a=r.prev,r.remove(),r=a;r&&3===r.type;)i=r.value,a=r.prev,(0===i.length||S.test(i))&&(r.remove(),r=a),r=a}if(w&&k[n]&&(w=!1),o.removeEmpty&&yh(t,A,k,f)&&!f.attributes.map.name&&!f.attributes.map.id)return s=f.parent,C[f.name]?f.empty().remove():f.unwrap(),void(f=s);o.paddEmpty&&(vh(c=f,"#text")&&"\xa0"===c.firstChild.value||yh(t,A,k,f))&&hh(e,u,C,f),f=f.parent}}},t),l=f=new fh(u.context||e.root_name,11),c.parse(s),b&&B.length&&(u.context?u.invalid=!0:function(e){var r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y;for(p=dh("tr,td,th,tbody,thead,tfoot,table"),d=t.getNonEmptyElements(),m=t.getWhiteSpaceElements(),g=t.getTextBlockElements(),h=t.getSpecialElements(),r=0;r<e.length;r++)if((o=e[r]).parent&&!o.fixed)if(g[o.name]&&"li"===o.parent.name){for(v=o.next;v&&g[v.name];)v.name="li",v.fixed=!0,o.parent.insert(v,o.parent),v=v.next;o.unwrap(o)}else{for(a=[o],i=o.parent;i&&!t.isValidChild(i.name,o.name)&&!p[i.name];i=i.parent)a.push(i);if(i&&a.length>1){for(a.reverse(),s=u=n.filterNode(a[0].clone()),f=0;f<a.length-1;f++){for(t.isValidChild(u.name,a[f].name)?(c=n.filterNode(a[f].clone()),u.append(c)):c=u,l=a[f].firstChild;l&&l!==a[f+1];)y=l.next,c.append(l),l=y;u=c}yh(t,d,m,s)?i.insert(o,a[0],!0):(i.insert(s,a[0],!0),i.insert(o,s)),i=a[0],(yh(t,d,m,i)||vh(i,"br"))&&i.empty().remove()}else if(o.parent){if("li"===o.name){if((v=o.prev)&&("ul"===v.name||"ul"===v.name)){v.append(o);continue}if((v=o.next)&&("ul"===v.name||"ul"===v.name)){v.insert(o,v.firstChild,!0);continue}o.wrap(n.filterNode(new fh("ul",1)));continue}t.isValidChild(o.parent.name,"div")&&t.isValidChild("div",o.name)?o.wrap(n.filterNode(new fh("div",1))):h[o.name]?o.empty().remove():o.unwrap()}}}(B)),_&&("body"===l.name||u.isRootContent)&&function(){var n,r,o=l.firstChild,i=function(e){e&&((o=e.firstChild)&&3===o.type&&(o.value=o.value.replace(x,"")),(o=e.lastChild)&&3===o.type&&(o.value=o.value.replace(N,"")))};if(t.isValidChild(l.name,_.toLowerCase())){for(;o;)n=o.next,3===o.type||1===o.type&&"p"!==o.name&&!C[o.name]&&!o.attr("data-mce-type")?r?r.append(o):((r=R(_,1)).attr(e.forced_root_block_attrs),l.insert(r,o),r.append(o)):(i(r),r=null),o=n;i(r)}}(),!u.invalid){for(y in i){for(v=r[y],g=(d=i[y]).length;g--;)d[g].parent||d.splice(g,1);for(m=0,p=v.length;m<p;m++)v[m](d,y,u)}for(m=0,p=o.length;m<p;m++)if((v=o[m]).name in a){for(g=(d=a[v.name]).length;g--;)d[g].parent||d.splice(g,1);for(g=0,h=v.callbacks.length;g<h;g++)v.callbacks[g](d,v.name,u)}}return l},e.remove_trailing_brs&&n.addNodeFilter("br",function(n,r,o){var i,a,s,u,c,l,f,d,m=n.length,p=gh({},t.getBlockElements()),g=t.getNonEmptyElements(),h=t.getNonEmptyElements();for(p.body=1,i=0;i<m;i++)if(s=(a=n[i]).parent,p[a.parent.name]&&a===s.lastChild){for(c=a.prev;c;){if("span"!==(l=c.name)||"bookmark"!==c.attr("data-mce-type")){if("br"!==l)break;if("br"===l){a=null;break}}c=c.prev}a&&(a.remove(),yh(t,g,h,s)&&(f=t.getElementRule(s.name))&&(f.removeEmpty?s.remove():f.paddEmpty&&hh(e,o,p,s)))}else{for(u=a;s&&s.firstChild===u&&s.lastChild===u&&(u=s,!p[s.name]);)s=s.parent;u===s&&!0!==e.padd_empty_with_br&&((d=new fh("#text",3)).value="\xa0",a.replace(d))}}),n.addAttributeFilter("href",function(t){var n,r,o,i=t.length;if(!e.allow_unsafe_link_target)for(;i--;)"a"===(n=t[i]).name&&"_blank"===n.attr("target")&&n.attr("rel",(r=n.attr("rel"),o=r?Ot.trim(r):"",/\b(noopener)\b/g.test(o)?o:o.split(" ").filter(function(e){return e.length>0}).concat(["noopener"]).sort().join(" ")))}),e.allow_html_in_named_anchor||n.addAttributeFilter("id,name",function(e){for(var t,n,r,o,i=e.length;i--;)if("a"===(o=e[i]).name&&o.firstChild&&!o.attr("href")){r=o.parent,t=o.lastChild;do{n=t.prev,r.insert(t,o),t=n}while(t)}}),e.fix_list_elements&&n.addNodeFilter("ul,ol",function(e){for(var t,n,r=e.length;r--;)if("ul"===(n=(t=e[r]).parent).name||"ol"===n.name)if(t.prev&&"li"===t.prev.name)t.prev.append(t);else{var o=new fh("li",1);o.attr("style","list-style-type: none"),t.wrap(o)}}),e.validate&&t.getValidClasses()&&n.addAttributeFilter("class",function(e){for(var n,r,o,i,a,s,u,c=e.length,l=t.getValidClasses();c--;){for(r=(n=e[c]).attr("class").split(" "),a="",o=0;o<r.length;o++)i=r[o],u=!1,(s=l["*"])&&s[i]&&(u=!0),s=l[n.name],!u&&s&&s[i]&&(u=!0),u&&(a&&(a+=" "),a+=i);a.length||(a=null),n.attr("class",a)}}),sh(n,e),n},Ch=function(e,t,n){-1===Ot.inArray(t,n)&&(e.addAttributeFilter(n,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),t.push(n))},xh=function(e,t,n,r,o){var i,a,s,u,c=(i=r,zs(t,n).serialize(i));return a=e,u=c,!(s=o).no_events&&a?th(a,Zg.merge(s,{content:u})).content:u},wh=function(e,t){var n,r,o,i=["data-mce-selected"];return n=t&&t.dom?t.dom:Xo.DOM,r=t&&t.schema?t.schema:Fo(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs=!("remove_trailing_brs"in e)||e.remove_trailing_brs,o=bh(e,r),nh(o,e,n),{schema:r,addNodeFilter:o.addNodeFilter,addAttributeFilter:o.addAttributeFilter,serialize:function(i,a){var s,u,c,l,f,d,m,p,g,h=Zg.merge({format:"html"},a||{}),v=oh(t,i,h),y=(s=n,u=v,l=ii((c=h).getInner?u.innerHTML:s.getOuterHTML(u)),c.selection?l:Ot.trim(l)),b=(f=o,d=y,p=(m=h).selection?Zg.merge({forced_root_block:!1},m):m,g=f.parse(d,p),rh(g),g);return"tree"===h.format?b:xh(t,e,r,b,h)},addRules:function(e){r.addValidElements(e)},setRules:function(e){r.setValidElements(e)},addTempAttr:y.curry(Ch,o,i),getTempAttrs:function(){return i}}},Nh=function(e,t){var n=wh(e,t);return{schema:n.schema,addNodeFilter:n.addNodeFilter,addAttributeFilter:n.addAttributeFilter,serialize:n.serialize,addRules:n.addRules,setRules:n.setRules,addTempAttr:n.addTempAttr,getTempAttrs:n.getTempAttrs}},Eh=function(e,t){var n;t.hasAttribute("data-mce-caret")&&(mi.showCaretContainerBlock(t),(n=e).selection.setRng(n.selection.getRng()),e.selection.scrollIntoView(t))},Sh=function(e,t){var n,r=(n=e,Nu(Hn.fromDom(n.getBody()),"*[data-mce-caret]").fold(y.constant(null),function(e){return e.dom()}));if(r)return"compositionstart"===t.type?(t.preventDefault(),t.stopPropagation(),void Eh(e,r)):void(mi.hasContent(r)&&Eh(e,r))},kh=function(e){e.on("keyup compositionstart",y.curry(Sh,e))};function Th(e){return{getBookmark:y.curry(xs.getBookmark,e),moveToBookmark:y.curry(xs.moveToBookmark,e)}}(Th||(Th={})).isBookmarkNode=xs.isBookmarkNode;var Ah=Th,_h=vo.isContentEditableFalse,Bh=vo.isContentEditableTrue,Rh=function(e,t){var n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b=t.dom,C=Ot.each,x=t.getDoc(),w=document,N=Math.abs,E=Math.round,S=t.getBody();i={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var k=".mce-content-body";t.contentStyles.push(k+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+k+" .mce-resizehandle:hover {background: #000}"+k+" img[data-mce-selected],"+k+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+k+" .mce-clonedresizable {position: absolute;"+(me.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+k+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}");var T=function(e){return e&&("IMG"===e.nodeName||t.dom.is(e,"figure.image"))},A=function(e){var n,r,o=e.target;n=e,r=t.selection.getRng(),!T(n.target)||kp(n.clientX,n.clientY,r)||e.isDefaultPrevented()||(e.preventDefault(),t.selection.select(o))},_=function(e){return t.dom.is(e,"figure.image")?e.querySelector("img"):e},B=function(e){var n=t.settings.object_resizing;return!1!==n&&!me.iOS&&("string"!=typeof n&&(n="table,img,figure.image,div"),"false"!==e.getAttribute("data-mce-resize")&&e!==t.getBody()&&_r.is(Hn.fromDom(e),n))},R=function(e){var i,C,x,w;i=e.screenX-s,C=e.screenY-u,g=i*a[2]+f,h=C*a[3]+d,g=g<5?5:g,h=h<5?5:h,(T(n)&&!1!==t.settings.resize_img_proportional?!Mp.modifierPressed(e):Mp.modifierPressed(e)||T(n)&&a[2]*a[3]!=0)&&(N(i)>N(C)?(h=E(g*m),g=E(h/m)):(g=E(h/m),h=E(g*m))),b.setStyles(_(r),{width:g,height:h}),x=a.startPos.x+i,w=a.startPos.y+C,x=x>0?x:0,w=w>0?w:0,b.setStyles(o,{left:x,top:w,display:"block"}),o.innerHTML=g+" × "+h,a[2]<0&&r.clientWidth<=g&&b.setStyle(r,"left",c+(f-g)),a[3]<0&&r.clientHeight<=h&&b.setStyle(r,"top",l+(d-h)),(i=S.scrollWidth-v)+(C=S.scrollHeight-y)!=0&&b.setStyles(o,{left:x-i,top:w-C}),p||(t.fire("ObjectResizeStart",{target:n,width:f,height:d}),p=!0)},D=function(){p=!1;var e=function(e,r){r&&(n.style[e]||!t.schema.isValid(n.nodeName.toLowerCase(),e)?b.setStyle(_(n),e,r):b.setAttrib(_(n),e,r))};e("width",g),e("height",h),b.unbind(x,"mousemove",R),b.unbind(x,"mouseup",D),w!==x&&(b.unbind(w,"mousemove",R),b.unbind(w,"mouseup",D)),b.remove(r),b.remove(o),O(n),t.fire("ObjectResized",{target:n,width:g,height:h}),b.setAttrib(n,"style",b.getAttrib(n,"style")),t.nodeChanged()},O=function(e){var p,N,E,k,T;P(),M(),p=b.getPos(e,S),c=p.x,l=p.y,T=e.getBoundingClientRect(),N=T.width||T.right-T.left,E=T.height||T.bottom-T.top,n!==e&&(n=e,g=h=0),k=t.fire("ObjectSelected",{target:e}),B(e)&&!k.isDefaultPrevented()?C(i,function(e,t){var i;(i=b.get("mceResizeHandle"+t))&&b.remove(i),i=b.add(S,"div",{id:"mceResizeHandle"+t,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+t+"-resize; margin:0; padding:0"}),me.ie&&(i.contentEditable=!1),b.bind(i,"mousedown",function(t){var i;t.stopImmediatePropagation(),t.preventDefault(),s=(i=t).screenX,u=i.screenY,f=_(n).clientWidth,d=_(n).clientHeight,m=d/f,a=e,e.startPos={x:N*e[0]+c,y:E*e[1]+l},v=S.scrollWidth,y=S.scrollHeight,r=n.cloneNode(!0),b.addClass(r,"mce-clonedresizable"),b.setAttrib(r,"data-mce-bogus","all"),r.contentEditable=!1,r.unSelectabe=!0,b.setStyles(r,{left:c,top:l,margin:0}),r.removeAttribute("data-mce-selected"),S.appendChild(r),b.bind(x,"mousemove",R),b.bind(x,"mouseup",D),w!==x&&(b.bind(w,"mousemove",R),b.bind(w,"mouseup",D)),o=b.add(S,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},f+" × "+d)}),e.elm=i,b.setStyles(i,{left:N*e[0]+c-i.offsetWidth/2,top:E*e[1]+l-i.offsetHeight/2})}):P(),n.setAttribute("data-mce-selected","1")},P=function(){var e,t;for(e in M(),n&&n.removeAttribute("data-mce-selected"),i)(t=b.get("mceResizeHandle"+e))&&(b.unbind(t),b.remove(t))},I=function(n){var r,o=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};p||t.removed||(C(b.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),r="mousedown"===n.type?n.target:e.getNode(),o(r=b.$(r).closest("table,img,figure.image,hr")[0],S)&&(F(),o(e.getStart(!0),r)&&o(e.getEnd(!0),r))?O(r):P())},L=function(e){return _h(function(e,t){for(;t&&t!==e;){if(Bh(t)||_h(t))return t;t=t.parentNode}return null}(t.getBody(),e))},M=function(){for(var e in i){var t=i[e];t.elm&&(b.unbind(t.elm),delete t.elm)}},F=function(){try{t.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return t.on("init",function(){F(),me.ie&&me.ie>=11&&(t.on("mousedown click",function(e){var n=e.target,r=n.nodeName;p||!/^(TABLE|IMG|HR)$/.test(r)||L(n)||(2!==e.button&&t.selection.select(n,"TABLE"===r),"mousedown"===e.type&&t.nodeChanged())}),t.dom.bind(S,"mscontrolselect",function(e){var n=function(e){ye.setEditorTimeout(t,function(){t.selection.select(e)})};if(L(e.target))return e.preventDefault(),void n(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&n(e.target))}));var e=ye.throttle(function(e){t.composing||I(e)});t.on("nodechange ResizeEditor ResizeWindow drop",e),t.on("keyup compositionend",function(t){n&&"TABLE"===n.nodeName&&e(t)}),t.on("hide blur",P),t.on("contextmenu",A)}),t.on("remove",M),{isResizable:B,showResizeRect:O,hideResizeRect:P,updateResizeRect:I,destroy:function(){n=r=null}}},Dh=function(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}},Oh=function(e,t,n){var r,o,i,a,s,u=e.dom,c=u.getRoot(),l=0;if(s={elm:t,alignToTop:n},e.fire("scrollIntoView",s),!s.isDefaultPrevented()&&vo.isElement(t)){if(!1===n&&(l=t.offsetHeight),"BODY"!==c.nodeName){var f=e.selection.getScrollContainer();if(f)return r=Dh(t).y-Dh(f).y+l,a=f.clientHeight,void((r<(i=f.scrollTop)||r+25>i+a)&&(f.scrollTop=r<i?r:r-a+25))}o=u.getViewPort(e.getWin()),r=u.getPos(t).y+l,i=o.y,a=o.h,(r<o.y||r+25>i+a)&&e.getWin().scrollTo(0,r<i?r:r-a+25)}},Ph=function(e){return vo.isContentEditableTrue(e)||vo.isContentEditableFalse(e)},Ih=function(e,t,n){var r,o,i,a,s,u=n;if(u.caretPositionFromPoint)(o=u.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(u.body.createTextRange){r=u.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,t,n){var r,o,i;if(r=n.elementFromPoint(e,t),o=n.body.createTextRange(),r&&"HTML"!==r.tagName||(r=n.body),o.moveToElementText(r),(i=(i=Ot.toArray(o.getClientRects())).sort(function(e,n){return(e=Math.abs(Math.max(e.top-t,e.bottom-t)))-(n=Math.abs(Math.max(n.top-t,n.bottom-t)))})).length>0){t=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,t),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,s=i&&i.parentElement?i.parentElement():null,vo.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(s,a,Ph))?null:i}return r},Lh=function(e,t){return M.map(t,function(t){var n=e.fire("GetSelectionRange",{range:t});return n.range!==t?n.range:t})},Mh=function(e,t){return Hn.fromDom(e.dom().cloneNode(t))},Fh=function(e){return Mh(e,!0)},zh=function(e){return Mh(e,!1)},Uh=Fh,Vh=function(e,t){var n=(t||document).createDocumentFragment();return M.each(e,function(e){n.appendChild(e.dom())}),Hn.fromDom(n)},Hh=function(e){return Ur.firstChild(e).fold(y.constant([e]),function(t){return[e].concat(Hh(t))})},qh=function(e){return Ur.lastChild(e).fold(y.constant([e]),function(t){return"br"===Zn.name(t)?Ur.prevSibling(t).map(function(t){return[e].concat(qh(t))}).getOr([]):[e].concat(qh(t))})},jh=function(e,t){return hs([(i=t,a=i.startContainer,s=i.startOffset,vo.isText(a)?0===s?E.some(Hn.fromDom(a)):E.none():E.from(a.childNodes[s]).map(Hn.fromDom)),(n=t,r=n.endContainer,o=n.endOffset,vo.isText(r)?o===r.data.length?E.some(Hn.fromDom(r)):E.none():E.from(r.childNodes[o-1]).map(Hn.fromDom))],function(t,n){var r=M.find(Hh(e),y.curry(Dr.eq,t)),o=M.find(qh(e),y.curry(Dr.eq,n));return r.isSome()&&o.isSome()}).getOr(!1);var n,r,o,i,a,s},$h=function(e,t,n,r){var o=n,i=new to(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Ot.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(me.ie&&me.ie<11&&e.isBlock(n)&&e.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))},Wh=xr("element","width","rows"),Kh=xr("element","cells"),Xh=xr("x","y"),Yh=function(e,t){var n=parseInt(dr.get(e,t),10);return isNaN(n)?1:n},Gh=function(e){return M.foldl(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},Jh=function(e,t){for(var n=e.rows(),r=0;r<n.length;r++)for(var o=n[r].cells(),i=0;i<o.length;i++)if(Dr.eq(o[i],t))return E.some(Xh(i,r));return E.none()},Qh=function(e,t,n,r,o){for(var i=[],a=e.rows(),s=n;s<=o;s++){var u=a[s].cells(),c=t<r?u.slice(t,r+1):u.slice(r,t+1);i.push(Kh(a[s].element(),c))}return i},Zh=function(e){var t=Wh(zh(e),0,[]);return M.each(Os(e,"tr"),function(e,n){M.each(Os(e,"td,th"),function(r,o){!function(e,t,n,r,o){for(var i=Yh(o,"rowspan"),a=Yh(o,"colspan"),s=e.rows(),u=n;u<n+i;u++){s[u]||(s[u]=Kh(Uh(r),[]));for(var c=t;c<t+a;c++)s[u].cells()[c]=u===n&&c===t?o:zh(o)}}(t,function(e,t,n){for(;r=t,o=n,i=void 0,((i=e.rows())[o]?i[o].cells():[])[r];)t++;var r,o,i;return t}(t,o,n),n,e,r)})}),Wh(t.element(),Gh(t.rows()),t.rows())},ev=function(e){return t=e,i=e,n=M.map(i.rows(),function(e){var t=M.map(e.cells(),function(e){var t=Uh(e);return dr.remove(t,"colspan"),dr.remove(t,"rowspan"),t}),n=zh(e.element());return As(n,t),n}),r=zh(t.element()),o=Hn.fromTag("tbody"),As(o,n),ks.append(r,o),r;var t,n,r,o,i},tv=function(e,t,n){return Jh(e,t).bind(function(t){return Jh(e,n).map(function(n){return r=e,i=n,a=(o=t).x(),s=o.y(),u=i.x(),c=i.y(),l=s<c?Qh(r,a,s,u,c):Qh(r,a,c,u,s),Wh(r.element(),Gh(l),l);var r,o,i,a,s,u,c,l})})},nv=function(e,t){return M.find(e,function(e){return"li"===Zn.name(e)&&jh(e,t)}).fold(y.constant([]),function(t){return(n=e,M.find(n,function(e){return"ul"===Zn.name(e)||"ol"===Zn.name(e)})).map(function(e){return[Hn.fromTag("li"),Hn.fromTag(Zn.name(e))]}).getOr([]);var n})},rv=function(e,t){var n,r=Hn.fromDom(t.commonAncestorContainer),o=Uu(r,e),i=M.filter(o,function(e){return io.isInline(e)||io.isHeading(e)}),a=nv(o,t),s=i.concat(a.length?a:(n=r,io.isListItem(n)?Ur.parent(n).filter(io.isList).fold(y.constant([]),function(e){return[n,e]}):io.isList(n)?[n]:[]));return M.map(s,zh)},ov=function(){return Vh([])},iv=function(e,t){return n=Hn.fromDom(t.cloneContents()),r=rv(e,t),o=M.foldl(r,function(e,t){return ks.append(t,e),t},n),r.length>0?Vh([o]):o;var n,r,o},av=function(e,t){return(n=e,r=t[0],wu(r,"table",y.curry(Dr.eq,n))).bind(function(e){var n=t[0],r=t[t.length-1],o=Zh(e);return tv(o,n,r).map(function(e){return Vh([ev(e)])})}).getOrThunk(ov);var n,r},sv=function(e,t){var n,r,o=Af(t,e);return o.length>0?av(e,o):(n=e,(r=t).length>0&&r[0].collapsed?ov():iv(n,r[0]))},uv=function(e,t){var n,r=e.selection.getRng(),o=e.dom.create("body"),i=e.selection.getSel(),a=Lh(e,wf(i));if((t=t||{}).get=!0,t.format=t.format||"html",t.selection=!0,(t=e.fire("BeforeGetContent",t)).isDefaultPrevented())return e.fire("GetContent",t),t.content;if("text"===t.format)return e.selection.isCollapsed()?"":ii(r.text||(i.toString?i.toString():""));r.cloneContents?(n=t.contextual?sv(Hn.fromDom(e.getBody()),a).dom():r.cloneContents())&&o.appendChild(n):r.item!==undefined||r.htmlText!==undefined?(o.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),o.removeChild(o.firstChild)):o.innerHTML=r.toString(),t.getInner=!0;var s=e.selection.serializer.serialize(o,t);return"tree"===t.format?s:(t.content=e.selection.isCollapsed()?"":s,e.fire("GetContent",t),t.content)},cv=function(e,t,n){var r,o,i,a=e.selection.getRng(),s=e.getDoc();if((n=n||{format:"html"}).set=!0,n.selection=!0,n.content=t,n.no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){if(t=n.content,a.insertNode){t+='<span id="__caret">_</span>',a.startContainer===s&&a.endContainer===s?s.body.innerHTML=t:(a.deleteContents(),0===s.body.childNodes.length?s.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=s.createDocumentFragment(),i=s.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=s.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remove("__caret");try{e.selection.setRng(a)}catch(u){}}else a.item&&(s.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('<span id="__mce_tmp">_</span>'+t),e.dom.remove("__mce_tmp")):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},lv=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return E.from(i).map(Hn.fromDom).map(function(e){return r&&t.collapsed?e:Ur.child(e,o(e,a)).getOr(e)}).bind(function(e){return Zn.isElement(e)?E.some(e):Ur.parent(e)}).map(function(e){return e.dom()}).getOr(e)},fv=function(e,t,n){return lv(e,t,!0,n,function(e,t){return Math.min(Ur.childNodesCount(e),t)})},dv=function(e,t,n){return lv(e,t,!1,n,function(e,t){return t>0?t-1:t})},mv=function(e,t){for(var n=e;e&&vo.isText(e)&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n},pv=Ot.each,gv=function(e){return!!e.select},hv=function(e){return!(!e||!e.ownerDocument)&&Dr.contains(Hn.fromDom(e.ownerDocument),Hn.fromDom(e))},vv=function(e,t,n,r){var o,i,a,s,u,c=function(e,t){return cv(r,e,t)},l=function(e){var t=d();t.collapse(!!e),m(t)},f=function(){return t.getSelection?t.getSelection():t.document.selection},d=function(){var n,o,i,u,c=function(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}};if(!t)return null;if(void 0===(u=t.document)||null===u)return null;if(r.bookmark!==undefined&&!1===hm(r)){var l=Td(r);if(l.isSome())return l.map(function(e){return Lh(r,[e])[0]}).getOr(u.createRange())}try{(n=f())&&(o=n.rangeCount>0?n.getRangeAt(0):n.createRange?n.createRange():u.createRange())}catch(d){}return(o=Lh(r,[o])[0])||(o=u.createRange?u.createRange():u.body.createTextRange()),o.setStart&&9===o.startContainer.nodeType&&o.collapsed&&(i=e.getRoot(),o.setStart(i,0),o.setEnd(i,0)),a&&s&&(0===c(o.START_TO_START,o,a)&&0===c(o.END_TO_END,o,a)?o=s:(a=null,s=null)),o},m=function(e,t){var n,o;if((i=e)&&(gv(i)||hv(i.startContainer)&&hv(i.endContainer))){var i,u=gv(e)?e:null;if(u){s=null;try{u.select()}catch(c){}}else{if(n=f(),e=r.fire("SetSelectionRange",{range:e,forward:t}).range,n){s=e;try{n.removeAllRanges(),n.addRange(e)}catch(c){}!1===t&&n.extend&&(n.collapse(e.endContainer,e.endOffset),n.extend(e.startContainer,e.startOffset)),a=n.rangeCount>0?n.getRangeAt(0):null}e.collapsed||e.startContainer!==e.endContainer||!n.setBaseAndExtent||me.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(o=e.startContainer.childNodes[e.startOffset])&&"IMG"===o.tagName&&(n.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),n.anchorNode===e.startContainer&&n.focusNode===e.endContainer||n.setBaseAndExtent(o,0,o,1)),r.fire("AfterSetSelectionRange",{range:e,forward:t})}}},p=function(){var t,n,r=f();return!(r&&r.anchorNode&&r.focusNode)||((t=e.createRng()).setStart(r.anchorNode,r.anchorOffset),t.collapse(!0),(n=e.createRng()).setStart(r.focusNode,r.focusOffset),n.collapse(!0),t.compareBoundaryPoints(t.START_TO_START,n)<=0)},g={bookmarkManager:null,controlSelection:null,dom:e,win:t,serializer:n,editor:r,collapse:l,setCursorLocation:function(t,n){var o=e.createRng();t?(o.setStart(t,n),o.setEnd(t,n),m(o),l(!1)):($h(e,o,r.getBody(),!0),m(o))},getContent:function(e){return uv(r,e)},setContent:c,getBookmark:function(e,t){return o.getBookmark(e,t)},moveToBookmark:function(e){return o.moveToBookmark(e)},select:function(t,n){var r,o,i;return(r=e,o=t,i=n,E.from(o).map(function(e){var t=r.nodeIndex(e),n=r.createRng();return n.setStart(e.parentNode,t),n.setEnd(e.parentNode,t+1),i&&($h(r,n,e,!0),$h(r,n,e,!1)),n})).each(m),t},isCollapsed:function(){var e=d(),t=f();return!(!e||e.item)&&(e.compareEndPoints?0===e.compareEndPoints("StartToEnd",e):!t||e.collapsed)},isForward:p,setNode:function(t){return c(e.getOuterHTML(t)),t},getNode:function(){return e=r.getBody(),(t=d())?(o=t.startContainer,i=t.endContainer,a=t.startOffset,s=t.endOffset,n=t.commonAncestorContainer,!t.collapsed&&(o===i&&s-a<2&&o.hasChildNodes()&&(n=o.childNodes[a]),3===o.nodeType&&3===i.nodeType&&(o=o.length===a?mv(o.nextSibling,!0):o.parentNode,i=0===s?mv(i.previousSibling,!1):i.parentNode,o&&o===i))?o:n&&3===n.nodeType?n.parentNode:n):e;var e,t,n,o,i,a,s},getSel:f,setRng:m,getRng:d,getStart:function(e){return fv(r.getBody(),d(),e)},getEnd:function(e){return dv(r.getBody(),d(),e)},getSelectedBlocks:function(t,n){return function(e,t,n,r){var o,i,a=[];if(i=e.getRoot(),n=e.getParent(n||fv(i,t,!1),e.isBlock),r=e.getParent(r||dv(i,t,!1),e.isBlock),n&&n!==i&&a.push(n),n&&r&&n!==r){o=n;for(var s=new to(n,i);(o=s.next())&&o!==r;)e.isBlock(o)&&a.push(o)}return r&&n!==r&&r!==i&&a.push(r),a}(e,d(),t,n)},normalize:function(){var t=d();if(!Ef(f())){var n=Jf.normalize(e,t);return n.each(function(e){m(e,p())}),n.getOr(t)}return t},selectorChanged:function(t,n){var o;return u||(u={},o={},r.on("NodeChange",function(t){var n=t.element,r=e.getParents(n,null,e.getRoot()),i={};pv(u,function(t,n){pv(r,function(a){if(e.is(a,n))return o[n]||(pv(t,function(e){e(!0,{node:a,selector:n,parents:r})}),o[n]=t),i[n]=t,!1})}),pv(o,function(e,t){i[t]||(delete o[t],pv(e,function(e){e(!1,{node:n,selector:t,parents:r})}))})})),u[t]||(u[t]=[]),u[t].push(n),g},getScrollContainer:function(){for(var t,n=e.getRoot();n&&"BODY"!==n.nodeName;){if(n.scrollHeight>n.clientHeight){t=n;break}n=n.parentNode}return t},scrollIntoView:function(e,t){return Oh(r,e,t)},placeCaretAt:function(e,t){return m(Ih(e,t,r.getDoc()))},getBoundingClientRect:function(){var e=d();return e.collapsed?ia.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){t=null,i.destroy()}};return o=Ah(g),i=Rh(g,r),g.bookmarkManager=o,g.controlSelection=i,g},yv=ji.curry,bv=function(e,t,n,r,o,i){var a,s,u=0,c=[],l=function(r){var i,a,l;for(l=gp.getClientRects(r),-1===e&&(l=l.reverse()),i=0;i<l.length;i++)if(a=l[i],!n(a,s)){if(c.length>0&&t(a,At.last(c))&&u++,a.line=u,o(a))return!0;c.push(a)}};return(s=At.last(i.getClientRects()))?(l(a=i.getNode()),function(e,t,n,r){for(;r=_a.findNode(r,e,ki,t);)if(n(r))return}(e,r,l,a),c):c},Cv={upUntil:yv(bv,-1,Ii,Li),downUntil:yv(bv,1,Li,Ii),positionsUntil:function(e,t,n,r){var o,i,a,s,u,c,l=Ha(t),f=[],d=0,m=function(e){return At.last(e.getClientRects())};1===e?(o=l.next,i=Li,a=Ii,s=ia.after(r)):(o=l.prev,i=Ii,a=Li,s=ia.before(r)),c=m(s);do{if(s.isVisible()&&!a(u=m(s),c)){if(f.length>0&&i(u,At.last(f))&&d++,(u=Di(u)).position=s,u.line=d,n(u))return f;f.push(u)}}while(s=o(s));return f},isAboveLine:yv(function(e,t){return t.line>e}),isLine:yv(function(e,t){return t.line===e})},xv=vo.isContentEditableFalse,wv=Fi,Nv=_a.isAfterContentEditableFalse,Ev=_a.isBeforeContentEditableFalse,Sv=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},kv=function(e,t,n){return n=_a.normalizeRange(e,t,n),-1===e?ia.fromRangeStart(n):ia.fromRangeEnd(n)},Tv=function(e,t,n,r,o){var i,a,s,u,c,l,f,d;return!o.collapsed&&(i=wv(o),xv(i))?Dp(e,t,i,-1===e):(c=o,u=mi.isCaretContainerBlock(c.startContainer),r(a=kv(e,t.getBody(),o))?Op(t,a.getNode(-1===e)):(a=n(a))?r(a)?Dp(e,t,a.getNode(-1===e),1===e):r(s=n(a))&&(l=a,f=s,!(d=_a.isInSameBlock(l,f))&&vo.isBr(l.getNode())||d)?Dp(e,t,s.getNode(-1===e),1===e):u?Ip(t,a.toRange()):null:u?o:null)},Av=function(e,t,n){var r,o,i,a,s=Ha(e.getBody()),u=ji.curry(Sv,s.next),c=ji.curry(Sv,s.prev);if(n.collapsed&&e.settings.forced_root_block){if(!(r=e.dom.getParent(n.startContainer,"PRE")))return;(1===t?u(ia.fromRangeStart(n)):c(ia.fromRangeStart(n)))||(a=(i=e).dom.create(i.settings.forced_root_block),(!me.ie||me.ie>=11)&&(a.innerHTML='<br data-mce-bogus="1">'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},_v=function(e,t){var n,r=t?1:-1,o=t?Cv.downUntil:Cv.upUntil,i=e.selection.getRng();return(n=function(e,t,n,r){var o,i,a,s,u,c,l,f,d;if(d=wv(r),o=kv(e,t.getBody(),r),i=n(t.getBody(),Cv.isAboveLine(1),o),a=At.filter(i,Cv.isLine(1)),u=At.last(o.getClientRects()),Ev(o)&&(d=o.getNode()),Nv(o)&&(d=o.getNode(!0)),!u)return null;if(c=u.left,(s=Ep(a,c))&&xv(s.node))return l=Math.abs(c-s.left),f=Math.abs(c-s.right),Dp(e,t,s.node,l<f);if(d){var m=Cv.positionsUntil(e,t.getBody(),Cv.isAboveLine(1),d);if(s=Ep(At.filter(m,Cv.isLine(1)),c))return Ip(t,s.position.toRange());if(s=At.last(At.filter(m,Cv.isLine(0))))return Ip(t,s.position.toRange())}}(r,e,o,i))?n:(n=Av(e,r,i))||null},Bv=function(e,t){return function(){var n,r,o,i,a,s,u,c,l,f,d=(r=t,i=Ha((n=e).getBody()),a=ji.curry(Sv,i.next),s=ji.curry(Sv,i.prev),u=r?1:-1,c=r?a:s,l=r?Ev:Nv,f=n.selection.getRng(),(o=Tv(u,n,c,l,f))?o:(o=Av(n,u,f))||null);return!!d&&(e.selection.setRng(d),!0)}},Rv=function(e,t){return function(){var n=_v(e,t);return!!n&&(e.selection.setRng(n),!0)}},Dv=function(e,t){return M.bind((n=e,M.map(n,function(e){return Zg.merge({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:y.noop},e)})),function(e){return n=e,(r=t).keyCode===n.keyCode&&r.shiftKey===n.shiftKey&&r.altKey===n.altKey&&r.ctrlKey===n.ctrlKey&&r.metaKey===n.metaKey?[e]:[];var n,r});var n},Ov=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,r)}},Pv=function(e,t){return M.find(Dv(e,t),function(e){return e.action()})},Iv=function(e,t){e.on("keydown",function(n){var r,o,i,a;!1===n.isDefaultPrevented()&&(r=e,o=t,i=n,a=Un.detect().os,Pv([{keyCode:Mp.RIGHT,action:Bv(r,!0)},{keyCode:Mp.LEFT,action:Bv(r,!1)},{keyCode:Mp.UP,action:Rv(r,!1)},{keyCode:Mp.DOWN,action:Rv(r,!0)},{keyCode:Mp.RIGHT,action:of.move(r,o,!0)},{keyCode:Mp.LEFT,action:of.move(r,o,!1)},{keyCode:Mp.RIGHT,ctrlKey:!a.isOSX(),altKey:a.isOSX(),action:of.moveNextWord(r,o)},{keyCode:Mp.LEFT,ctrlKey:!a.isOSX(),altKey:a.isOSX(),action:of.movePrevWord(r,o)}],i).each(function(e){i.preventDefault()}))})},Lv=function(e){return 1===Ur.children(e).length},Mv=function(e,t){var n,r=Hn.fromDom(e.getBody()),o=Hn.fromDom(e.selection.getStart()),i=M.filter((n=Uu(o,r),M.findIndex(n,io.isBlock).fold(y.constant(n),function(e){return n.slice(0,e)})),Lv);return M.last(i).map(function(n){var r=ia.fromRangeStart(e.selection.getRng());return!!Cu(t,r,n.dom())&&(function(e,t,n,r){var o=y.curry(kl,t),i=M.map(M.filter(r,o),function(e){return e.dom()});if(0===i.length)mc(t,e,n);else{var a=Sl(n.dom(),i);t.selection.setRng(a.toRange())}}(t,e,n,i),!0)}).getOr(!1)},Fv=function(e,t){return!!e.selection.isCollapsed()&&Mv(e,t)},zv=function(e,t){e.on("keydown",function(n){var r,o,i;!1===n.isDefaultPrevented()&&(r=e,o=t,i=n,Pv([{keyCode:Mp.BACKSPACE,action:Ov(hc,r,!1)},{keyCode:Mp.DELETE,action:Ov(hc,r,!0)},{keyCode:Mp.BACKSPACE,action:Ov(cf,r,o,!1)},{keyCode:Mp.DELETE,action:Ov(cf,r,o,!0)},{keyCode:Mp.BACKSPACE,action:Ov(Ju,r,!1)},{keyCode:Mp.DELETE,action:Ov(Ju,r,!0)},{keyCode:Mp.BACKSPACE,action:Ov(Ku,r,!1)},{keyCode:Mp.DELETE,action:Ov(Ku,r,!0)},{keyCode:Mp.BACKSPACE,action:Ov(zf,r,!1)},{keyCode:Mp.DELETE,action:Ov(zf,r,!0)},{keyCode:Mp.BACKSPACE,action:Ov(Fv,r,!1)},{keyCode:Mp.DELETE,action:Ov(Fv,r,!0)}],i).each(function(e){i.preventDefault()}))}),e.on("keyup",function(t){var n,r;!1===t.isDefaultPrevented()&&(n=e,r=t,Pv([{keyCode:Mp.BACKSPACE,action:Ov(vc,n)},{keyCode:Mp.DELETE,action:Ov(vc,n)}],r))})},Uv=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},Vv=function(e){return e.getParam("iframe_attrs",{})},Hv=function(e){return e.getParam("doctype","<!DOCTYPE html>")},qv=function(e){return e.getParam("document_base_url","")},jv=function(e){return Uv(e,"body_id","tinymce")},$v=function(e){return Uv(e,"body_class","")},Wv=function(e){return e.getParam("content_security_policy","")},Kv=function(e){return e.getParam("br_in_pre",!0)},Xv=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},Yv=function(e){return e.getParam("forced_root_block_attrs",{})},Gv=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},Jv=function(e){return e.getParam("no_newline_selector","")},Qv=function(e){return e.getParam("keep_styles",!0)},Zv=function(e){return e.getParam("end_container_on_empty_block",!1)},ey=function(e){return E.from(e.dom.getParent(e.selection.getStart(!0),e.dom.isBlock))},ty=function(e,t){var n,r,o,i=t,a=e.dom,s=e.schema.getMoveCaretBeforeOnEnterElements();if(t){if(/^(LI|DT|DD)$/.test(t.nodeName)){var u=function(e){for(;e;){if(1===e.nodeType||3===e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}(t.firstChild);u&&/^(UL|OL|DL)$/.test(u.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(o=a.createRng(),t.normalize(),t.hasChildNodes()){for(n=new to(t,t);r=n.current();){if(vo.isText(r)){o.setStart(r,0),o.setEnd(r,0);break}if(s[r.nodeName.toLowerCase()]){o.setStartBefore(r),o.setEndBefore(r);break}i=r,r=n.next()}r||(o.setStart(i,0),o.setEnd(i,0))}else vo.isBr(t)?t.nextSibling&&a.isBlock(t.nextSibling)?(o.setStartBefore(t),o.setEndBefore(t)):(o.setStartAfter(t),o.setEndAfter(t)):(o.setStart(t,0),o.setEnd(t,0));e.selection.setRng(o),a.remove(void 0),e.selection.scrollIntoView(t)}},ny=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},ry=ey,oy=function(e){return ey(e).fold(y.constant(""),function(e){return e.nodeName.toUpperCase()})},iy=function(e){return ey(e).filter(function(e){return io.isListItem(Hn.fromDom(e))}).isSome()},ay=function(e,t){return e&&e.parentNode&&e.parentNode.nodeName===t},sy=function(e){return e&&/^(OL|UL|LI)$/.test(e.nodeName)},uy=function(e){var t=e.parentNode;return/^(LI|DT|DD)$/.test(t.nodeName)?t:e},cy=function(e,t,n){for(var r=e[n?"firstChild":"lastChild"];r&&!vo.isElement(r);)r=r[n?"nextSibling":"previousSibling"];return r===t},ly=function(e,t,n,r,o){var i=e.dom,a=e.selection.getRng();if(n!==e.getBody()){var s;sy(s=n)&&sy(s.parentNode)&&(o="LI");var u,c,l=o?t(o):i.create("BR");if(cy(n,r,!0)&&cy(n,r,!1))ay(n,"LI")?i.insertAfter(l,uy(n)):i.replace(l,n);else if(cy(n,r,!0))ay(n,"LI")?(i.insertAfter(l,uy(n)),l.appendChild(i.doc.createTextNode(" ")),l.appendChild(n)):n.parentNode.insertBefore(l,n);else if(cy(n,r,!1))i.insertAfter(l,uy(n));else{n=uy(n);var f=a.cloneRange();f.setStartAfter(r),f.setEndAfter(n);var d=f.extractContents();"LI"===o&&(c="LI",(u=d).firstChild&&u.firstChild.nodeName===c)?(l=d.firstChild,i.insertAfter(d,n)):(i.insertAfter(d,n),i.insertAfter(l,n))}i.remove(r),ty(e,l)}},fy=function(e){e.innerHTML='<br data-mce-bogus="1">'},dy=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},my=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},py=function(e,t,n){return!1===vo.isText(t)?n:e?1===n&&t.data.charAt(n-1)===oi?0:n:n===t.data.length-1&&t.data.charAt(n)===oi?t.data.length:n},gy=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},hy=function(e,t){var n=Xv(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,Yv(e))},vy=function(e,t){var n,r,o,i,a,s,u,c,l,f,d,m,p,g,h,v,y,b,C=e.dom,x=e.schema,w=x.getNonEmptyElements(),N=e.selection.getRng(),E=function(t){var n,i,s,u=o,c=x.getTextInlineElements();if(t||"TABLE"===f||"HR"===f?(n=C.create(t||m),hy(e,n)):n=a.cloneNode(!1),s=n,!1===Qv(e))C.setAttrib(n,"style",null),C.setAttrib(n,"class",null);else do{if(c[u.nodeName]){if(Nl(u))continue;i=u.cloneNode(!1),C.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(s=i,n.appendChild(i))}}while((u=u.parentNode)&&u!==r);return fy(s),n},S=function(e){var t,n,r,s;if(s=py(e,o,i),vo.isText(o)&&(e?s>0:s<o.nodeValue.length))return!1;if(o.parentNode===a&&p&&!e)return!0;if(e&&vo.isElement(o)&&o===a.firstChild)return!0;if(dy(o,"TABLE")||dy(o,"HR"))return p&&!e||!p&&e;for(t=new to(o,a),vo.isText(o)&&(e&&0===s?t.prev():e||s!==o.nodeValue.length||t.next());n=t.current();){if(vo.isElement(n)){if(!n.getAttribute("data-mce-bogus")&&(r=n.nodeName.toLowerCase(),w[r]&&"br"!==r))return!1}else if(vo.isText(n)&&!/^[ \t\r\n]*$/.test(n.nodeValue))return!1;e?t.prev():t.next()}return!0},k=function(){u=/^(H[1-6]|PRE|FIGURE)$/.test(f)&&"HGROUP"!==d?E(m):E(),Zv(e)&&my(C,l)&&C.isEmpty(a)?u=C.split(l,a):C.insertAfter(u,a),ty(e,u)};Jf.normalize(C,N).each(function(e){N.setStart(e.startContainer,e.startOffset),N.setEnd(e.endContainer,e.endOffset)}),o=N.startContainer,i=N.startOffset,m=Xv(e),s=t.shiftKey,vo.isElement(o)&&o.hasChildNodes()&&(p=i>o.childNodes.length-1,o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o,i=p&&vo.isText(o)?o.nodeValue.length:0),(r=gy(C,o))&&((m&&!s||!m&&s)&&(o=function(e,t,n,r,o){var i,a,s,u,c,l,f,d=t||"P",m=e.dom,p=gy(m,r);if(!(a=m.getParent(r,m.isBlock))||!my(m,a)){if(l=(a=a||p)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),hy(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(u=r;u.parentNode!==a;)u=u.parentNode;for(;u&&!m.isBlock(u);)s=u,u=u.previousSibling;if(s&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),hy(e,i),s.parentNode.insertBefore(i,s),u=s;u&&!m.isBlock(u);)c=u.nextSibling,i.appendChild(u),u=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(e,m,N,o,i)),a=C.getParent(o,C.isBlock),l=a?C.getParent(a.parentNode,C.isBlock):null,f=a?a.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||t.ctrlKey||(a=l,l=l.parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&C.isEmpty(a)?ly(e,E,l,a,m):m&&a===e.getBody()||(m=m||"P",mi.isCaretContainerBlock(a)?(u=mi.showCaretContainerBlock(a),C.isEmpty(a)&&fy(a),ty(e,u)):S()?k():S(!0)?(u=a.parentNode.insertBefore(E(),a),ty(e,dy(a,"HR")?u:a)):((n=(y=N,b=y.cloneRange(),b.setStart(y.startContainer,py(!0,y.startContainer,y.startOffset)),b.setEnd(y.endContainer,py(!1,y.endContainer,y.endOffset)),b).cloneRange()).setEndAfter(a),function(e){do{vo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild}while(e)}(c=n.extractContents()),u=c.firstChild,C.insertAfter(c,a),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;vo.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=o)&&"A"===a.nodeName&&0===Ot.trim(ii(a.innerText||a.textContent)).length&&e.remove(o);var a}}(C,w,u),g=C,(h=a).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(g.getStyle(v,"float",!0))||g.add(h,"br"),C.isEmpty(a)&&fy(a),u.normalize(),C.isEmpty(u)?(C.remove(u),k()):ty(e,u)),C.setAttrib(u,"id",""),e.fire("NewBlock",{newBlock:u})))},yy=function(e,t){return ry(e).filter(function(e){return t.length>0&&_r.is(Hn.fromDom(e),t)}).isSome()},by=function(e){return yy(e,Gv(e))},Cy=function(e){return yy(e,Jv(e))},xy=Qu([{br:[]},{block:[]},{none:[]}]),wy=function(e,t){return Cy(e)},Ny=function(e){return function(t,n){return""===Xv(t)===e}},Ey=function(e){return function(t,n){return iy(t)===e}},Sy=function(e){return function(t,n){return"PRE"===oy(t)===e}},ky=function(e){return function(t,n){return Kv(t)===e}},Ty=function(e,t){return by(e)},Ay=function(e,t){return t},_y=function(e){var t=Xv(e),n=ny(e.dom,e.selection.getStart());return n&&e.schema.isValidChild(n.nodeName,t||"P")},By=function(e,t){return function(n,r){return M.foldl(e,function(e,t){return e&&t(n,r)},!0)?E.some(t):E.none()}},Ry=function(e,t){return Tl([By([wy],xy.none()),By([Sy(!0),ky(!1),Ay],xy.br()),By([Sy(!0),ky(!1)],xy.block()),By([Sy(!0),ky(!0),Ay],xy.block()),By([Sy(!0),ky(!0)],xy.br()),By([Ey(!0),Ay],xy.br()),By([Ey(!0)],xy.block()),By([Ny(!0),Ay,_y],xy.block()),By([Ny(!0)],xy.br()),By([Ty],xy.br()),By([Ny(!1),Ay],xy.br()),By([_y],xy.block())],[e,t.shiftKey]).getOr(xy.none())},Dy=function(e,t){Ry(e,t).fold(function(){sd(e,t)},function(){vy(e,t)},y.noop)},Oy=function(e){e.on("keydown",function(t){var n,r,o;t.keyCode===Mp.ENTER&&(n=e,(r=t).isDefaultPrevented()||(r.preventDefault(),(o=n.undoManager).typing&&(o.typing=!1,o.add()),n.undoManager.transact(function(){!1===n.selection.isCollapsed()&&n.execCommand("Delete"),Dy(n,r)})))})},Py=function(e,t,n){return s=t,!(!Iy(n)||!vo.isText(s.container())||(r=e,i=(o=t).container(),a=o.offset(),i.insertData(a,"\xa0"),r.selection.setCursorLocation(i,a+1),0));var r,o,i,a,s},Iy=function(e){return e.fold(y.constant(!1),y.constant(!0),y.constant(!0),y.constant(!1))},Ly=function(e){return!!e.selection.isCollapsed()&&(t=e,n=y.curry(vu.isInlineTarget,t),r=ia.fromRangeStart(t.selection.getRng()),$l(n,t.getBody(),r).map(y.curry(Py,t,r)).getOr(!1));var t,n,r},My=function(e){e.on("keydown",function(t){var n,r;!1===t.isDefaultPrevented()&&(n=e,r=t,Pv([{keyCode:Mp.SPACEBAR,action:Ov(Ly,n)}],r).each(function(e){r.preventDefault()}))})},Fy=function(e){var t=of.setupSelectedState(e);Iv(e,t),zv(e,t),Oy(e),My(e)},zy=function(e){var t,n,r,o=Ot.each,i=Mp.BACKSPACE,a=Mp.DELETE,s=e.dom,u=e.selection,c=e.settings,l=e.parser,f=me.gecko,d=me.ie,m=me.webkit,p="data:text/mce-internal,",g=d?"Text":"URL",h=function(t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}},v=function(e){return e.isDefaultPrevented()},y=function(){e.shortcuts.add("meta+a",null,"SelectAll")},b=function(){e.on("keydown",function(e){if(!v(e)&&e.keyCode===i&&u.isCollapsed()&&0===u.getRng().startOffset){var t=u.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})},C=function(){e.inline||(e.contentStyles.push("body {min-height: 150px}"),e.on("click",function(t){var n;if("HTML"===t.target.nodeName){if(me.ie>11)return void e.getBody().focus();n=e.selection.getRng(),e.getBody().focus(),e.selection.setRng(n),e.selection.normalize(),e.nodeChanged()}}))};return e.on("keydown",function(t){var n,r,o,i,a;if(!v(t)&&t.keyCode===Mp.BACKSPACE&&(r=(n=u.getRng()).startContainer,o=n.startOffset,i=s.getRoot(),a=r,n.collapsed&&0===o)){for(;a&&a.parentNode&&a.parentNode.firstChild===a&&a.parentNode!==i;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(e.formatter.toggle("blockquote",null,a),(n=s.createRng()).setStart(r,0),n.setEnd(r,0),u.setRng(n))}}),t=function(e){var t=s.create("body"),n=e.cloneContents();return t.appendChild(n),u.serializer.serialize(t,{format:"html"})},e.on("keydown",function(n){var r,o,u,c,l,f=n.keyCode;if(!v(n)&&(f===a||f===i)){if(r=e.selection.isCollapsed(),o=e.getBody(),r&&!s.isEmpty(o))return;if(!r&&(u=e.selection.getRng(),c=t(u),(l=s.createRng()).selectNode(e.getBody()),c!==t(l)))return;n.preventDefault(),e.setContent(""),o.firstChild&&s.isBlock(o.firstChild)?e.selection.setCursorLocation(o.firstChild,0):e.selection.setCursorLocation(o,0),e.nodeChanged()}}),me.windowsPhone||e.on("keyup focusin mouseup",function(e){Mp.modifierPressed(e)||u.normalize()},!0),m&&(e.settings.content_editable||s.bind(e.getDoc(),"mousedown mouseup",function(t){var n;if(t.target===e.getDoc().documentElement)if(n=u.getRng(),e.getBody().focus(),"mousedown"===t.type){if(mi.isCaretContainer(n.startContainer))return;u.placeCaretAt(t.clientX,t.clientY)}else u.setRng(n)}),e.on("click",function(t){var n=t.target;/^(IMG|HR)$/.test(n.nodeName)&&"false"!==s.getContentEditableParent(n)&&(t.preventDefault(),e.selection.select(n),e.nodeChanged()),"A"===n.nodeName&&s.hasClass(n,"mce-item-anchor")&&(t.preventDefault(),u.select(n))}),c.forced_root_block&&e.on("init",function(){h("DefaultParagraphSeparator",c.forced_root_block)}),e.on("init",function(){e.dom.bind(e.getBody(),"submit",function(e){e.preventDefault()})}),b(),l.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"===e[t].attr("class")&&e[t].remove()}),me.iOS?(e.inline||e.on("keydown",function(){document.activeElement===document.body&&e.getWin().focus()}),C(),e.on("click",function(e){var t=e.target;do{if("A"===t.tagName)return void e.preventDefault()}while(t=t.parentNode)}),e.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")):y()),me.ie>=11&&(C(),b()),me.ie&&(y(),h("AutoUrlDetect",!1),e.on("dragstart",function(t){var n,r,o;(n=t).dataTransfer&&(e.selection.isCollapsed()&&"IMG"===n.target.tagName&&u.select(n.target),(r=e.selection.getContent()).length>0&&(o=p+escape(e.id)+","+escape(r),n.dataTransfer.setData(g,o)))}),e.on("drop",function(t){if(!v(t)){var n=(a=t).dataTransfer&&(s=a.dataTransfer.getData(g))&&s.indexOf(p)>=0?(s=s.substr(p.length).split(","),{id:unescape(s[0]),html:unescape(s[1])}):null;if(n&&n.id!==e.id){t.preventDefault();var r=Ih(t.x,t.y,e.getDoc());u.setRng(r),o=n.html,i=!0,e.queryCommandSupported("mceInsertClipboardContent")?e.execCommand("mceInsertClipboardContent",!1,{content:o,internal:i}):e.execCommand("mceInsertContent",!1,o)}}var o,i,a,s})),f&&(e.on("keydown",function(t){if(!v(t)&&t.keyCode===i){if(!e.getBody().getElementsByTagName("hr").length)return;if(u.isCollapsed()&&0===u.getRng().startOffset){var n=u.getNode(),r=n.previousSibling;if("HR"===n.nodeName)return s.remove(n),void t.preventDefault();r&&r.nodeName&&"hr"===r.nodeName.toLowerCase()&&(s.remove(r),t.preventDefault())}}}),Range.prototype.getClientRects||e.on("mousedown",function(t){if(!v(t)&&"HTML"===t.target.nodeName){var n=e.getBody();n.blur(),ye.setEditorTimeout(e,function(){n.focus()})}}),n=function(){var t=s.getAttribs(u.getStart().cloneNode(!1));return function(){var n=u.getStart();n!==e.getBody()&&(s.setAttrib(n,"style",null),o(t,function(e){n.setAttributeNode(e.cloneNode(!0))}))}},r=function(){return!u.isCollapsed()&&s.getParent(u.getStart(),s.isBlock)!==s.getParent(u.getEnd(),s.isBlock)},e.on("keypress",function(t){var o;if(!v(t)&&(8===t.keyCode||46===t.keyCode)&&r())return o=n(),e.getDoc().execCommand("delete",!1,null),o(),t.preventDefault(),!1}),s.bind(e.getDoc(),"cut",function(t){var o;!v(t)&&r()&&(o=n(),ye.setEditorTimeout(e,function(){o()}))}),c.readonly||e.on("BeforeExecCommand MouseDown",function(){h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),c.object_resizing||h("enableObjectResizing",!1)}),e.on("SetContent ExecCommand",function(e){"setcontent"!==e.type&&"mceInsertLink"!==e.command||o(s.select("a"),function(e){var t=e.parentNode,n=s.getRoot();if(t.lastChild===e){for(;t&&!s.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}s.add(t,"br",{"data-mce-bogus":1})}})}),e.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"),me.mac&&e.on("keydown",function(t){!Mp.metaKeyPressed(t)||t.shiftKey||37!==t.keyCode&&39!==t.keyCode||(t.preventDefault(),e.selection.getSel().modify("move",37===t.keyCode?"backward":"forward","lineboundary"))}),b()),{refreshContentEditable:function(){},isHidden:function(){var t;return!f||e.removed?0:!(t=e.selection.getSel())||!t.rangeCount||0===t.rangeCount}}},Uy=Xo.DOM,Vy=function(e){var t;e.bindPendingEventDelegates(),e.initialized=!0,e.fire("init"),e.focus(!0),e.nodeChanged({initial:!0}),e.execCallback("init_instance_callback",e),(t=e).settings.auto_focus&&ye.setEditorTimeout(t,function(){var e;(e=!0===t.settings.auto_focus?t:t.editorManager.get(t.settings.auto_focus)).destroyed||e.focus()},100)},Hy=function(e,t){var n,r,o,i,a,s,u,c,l,f=e.settings,d=e.getElement(),m=e.getDoc();f.inline||(e.getElement().style.visibility=e.orgVisibility),t||f.content_editable||(m.open(),m.write(e.iframeHTML),m.close()),f.content_editable&&(e.on("remove",function(){var e=this.getBody();Uy.removeClass(e,"mce-content-body"),Uy.removeClass(e,"mce-edit-focus"),Uy.setAttrib(e,"contentEditable",null)}),Uy.addClass(d,"mce-content-body"),e.contentDocument=m=f.content_document||document,e.contentWindow=f.content_window||window,e.bodyElement=d,f.content_document=f.content_window=null,f.root_name=d.nodeName.toLowerCase()),(n=e.getBody()).disabled=!0,e.readonly=f.readonly,e.readonly||(e.inline&&"static"===Uy.getStyle(n,"position",!0)&&(n.style.position="relative"),n.contentEditable=e.getParam("content_editable_state",!0)),n.disabled=!1,e.editorUpload=Jm(e),e.schema=Fo(f),e.dom=new Xo(m,{keep_values:!0,url_converter:e.convertURL,url_converter_scope:e,hex_colors:f.force_hex_style_colors,class_filter:f.class_filter,update_styles:!0,root_element:e.inline?e.getBody():null,collect:f.content_editable,schema:e.schema,onSetAttrib:function(t){e.fire("SetAttrib",t)}}),e.parser=((i=bh((o=e).settings,o.schema)).addAttributeFilter("src,href,style,tabindex",function(e,t){for(var n,r,i,a=e.length,s=o.dom;a--;)if(r=(n=e[a]).attr(t),i="data-mce-"+t,!n.attributes.map[i]){if(0===r.indexOf("data:")||0===r.indexOf("blob:"))continue;"style"===t?((r=s.serializeStyle(s.parseStyle(r),n.name)).length||(r=null),n.attr(i,r),n.attr(t,r)):"tabindex"===t?(n.attr(i,r),n.attr(t,null)):n.attr(i,o.convertURL(r,t,n.name))}}),i.addNodeFilter("script",function(e){for(var t,n,r=e.length;r--;)0!==(n=(t=e[r]).attr("type")||"no/type").indexOf("mce-")&&t.attr("type","mce-"+n)}),i.addNodeFilter("#cdata",function(e){for(var t,n=e.length;n--;)(t=e[n]).type=8,t.name="#comment",t.value="[CDATA["+t.value+"]]"}),i.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t,n=e.length,r=o.schema.getNonEmptyElements();n--;)(t=e[n]).isEmpty(r)&&0===t.getAll("br").length&&(t.append(new fh("br",1)).shortEnded=!0)}),i),e.serializer=Nh(f,e),e.selection=vv(e.dom,e.getWin(),e.serializer,e),e.formatter=Yg(e),e.undoManager=rg(e),e._nodeChangeDispatcher=new tp(e),e._selectionOverrides=Hp(e),kh(e),Fy(e),ep(e),e.fire("PreInit"),f.browser_spellcheck||f.gecko_spellcheck||(m.body.spellcheck=!1,Uy.setAttrib(n,"spellcheck","false")),e.quirks=zy(e),e.fire("PostRender"),f.directionality&&(n.dir=f.directionality),f.nowrap&&(n.style.whiteSpace="nowrap"),f.protect&&e.on("BeforeSetContent",function(e){Ot.each(f.protect,function(t){e.content=e.content.replace(t,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})})}),e.on("SetContent",function(){e.addVisual(e.getBody())}),f.padd_empty_editor&&e.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|<br \/>|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),e.load({initial:!0,format:"html"}),e.startContent=e.getContent({format:"raw"}),e.on("compositionstart compositionend",function(t){e.composing="compositionstart"===t.type}),e.contentStyles.length>0&&(r="",Ot.each(e.contentStyles,function(e){r+=e+"\r\n"}),e.dom.addStyle(r)),(a=e,a.inline?Uy.styleSheetLoader:a.dom.styleSheetLoader).loadAll(e.contentCSS,function(t){Vy(e)},function(t){Vy(e)}),f.content_style&&(s=e,u=f.content_style,c=Hn.fromDom(s.getDoc().head),l=Hn.fromTag("style"),dr.set(l,"type","text/css"),ks.append(l,Hn.fromText(u)),ks.append(c,l))},qy=Xo.DOM,jy=function(e,t){var n,r,o,i,a,s,u,c=e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),l=(n=e.id,r=c,o=t.height,i=Vv(e),u=Hn.fromTag("iframe"),dr.setAll(u,i),dr.setAll(u,{id:n+"_ifr",frameBorder:"0",allowTransparency:"true",title:r}),br(u,{width:"100%",height:(a=o,s="number"==typeof a?a+"px":a,s||""),display:"block"}),u).dom();l.onload=function(){l.onload=null,e.fire("load")};var f,d,m,p,g=function(e,t){if(document.domain!==window.location.hostname&&me.ie&&me.ie<12){var n=Gm("mce");e[n]=function(){Hy(e)};var r='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+e.id+'");document.write(ed.iframeHTML);document.close();ed.'+n+"(true);})()";return qy.setAttrib(t,"src",r),!0}return!1}(e,l);return e.contentAreaContainer=t.iframeContainer,e.iframeElement=l,e.iframeHTML=(p=Hv(f=e)+"<html><head>",qv(f)!==f.documentBaseUrl&&(p+='<base href="'+f.documentBaseURI.getURI()+'" />'),p+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',d=jv(f),m=$v(f),Wv(f)&&(p+='<meta http-equiv="Content-Security-Policy" content="'+Wv(f)+'" />'),p+='</head><body id="'+d+'" class="mce-content-body '+m+'" data-id="'+f.id+'"><br></body></html>'),qy.add(t.iframeContainer,l),g},$y=function(e,t){var n=jy(e,t);t.editorContainer&&(qy.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=qy.isHidden(t.editorContainer)),e.getElement().style.display="none",qy.setAttrib(e.id,"aria-hidden",!0),n||Hy(e)},Wy=Xo.DOM,Ky=function(e,t,n){var r,o,i=Im.get(n);if(r=Im.urls[n]||e.documentBaseUrl.replace(/\/$/,""),n=Ot.trim(n),i&&-1===Ot.inArray(t,n)){if(Ot.each(Im.dependencies(n),function(n){Ky(e,t,n)}),e.plugins[n])return;o=new i(e,r,e.$),e.plugins[n]=o,o.init&&(o.init(e,r),t.push(n))}},Xy=function(e){return e.replace(/^\-/,"")},Yy=function(e){return{editorContainer:e,iframeContainer:e}},Gy=function(e){var t,n,r=e.getElement();return e.inline?Yy(null):(t=r,n=Wy.create("div"),Wy.insertAfter(n,t),Yy(n))},Jy=function(e){var t,n,r,o,i,a,s,u,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,tr.isString(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||Wy.getStyle(f,"width")||"100%",a=l.height||Wy.getStyle(f,"height")||f.offsetHeight,s=l.min_height||100,(u=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),u.test(""+a)&&(a=Math.max(parseInt(a,10),s)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))<s&&(a=s),c.height=a,c):tr.isFunction(d.theme)?(r=(t=e).getElement(),(n=t.settings.theme(t,r)).editorContainer.nodeType&&(n.editorContainer.id=n.editorContainer.id||t.id+"_parent"),n.iframeContainer&&n.iframeContainer.nodeType&&(n.iframeContainer.id=n.iframeContainer.id||t.id+"_iframecontainer"),n.height=n.iframeHeight?n.iframeHeight:r.offsetHeight,n):Gy(e)},Qy=function(e){var t,n,r,o,i,a,s=e.settings,u=e.getElement();return e.rtl=s.rtl_ui||e.editorManager.i18n.rtl,e.editorManager.i18n.setCode(s.language),s.aria_label=s.aria_label||Wy.getAttrib(u,"aria-label",e.getLang("aria.rich_text_area")),e.fire("ScriptsLoaded"),o=(n=e).settings.theme,tr.isString(o)?(n.settings.theme=Xy(o),r=Lm.get(o),n.theme=new r(n,Lm.urls[o]),n.theme.init&&n.theme.init(n,Lm.urls[o]||n.documentBaseUrl.replace(/\/$/,""),n.$)):n.theme={},i=e,a=[],Ot.each(i.settings.plugins.split(/[ ,]/),function(e){Ky(i,a,Xy(e))}),t=Jy(e),e.editorContainer=t.editorContainer?t.editorContainer:null,s.content_css&&Ot.each(Ot.explode(s.content_css),function(t){e.contentCSS.push(e.documentBaseURI.toAbsolute(t))}),s.content_editable?Hy(e):$y(e,t)},Zy=Xo.DOM,eb=function(e){return"-"===e.charAt(0)},tb=function(e,t){var n=Zo.ScriptLoader;!function(e,t,n,r){var o=t.settings,i=o.theme;if(tr.isString(i)){if(!eb(i)&&!Lm.urls.hasOwnProperty(i)){var a=o.theme_url;a?Lm.load(i,t.documentBaseURI.toAbsolute(a)):Lm.load(i,"themes/"+i+"/theme"+n+".js")}e.loadQueue(function(){Lm.waitFor(i,r)})}else r()}(n,e,t,function(){var r,o,i,a,s;r=n,(i=(o=e).settings).language&&"en"!==i.language&&!i.language_url&&(i.language_url=o.editorManager.baseURL+"/langs/"+i.language+".js"),i.language_url&&!o.editorManager.i18n.data[i.language]&&r.add(i.language_url),a=e.settings,s=t,Ot.isArray(a.plugins)&&(a.plugins=a.plugins.join(" ")),Ot.each(a.external_plugins,function(e,t){Im.load(t,e),a.plugins+=" "+t}),Ot.each(a.plugins.split(/[ ,]/),function(e){if((e=Ot.trim(e))&&!Im.urls[e])if(eb(e)){e=e.substr(1,e.length);var t=Im.dependencies(e);Ot.each(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+s+".js"};e=Im.createUrl(t,e),Im.load(e.resource,e)})}else Im.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+s+".js"})}),n.loadQueue(function(){e.removed||Qy(e)},e,function(t){Rm(e,t[0]),e.removed||Qy(e)})})},nb=function(e){var t=e.settings,n=e.id,r=function(){Zy.unbind(window,"ready",r),e.render()};if(Te.Event.domLoaded){if(e.getElement()&&me.contentEditable){t.inline?e.inline=!0:(e.orgVisibility=e.getElement().style.visibility,e.getElement().style.visibility="hidden");var o=e.getElement().form||Zy.getParent(n,"form");o&&(e.formElement=o,t.hidden_input&&!/TEXTAREA|INPUT/i.test(e.getElement().nodeName)&&(Zy.insertAfter(Zy.create("input",{type:"hidden",name:n}),n),e.hasHiddenInput=!0),e.formEventDelegate=function(t){e.fire(t.type,t)},Zy.bind(o,"submit reset",e.formEventDelegate),e.on("reset",function(){e.setContent(e.startContent,{format:"raw"})}),!t.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return e.editorManager.triggerSave(),e.setDirty(!1),o._mceOldSubmit(o)})),e.windowManager=km(e),e.notificationManager=Sm(e),"xml"===t.encoding&&e.on("GetContent",function(e){e.save&&(e.content=Zy.encode(e.content))}),t.add_form_submit_trigger&&e.on("submit",function(){e.initialized&&e.save()}),t.add_unload_trigger&&(e._beforeUnload=function(){!e.initialized||e.destroyed||e.isHidden()||e.save({format:"raw",no_events:!0,set_dirty:!1})},e.editorManager.on("BeforeUnload",e._beforeUnload)),e.editorManager.add(e),tb(e,e.suffix)}}else Zy.bind(window,"ready",r)},rb=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r},ob=Ot.each,ib=Ot.trim,ab="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),sb={ftp:21,http:80,https:443,mailto:25},ub=function(e,t){var n,r,o=this;if(e=ib(e),n=(t=o.settings=t||{}).base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))o.source=e;else{var i=0===e.indexOf("//");0!==e.indexOf("/")||i||(e=(n&&n.protocol||"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(r=t.base_uri?t.base_uri.path:new ub(document.location.href).directory,""==t.base_uri.protocol?e="//mce_host"+o.toAbsPath(r,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(n&&n.protocol||"http")+"://mce_host"+o.toAbsPath(r,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),ob(ab,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),n&&(o.protocol||(o.protocol=n.protocol),o.userInfo||(o.userInfo=n.userInfo),o.port||"mce_host"!==o.host||(o.port=n.port),o.host&&"mce_host"!==o.host||(o.host=n.host),o.source=""),i&&(o.protocol="")}};ub.prototype={setPath:function(e){e=/^(.*?)\/?(\w+)?$/.exec(e),this.path=e[0],this.directory=e[1],this.file=e[2],this.source="",this.getURI()},toRelative:function(e){var t;if("./"===e)return e;if("mce_host"!==(e=new ub(e,{base_uri:this})).host&&this.host!==e.host&&e.host||this.port!==e.port||this.protocol!==e.protocol&&""!==e.protocol)return e.getURI();var n=this.getURI(),r=e.getURI();return n===r||"/"===n.charAt(n.length-1)&&n.substr(0,n.length-1)===r?n:(t=this.toRelPath(this.path,e.path),e.query&&(t+="?"+e.query),e.anchor&&(t+="#"+e.anchor),t)},toAbsolute:function(e,t){return(e=new ub(e,{base_uri:this})).getURI(t&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=sb[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r,o,i=0,a="";if(e=(e=e.substring(0,e.lastIndexOf("/"))).split("/"),n=t.split("/"),e.length>=n.length)for(r=0,o=e.length;r<o;r++)if(r>=n.length||e[r]!==n[r]){i=r+1;break}if(e.length<n.length)for(r=0,o=n.length;r<o;r++)if(r>=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r<o;r++)a+="../";for(r=i-1,o=n.length;r<o;r++)a+=r!==i-1?"/"+n[r]:n[r];return a},toAbsPath:function(e,t){var n,r,o,i=0,a=[];for(r=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),ob(e,function(e){e&&a.push(e)}),e=a,n=t.length-1,a=[];n>=0;n--)0!==t[n].length&&"."!==t[n]&&(".."!==t[n]?i>0?i--:a.push(t[n]):i++);return 0!==(o=(n=e.length-i)<=0?a.reverse().join("/"):e.slice(0,n).join("/")+"/"+a.reverse().join("/")).indexOf("/")&&(o="/"+o),r&&o.lastIndexOf("/")!==o.length-1&&(o+=r),o},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(n.protocol?t+=n.protocol+"://":t+="//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},ub.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},ub.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t};var cb=Xo.DOM,lb=Ot.extend,fb=Ot.each,db=Ot.trim,mb=Ot.resolve,pb=me.ie,gb=function(e,t,n){var r,o,i,a,s,u,c,l,f,d=this;r=d.documentBaseUrl=n.documentBaseURL,o=n.baseURI,i=d,a=e,s=r,u=n.defaultSettings,c=t,f={id:a,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:s,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(l=i).convertURL,url_converter_scope:l,ie7_compat:!0},t=lu(ou,f,u,c),d.settings=t,ti.language=t.language||"en",ti.languageLoad=t.language_load,ti.baseURL=n.baseURL,d.id=e,d.setDirty(!1),d.plugins={},d.documentBaseURI=new ub(t.document_base_url,{base_uri:o}),d.baseURI=o,d.contentCSS=[],d.contentStyles=[],d.shortcuts=new Jd(d),d.loadedCSS={},d.editorCommands=new Od(d),d.suffix=n.suffix,d.editorManager=n,d.inline=t.inline,d.buttons={},d.menuItems={},t.cache_suffix&&(me.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(me.overrideViewPort=!1),n.fire("SetupEditor",d),d.execCallback("setup",d),d.$=Qt.overrideDefaults(function(){return{context:d.inline?d.getBody():d.getDoc(),element:d.getBody()}})};lb(gb.prototype={render:function(){nb(this)},focus:function(e){gm(this,e)},execCallback:function(e){var t,n=this.settings[e];if(n)return this.callbackLookup&&(t=this.callbackLookup[e])&&(n=t.func,t=t.scope),"string"==typeof n&&(t=(t=n.replace(/\.\w+$/,""))?mb(t):0,n=mb(n),this.callbackLookup=this.callbackLookup||{},this.callbackLookup[e]={func:n,scope:t}),n.apply(t||this,Array.prototype.slice.call(arguments,1))},translate:function(e){if(e&&Ot.is(e,"string")){var t=this.settings.language||"en",n=this.editorManager.i18n;e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"})}return this.editorManager.translate(e)},getLang:function(e,t){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(t!==undefined?t:"{#"+e+"}")},getParam:function(e,t,n){return mu(this,e,t,n)},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.stateSelector&&"undefined"==typeof t.active&&(t.active=!1),t.text||t.icon||(t.icon=e),n.buttons=n.buttons,t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return rb(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems,n.menuItems[e]=t},addContextToolbar:function(e,t){var n,r=this;r.contextToolbars=r.contextToolbars||[],"string"==typeof e&&(n=e,e=function(e){return r.dom.is(e,n)}),r.contextToolbars.push({id:Gm("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){this.hidden&&(this.hidden=!1,this.inline?this.getBody().contentEditable=!0:(cb.show(this.getContainer()),cb.hide(this.id)),this.load(),this.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(pb&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e===e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(cb.hide(e.getContainer()),cb.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var t,n=this.getElement();return this.removed?"":n?((e=e||{}).load=!0,t=this.setContent(n.value!==undefined?n.value:n.innerHTML,e),e.element=n,e.no_events||this.fire("LoadContent",e),e.element=n=null,t):void 0},save:function(e){var t,n,r=this,o=r.getElement();if(o&&r.initialized&&!r.removed)return(e=e||{}).save=!0,e.element=o,e.content=r.getContent(e),e.no_events||r.fire("SaveContent",e),"raw"===e.format&&r.fire("RawSaveContent",e),t=e.content,/TEXTAREA|INPUT/i.test(o.nodeName)?o.value=t:(r.inline||(o.innerHTML=t),(n=cb.getParent(r.id,"form"))&&fb(n.elements,function(e){if(e.name===r.id)return e.value=t,!1})),e.element=o=null,!1!==e.set_dirty&&r.setDirty(!1),t},setContent:function(e,t){var n,r,o=this,i=o.getBody();return(t=t||{}).format=t.format||"html",t.set=!0,t.content=e,t.no_events||o.fire("BeforeSetContent",t),0===(e=t.content).length||/^\s+$/.test(e)?(r=pb&&pb<11?"":'<br data-mce-bogus="1">',"TABLE"===i.nodeName?e="<tr><td>"+r+"</td></tr>":/^(UL|OL)$/.test(i.nodeName)&&(e="<li>"+r+"</li>"),(n=o.settings.forced_root_block)&&o.schema.isValidChild(i.nodeName.toLowerCase(),n.toLowerCase())?(e=r,e=o.dom.createHTML(n,o.settings.forced_root_block_attrs,e)):pb||e||(e='<br data-mce-bogus="1">'),o.dom.setHTML(i,e),o.fire("SetContent",t)):("raw"!==t.format&&(e=zs({validate:o.validate},o.schema).serialize(o.parser.parse(e,{isRootContent:!0,insert:!0}))),t.content=db(e),o.dom.setHTML(i,t.content),t.no_events||o.fire("SetContent",t)),t.content},getContent:function(e){var t,n=this.getBody();if(this.removed)return"";if((e=e||{}).format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||this.fire("BeforeGetContent",e),"raw"===e.format)t=Ot.trim(om(this.serializer,n.innerHTML));else if("text"===e.format)t=n.innerText||n.textContent;else{if("tree"===e.format)return this.serializer.serialize(n,e);t=this.serializer.serialize(n,e)}return"text"!==e.format?e.content=db(t):e.content=t,e.no_events||this.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=lb({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!==t&&this.fire("dirty")},setMode:function(e){Wd(this,e)},getContainer:function(){return this.container||(this.container=cb.get(this.editorContainer||this.id+"_parent")),this.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=cb.get(this.id)),this.targetElm},getWin:function(){var e;return this.contentWindow||(e=this.iframeElement)&&(this.contentWindow=e.contentWindow),this.contentWindow},getDoc:function(){var e;return this.contentDocument||(e=this.getWin())&&(this.contentDocument=e.document),this.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this.settings;return r.urlconverter_callback?this.execCallback("urlconverter_callback",e,n,!0,t):!r.convert_urls||n&&"LINK"===n.nodeName||0===e.indexOf("file:")||0===e.length?e:r.relative_urls?this.documentBaseURI.toRelative(e):e=this.documentBaseURI.toAbsolute(e,r.remove_script_host)},addVisual:function(e){var t,n=this,r=n.settings,o=n.dom;e=e||n.getBody(),n.hasVisual===undefined&&(n.hasVisual=r.visual),fb(o.select("table,a",e),function(e){var i;switch(e.nodeName){case"TABLE":return t=r.visual_table_class||"mce-item-table",void((i=o.getAttrib(e,"border"))&&"0"!==i||!n.hasVisual?o.removeClass(e,t):o.addClass(e,t));case"A":return void(o.getAttrib(e,"href",!1)||(i=o.getAttrib(e,"name")||e.id,t=r.visual_anchor_class||"mce-item-anchor",i&&n.hasVisual?o.addClass(e,t):o.removeClass(e,t)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&cb.remove(e.getElement().nextSibling),e.inline||(pb&&pb<10&&e.getDoc().execCommand("SelectAll",!1,null),cb.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),cb.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t,n=this;n.destroyed||(e||n.removed?(e||(n.editorManager.off("beforeunload",n._beforeUnload),n.theme&&n.theme.destroy&&n.theme.destroy(),n.selection.destroy(),n.dom.destroy()),(t=n.formElement)&&(t._mceOldSubmit&&(t.submit=t._mceOldSubmit,t._mceOldSubmit=null),cb.unbind(t,"submit reset",n.formEventDelegate)),n.contentAreaContainer=n.formElement=n.container=n.editorContainer=null,n.bodyElement=n.contentDocument=n.contentWindow=null,n.iframeElement=n.targetElm=null,n.selection&&(n.selection=n.selection.win=n.selection.dom=n.selection.dom.doc=null),n.destroyed=1):n.remove())},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},qd);var hb,vb,yb,bb={isEditorUIElement:function(e){return-1!==e.className.toString().indexOf("mce-")}},Cb=function(e,t){var n,r,o=Un.detect().browser;o.isIE()||o.isEdge()?(r=e).on("focusout",function(){Sd(r)}):(n=t,e.on("mouseup touchend",function(e){n.throttle()})),e.on("keyup nodechange",function(t){var n;"nodechange"===(n=t).type&&n.selectionChange||Sd(e)})},xb=function(e){var t,n,r,o=Tp(function(){Sd(e)},0);e.inline&&(t=e,n=o,r=function(){n.throttle()},Xo.DOM.bind(document,"mouseup",r),t.on("remove",function(){Xo.DOM.unbind(document,"mouseup",r)})),e.on("init",function(){Cb(e,o)}),e.on("remove",function(){o.cancel()})},wb=Xo.DOM,Nb=function(e){return bb.isEditorUIElement(e)},Eb=function(e,t){var n=e?e.settings.custom_ui_selector:"";return null!==wb.getParent(t,function(t){return Nb(t)||!!n&&e.dom.is(t,n)})},Sb=function(e,t){var n=t.editor;xb(n),n.on("focusin",function(){var t=e.focusedEditor;t!==this&&(t&&t.fire("blur",{focusedEditor:this}),e.setActive(this),e.focusedEditor=this,this.fire("focus",{blurredEditor:t}),this.focus(!0))}),n.on("focusout",function(){var t=this;ye.setEditorTimeout(t,function(){var n=e.focusedEditor;Eb(t,function(){try{return document.activeElement}catch(e){return document.body}}())||n!==t||(t.fire("blur",{focusedEditor:null}),e.focusedEditor=null)})}),hb||(hb=function(t){var n,r=e.activeEditor;n=t.target,r&&n.ownerDocument===document&&(n===document.body||Eb(r,n)||e.focusedEditor!==r||(r.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},wb.bind(document,"focusin",hb))},kb=function(e,t){e.focusedEditor===t.editor&&(e.focusedEditor=null),e.activeEditor||(wb.unbind(document,"focusin",hb),hb=null)},Tb=function(e){e.on("AddEditor",y.curry(Sb,e)),e.on("RemoveEditor",y.curry(kb,e))},Ab={},_b="en",Bb={setCode:function(e){e&&(_b=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return _b},rtl:!1,add:function(e,t){var n=Ab[e];for(var r in n||(Ab[e]=n={}),t)n[r]=t[r];this.setCode(e)},translate:function(e){var t=Ab[_b]||{},n=function(e){return Ot.is(e,"function")?Object.prototype.toString.call(e):r(e)?"":""+e},r=function(e){return""===e||null===e||Ot.is(e,"undefined")},o=function(e){return e=n(e),Ot.hasOwn(t,e)?n(t[e]):e};if(r(e))return"";if(Ot.is(e,"object")&&Ot.hasOwn(e,"raw"))return n(e.raw);if(Ot.is(e,"array")){var i=e.slice(1);e=o(e[0]).replace(/\{([0-9]+)\}/g,function(e,t){return Ot.hasOwn(i,t)?n(i[t]):e})}return o(e).replace(/{context:\w+}$/,"")},data:Ab},Rb=Xo.DOM,Db=Ot.explode,Ob=Ot.each,Pb=Ot.extend,Ib=0,Lb=!1,Mb=[],Fb=[],zb=function(e){Ob(yb.get(),function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})},Ub=function(e){e!==Lb&&(e?Qt(window).on("resize scroll",zb):Qt(window).off("resize scroll",zb),Lb=e)},Vb=function(e){var t=Fb;delete Mb[e.id];for(var n=0;n<Mb.length;n++)if(Mb[n]===e){Mb.splice(n,1);break}return Fb=M.filter(Fb,function(t){return e!==t}),yb.activeEditor===e&&(yb.activeEditor=Fb.length>0?Fb[0]:null),yb.focusedEditor===e&&(yb.focusedEditor=null),t.length!==Fb.length};Pb(yb={defaultSettings:{},$:Qt,majorVersion:"4",minorVersion:"7.5",releaseDate:"2018-01-22",editors:Mb,i18n:Bb,activeEditor:null,settings:{},setup:function(){var e,t,n,r,o="";if(t=ub.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),n=window.tinymce||window.tinyMCEPreInit)e=n.base||n.baseURL,o=n.suffix;else{for(var i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var s=(r=i[a].src).substring(r.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)){-1!==s.indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/"));break}}!e&&document.currentScript&&(-1!==(r=document.currentScript.src).indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/")))}this.baseURL=new ub(t).toAbsolute(e),this.documentBaseURL=t,this.baseURI=new ub(this.baseURL),this.suffix=o,Tb(this)},overrideDefaults:function(e){var t,n;(t=e.base_url)&&(this.baseURL=new ub(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new ub(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n),this.defaultSettings=e;var r=e.plugin_base_urls;for(var o in r)ti.PluginManager.urls[o]=r[o]},init:function(e){var t,n,r=this;n=Ot.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var o=function(e){var t=e.id;return t||(t=(t=e.name)&&!Rb.get(t)?e.name:Rb.uniqueId(),e.setAttribute("id",t)),t},i=function(e,t){return t.constructor===RegExp?t.test(e.className):Rb.hasClass(e,t)},a=function(e){t=e},s=function(){var t,u=0,c=[],l=function(e,n,o){var i=new gb(e,n,r);c.push(i),i.on("init",function(){++u===t.length&&a(c)}),i.targetElm=i.targetElm||o,i.render()};Rb.unbind(window,"ready",s),function(t){var n=e[t];n&&n.apply(r,Array.prototype.slice.call(arguments,2))}("onpageload"),t=Qt.unique(function(e){var t,n=[];if(me.ie&&me.ie<11)return Pm("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(e.types)return Ob(e.types,function(e){n=n.concat(Rb.select(e.selector))}),n;if(e.selector)return Rb.select(e.selector);if(e.target)return[e.target];switch(e.mode){case"exact":(t=e.elements||"").length>0&&Ob(Db(t),function(e){var t;(t=Rb.get(e))?n.push(t):Ob(document.forms,function(t){Ob(t.elements,function(t){t.name===e&&(e="mce_editor_"+Ib++,Rb.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":Ob(Rb.select("textarea"),function(t){e.editor_deselector&&i(t,e.editor_deselector)||e.editor_selector&&!i(t,e.editor_selector)||n.push(t)})}return n}(e)),e.types?Ob(e.types,function(n){Ot.each(t,function(t){return!Rb.is(t,n.selector)||(l(o(t),Pb({},e,n),t),!1)})}):(Ot.each(t,function(e){var t;(t=r.get(e.id))&&t.initialized&&!(t.getContainer()||t.getBody()).parentNode&&(Vb(t),t.unbindAllNativeEvents(),t.destroy(!0),t.removed=!0,t=null)}),0===(t=Ot.grep(t,function(e){return!r.get(e.id)})).length?a([]):Ob(t,function(t){var r;r=t,e.inline&&r.tagName.toLowerCase()in n?Pm("Could not initialize inline editor on invalid inline target element",t):l(o(t),e,t)}))};return r.settings=e,Rb.bind(window,"ready",s),new pe(function(e){t?e(t):a=function(t){e(t)}})},get:function(e){return 0===arguments.length?Fb.slice(0):tr.isString(e)?M.find(Fb,function(t){return t.id===e}).getOr(null):tr.isNumber(e)&&Fb[e]?Fb[e]:null},add:function(e){var t=this;return Mb[e.id]===e?e:(null===t.get(e.id)&&("length"!==e.id&&(Mb[e.id]=e),Mb.push(e),Fb.push(e)),Ub(!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),vb||(vb=function(){t.fire("BeforeUnload")},Rb.bind(window,"beforeunload",vb)),e)},createEditor:function(e,t){return this.add(new gb(e,t,this))},remove:function(e){var t,n,r=this;if(e)return tr.isString(e)?(e=e.selector||e,void Ob(Rb.select(e),function(e){(n=r.get(e.id))&&r.remove(n)})):(n=e,tr.isNull(r.get(n.id))?null:(Vb(n)&&r.fire("RemoveEditor",{editor:n}),0===Fb.length&&Rb.unbind(window,"beforeunload",vb),n.remove(),Ub(Fb.length>0),n));for(t=Fb.length-1;t>=0;t--)r.remove(Fb[t])},execCommand:function(e,t,n){var r=this.get(n);switch(e){case"mceAddEditor":return this.get(n)||new gb(n,this.settings,this).render(),!0;case"mceRemoveEditor":return r&&r.remove(),!0;case"mceToggleEditor":return r?(r.isHidden()?r.show():r.hide(),!0):(this.execCommand("mceAddEditor",0,n),!0)}return!!this.activeEditor&&this.activeEditor.execCommand(e,t,n)},triggerSave:function(){Ob(Fb,function(e){e.save()})},addI18n:function(e,t){Bb.add(e,t)},translate:function(e){return Bb.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!==e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},Fd),yb.setup();var Hb,qb=yb;function jb(e){return{walk:function(t,n){return cg.walk(e,t,n)},split:sl.split,normalize:function(t){return Jf.normalize(e,t).fold(y.constant(!1),function(e){return t.setStart(e.startContainer,e.startOffset),t.setEnd(e.endContainer,e.endOffset),!0})}}}(Hb=jb||(jb={})).compareRanges=qf,Hb.getCaretRangeFromPoint=Ih,Hb.getSelectedNode=Fi,Hb.getNode=zi;var $b,Wb,Kb=jb,Xb=Math.min,Yb=Math.max,Gb=Math.round,Jb=function(e,t,n){var r,o,i,a,s,u;return r=t.x,o=t.y,i=e.w,a=e.h,s=t.w,u=t.h,"b"===(n=(n||"").split(""))[0]&&(o+=u),"r"===n[1]&&(r+=s),"c"===n[0]&&(o+=Gb(u/2)),"c"===n[1]&&(r+=Gb(s/2)),"b"===n[3]&&(o-=a),"r"===n[4]&&(r-=i),"c"===n[3]&&(o-=Gb(a/2)),"c"===n[4]&&(r-=Gb(i/2)),Qb(r,o,i,a)},Qb=function(e,t,n,r){return{x:e,y:t,w:n,h:r}},Zb={inflate:function(e,t,n){return Qb(e.x-t,e.y-n,e.w+2*t,e.h+2*n)},relativePosition:Jb,findBestRelativePosition:function(e,t,n,r){var o,i;for(i=0;i<r.length;i++)if((o=Jb(e,t,r[i])).x>=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=Yb(e.x,t.x),r=Yb(e.y,t.y),o=Xb(e.x+e.w,t.x+t.w),i=Xb(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:Qb(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,s,u,c,l,f,d;return s=e.x,u=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=Yb(0,t.x-s),o=Yb(0,t.y-u),i=Yb(0,c-f),a=Yb(0,l-d),s+=r,u+=o,n&&(c+=r,l+=o,s-=i,u-=a),Qb(s,u,(c-=i)-s,(l-=a)-u)},create:Qb,fromClientRect:function(e){return Qb(e.left,e.top,e.width,e.height)}},eC={},tC={add:function(e,t){eC[e.toLowerCase()]=t},has:function(e){return!!eC[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=eC.hasOwnProperty(t)?eC[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=eC[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},nC=Ot.each,rC=Ot.extend,oC=function(){};oC.extend=$b=function(e){var t,n,r,o=this.prototype,i=function(){var e,t,n;if(!Wb&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},s=function(e,t){return function(){var n,r=this._super;return this._super=o[e],n=t.apply(this,arguments),this._super=r,n}};for(n in Wb=!0,t=new this,Wb=!1,e.Mixins&&(nC(e.Mixins,function(t){for(var n in t)"init"!==n&&(e[n]=t[n])}),o.Mixins&&(e.Mixins=o.Mixins.concat(e.Mixins))),e.Methods&&nC(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&nC(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){return e!==undefined?(this[n]=e,this):this[n]}}),e.Statics&&nC(e.Statics,function(e,t){i[t]=e}),e.Defaults&&o.Defaults&&(e.Defaults=rC({},o.Defaults,e.Defaults)),e)"function"==typeof(r=e[n])&&o[n]?t[n]=s(n,r):t[n]=r;return i.prototype=t,i.constructor=i,i.extend=$b,i};var iC=Math.min,aC=Math.max,sC=Math.round,uC=function(e,t){var n,r,o,i;if(t=t||'"',null===e)return"null";if("string"==(o=typeof e))return r="\bb\tt\nn\ff\rr\"\"''\\\\",t+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,o){return'"'===t&&"'"===e?e:(n=r.indexOf(o))+1?"\\"+r.charAt(n+1):(e=o.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+t;if("object"===o){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(n=0,r="[";n<e.length;n++)r+=(n>0?",":"")+uC(e[n],t);return r+"]"}for(i in r="{",e)e.hasOwnProperty(i)&&(r+="function"!=typeof e[i]?(r.length>1?","+t:t)+i+t+":"+uC(e[i],t):"");return r+"}"}return""+e},cC={serialize:uC,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}},lC={callbacks:{},count:0,send:function(e){var t=this,n=Xo.DOM,r=e.count!==undefined?e.count:t.count,o="tinymce_jsonp_"+r;t.callbacks[r]=function(i){n.remove(o),delete t.callbacks[r],e.callback(i)},n.add(n.doc.body,"script",{id:o,src:e.url,type:"text/javascript"}),t.count++}},fC={send:function(e){var t,n=0,r=function(){!e.async||4===t.readyState||n++>1e4?(e.success&&n<1e4&&200===t.status?e.success.call(e.success_scope,""+t.responseText,t,e):e.error&&e.error.call(e.error_scope,n>1e4?"TIMED_OUT":"GENERAL",t,e),t=null):setTimeout(r,10)};if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=!1!==e.async,e.data=e.data||"",fC.fire("beforeInitialize",{settings:e}),t=new Mm){if(t.overrideMimeType&&t.overrideMimeType(e.content_type),t.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(t.withCredentials=!0),e.content_type&&t.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&Ot.each(e.requestheaders,function(e){t.setRequestHeader(e.key,e.value)}),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),(t=fC.fire("beforeSend",{xhr:t,settings:e}).xhr).send(e.data),!e.async)return r();setTimeout(r,10)}}};Ot.extend(fC,Fd);var dC=Ot.extend,mC=function(e){this.settings=dC({},e),this.count=0};mC.sendRPC=function(e){return(new mC).send(e)},mC.prototype={send:function(e){var t=e.error,n=e.success;(e=dC(this.settings,e)).success=function(r,o){void 0===(r=cC.parse(r))&&(r={error:"JSON Parse error."}),r.error?t.call(e.error_scope||e.scope,r.error,o):n.call(e.success_scope||e.scope,r.result)},e.error=function(n,r){t&&t.call(e.error_scope||e.scope,n,r)},e.data=cC.serialize({id:e.id||"c"+this.count++,method:e.method,params:e.params}),e.content_type="application/json",fC.send(e)}};var pC,gC=window.localStorage,hC=qb,vC={geom:{Rect:Zb},util:{Promise:pe,Delay:ye,Tools:Ot,VK:Mp,URI:ub,Class:oC,EventDispatcher:Id,Observable:Fd,I18n:Bb,XHR:fC,JSON:cC,JSONRequest:mC,JSONP:lC,LocalStorage:gC,Color:function(e){var t={},n=0,r=0,o=0,i=function(e){var i;return"object"==typeof e?"r"in e?(n=e.r,r=e.g,o=e.b):"v"in e&&function(e,t,i){var a,s,u,c;if(e=(parseInt(e,10)||0)%360,t=parseInt(t,10)/100,i=parseInt(i,10)/100,t=aC(0,iC(t,1)),i=aC(0,iC(i,1)),0!==t){switch(a=e/60,u=(s=i*t)*(1-Math.abs(a%2-1)),c=i-s,Math.floor(a)){case 0:n=s,r=u,o=0;break;case 1:n=u,r=s,o=0;break;case 2:n=0,r=s,o=u;break;case 3:n=0,r=u,o=s;break;case 4:n=u,r=0,o=s;break;case 5:n=s,r=0,o=u;break;default:n=r=o=0}n=sC(255*(n+c)),r=sC(255*(r+c)),o=sC(255*(o+c))}else n=r=o=sC(255*i)}(e.h,e.s,e.v):(i=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(n=parseInt(i[1],10),r=parseInt(i[2],10),o=parseInt(i[3],10)):(i=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(n=parseInt(i[1],16),r=parseInt(i[2],16),o=parseInt(i[3],16)):(i=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(n=parseInt(i[1]+i[1],16),r=parseInt(i[2]+i[2],16),o=parseInt(i[3]+i[3],16)),n=n<0?0:n>255?255:n,r=r<0?0:r>255?255:r,o=o<0?0:o>255?255:o,t};return e&&i(e),t.toRgb=function(){return{r:n,g:r,b:o}},t.toHsv=function(){return e=n,t=r,i=o,s=0,(u=iC(e/=255,iC(t/=255,i/=255)))===(c=aC(e,aC(t,i)))?{h:0,s:0,v:100*(s=u)}:(a=(c-u)/c,s=c,{h:sC(60*((e===u?3:i===u?1:5)-(e===u?t-i:i===u?e-t:i-e)/(c-u))),s:sC(100*a),v:sC(100*s)});var e,t,i,a,s,u,c},t.toHex=function(){var e=function(e){return(e=parseInt(e,10).toString(16)).length>1?e:"0"+e};return"#"+e(n)+e(r)+e(o)},t.parse=i,t}},dom:{EventUtils:Te,Sizzle:lt,DomQuery:Qt,TreeWalker:to,DOMUtils:Xo,ScriptLoader:Zo,RangeUtils:Kb,Serializer:Nh,ControlSelection:Rh,BookmarkManager:Ah,Selection:vv,Event:Te.Event},html:{Styles:zo,Entities:Ao,Node:fh,Schema:Fo,SaxParser:em,DomParser:bh,Writer:Fs,Serializer:zs},ui:{Factory:tC},Env:me,AddOnManager:ti,Formatter:Yg,UndoManager:rg,EditorCommands:Od,WindowManager:km,NotificationManager:Sm,EditorObservable:qd,Shortcuts:Jd,Editor:gb,FocusManager:bb,EditorManager:qb,DOM:Xo.DOM,ScriptLoader:Zo.ScriptLoader,PluginManager:ti.PluginManager,ThemeManager:ti.ThemeManager,trim:Ot.trim,isArray:Ot.isArray,is:Ot.is,toArray:Ot.toArray,makeMap:Ot.makeMap,each:Ot.each,map:Ot.map,grep:Ot.grep,inArray:Ot.inArray,extend:Ot.extend,create:Ot.create,walk:Ot.walk,createNS:Ot.createNS,resolve:Ot.resolve,explode:Ot.explode,_addCacheSuffix:Ot._addCacheSuffix,isOpera:me.opera,isWebKit:me.webkit,isIE:me.ie,isGecko:me.gecko,isMac:me.mac};hC=Ot.extend(hC,vC),pC=hC,window.tinymce=pC,window.tinyMCE=pC}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n="[-'\\.\u2018\u2019\u2024\ufe52\uff07\uff0e]",t="[:\xb7\xb7\u05f4\u2027\ufe13\ufe55\uff1a]",r="[+*/,;;\u0589\u060c\u060d\u066c\u07f8\u2044\ufe10\ufe14\ufe50\ufe54\uff0c\uff1b]",E="[0-9\u0660-\u0669\u066b\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9]",T="\\r",u="\\n",i="[\x0B\f\x85\u2028\u2029]",o="[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8\u19c9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1baa\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]",c="[\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]",a="[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]",R="[=_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f\u2200-\u22ff<>]",f="[!-#%-*,-\\/:;?@\\[-\\]_{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]",A={characterIndices:{ALETTER:0,MIDNUMLET:1,MIDLETTER:2,MIDNUM:3,NUMERIC:4,CR:5,LF:6,NEWLINE:7,EXTEND:8,FORMAT:9,KATAKANA:10,EXTENDNUMLET:11,AT:12,OTHER:13},SETS:[new RegExp("[A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f3\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bc0-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u303b\u303c\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790\ua791\ua7a0-\ua7a9\ua7fa-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),new RegExp(n),new RegExp(t),new RegExp(r),new RegExp(E),new RegExp(T),new RegExp(u),new RegExp(i),new RegExp(o),new RegExp(c),new RegExp(a),new RegExp(R),new RegExp("@")],EMPTY_STRING:"",PUNCTUATION:new RegExp("^"+f+"$"),WHITESPACE:/^\s+$/},N=function(e,n,t){var r,E;if(!e)return 0;if(t=t||e,e.length!==undefined){for(r=0,E=e.length;r<E;r++)if(!1===n.call(t,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===n.call(t,e[r],r,e))return 0;return 1},s=function(e,n){var t=[];return N(e,function(r,E){t.push(n(r,E,e))}),t},l=A.SETS,M=A.characterIndices.OTHER,d=function(e){var n,t,r=M,E=l.length;for(n=0;n<E;++n)if((t=l[n])&&t.test(e)){r=n;break}return r},I=function(e){var n,t,r=(n=d,t={},function(e){if(t[e])return t[e];var r=n(e);return t[e]=r,r});return s(e.split(""),r)},L=A.characterIndices,g=function(e,n){var t,r,E=e[n],T=e[n+1];return!(n<0||n>e.length-1&&0!==n||E===L.ALETTER&&T===L.ALETTER||(r=e[n+2],E===L.ALETTER&&(T===L.MIDLETTER||T===L.MIDNUMLET||T===L.AT)&&r===L.ALETTER||(t=e[n-1],(E===L.MIDLETTER||E===L.MIDNUMLET||T===L.AT)&&T===L.ALETTER&&t===L.ALETTER||!(E!==L.NUMERIC&&E!==L.ALETTER||T!==L.NUMERIC&&T!==L.ALETTER)||(E===L.MIDNUM||E===L.MIDNUMLET)&&T===L.NUMERIC&&t===L.NUMERIC||E===L.NUMERIC&&(T===L.MIDNUM||T===L.MIDNUMLET)&&r===L.NUMERIC||E===L.EXTEND||E===L.FORMAT||t===L.EXTEND||t===L.FORMAT||T===L.EXTEND||T===L.FORMAT||E===L.CR&&T===L.LF||E!==L.NEWLINE&&E!==L.CR&&E!==L.LF&&T!==L.NEWLINE&&T!==L.CR&&T!==L.LF&&(E===L.KATAKANA&&T===L.KATAKANA||T===L.EXTENDNUMLET&&(E===L.ALETTER||E===L.NUMERIC||E===L.KATAKANA||E===L.EXTENDNUMLET)||E===L.EXTENDNUMLET&&(T===L.ALETTER||T===L.NUMERIC||T===L.KATAKANA)||E===L.AT))))},p=A.EMPTY_STRING,U=A.WHITESPACE,w=A.PUNCTUATION,h=function(e,n,t){var r=function(e,n){var t;for(t=n;t<e.length;++t){var r=e.charAt(t);if(U.test(r))break}return t}(n,t+1),E=n.substring(t+1,r);return"://"===E.substr(0,3)?{word:e+E,index:r}:{word:e,index:t}},v=function(e,n){return function(e,n){var t,r,E,T,u=0,i=I(e),o=i.length,c=[],a=[];for(n||(n={}),n.ignoreCase&&(e=e.toLowerCase()),r=n.includePunctuation,E=n.includeWhitespace;u<o;++u)if(t=e.charAt(u),c.push(t),g(i,u)){if((c=c.join(p))&&(E||!U.test(c))&&(r||!w.test(c)))if("http"===(T=c)||"https"===T){var R=h(c,e,u);a.push(R.word),u=R.index}else a.push(c);c=[]}return a}(e.replace(/\ufeff/g,""),n)},x=function(e){return v((n=e,n.removed?"":n.getBody().innerText)).length;var n},C=function(e){return{getCount:function(){return x(e)}}},D=tinymce.util.Tools.resolve("tinymce.util.Delay"),m=tinymce.util.Tools.resolve("tinymce.util.I18n"),y=function(e){var n=function(e){return m.translate(["{0} words",x(e)])},t=function(){e.theme.panel.find("#wordcount").text(n(e))};e.on("init",function(){var r=e.theme.panel&&e.theme.panel.find("#statusbar")[0],E=D.debounce(t,300);r&&D.setEditorTimeout(e,function(){r.insert({type:"label",name:"wordcount",text:n(e),classes:"wordcount",disabled:e.settings.readonly},0),e.on("setcontent beforeaddundo undo redo keyup",E)},0)})};e.add("wordcount",function(e){return y(e),C(e)})}();!function(){"use strict";var n,e,t,r,o=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return o(t())}}},u=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){return{isEnabled:function(){return n.get()}}},c=function(n,e){return n.fire("VisualChars",{state:e})},a={"\xa0":"nbsp","\xad":"shy"},f=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},l=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},s={charMap:a,regExp:f(a),regExpGlobal:f(a,!0),selector:l(a),charMapToRegExp:f,charMapToSelector:l},d=function(n){return function(){return n}},m={noop:function(){},noarg:function(n){return function(){return n()}},compose:function(n,e){return function(){return n(e.apply(null,arguments))}},constant:d,identity:function(n){return n},tripleEquals:function(n,e){return n===e},curry:function(n){for(var e=new Array(arguments.length-1),t=1;t<arguments.length;t++)e[t-1]=arguments[t];return function(){for(var t=new Array(arguments.length),r=0;r<t.length;r++)t[r]=arguments[r];var o=e.concat(t);return n.apply(null,o)}},not:function(n){return function(){return!n.apply(null,arguments)}},die:function(n){return function(){throw new Error(n)}},apply:function(n){return n()},call:function(n){n()},never:d(!1),always:d(!0)},p=m.never,h=m.always,v=function(){return g},g=(r={fold:function(n,e){return n()},is:p,isSome:p,isNone:h,getOr:t=function(n){return n},getOrThunk:e=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},or:t,orThunk:e,map:v,ap:v,each:function(){},bind:v,flatten:v,exists:p,forall:h,filter:v,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:m.constant("none()")},Object.freeze&&Object.freeze(r),r),y=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:h,isNone:p,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return y(e(n))},ap:function(e){return e.fold(v,function(e){return y(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:g},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(p,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},T={some:y,none:v,from:function(n){return null===n||n===undefined?g:y(n)}},w=(Array.prototype.indexOf,undefined,function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o,n)}return r}),x=function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)},E=(Array.prototype.push,Array.prototype.slice,w),b=x,k=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:m.constant(n)}},N={fromHtml:function(n,e){var t=(e||document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||t.childNodes.length>1)throw console.error("HTML does not have a single root node",n),"HTML must have a single root node";return k(t.childNodes[0])},fromTag:function(n,e){var t=(e||document).createElement(n);return k(t)},fromText:function(n,e){var t=(e||document).createTextNode(n);return k(t)},fromDom:k,fromPoint:function(n,e,t){return T.from(n.dom().elementFromPoint(e,t)).map(k)}},C=8,M=9,D=3,O=function(n){return n.dom().nodeName.toLowerCase()},A=function(n){return n.dom().nodeType},S=function(n){return function(e){return A(e)===n}},B=S(1),P=S(D),V=S(M),q={name:O,type:A,value:function(n){return n.dom().nodeValue},isElement:B,isText:P,isDocument:V,isComment:function(n){return A(n)===C||"#comment"===O(n)}},H=function(n){return'<span data-mce-bogus="1" class="mce-'+s.charMap[n]+'">'+n+"</span>"},L=function(n,e){var t=[],r=n.dom(),o=E(r.childNodes,N.fromDom);return b(o,function(n){e(n)&&(t=t.concat([n])),t=t.concat(L(n,e))}),t},R={isMatch:function(n){return q.isText(n)&&q.value(n)!==undefined&&s.regExp.test(q.value(n))},filterDescendants:L,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(s.regExpGlobal,H)}},_=function(n,e){var t,r,o=R.filterDescendants(N.fromDom(e),R.isMatch);b(o,function(e){var o=R.replaceWithSpans(q.value(e));for(r=n.dom.create("div",null,o);t=r.lastChild;)n.dom.insertAfter(t,e.dom());n.dom.remove(e.dom())})},j=function(n,e){var t=n.dom.select(s.selector,e);b(t,function(e){n.dom.remove(e,1)})},z=_,G=j,W=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=R.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,j(n,r),_(n,r),n.selection.moveToBookmark(t)},F=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),c(n,e.get()),t=o.getBookmark(),!0===e.get()?z(n,r):G(n,r),o.moveToBookmark(t)},I=function(n,e){n.addCommand("mceVisualChars",function(){F(n,e)})},J=tinymce.util.Tools.resolve("tinymce.util.Delay"),K=function(n,e){var t=J.debounce(function(){W(n)},300);!1!==n.settings.forced_root_block&&n.on("keydown",function(r){!0===e.get()&&(13===r.keyCode?W(n):t())})},Q=function(n){return function(e){var t=e.control;n.on("VisualChars",function(n){t.active(n.state)})}};u.add("visualchars",function(n){var e,t=o(!1);return I(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Q(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Q(e),selectable:!0,context:"view",prependToContext:!0}),K(n,t),i(t)})}();!function(){"use strict";var e=function(t){var n=t,o=function(){return n};return{get:o,set:function(e){n=e},clone:function(){return e(o())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e,t){e.fire("VisualBlocks",{state:t})},o=function(e){return e.getParam("visualblocks_default_state",!1)},s=function(e){return e.settings.visualblocks_content_css},i=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=i.DOM.uniqueId(),u=function(e,t){var n=c.toArray(e.getElementsByTagName("link"));if(0===c.grep(n,function(e){return e.id===l}).length){var o=i.DOM.create("link",{id:l,rel:"stylesheet",href:t});e.getElementsByTagName("head")[0].appendChild(o)}},a=function(e,t,o){var i=e.dom,c=s(e);u(e.getDoc(),c||t+"/css/visualblocks.css"),i.toggleClass(e.getBody(),"mce-visualblocks"),o.set(!o.get()),n(e,o.get())},r=function(e,t,n){e.addCommand("mceVisualBlocks",function(){a(e,t,n)})},m=function(e,t,n){e.on("PreviewFormats AfterPreviewFormats",function(t){n.get()&&e.dom.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"===t.type)}),e.on("init",function(){o(e)&&a(e,t,n)}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")})},f=function(e,t){return function(n){var o=n.control;o.active(t.get()),e.on("VisualBlocks",function(e){o.active(e.state)})}},d=function(e,t){e.addButton("visualblocks",{active:!1,title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:f(e,t)}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:f(e,t),selectable:!0,context:"view",prependToContext:!0})};t.add("visualblocks",function(t,n){var o=e(!1);r(t,n,o),d(t,o),m(t,n,o)})}();!function(){"use strict";var t=function(e){var n=e,r=function(){return n};return{get:r,set:function(t){n=t},clone:function(){return t(r())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t){return{setPatterns:function(e){t.set(e)},getPatterns:function(){return t.get()}}},r=[{start:"*",end:"*",format:"italic"},{start:"**",end:"**",format:"bold"},{start:"***",end:"***",format:["bold","italic"]},{start:"#",format:"h1"},{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:"1. ",cmd:"InsertOrderedList"},{start:"* ",cmd:"InsertUnorderedList"},{start:"- ",cmd:"InsertUnorderedList"}],a=function(t){return t.textpattern_patterns!==undefined?t.textpattern_patterns:r},o=tinymce.util.Tools.resolve("tinymce.util.Delay"),i=tinymce.util.Tools.resolve("tinymce.util.VK"),s=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),l=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(t,e){for(var n=0;n<t.length;n++)if(0===e.indexOf(t[n].start)&&(!t[n].end||e.lastIndexOf(t[n].end)===e.length-t[n].end.length))return t[n]},f=function(t,e,n,r){var a,o,i,s,l,d,f=t.sort(function(t,e){return t.start.length>e.start.length?-1:t.start.length<e.start.length?1:0});for(o=0;o<f.length;o++)if((a=f[o]).end!==undefined&&(s=a,l=n,d=r,e.substr(l-s.end.length-d,s.end.length)===s.end)&&n-r-(i=a).end.length-i.start.length>0)return a},c=function(t,e,n){if(!1!==e.collapsed){var r=e.startContainer,a=r.data,o=!0===n?1:0;if(3===r.nodeType){var i=f(t,a,e.startOffset,o);if(i!==undefined){var s=a.lastIndexOf(i.end,e.startOffset-o),l=a.lastIndexOf(i.start,s-i.end.length);if(s=a.indexOf(i.end,l+i.start.length),-1!==l){var c=document.createRange();c.setStart(r,l),c.setEnd(r,s+i.end.length);var u=d(t,c.toString());if(!(i===undefined||u!==i||r.data.length<=i.start.length+i.end.length))return{pattern:i,startOffset:l,endOffset:s}}}}}},u=function(t,e,n){var r=t.selection.getRng(!0),a=c(e,r,n);if(a)return function(t,e,n,r){var a=l.isArray(n.pattern.format)?n.pattern.format:[n.pattern.format];if(0!==l.grep(a,function(e){var n=t.formatter.get(e);return n&&n[0].inline}).length)return t.undoManager.transact(function(){var r,o,i,s;r=e,o=n.pattern,i=n.endOffset,s=n.startOffset,(r=s>0?r.splitText(s):r).splitText(i-s+o.end.length),r.deleteData(0,o.start.length),r.deleteData(r.data.length-o.end.length,o.end.length),e=r,a.forEach(function(n){t.formatter.apply(n,{},e)})}),e}(t,r.startContainer,a)},g={patternFromRng:c,applyInlineFormatSpace:function(t,e){return u(t,e,!0)},applyInlineFormatEnter:function(t,e){return u(t,e,!1)},applyBlockFormat:function(t,e){var n,r,a,o,i,f,c,u,g,h,m;if(n=t.selection,r=t.dom,n.isCollapsed()&&(c=r.getParent(n.getStart(),"p"))){for(g=new s(c,c);i=g.next();)if(3===i.nodeType){o=i;break}if(o){if(!(u=d(e,o.data)))return;if(a=(h=n.getRng(!0)).startContainer,m=h.startOffset,o===a&&(m=Math.max(0,m-u.start.length)),l.trim(o.data).length===u.start.length)return;u.format&&(f=t.formatter.get(u.format))&&f[0].block&&(o.deleteData(0,u.start.length),t.formatter.apply(u.format,{},o),h.setStart(a,m),h.collapse(!0),n.setRng(h)),u.cmd&&t.undoManager.transact(function(){o.deleteData(0,u.start.length),t.execCommand(u.cmd)})}}}},h=function(t,e,n){for(var r=0;r<t.length;r++)if(n(t[r],e))return!0},m={handleEnter:function(t,e){var n,r;(n=g.applyInlineFormatEnter(t,e))&&((r=t.dom.createRng()).setStart(n,n.data.length),r.setEnd(n,n.data.length),t.selection.setRng(r)),g.applyBlockFormat(t,e)},handleInlineKey:function(t,e){var n,r,a,o,i;(n=g.applyInlineFormatSpace(t,e))&&(i=t.dom,r=n.data.slice(-1),/[\u00a0 ]/.test(r)&&(n.deleteData(n.data.length-1,1),a=i.doc.createTextNode(r),i.insertAfter(a,n.parentNode),(o=i.createRng()).setStart(a,1),o.setEnd(a,1),t.selection.setRng(o)))},checkCharCode:function(t,e){return h(t,e,function(t,e){return t.charCodeAt(0)===e.charCode})},checkKeyCode:function(t,e){return h(t,e,function(t,e){return t===e.keyCode&&!1===i.modifierPressed(e)})}},p=function(t,e){var n=[",",".",";",":","!","?"],r=[32];t.on("keydown",function(n){13!==n.keyCode||i.modifierPressed(n)||m.handleEnter(t,e.get())},!0),t.on("keyup",function(n){m.checkKeyCode(r,n)&&m.handleInlineKey(t,e.get())}),t.on("keypress",function(r){m.checkCharCode(n,r)&&o.setEditorTimeout(t,function(){m.handleInlineKey(t,e.get())})})};e.add("textpattern",function(e){var r=t(a(e.settings));return p(e,r),n(r)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=function(t,e){var o;return t.dom.getParents(t.selection.getStart(),function(t){var r;(r=t.style["forecolor"===e?"color":"background-color"])&&(o=r)}),o},o=function(t){var e,o=[];for(e=0;e<t.length;e+=2)o.push({text:t[e+1],color:"#"+t[e]});return o},r=function(t,e,o){t.undoManager.transact(function(){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()})},n=function(t,e){t.undoManager.transact(function(){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()})},a=function(t){t.addCommand("mceApplyTextcolor",function(e,o){r(t,e,o)}),t.addCommand("mceRemoveTextcolor",function(e){n(t,e)})},l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],u=function(t){return t.getParam("textcolor_map",i)},m=function(t){return t.getParam("textcolor_rows",5)},s=function(t){return t.getParam("textcolor_cols",8)},d=function(t){return t.getParam("color_picker_callback",null)},f=function(t){return t.getParam("forecolor_map",u(t))},g=function(t){return t.getParam("backcolor_map",u(t))},F=function(t){return t.getParam("forecolor_rows",m(t))},b=function(t){return t.getParam("backcolor_rows",m(t))},p=function(t){return t.getParam("forecolor_cols",s(t))},C=function(t){return t.getParam("backcolor_cols",s(t))},y=d,v=function(t){return"function"==typeof d(t)},h=tinymce.util.Tools.resolve("tinymce.util.I18n"),P=function(t,e,r,n){var a,c,i,u,m,s,d,f=0,g=l.DOM.uniqueId("mcearia"),F=function(t,e){var o="transparent"===t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+g+"-"+f+++'" data-mce-color="'+(t||"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+h.translate(e)+'">'+(o?"×":"")+"</div></td>"};for((a=o(r)).push({text:h.translate("No color"),color:"transparent"}),i='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',u=a.length-1,s=0;s<e;s++){for(i+="<tr>",m=0;m<t;m++)i+=(d=s*t+m)>u?"<td></td>":F((c=a[d]).color,c.text);i+="</tr>"}if(n){for(i+='<tr><td colspan="'+t+'" class="mce-custom-color-btn"><div id="'+g+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+g+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+h.translate("Custom...")+"</button></div></td></tr>",i+="<tr>",m=0;m<t;m++)i+=F("","Custom color");i+="</tr>"}return i+="</tbody></table>"},k=function(t,e){t.style.background=e,t.setAttribute("data-mce-color",e)},x=function(t){return function(e){var o=e.control;o._color?t.execCommand("mceApplyTextcolor",o.settings.format,o._color):t.execCommand("mceRemoveTextcolor",o.settings.format)}},T=function(t,o){return function(r){var n,a=this.parent(),i=e(t,a.settings.format),u=function(e){a.hidePanel(),a.color(e),t.execCommand("mceApplyTextcolor",a.settings.format,e)};l.DOM.getParent(r.target,".mce-custom-color-btn")&&(a.hidePanel(),y(t).call(t,function(t){var e,r,n,l=a.panel.getEl().getElementsByTagName("table")[0];for(e=c.map(l.rows[l.rows.length-1].childNodes,function(t){return t.firstChild}),n=0;n<e.length&&(r=e[n]).getAttribute("data-mce-color");n++);if(n===o)for(n=0;n<o-1;n++)k(e[n],e[n+1].getAttribute("data-mce-color"));k(r,t),u(t)},i)),(n=r.target.getAttribute("data-mce-color"))?(this.lastId&&l.DOM.get(this.lastId).setAttribute("aria-selected",!1),r.target.setAttribute("aria-selected",!0),this.lastId=r.target.id,"transparent"===n?(a.hidePanel(),a.resetColor(),t.execCommand("mceRemoveTextcolor",a.settings.format)):u(n)):null!==n&&a.hidePanel()}},_=function(t,e){return function(){var o=e?p(t):C(t),r=e?F(t):b(t),n=e?f(t):g(t),a=v(t);return P(o,r,n,a)}},A=function(t){t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!0),onclick:T(t,p(t))},onclick:x(t)}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!1),onclick:T(t,C(t))},onclick:x(t)})};t.add("textcolor",function(t){a(t),A(t)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return function(){return e}},n=function(e){for(var t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return function(){for(var n=new Array(arguments.length),a=0;a<n.length;a++)n[a]=arguments[a];var r=t.concat(n);return e.apply(null,r)}},a=(t(!1),t(!0),tinymce.util.Tools.resolve("tinymce.util.Tools")),r=tinymce.util.Tools.resolve("tinymce.util.XHR"),l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=function(e){return e.getParam("template_cdate_classes","cdate")},o=function(e){return e.getParam("template_mdate_classes","mdate")},i=function(e){return e.getParam("template_selected_content_classes","selcontent")},s=function(e){return e.getParam("template_preview_replace_values")},u=function(e){return e.getParam("template_replace_values")},p=function(e){return e.templates},m=function(e){return e.getParam("template_cdate_format",e.getLang("template.cdate_format"))},d=function(e){return e.getParam("template_mdate_format",e.getLang("template.mdate_format"))},f=function(e){return e.getParam("template_popup_width",600)},g=function(e){return Math.min(l.DOM.getViewPort().h,e.getParam("template_popup_height",500))},h=function(e,t){if((e=""+e).length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e},y=function(e,t,n){var a="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),l="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),c="January February March April May June July August September October November December".split(" ");return n=n||new Date,t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+n.getFullYear())).replace("%y",""+n.getYear())).replace("%m",h(n.getMonth()+1,2))).replace("%d",h(n.getDate(),2))).replace("%H",""+h(n.getHours(),2))).replace("%M",""+h(n.getMinutes(),2))).replace("%S",""+h(n.getSeconds(),2))).replace("%I",""+((n.getHours()+11)%12+1))).replace("%p",n.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(c[n.getMonth()]))).replace("%b",""+e.translate(l[n.getMonth()]))).replace("%A",""+e.translate(r[n.getDay()]))).replace("%a",""+e.translate(a[n.getDay()]))).replace("%%","%")},v=function(e,t,n){return a.each(n,function(e,n){"function"==typeof e&&(e=e(n)),t=t.replace(new RegExp("\\{\\$"+n+"\\}","g"),e)}),t},M=function(e,t){var n=e.dom,r=u(e);a.each(n.select("*",t),function(e){a.each(r,function(t,a){n.hasClass(e,a)&&"function"==typeof r[a]&&r[a](e)})})},_=function(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)},b=function(e,t){return function(){var n=p(e);"function"!=typeof n?"string"==typeof n?r.send({url:n,success:function(e){t(JSON.parse(e))}}):t(n):n(t)}},T=v,x=M,P=function(e,t,n){var r,l,s=e.dom,p=e.selection.getContent();n=v(0,n,u(e)),r=s.create("div",null,n),(l=s.select(".mceTmpl",r))&&l.length>0&&(r=s.create("div",null)).appendChild(l[0].cloneNode(!0)),a.each(s.select("*",r),function(t){_(t,c(e).replace(/\s+/g,"|"))&&(t.innerHTML=y(e,m(e))),_(t,o(e).replace(/\s+/g,"|"))&&(t.innerHTML=y(e,d(e))),_(t,i(e).replace(/\s+/g,"|"))&&(t.innerHTML=p)}),M(e,r),e.execCommand("mceInsertContent",!1,r.innerHTML),e.addVisual()},S=function(e){e.addCommand("mceInsertTemplate",n(P,e))},w=function(e){e.on("PreProcess",function(t){var n=e.dom,r=d(e);a.each(n.select("div",t.node),function(t){n.hasClass(t,"mceTmpl")&&(a.each(n.select("*",t),function(t){n.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=y(e,r))}),x(e,t))})})},D=function(e,t,n){if(-1===n.indexOf("<html>")){var r="";a.each(e.contentCSS,function(t){r+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var l=e.settings.body_class||"";-1!==l.indexOf("=")&&(l=(l=e.getParam("body_class","","hash"))[e.id]||""),n="<!DOCTYPE html><html><head>"+r+'</head><body class="'+l+'">'+n+"</body></html>"}n=T(e,n,s(e));var c=t.find("iframe")[0].getEl().contentWindow.document;c.open(),c.write(n),c.close()},H=function(e,t){var n,l,c=[];if(t&&0!==t.length)a.each(t,function(e){c.push({selected:!c.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),(n=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:c,onselect:function(t){var a=t.control.value();a.url?r.send({url:a.url,success:function(t){D(e,n,l=t)}}):(l=a.content,D(e,n,l)),n.find("#description")[0].text(t.control.value().description)}}}]},{type:"label",name:"description",label:"Description",text:"\xa0"},{type:"iframe",flex:1,border:1}],onsubmit:function(){P(e,!1,l)},minWidth:f(e),minHeight:g(e)})).find("listbox")[0].fire("select");else{var o=e.translate("No templates defined.");e.notificationManager.open({text:o,type:"info"})}},C=function(e){return function(t){H(e,t)}},A=function(e){e.addButton("template",{title:"Insert template",onclick:b(e.settings,C(e))}),e.addMenuItem("template",{text:"Template",onclick:b(e.settings,C(e)),icon:"template",context:"insert"})};e.add("template",function(e){A(e),S(e),w(e)})}();!function(){"use strict";var n,t,e,r,o,i,u,a,c,l,s,f=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(n){return function(){return n}},m={noop:function(){},noarg:function(n){return function(){return n()}},compose:function(n,t){return function(){return n(t.apply(null,arguments))}},constant:d,identity:function(n){return n},tripleEquals:function(n,t){return n===t},curry:function(n){for(var t=new Array(arguments.length-1),e=1;e<arguments.length;e++)t[e-1]=arguments[e];return function(){for(var e=new Array(arguments.length),r=0;r<e.length;r++)e[r]=arguments[r];var o=t.concat(e);return n.apply(null,o)}},not:function(n){return function(){return!n.apply(null,arguments)}},die:function(n){return function(){throw new Error(n)}},apply:function(n){return n()},call:function(n){n()},never:d(!1),always:d(!0)},g=m.never,p=m.always,h=function(){return v},v=(r={fold:function(n,t){return n()},is:g,isSome:g,isNone:p,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},or:e,orThunk:t,map:h,ap:h,each:function(){},bind:h,flatten:h,exists:g,forall:p,filter:h,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:m.constant("none()")},Object.freeze&&Object.freeze(r),r),b=function(n){var t=function(){return n},e=function(){return o},r=function(t){return t(n)},o={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:p,isNone:g,getOr:t,getOrThunk:t,getOrDie:t,or:e,orThunk:e,map:function(t){return b(t(n))},ap:function(t){return t.fold(h,function(t){return b(t(n))})},each:function(t){t(n)},bind:r,flatten:t,exists:r,forall:r,filter:function(t){return t(n)?o:v},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(g,function(t){return e(n,t)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},w={some:b,none:h,from:function(n){return null===n||n===undefined?v:b(n)}},y=(o=Array.prototype.indexOf)===undefined?function(n,t){return A(n,t)}:function(n,t){return o.call(n,t)},x=function(n,t){return y(n,t)>-1},C=function(n,t){for(var e=n.length,r=new Array(e),o=0;o<e;o++){var i=n[o];r[o]=t(i,o,n)}return r},S=function(n,t){for(var e=0,r=n.length;e<r;e++)t(n[e],e,n)},R=function(n,t){for(var e=n.length-1;e>=0;e--)t(n[e],e,n)},T=function(n,t){for(var e=[],r=0,o=n.length;r<o;r++){var i=n[r];t(i,r,n)&&e.push(i)}return e},D=function(n,t){for(var e=0,r=n.length;e<r;e++)if(t(n[e],e,n))return w.some(e);return w.none()},A=function(n,t){for(var e=0,r=n.length;e<r;++e)if(n[e]===t)return e;return-1},k=Array.prototype.push,N=function(n){for(var t=[],e=0,r=n.length;e<r;++e){if(!Array.prototype.isPrototypeOf(n[e]))throw new Error("Arr.flatten item "+e+" was not an array, input: "+n);k.apply(t,n[e])}return t},O=function(n,t){for(var e=0,r=n.length;e<r;++e)if(!0!==t(n[e],e,n))return!1;return!0},E=Array.prototype.slice,B={map:C,each:S,eachr:R,partition:function(n,t){for(var e=[],r=[],o=0,i=n.length;o<i;o++){var u=n[o];(t(u,o,n)?e:r).push(u)}return{pass:e,fail:r}},filter:T,groupBy:function(n,t){if(0===n.length)return[];for(var e=t(n[0]),r=[],o=[],i=0,u=n.length;i<u;i++){var a=n[i],c=t(a);c!==e&&(r.push(o),o=[]),e=c,o.push(a)}return 0!==o.length&&r.push(o),r},indexOf:function(n,t){var e=y(n,t);return-1===e?w.none():w.some(e)},foldr:function(n,t,e){return R(n,function(n){e=t(e,n)}),e},foldl:function(n,t,e){return S(n,function(n){e=t(e,n)}),e},find:function(n,t){for(var e=0,r=n.length;e<r;e++){var o=n[e];if(t(o,e,n))return w.some(o)}return w.none()},findIndex:D,flatten:N,bind:function(n,t){var e=C(n,t);return N(e)},forall:O,exists:function(n,t){return D(n,t).isSome()},contains:x,equal:function(n,t){return n.length===t.length&&O(n,function(n,e){return n===t[e]})},reverse:function(n){var t=E.call(n,0);return t.reverse(),t},chunk:function(n,t){for(var e=[],r=0;r<n.length;r+=t){var o=n.slice(r,r+t);e.push(o)}return e},difference:function(n,t){return T(n,function(n){return!x(t,n)})},mapToObject:function(n,t){for(var e={},r=0,o=n.length;r<o;r++){var i=n[r];e[String(i)]=t(i,r)}return e},pure:function(n){return[n]},sort:function(n,t){var e=E.call(n,0);return e.sort(t),e},range:function(n,t){for(var e=[],r=0;r<n;r++)e.push(t(r));return e},head:function(n){return 0===n.length?w.none():w.some(n[0])},last:function(n){return 0===n.length?w.none():w.some(n[n.length-1])}},I=(i=Object.keys)===undefined?function(n){var t=[];for(var e in n)n.hasOwnProperty(e)&&t.push(e);return t}:i,P=function(n,t){for(var e=I(n),r=0,o=e.length;r<o;r++){var i=e[r];t(n[i],i,n)}},W=function(n,t){var e={};return P(n,function(r,o){var i=t(r,o,n);e[i.k]=i.v}),e},_=function(n,t){var e=[];return P(n,function(n,r){e.push(t(n,r))}),e},M=function(n){return _(n,function(n){return n})},L={bifilter:function(n,t){var e={},r={};return P(n,function(n,o){(t(n,o)?e:r)[o]=n}),{t:e,f:r}},each:P,map:function(n,t){return W(n,function(n,e,r){return{k:e,v:t(n,e,r)}})},mapToArray:_,tupleMap:W,find:function(n,t){for(var e=I(n),r=0,o=e.length;r<o;r++){var i=e[r],u=n[i];if(t(u,i,n))return w.some(u)}return w.none()},keys:I,values:M,size:function(n){return M(n).length}},q=function(n){return function(t){return function(n){if(null===n)return"null";var t=typeof n;return"object"===t&&Array.prototype.isPrototypeOf(n)?"array":"object"===t&&String.prototype.isPrototypeOf(n)?"string":t}(t)===n}},z={isString:q("string"),isObject:q("object"),isArray:q("array"),isNull:q("null"),isBoolean:q("boolean"),isUndefined:q("undefined"),isFunction:q("function"),isNumber:q("number")},F=function(n){return n.slice(0).sort()},j=function(n,t){throw new Error("All required keys ("+F(n).join(", ")+") were not specified. Specified keys were: "+F(t).join(", ")+".")},H=function(n){throw new Error("Unsupported keys for object: "+F(n).join(", "))},V=function(n,t){if(!z.isArray(t))throw new Error("The "+n+" fields must be an array. Was: "+t+".");B.each(t,function(t){if(!z.isString(t))throw new Error("The value "+t+" in the "+n+" fields was not a string.")})},U=function(n,t){throw new Error("All values need to be of type: "+t+". Keys ("+F(n).join(", ")+") were not.")},G=function(n){var t=F(n);B.find(t,function(n,e){return e<t.length-1&&n===t[e+1]}).each(function(n){throw new Error("The field: "+n+" occurs more than once in the combined fields: ["+t.join(", ")+"].")})},X={immutable:function(){var n=arguments;return function(){for(var t=new Array(arguments.length),e=0;e<t.length;e++)t[e]=arguments[e];if(n.length!==t.length)throw new Error('Wrong number of arguments to struct. Expected "['+n.length+']", got '+t.length+" arguments");var r={};return B.each(n,function(n,e){r[n]=m.constant(t[e])}),r}},immutableBag:function(n,t){var e=n.concat(t);if(0===e.length)throw new Error("You must specify at least one required or optional field.");return V("required",n),V("optional",t),G(e),function(r){var o=L.keys(r);B.forall(n,function(n){return B.contains(o,n)})||j(n,o);var i=B.filter(o,function(n){return!B.contains(e,n)});i.length>0&&H(i);var u={};return B.each(n,function(n){u[n]=m.constant(r[n])}),B.each(t,function(n){u[n]=m.constant(Object.prototype.hasOwnProperty.call(r,n)?w.some(r[n]):w.none())}),u}}},Y=X.immutable("width","height"),$=X.immutable("rows","columns"),K=X.immutable("row","column"),J=X.immutable("x","y"),Q=X.immutable("element","rowspan","colspan"),Z=X.immutable("element","rowspan","colspan","isNew"),nn={dimensions:Y,grid:$,address:K,coords:J,extended:X.immutable("element","rowspan","colspan","row","column"),detail:Q,detailnew:Z,rowdata:X.immutable("element","cells","section"),elementnew:X.immutable("element","isNew"),rowdatanew:X.immutable("element","cells","section","isNew"),rowcells:X.immutable("cells","section"),rowdetails:X.immutable("details","section"),bounds:X.immutable("startRow","startCol","finishRow","finishCol")},tn=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:m.constant(n)}},en={fromHtml:function(n,t){var e=(t||document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||e.childNodes.length>1)throw console.error("HTML does not have a single root node",n),"HTML must have a single root node";return tn(e.childNodes[0])},fromTag:function(n,t){var e=(t||document).createElement(n);return tn(e)},fromText:function(n,t){var e=(t||document).createTextNode(n);return tn(e)},fromDom:tn,fromPoint:function(n,t,e){return w.from(n.dom().elementFromPoint(t,e)).map(tn)}},rn=8,on=9,un=1,an=3,cn=un,ln=on,sn=function(n){return n.nodeType!==cn&&n.nodeType!==ln||0===n.childElementCount},fn={all:function(n,t){var e=t===undefined?document:t.dom();return sn(e)?[]:B.map(e.querySelectorAll(n),en.fromDom)},is:function(n,t){var e=n.dom();if(e.nodeType!==cn)return!1;if(e.matches!==undefined)return e.matches(t);if(e.msMatchesSelector!==undefined)return e.msMatchesSelector(t);if(e.webkitMatchesSelector!==undefined)return e.webkitMatchesSelector(t);if(e.mozMatchesSelector!==undefined)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(n,t){var e=t===undefined?document:t.dom();return sn(e)?w.none():w.from(e.querySelector(n)).map(en.fromDom)}},dn=function(n,t){var e=[],r=function(n){return e.push(n),t(n)},o=t(n);do{o=o.bind(r)}while(o.isSome());return e},mn="undefined"!=typeof window?window:Function("return this;")(),gn=function(n,t){for(var e=t!==undefined&&null!==t?t:mn,r=0;r<n.length&&e!==undefined&&null!==e;++r)e=e[n[r]];return e},pn=function(n,t){var e=n.split(".");return gn(e,t)},hn=function(n,t){var e=pn(n,t);if(e===undefined||null===e)throw n+" not available on this browser";return e},vn=function(){return hn("Node")},bn=function(n,t,e){return 0!=(n.compareDocumentPosition(t)&e)},wn=function(n,t){return bn(n,t,vn().DOCUMENT_POSITION_CONTAINED_BY)},yn=function(n){var t,e=!1;return function(){return e||(e=!0,t=n.apply(null,arguments)),t}},xn=function(n,t){var e=function(n,t){for(var e=0;e<n.length;e++){var r=n[e];if(r.test(t))return r}return undefined}(n,t);if(!e)return{major:0,minor:0};var r=function(n){return Number(t.replace(e,"$"+n))};return Sn(r(1),r(2))},Cn=function(){return Sn(0,0)},Sn=function(n,t){return{major:n,minor:t}},Rn={nu:Sn,detect:function(n,t){var e=String(t).toLowerCase();return 0===n.length?Cn():xn(n,e)},unknown:Cn},Tn="Firefox",Dn=function(n,t){return function(){return t===n}},An=function(n){var t=n.current;return{current:t,version:n.version,isEdge:Dn("Edge",t),isChrome:Dn("Chrome",t),isIE:Dn("IE",t),isOpera:Dn("Opera",t),isFirefox:Dn(Tn,t),isSafari:Dn("Safari",t)}},kn={unknown:function(){return An({current:undefined,version:Rn.unknown()})},nu:An,edge:m.constant("Edge"),chrome:m.constant("Chrome"),ie:m.constant("IE"),opera:m.constant("Opera"),firefox:m.constant(Tn),safari:m.constant("Safari")},Nn="Windows",On="Android",En="Solaris",Bn="FreeBSD",In=function(n,t){return function(){return t===n}},Pn=function(n){var t=n.current;return{current:t,version:n.version,isWindows:In(Nn,t),isiOS:In("iOS",t),isAndroid:In(On,t),isOSX:In("OSX",t),isLinux:In("Linux",t),isSolaris:In(En,t),isFreeBSD:In(Bn,t)}},Wn={unknown:function(){return Pn({current:undefined,version:Rn.unknown()})},nu:Pn,windows:m.constant(Nn),ios:m.constant("iOS"),android:m.constant(On),linux:m.constant("Linux"),osx:m.constant("OSX"),solaris:m.constant(En),freebsd:m.constant(Bn)},_n=function(n,t){var e=String(t).toLowerCase();return B.find(n,function(n){return n.search(e)})},Mn=function(n,t){return _n(n,t).map(function(n){var e=Rn.detect(n.versionRegexes,t);return{current:n.name,version:e}})},Ln=function(n,t){return _n(n,t).map(function(n){var e=Rn.detect(n.versionRegexes,t);return{current:n.name,version:e}})},qn=function(n,t){return t+n},zn=function(n,t){return n+t},Fn=function(n,t){return n.substring(t)},jn=function(n,t){return n.substring(0,n.length-t)},Hn=function(n){return""===n?w.none():w.some(n.substr(0,1))},Vn=function(n){return""===n?w.none():w.some(n.substring(1))},Un=function(n,t,e){return""===t||!(n.length<t.length)&&n.substr(e,e+t.length)===t},Gn=function(n,t){return Un(n,t,0)},Xn=function(n,t){return Un(n,t,n.length-t.length)},Yn={supplant:function(n,t){return n.replace(/\${([^{}]*)}/g,function(n,e){var r,o=t[e];return"string"==(r=typeof o)||"number"===r?o:n})},startsWith:Gn,removeLeading:function(n,t){return Gn(n,t)?Fn(n,t.length):n},removeTrailing:function(n,t){return Xn(n,t)?jn(n,t.length):n},ensureLeading:function(n,t){return Gn(n,t)?n:qn(n,t)},ensureTrailing:function(n,t){return Xn(n,t)?n:zn(n,t)},endsWith:Xn,contains:function(n,t){return-1!==n.indexOf(t)},trim:function(n){return n.replace(/^\s+|\s+$/g,"")},lTrim:function(n){return n.replace(/^\s+/g,"")},rTrim:function(n){return n.replace(/\s+$/g,"")},capitalize:function(n){return Hn(n).bind(function(t){return Vn(n).map(function(n){return t.toUpperCase()+n})}).getOr(n)}},$n=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Kn=function(n){return function(t){return Yn.contains(t,n)}},Jn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(n){return Yn.contains(n,"edge/")&&Yn.contains(n,"chrome")&&Yn.contains(n,"safari")&&Yn.contains(n,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,$n],search:function(n){return Yn.contains(n,"chrome")&&!Yn.contains(n,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(n){return Yn.contains(n,"msie")||Yn.contains(n,"trident")}},{name:"Opera",versionRegexes:[$n,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Kn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Kn("firefox")},{name:"Safari",versionRegexes:[$n,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(n){return(Yn.contains(n,"safari")||Yn.contains(n,"mobile/"))&&Yn.contains(n,"applewebkit")}}],Qn=[{name:"Windows",search:Kn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(n){return Yn.contains(n,"iphone")||Yn.contains(n,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Kn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Kn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Kn("linux"),versionRegexes:[]},{name:"Solaris",search:Kn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Kn("freebsd"),versionRegexes:[]}],Zn={browsers:m.constant(Jn),oses:m.constant(Qn)},nt=function(n){var t,e,r,o,i,u,a,c,l,s,f,d=Zn.browsers(),g=Zn.oses(),p=Mn(d,n).fold(kn.unknown,kn.nu),h=Ln(g,n).fold(Wn.unknown,Wn.nu);return{browser:p,os:h,deviceType:(e=p,r=n,o=(t=h).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,u=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,c=o||u||a&&!0===/mobile/i.test(r),l=t.isiOS()||t.isAndroid(),s=l&&!c,f=e.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:m.constant(o),isiPhone:m.constant(i),isTablet:m.constant(c),isPhone:m.constant(s),isTouch:m.constant(l),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:m.constant(f)})}},tt={detect:yn(function(){var n=navigator.userAgent;return nt(n)})},et=function(n,t){return n.dom()===t.dom()},rt=tt.detect().browser.isIE()?function(n,t){return wn(n.dom(),t.dom())}:function(n,t){var e=n.dom(),r=t.dom();return e!==r&&e.contains(r)},ot={eq:et,isEqualNode:function(n,t){return n.dom().isEqualNode(t.dom())},member:function(n,t){return B.exists(t,m.curry(et,n))},contains:rt,is:fn.is},it=function(n){return en.fromDom(n.dom().ownerDocument)},ut=function(n){var t=n.dom();return w.from(t.parentNode).map(en.fromDom)},at=function(n){var t=n.dom();return w.from(t.previousSibling).map(en.fromDom)},ct=function(n){var t=n.dom();return w.from(t.nextSibling).map(en.fromDom)},lt=function(n){var t=n.dom();return B.map(t.childNodes,en.fromDom)},st=function(n,t){var e=n.dom().childNodes;return w.from(e[t]).map(en.fromDom)},ft=X.immutable("element","offset"),dt={owner:it,defaultView:function(n){var t=n.dom().ownerDocument.defaultView;return en.fromDom(t)},documentElement:function(n){var t=it(n);return en.fromDom(t.dom().documentElement)},parent:ut,findIndex:function(n){return ut(n).bind(function(t){var e=lt(t);return B.findIndex(e,function(t){return ot.eq(n,t)})})},parents:function(n,t){for(var e=z.isFunction(t)?t:m.constant(!1),r=n.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=en.fromDom(i);if(o.push(u),!0===e(u))break;r=i}return o},siblings:function(n){return ut(n).map(lt).map(function(t){return B.filter(t,function(t){return!ot.eq(n,t)})}).getOr([])},prevSibling:at,offsetParent:function(n){var t=n.dom();return w.from(t.offsetParent).map(en.fromDom)},prevSiblings:function(n){return B.reverse(dn(n,at))},nextSibling:ct,nextSiblings:function(n){return dn(n,ct)},children:lt,child:st,firstChild:function(n){return st(n,0)},lastChild:function(n){return st(n,n.dom().childNodes.length-1)},childNodesCount:function(n){return n.dom().childNodes.length},hasChildNodes:function(n){return n.dom().hasChildNodes()},leaf:function(n,t){var e=lt(n);return e.length>0&&t<e.length?ft(e[t],0):ft(n,t)}},mt=function(n,t,e){return B.bind(dt.children(n),function(n){return fn.is(n,t)?e(n)?[n]:[]:mt(n,t,e)})},gt={firstLayer:function(n,t){return mt(n,t,m.constant(!0))},filterFirstLayer:mt},pt=function(n){return n.dom().nodeName.toLowerCase()},ht=function(n){return n.dom().nodeType},vt=function(n){return function(t){return ht(t)===n}},bt=vt(un),wt=vt(an),yt=vt(on),xt={name:pt,type:ht,value:function(n){return n.dom().nodeValue},isElement:bt,isText:wt,isDocument:yt,isComment:function(n){return ht(n)===rn||"#comment"===pt(n)}},Ct=function(n,t,e){if(!(z.isString(e)||z.isBoolean(e)||z.isNumber(e)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",e,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(t,e+"")},St=function(n,t,e){Ct(n.dom(),t,e)},Rt=function(n,t){var e=n.dom().getAttribute(t);return null===e?undefined:e},Tt=function(n,t){var e=n.dom();return!(!e||!e.hasAttribute)&&e.hasAttribute(t)},Dt={clone:function(n){return B.foldl(n.dom().attributes,function(n,t){return n[t.name]=t.value,n},{})},set:St,setAll:function(n,t){var e=n.dom();L.each(t,function(n,t){Ct(e,t,n)})},get:Rt,has:Tt,remove:function(n,t){n.dom().removeAttribute(t)},hasNone:function(n){var t=n.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(n,t,e){xt.isElement(n)&&xt.isElement(t)&&B.each(e,function(e){var r,o,i;o=t,Tt(r=n,i=e)&&!Tt(o,i)&&St(o,i,Rt(r,i))})}},At=yn(function(){return kt(en.fromDom(document))}),kt=function(n){var t=n.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return en.fromDom(t)},Nt={body:At,getBody:kt,inBody:function(n){var t=xt.isText(n)?n.dom().parentNode:n.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},Ot=function(n,t){var e=[];return B.each(dt.children(n),function(n){t(n)&&(e=e.concat([n])),e=e.concat(Ot(n,t))}),e},Et={all:function(n){return Ot(Nt.body(),n)},ancestors:function(n,t,e){return B.filter(dt.parents(n,e),t)},siblings:function(n,t){return B.filter(dt.siblings(n),t)},children:function(n,t){return B.filter(dt.children(n),t)},descendants:Ot},Bt={all:function(n){return fn.all(n)},ancestors:function(n,t,e){return Et.ancestors(n,function(n){return fn.is(n,t)},e)},siblings:function(n,t){return Et.siblings(n,function(n){return fn.is(n,t)})},children:function(n,t){return Et.children(n,function(n){return fn.is(n,t)})},descendants:function(n,t){return fn.all(t,n)}},It=function(n,t,e,r,o){return n(e,r)?w.some(e):z.isFunction(o)&&o(e)?w.none():t(e,r,o)},Pt=function(n,t,e){for(var r=n.dom(),o=z.isFunction(e)?e:m.constant(!1);r.parentNode;){r=r.parentNode;var i=en.fromDom(r);if(t(i))return w.some(i);if(o(i))break}return w.none()},Wt=function(n,t){return B.find(n.dom().childNodes,m.compose(t,en.fromDom)).map(en.fromDom)},_t=function(n,t){var e=function(n){for(var r=0;r<n.childNodes.length;r++){if(t(en.fromDom(n.childNodes[r])))return w.some(en.fromDom(n.childNodes[r]));var o=e(n.childNodes[r]);if(o.isSome())return o}return w.none()};return e(n.dom())},Mt={first:function(n){return _t(Nt.body(),n)},ancestor:Pt,closest:function(n,t,e){return It(function(n){return t(n)},Pt,n,t,e)},sibling:function(n,t){var e=n.dom();return e.parentNode?Wt(en.fromDom(e.parentNode),function(e){return!ot.eq(n,e)&&t(e)}):w.none()},child:Wt,descendant:_t},Lt=function(n,t,e){return Mt.ancestor(n,function(n){return fn.is(n,t)},e)},qt={first:function(n){return fn.one(n)},ancestor:Lt,sibling:function(n,t){return Mt.sibling(n,function(n){return fn.is(n,t)})},child:function(n,t){return Mt.child(n,function(n){return fn.is(n,t)})},descendant:function(n,t){return fn.one(t,n)},closest:function(n,t,e){return It(fn.is,Lt,n,t,e)}},zt=function(n,t,e){var r=e!==undefined?e:m.constant(!1);return r(t)?w.none():B.contains(n,xt.name(t))?w.some(t):qt.ancestor(t,n.join(","),function(n){return fn.is(n,"table")||r(n)})},Ft=function(n,t){return dt.parent(t).map(function(t){return Bt.children(t,n)})},jt=function(n,t){return zt(["td","th"],n,t)},Ht=function(n){return gt.firstLayer(n,"th,td")},Vt=(m.curry(Ft,"th,td"),function(n,t){return qt.closest(n,"table",t)}),Ut=function(n){return gt.firstLayer(n,"tr")},Gt=(m.curry(Ft,"tr"),function(n){var t=Ut(n);return B.map(t,function(n){var t=n,e=dt.parent(t).bind(function(n){var t=xt.name(n);return"tfoot"===t||"thead"===t||"tbody"===t?t:"tbody"}),r=B.map(Ht(n),function(n){var t=Dt.has(n,"rowspan")?parseInt(Dt.get(n,"rowspan"),10):1,e=Dt.has(n,"colspan")?parseInt(Dt.get(n,"colspan"),10):1;return nn.detail(n,t,e)});return nn.rowdata(t,r,e)})}),Xt=function(n,t){return B.map(n,function(n){var e=B.map(Ht(n),function(n){var t=Dt.has(n,"rowspan")?parseInt(Dt.get(n,"rowspan"),10):1,e=Dt.has(n,"colspan")?parseInt(Dt.get(n,"colspan"),10):1;return nn.detail(n,t,e)});return nn.rowdata(n,e,t.section())})},Yt=function(n,t){return n+","+t},$t=function(n,t){var e=B.bind(n.all(),function(n){return n.cells()});return B.filter(e,t)},Kt={generate:function(n){var t={},e=[],r=n.length,o=0;B.each(n,function(n,r){var i=[];B.each(n.cells(),function(n,e){for(var u=0;t[Yt(r,u)]!==undefined;)u++;for(var a=nn.extended(n.element(),n.rowspan(),n.colspan(),r,u),c=0;c<n.colspan();c++)for(var l=0;l<n.rowspan();l++){var s=u+c,f=Yt(r+l,s);t[f]=a,o=Math.max(o,s+1)}i.push(a)}),e.push(nn.rowdata(n.element(),i,n.section()))});var i=nn.grid(r,o);return{grid:m.constant(i),access:m.constant(t),all:m.constant(e)}},getAt:function(n,t,e){var r=n.access()[Yt(t,e)];return r!==undefined?w.some(r):w.none()},findItem:function(n,t,e){var r=$t(n,function(n){return e(t,n.element())});return r.length>0?w.some(r[0]):w.none()},filterItems:$t,justCells:function(n){var t=B.map(n.all(),function(n){return n.cells()});return B.flatten(t)}},Jt=function(n){return n.style!==undefined},Qt=function(n,t,e){if(!z.isString(e))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",e,":: Element ",n),new Error("CSS value must be a string: "+e);Jt(n)&&n.style.setProperty(t,e)},Zt=function(n,t){Jt(n)&&n.style.removeProperty(t)},ne=function(n,t,e){var r=n.dom();Qt(r,t,e)},te=function(n,t){return Jt(n)?n.style.getPropertyValue(t):""},ee=function(n,t){var e=n.dom(),r=te(e,t);return w.from(r).filter(function(n){return n.length>0})},re={copy:function(n,t){var e=n.dom(),r=t.dom();Jt(e)&&Jt(r)&&(r.style.cssText=e.style.cssText)},set:ne,preserve:function(n,t){var e=Dt.get(n,"style"),r=t(n);return(e===undefined?Dt.remove:Dt.set)(n,"style",e),r},setAll:function(n,t){var e=n.dom();L.each(t,function(n,t){Qt(e,t,n)})},setOptions:function(n,t){var e=n.dom();L.each(t,function(n,t){n.fold(function(){Zt(e,t)},function(n){Qt(e,t,n)})})},remove:function(n,t){var e=n.dom();Zt(e,t),Dt.has(n,"style")&&""===Yn.trim(Dt.get(n,"style"))&&Dt.remove(n,"style")},get:function(n,t){var e=n.dom(),r=window.getComputedStyle(e).getPropertyValue(t),o=""!==r||Nt.inBody(n)?r:te(e,t);return null===o?undefined:o},getRaw:ee,getAllRaw:function(n){var t={},e=n.dom();if(Jt(e))for(var r=0;r<e.style.length;r++){var o=e.style.item(r);t[o]=e.style[o]}return t},isValidValue:function(n,t,e){var r=en.fromTag(n);return ne(r,t,e),ee(r,t).isSome()},reflow:function(n){return n.dom().offsetWidth},transfer:function(n,t,e){xt.isElement(n)&&xt.isElement(t)&&B.each(e,function(e){var r,o;r=t,ee(n,o=e).each(function(n){ee(r,o).isNone()&&ne(r,o,n)})})}},oe=function(n,t){dt.parent(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})},ie=function(n,t){n.dom().appendChild(t.dom())},ue={before:oe,after:function(n,t){dt.nextSibling(n).fold(function(){dt.parent(n).each(function(n){ie(n,t)})},function(n){oe(n,t)})},prepend:function(n,t){dt.firstChild(n).fold(function(){ie(n,t)},function(e){n.dom().insertBefore(t.dom(),e.dom())})},append:ie,appendAt:function(n,t,e){dt.child(n,e).fold(function(){ie(n,t)},function(n){oe(n,t)})},wrap:function(n,t){oe(n,t),ie(t,n)}},ae={before:function(n,t){B.each(t,function(t){ue.before(n,t)})},after:function(n,t){B.each(t,function(e,r){var o=0===r?n:t[r-1];ue.after(o,e)})},prepend:function(n,t){B.each(t.slice().reverse(),function(t){ue.prepend(n,t)})},append:function(n,t){B.each(t,function(t){ue.append(n,t)})}},ce=function(n){var t=n.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},le={empty:function(n){n.dom().textContent="",B.each(dt.children(n),function(n){ce(n)})},remove:ce,unwrap:function(n){var t=dt.children(n);t.length>0&&ae.before(n,t),ce(n)}},se=X.immutable("minRow","minCol","maxRow","maxCol"),fe=function(n,t){var e,r,o,i,u,a,c,l,s,f,d=function(n){return fn.is(n.element(),t)},m=Gt(n),g=Kt.generate(m),p=(r=d,o=(e=g).grid().columns(),i=e.grid().rows(),u=o,a=0,c=0,L.each(e.access(),function(n){if(r(n)){var t=n.row(),e=t+n.rowspan()-1,o=n.column(),l=o+n.colspan()-1;t<i?i=t:e>a&&(a=e),o<u?u=o:l>c&&(c=l)}}),se(i,u,a,c)),h="th:not("+t+"),td:not("+t+")",v=gt.filterFirstLayer(n,"th,td",function(n){return fn.is(n,h)});return B.each(v,le.remove),function(n,t,e,r){for(var o,i,u,a=t.grid().columns(),c=t.grid().rows(),l=0;l<c;l++)for(var s=!1,f=0;f<a;f++)l<e.minRow()||l>e.maxRow()||f<e.minCol()||f>e.maxCol()||(Kt.getAt(t,l,f).filter(r).isNone()?(o=s,i=n[l].element(),u=en.fromTag("td"),ue.append(u,en.fromTag("br")),(o?ue.append:ue.prepend)(i,u)):s=!0)}(m,g,p,d),l=n,s=p,f=B.filter(gt.firstLayer(l,"tr"),function(n){return 0===n.dom().childElementCount}),B.each(f,le.remove),s.minCol()!==s.maxCol()&&s.minRow()!==s.maxRow()||B.each(gt.firstLayer(l,"th,td"),function(n){Dt.remove(n,"rowspan"),Dt.remove(n,"colspan")}),Dt.remove(l,"width"),Dt.remove(l,"height"),re.remove(l,"width"),re.remove(l,"height"),n},de=function(n,t){return en.fromDom(n.dom().cloneNode(t))},me=function(n){return de(n,!0)},ge=function(n,t){var e=en.fromTag(t),r=Dt.clone(n);return Dt.setAll(e,r),e},pe=function(n){return de(n,!1)},he=me,ve=function(n,t){var e=ge(n,t),r=dt.children(me(n));return ae.append(e,r),e},be=(u=xt.isText,a="text",c=function(n){return u(n)?w.from(n.dom().nodeValue):w.none()},l=tt.detect().browser,{get:function(n){if(!u(n))throw new Error("Can only get "+a+" value of a "+a+" node");return s(n).getOr("")},getOption:s=l.isIE()&&10===l.version.major?function(n){try{return c(n)}catch(t){return w.none()}}:c,set:function(n,t){if(!u(n))throw new Error("Can only set raw "+a+" value of a "+a+" node");n.dom().nodeValue=t}}),we={get:function(n){return be.get(n)},getOption:function(n){return be.getOption(n)},set:function(n,t){be.set(n,t)}},ye=function(n){return"img"===xt.name(n)?1:we.getOption(n).fold(function(){return dt.children(n).length},function(n){return n.length})},xe=["img","br"],Ce=ye,Se=function(n){return we.getOption(n).filter(function(n){return 0!==n.trim().length||n.indexOf("\xa0")>-1}).isSome()||B.contains(xe,xt.name(n))},Re=function(n,t){var e=function(n){for(var r=dt.children(n),o=r.length-1;o>=0;o--){var i=r[o];if(t(i))return w.some(i);var u=e(i);if(u.isSome())return u}return w.none()};return e(n)},Te={first:function(n){return Mt.descendant(n,Se)},last:function(n){return Re(n,Se)}},De=function(){var n=en.fromTag("td");return ue.append(n,en.fromTag("br")),n},Ae=function(n,t,e){var r=ve(n,t);return L.each(e,function(n,t){null===n?Dt.remove(r,t):Dt.set(r,t,n)}),r},ke=function(n){return n},Ne=function(n){return function(){return en.fromTag("tr",n.dom())}},Oe=function(n,t,e){return{row:Ne(t),cell:function(t){var r,o,i,u=dt.owner(t.element()),a=en.fromTag(xt.name(t.element()),u.dom()),c=e.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),l=c.length>0?(r=t.element(),o=a,i=c,Te.first(r).map(function(n){var t=i.join(","),e=Bt.ancestors(n,t,function(n){return ot.eq(n,r)});return B.foldr(e,function(n,t){var e=pe(t);return ue.append(n,e),e},o)}).getOr(o)):a;return ue.append(l,en.fromTag("br")),re.copy(t.element(),a),re.remove(a,"height"),1!==t.colspan()&&re.remove(t.element(),"width"),n(t.element(),a),a},replace:Ae,gap:De}},Ee=function(n){return{row:Ne(n),cell:De,replace:ke,gap:De}},Be=function(n,t){var e=(t||document).createElement("div");return e.innerHTML=n,dt.children(en.fromDom(e))},Ie=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Pe=function(){return{up:m.constant({selector:qt.ancestor,closest:qt.closest,predicate:Mt.ancestor,all:dt.parents}),down:m.constant({selector:Bt.descendants,predicate:Et.descendants}),styles:m.constant({get:re.get,getRaw:re.getRaw,set:re.set,remove:re.remove}),attrs:m.constant({get:Dt.get,set:Dt.set,remove:Dt.remove,copyTo:function(n,t){var e=Dt.clone(n);Dt.setAll(t,e)}}),insert:m.constant({before:ue.before,after:ue.after,afterAll:ae.after,append:ue.append,appendAll:ae.append,prepend:ue.prepend,wrap:ue.wrap}),remove:m.constant({unwrap:le.unwrap,remove:le.remove}),create:m.constant({nu:en.fromTag,clone:function(n){return en.fromDom(n.dom().cloneNode(!1))},text:en.fromText}),query:m.constant({comparePosition:function(n,t){return n.dom().compareDocumentPosition(t.dom())},prevSibling:dt.prevSibling,nextSibling:dt.nextSibling}),property:m.constant({children:dt.children,name:xt.name,parent:dt.parent,isText:xt.isText,isComment:xt.isComment,isElement:xt.isElement,getText:we.get,setText:we.set,isBoundary:function(n){return!!xt.isElement(n)&&("body"===xt.name(n)||B.contains(Ie,xt.name(n)))},isEmptyTag:function(n){return!!xt.isElement(n)&&B.contains(["br","img","hr","input"],xt.name(n))}}),eq:ot.eq,is:ot.is}},We=(X.immutable("left","right"),function(n,t,e,r){var o=t(n,e);return B.foldr(r,function(e,r){var o=t(n,r);return _e(n,e,o)},o)}),_e=function(n,t,e){return t.bind(function(t){return e.filter(m.curry(n.eq,t))})},Me=function(n,t,e){return e.length>0?We(n,t,(r=e)[0],r.slice(1)):w.none();var r},Le=function(n,t){return m.curry(n.eq,t)},qe=function(n,t,e,r){var o=r!==undefined?r:m.constant(!1),i=[t].concat(n.up().all(t)),u=[e].concat(n.up().all(e)),a=function(n){return B.findIndex(n,o).fold(function(){return n},function(t){return n.slice(0,t+1)})},c=a(i),l=a(u),s=B.find(c,function(t){return B.exists(l,Le(n,t))});return{firstpath:m.constant(c),secondpath:m.constant(l),shared:m.constant(s)}},ze=qe,Fe=function(n,t,e){return Me(n,t,e)},je=function(n,t,e,r){return ze(n,t,e,r)},He=Pe(),Ve=function(n,t){return Fe(He,function(t,e){return n(e)},t)},Ue=function(n,t,e){return je(He,n,t,e)},Ge=function(n,t){return t.column()>=n.startCol()&&t.column()+t.colspan()-1<=n.finishCol()&&t.row()>=n.startRow()&&t.row()+t.rowspan()-1<=n.finishRow()},Xe=function(n,t){var e=t.column(),r=t.column()+t.colspan()-1,o=t.row(),i=t.row()+t.rowspan()-1;return e<=n.finishCol()&&r>=n.startCol()&&o<=n.finishRow()&&i>=n.startRow()},Ye=function(n,t){for(var e=!0,r=m.curry(Ge,t),o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)e=e&&Kt.getAt(n,o,i).exists(r);return e?w.some(t):w.none()},$e=function(n,t,e){var r=Kt.findItem(n,t,ot.eq),o=Kt.findItem(n,e,ot.eq);return r.bind(function(n){return o.map(function(t){return e=n,r=t,nn.bounds(Math.min(e.row(),r.row()),Math.min(e.column(),r.column()),Math.max(e.row()+e.rowspan()-1,r.row()+r.rowspan()-1),Math.max(e.column()+e.colspan()-1,r.column()+r.colspan()-1));var e,r})})},Ke=$e,Je=function(n,t,e){return $e(n,t,e).bind(function(t){return Ye(n,t)})},Qe=function(n,t,e,r){return Kt.findItem(n,t,ot.eq).bind(function(t){var o=e>0?t.row()+t.rowspan()-1:t.row(),i=r>0?t.column()+t.colspan()-1:t.column();return Kt.getAt(n,o+e,i+r).map(function(n){return n.element()})})},Ze=function(n,t,e){return Ke(n,t,e).map(function(t){var e=Kt.filterItems(n,m.curry(Xe,t));return B.map(e,function(n){return n.element()})})},nr=function(n,t){return Kt.findItem(n,t,function(n,t){return ot.contains(t,n)}).bind(function(n){return n.element()})},tr=function(n){var t=Gt(n);return Kt.generate(t)},er=function(n,t,e){return Vt(n).bind(function(r){var o=tr(r);return Qe(o,n,t,e)})},rr=function(n,t,e){var r=tr(n);return Ze(r,t,e)},or=function(n,t,e,r,o){var i=tr(n),u=ot.eq(n,e)?t:nr(i,t),a=ot.eq(n,o)?r:nr(i,r);return Ze(i,u,a)},ir=function(n,t,e){var r=tr(n);return Je(r,t,e)},ur=function(n,t){return qt.ancestor(n,"table")},ar=X.immutableBag(["boxes","start","finish"],[]),cr=function(n,t,e){var r=function(n){return function(t){return e(t)||ot.eq(t,n)}};return ot.eq(n,t)?w.some(ar({boxes:w.some([n]),start:n,finish:t})):ur(n).bind(function(o){return ur(t).bind(function(i){if(ot.eq(o,i))return w.some(ar({boxes:rr(o,n,t),start:n,finish:t}));if(ot.contains(o,i)){var u=(a=Bt.ancestors(t,"td,th",r(o))).length>0?a[a.length-1]:t;return w.some(ar({boxes:or(o,n,o,t,i),start:n,finish:u}))}if(ot.contains(i,o)){var a,c=(a=Bt.ancestors(n,"td,th",r(i))).length>0?a[a.length-1]:n;return w.some(ar({boxes:or(i,n,o,t,i),start:n,finish:c}))}return Ue(n,t).shared().bind(function(u){return qt.closest(u,"table",e).bind(function(e){var u=Bt.ancestors(t,"td,th",r(e)),a=u.length>0?u[u.length-1]:t,c=Bt.ancestors(n,"td,th",r(e)),l=c.length>0?c[c.length-1]:n;return w.some(ar({boxes:or(e,n,o,t,i),start:l,finish:a}))})})})})},lr=cr,sr=function(n,t){var e=Bt.descendants(n,t);return e.length>0?w.some(e):w.none()},fr=function(n,t,e,r,o){return(i=n,u=o,B.find(i,function(n){return fn.is(n,u)})).bind(function(n){return er(n,t,e).bind(function(n){return e=r,qt.ancestor(t=n,"table").bind(function(n){return qt.descendant(n,e).bind(function(n){return cr(n,t).bind(function(n){return n.boxes().map(function(t){return{boxes:m.constant(t),start:m.constant(n.start()),finish:m.constant(n.finish())}})})})});var t,e})});var i,u},dr=function(n,t,e){return qt.descendant(n,t).bind(function(t){return qt.descendant(n,e).bind(function(n){return Ve(ur,[t,n]).map(function(e){return{first:m.constant(t),last:m.constant(n),table:m.constant(e)}})})})},mr=function(n,t){return sr(n,t)},gr=function(n,t,e){return dr(n,t,e).bind(function(t){var e=function(t){return ot.eq(n,t)},r=qt.ancestor(t.first(),"thead,tfoot,tbody,table",e),o=qt.ancestor(t.last(),"thead,tfoot,tbody,table",e);return r.bind(function(n){return o.bind(function(e){return ot.eq(n,e)?ir(t.table(),t.first(),t.last()):w.none()})})})},pr="data-mce-selected",hr="data-mce-first-selected",vr="data-mce-last-selected",br={selected:m.constant(pr),selectedSelector:m.constant("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:m.constant("[data-mce-selected]"),firstSelected:m.constant(hr),firstSelectedSelector:m.constant("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:m.constant(vr),lastSelectedSelector:m.constant("td[data-mce-last-selected],th[data-mce-last-selected]")},wr=function(n){if(!z.isArray(n))throw new Error("cases must be an array");if(0===n.length)throw new Error("there must be at least one case");var t=[],e={};return B.each(n,function(r,o){var i=L.keys(r);if(1!==i.length)throw new Error("one and only one name per case");var u=i[0],a=r[u];if(e[u]!==undefined)throw new Error("duplicate key detected:"+u);if("cata"===u)throw new Error("cannot have a case named cata (sorry)");if(!z.isArray(a))throw new Error("case arguments must be an array");t.push(u),e[u]=function(){var e=arguments.length;if(e!==a.length)throw new Error("Wrong number of arguments to case "+u+". Expected "+a.length+" ("+a+"), got "+e);for(var r=new Array(e),i=0;i<r.length;i++)r[i]=arguments[i];return{fold:function(){if(arguments.length!==n.length)throw new Error("Wrong number of arguments to fold. Expected "+n.length+", got "+arguments.length);return arguments[o].apply(null,r)},match:function(n){var e=L.keys(n);if(t.length!==e.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+e.join(","));if(!B.forall(t,function(n){return B.contains(e,n)}))throw new Error("Not all branches were specified when using match. Specified: "+e.join(", ")+"\nRequired: "+t.join(", "));return n[u].apply(null,r)},log:function(n){console.log(n,{constructors:t,constructor:u,params:r})}}}}),e},yr=wr([{none:[]},{multiple:["elements"]},{single:["selection"]}]),xr={cata:function(n,t,e,r){return n.fold(t,e,r)},none:yr.none,multiple:yr.multiple,single:yr.single},Cr=function(n,t){return xr.cata(t.get(),m.constant([]),m.identity,m.constant([n]))},Sr=function(n,t){return xr.cata(t.get(),w.none,function(t,e){return 0===t.length?w.none():gr(n,br.firstSelectedSelector(),br.lastSelectedSelector()).bind(function(n){return t.length>1?w.some({bounds:m.constant(n),cells:m.constant(t)}):w.none()})},w.none)},Rr=function(n,t){var e=Cr(n,t);return e.length>0&&B.forall(e,function(n){return Dt.has(n,"rowspan")&&parseInt(Dt.get(n,"rowspan"),10)>1||Dt.has(n,"colspan")&&parseInt(Dt.get(n,"colspan"),10)>1})?w.some(e):w.none()},Tr=Cr,Dr=function(n){return{element:m.constant(n),mergable:w.none,unmergable:w.none,selection:m.constant([n])}},Ar=X.immutable("element","clipboard","generators"),kr={noMenu:Dr,forMenu:function(n,t,e){return{element:m.constant(e),mergable:m.constant(Sr(t,n)),unmergable:m.constant(Rr(e,n)),selection:m.constant(Tr(e,n))}},notCell:function(n){return Dr(n)},paste:Ar,pasteRows:function(n,t,e,r,o){return{element:m.constant(e),mergable:w.none,unmergable:w.none,selection:m.constant(Tr(e,n)),clipboard:m.constant(r),generators:m.constant(o)}}},Nr={registerEvents:function(n,t,e,r){n.on("BeforeGetContent",function(e){!0===e.selection&&xr.cata(t.get(),m.noop,function(t){var r;e.preventDefault(),(r=t,Vt(r[0]).map(he).map(function(n){return[fe(n,br.attributeSelector())]})).each(function(t){e.content=B.map(t,function(t){return e=t,n.selection.serializer.serialize(e.dom(),{});var e}).join("")})},m.noop)}),n.on("BeforeSetContent",function(t){!0===t.selection&&!0===t.paste&&w.from(n.dom.getParent(n.selection.getStart(),"th,td")).each(function(o){var i=en.fromDom(o);Vt(i).bind(function(o){var u=B.filter(Be(t.content),function(n){return"meta"!==xt.name(n)});if(1===u.length&&"table"===xt.name(u[0])){t.preventDefault();var a=en.fromDom(n.getDoc()),c=Ee(a),l=kr.paste(i,u[0],c);e.pasteCells(o,l).each(function(t){n.selection.setRng(t),n.focus(),r.clear(o)})}})})})}},Or={render:function(n,t,e,r){var o=en.fromTag("table");re.setAll(o,{"border-collapse":"collapse",width:"100%"}),Dt.set(o,"border","1");var i=en.fromTag("tbody");ue.append(o,i);for(var u=[],a=0;a<n;a++){for(var c=en.fromTag("tr"),l=0;l<t;l++){var s=a<e||l<r?en.fromTag("th"):en.fromTag("td");l<r&&Dt.set(s,"scope","row"),a<e&&Dt.set(s,"scope","col"),ue.append(s,en.fromTag("br")),re.set(s,"width",100/t+"%"),ue.append(c,s)}u.push(c)}return ae.append(i,u),o}},Er=function(n){return n.dom().innerHTML},Br=function(n){var t=en.fromTag("div"),e=en.fromDom(n.dom().cloneNode(!0));return ue.append(t,e),Er(t)},Ir=function(n,t){n.selection.select(t.dom(),!0),n.selection.collapse(!0)},Pr={insert:function(n,t,e){var r,o=Or.render(e,t,0,0);Dt.set(o,"id","__mce");var i,u,a=Br(o);return n.insertContent(a),r=n.dom.get("__mce"),n.dom.setAttrib(r,"id",null),n.$("tr",r).each(function(t,e){n.fire("newrow",{node:e}),n.$("th,td",e).each(function(t,e){n.fire("newcell",{node:e})})}),n.dom.setAttribs(r,n.settings.table_default_attributes||{}),n.dom.setStyles(r,n.settings.table_default_styles||{}),i=n,u=en.fromDom(r),qt.descendant(u,"td,th").each(m.curry(Ir,i)),r}},Wr=function(n,t){var e=function(e){var r=t(e);if(r<=0||null===r){var o=re.get(e,n);return parseFloat(o)||0}return r},r=function(n,t){return B.foldl(t,function(t,e){var r=re.get(n,e),o=r===undefined?0:parseInt(r,10);return isNaN(o)?t:t+o},0)};return{set:function(t,e){if(!z.isNumber(e)&&!e.match(/^[0-9]+$/))throw n+".set accepts only positive integer values. Value was "+e;var r=t.dom();Jt(r)&&(r.style[n]=e+"px")},get:e,getOuter:e,aggregate:r,max:function(n,t,e){var o=r(n,e);return t>o?t-o:0}}},_r=Wr("height",function(n){return Nt.inBody(n)?n.dom().getBoundingClientRect().height:n.dom().offsetHeight}),Mr=function(n){return _r.get(n)},Lr=function(n){return _r.getOuter(n)},qr=Wr("width",function(n){return n.dom().offsetWidth}),zr=function(n){return qr.get(n)},Fr=function(n){return qr.getOuter(n)},jr=tt.detect(),Hr=function(n,t,e){return r=re.get(n,t),o=e,i=parseFloat(r),isNaN(i)?o:i;var r,o,i},Vr=function(n){return jr.browser.isIE()||jr.browser.isEdge()?(e=Hr(t=n,"padding-top",0),r=Hr(t,"padding-bottom",0),o=Hr(t,"border-top-width",0),i=Hr(t,"border-bottom-width",0),u=t.dom().getBoundingClientRect().height,"border-box"===re.get(t,"box-sizing")?u:u-e-r-(o+i)):Hr(n,"height",Mr(n));var t,e,r,o,i,u},Ur=/(\d+(\.\d+)?)(\w|%)*/,Gr=/(\d+(\.\d+)?)%/,Xr=/(\d+(\.\d+)?)px|em/,Yr=function(n,t){re.set(n,"height",t+"px")},$r=function(n,t,e,r){var o,i,u,a,c,l=parseInt(n,10);return Yn.endsWith(n,"%")&&"table"!==xt.name(t)?(i=l,u=e,a=r,c=Vt(o=t).map(function(n){var t=u(n);return Math.floor(i/100*t)}).getOr(i),a(o,c),c):l},Kr=function(n){var t,e=re.getRaw(t=n,"height").getOrThunk(function(){return Vr(t)+"px"});return e?$r(e,n,Mr,Yr):Mr(n)},Jr=function(n,t){return Dt.has(n,t)?parseInt(Dt.get(n,t),10):1},Qr=function(n){return re.getRaw(n,"width").fold(function(){return w.from(Dt.get(n,"width"))},function(n){return w.some(n)})},Zr=function(n,t){return n/t.pixelWidth()*100},no={percentageBasedSizeRegex:m.constant(Gr),pixelBasedSizeRegex:m.constant(Xr),setPixelWidth:function(n,t){re.set(n,"width",t+"px")},setPercentageWidth:function(n,t){re.set(n,"width",t+"%")},setHeight:Yr,getPixelWidth:function(n,t){return Qr(n).fold(function(){var t=zr(n);return parseInt(t,10)},function(e){return function(n,t,e){if(Xr.test(t)){var r=Xr.exec(t);return parseInt(r[1],10)}if(Gr.test(t)){var o=Gr.exec(t),i=parseFloat(o[1]);return i/100*e.pixelWidth()}var u=zr(n);return parseInt(u,10)}(n,e,t)})},getPercentageWidth:function(n,t){return Qr(n).fold(function(){var e=zr(n),r=parseInt(e,10);return Zr(r,t)},function(e){return function(n,t,e){if(Gr.test(t)){var r=Gr.exec(t);return parseFloat(r[1])}var o=zr(n),i=parseInt(o,10);return Zr(i,e)}(n,e,t)})},getGenericWidth:function(n){return Qr(n).bind(function(n){if(Ur.test(n)){var t=Ur.exec(n);return w.some({width:m.constant(t[1]),unit:m.constant(t[3])})}return w.none()})},setGenericWidth:function(n,t,e){re.set(n,"width",t+e)},getHeight:function(n){return e="rowspan",Kr(t=n)/Jr(t,e);var t,e},getRawWidth:Qr},to=function(n,t){no.getGenericWidth(n).each(function(e){var r=e.width()/2;no.setGenericWidth(n,r,e.unit()),no.setGenericWidth(t,r,e.unit())})},eo=function(n,t){var e=t||en.fromDom(document.documentElement);return Mt.ancestor(n,m.curry(ot.eq,e)).isSome()},ro=function(n){var t=n.dom();return t===t.window?n:xt.isDocument(n)?t.defaultView||t.parentWindow:null},oo=function(n,t){return{left:m.constant(n),top:m.constant(t),translate:function(e,r){return oo(n+e,t+r)}}},io=function(n,t){return n!==undefined?n:t!==undefined?t:0},uo=function(n){var t,e=n.dom(),r=e.ownerDocument,o=r.body,i=en.fromDom(r.documentElement);return o===e?oo(o.offsetLeft,o.offsetTop):eo(n,i)?(t=e.getBoundingClientRect(),oo(t.left,t.top)):oo(0,0)},ao=function(n){var t=n.dom().ownerDocument,e=t.body,r=ro(en.fromDom(t)),o=t.documentElement,i=io(r.pageYOffset,o.scrollTop),u=io(r.pageXOffset,o.scrollLeft),a=io(o.clientTop,e.clientTop),c=io(o.clientLeft,e.clientLeft);return uo(n).translate(u-c,i-a)},co=X.immutable("row","y"),lo=X.immutable("col","x"),so=function(n){return ao(n).left()+Fr(n)},fo=function(n){return ao(n).left()},mo=function(n,t){return lo(n,fo(t))},go=function(n,t){return lo(n,so(t))},po=function(n){return ao(n).top()},ho=function(n,t,e){if(0===e.length)return[];var r=B.map(e.slice(1),function(t,e){return t.map(function(t){return n(e,t)})}),o=e[e.length-1].map(function(n){return t(e.length-1,n)});return r.concat([o])},vo={delta:m.identity,positions:m.curry(ho,function(n,t){return co(n,po(t))},function(n,t){return co(n,po(t)+Lr(t))}),edge:po},bo={delta:m.identity,edge:fo,positions:m.curry(ho,mo,go)},wo={height:vo,rtl:{delta:function(n,t){return-n},edge:so,positions:m.curry(ho,go,mo)},ltr:bo},yo={ltr:wo.ltr,rtl:wo.rtl},xo=function(n){var t=function(t){return n(t).isRtl()?yo.rtl:yo.ltr};return{delta:function(n,e){return t(e).delta(n,e)},edge:function(n){return t(n).edge(n)},positions:function(n,e){return t(e).positions(n,e)}}},Co=function(n){var t=Gt(n);return Kt.generate(t).grid()},So=function(n){var t=n,e=function(){return t};return{get:e,set:function(n){t=n},clone:function(){return So(e())}}},Ro=function(n,t){return To(n,t,{validate:z.isFunction,label:"function"})},To=function(n,t,e){if(0===t.length)throw new Error("You must specify at least one required field.");return V("required",t),G(t),function(r){var o=L.keys(r);B.forall(t,function(n){return B.contains(o,n)})||j(t,o),n(t,o);var i=B.filter(t,function(n){return!e.validate(r[n],n)});return i.length>0&&U(i,e.label),r}},Do=m.noop,Ao={exactly:m.curry(Ro,function(n,t){var e=B.filter(t,function(t){return!B.contains(n,t)});e.length>0&&H(e)}),ensure:m.curry(Ro,Do),ensureWith:m.curry(To,Do)},ko=function(n){var t=Dt.has(n,"colspan")?parseInt(Dt.get(n,"colspan"),10):1,e=Dt.has(n,"rowspan")?parseInt(Dt.get(n,"rowspan"),10):1;return{element:m.constant(n),colspan:m.constant(t),rowspan:m.constant(e)}},No=Ao.exactly(["cell","row","replace","gap"]),Oo=function(n,t){No(n);var e=So(w.none()),r=t!==undefined?t:ko,o=function(t){var e,o=r(t);return e=o,n.cell(e)},i=function(n){var t=o(n);return e.get().isNone()&&e.set(w.some(t)),u=w.some({item:n,replacement:t}),t},u=w.none();return{getOrInit:function(n,t){return u.fold(function(){return i(n)},function(e){return t(n,e.item)?e.replacement:i(n)})},cursor:e.get}},Eo=function(n,t){return function(e){var r=So(w.none());No(e);var o=[],i=function(i){var u=e.replace(i,t,{scope:n});return o.push({item:i,sub:u}),r.get().isNone()&&r.set(w.some(u)),u};return{replaceOrInit:function(n,t){return(e=n,r=t,B.find(o,function(n){return r(n.item,e)})).fold(function(){return i(n)},function(e){return t(n,e.item)?e.sub:i(n)});var e,r},cursor:r.get}}},Bo=function(n){No(n);var t=So(w.none());return{combine:function(e){return t.get().isNone()&&t.set(w.some(e)),function(){var t=n.cell({element:m.constant(e),colspan:m.constant(1),rowspan:m.constant(1)});return re.remove(t,"width"),re.remove(e,"width"),t}},cursor:t.get}},Io=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Po=function(n,t){var e=n.property().name(t);return B.contains(Io,e)},Wo=function(n,t){return B.contains(["br","img","hr","input"],n.property().name(t))},_o=Po,Mo=function(n,t){var e=n.property().name(t);return B.contains(["ol","ul"],e)},Lo=Wo,qo=Pe(),zo=function(n){return _o(qo,n)},Fo=function(n){return Mo(qo,n)},jo=function(n){return Lo(qo,n)},Ho=function(n){var t,e=function(n){return"br"===xt.name(n)},r=function(n){return Te.last(n).bind(function(t){var r,o=(r=t,dt.nextSibling(r).map(function(n){return!!zo(n)||(jo(n)?"img"!==xt.name(n):void 0)}).getOr(!1));return dt.parent(t).map(function(r){return!0===o||(i=r,"li"===xt.name(i)||Mt.ancestor(i,Fo).isSome())||e(t)||zo(r)&&!ot.eq(n,r)?[]:[en.fromTag("br")];var i})}).getOr([])},o=0===(t=B.bind(n,function(n){var t,o=dt.children(n);return t=o,B.forall(t,function(n){return e(n)||xt.isText(n)&&0===we.get(n).trim().length})?[]:o.concat(r(n))})).length?[en.fromTag("br")]:t;le.empty(n[0]),ae.append(n[0],o)},Vo=function(n){return function(){for(var t=new Array(arguments.length),e=0;e<t.length;e++)t[e]=arguments[e];if(0===t.length)throw new Error("Can't merge zero objects");for(var r={},o=0;o<t.length;o++){var i=t[o];for(var u in i)i.hasOwnProperty(u)&&(r[u]=n(r[u],i[u]))}return r}},Uo=Vo(function(n,t){return z.isObject(n)&&z.isObject(t)?Uo(n,t):t}),Go=Vo(function(n,t){return t}),Xo={deepMerge:Uo,merge:Go},Yo=function(n){for(var t=[],e=function(n){t.push(n)},r=0;r<n.length;r++)n[r].each(e);return t},$o=function(n,t){for(var e=0;e<n.length;e++){var r=t(n[e],e);if(r.isSome())return r}return w.none()},Ko=function(n,t){return nn.rowcells(t,n.section())},Jo=function(n,t){return n.cells()[t]},Qo={addCell:function(n,t,e){var r=n.cells(),o=r.slice(0,t),i=r.slice(t),u=o.concat([e]).concat(i);return Ko(n,u)},setCells:Ko,mutateCell:function(n,t,e){n.cells()[t]=e},getCell:Jo,getCellElement:function(n,t){return Jo(n,t).element()},mapCells:function(n,t){var e=n.cells(),r=B.map(e,t);return nn.rowcells(r,n.section())},cellLength:function(n){return n.cells().length}},Zo=function(n,t){if(0===n.length)return 0;var e=n[0];return B.findIndex(n,function(n){return!t(e.element(),n.element())}).fold(function(){return n.length},function(n){return n})},ni=function(n,t,e,r){var o,i,u,a,c=(o=n,i=t,o[i]).cells().slice(e),l=Zo(c,r),s=(u=n,a=e,B.map(u,function(n){return Qo.getCell(n,a)})).slice(t),f=Zo(s,r);return{colspan:m.constant(l),rowspan:m.constant(f)}},ti=function(n,t){var e=B.map(n,function(n,t){return B.map(n.cells(),function(n,t){return!1})});return B.map(n,function(r,o){var i=B.bind(r.cells(),function(r,i){if(!1===e[o][i]){var u=ni(n,o,i,t);return function(n,t,r,o){for(var i=n;i<n+r;i++)for(var u=t;u<t+o;u++)e[i][u]=!0}(o,i,u.rowspan(),u.colspan()),[nn.detailnew(r.element(),u.rowspan(),u.colspan(),r.isNew())]}return[]});return nn.rowdetails(i,r.section())})},ei=function(n,t,e){for(var r=[],o=0;o<n.grid().rows();o++){for(var i=[],u=0;u<n.grid().columns();u++){var a=Kt.getAt(n,o,u).map(function(n){return nn.elementnew(n.element(),e)}).getOrThunk(function(){return nn.elementnew(t.gap(),!0)});i.push(a)}var c=nn.rowcells(i,n.all()[o].section());r.push(c)}return r},ri=function(n,t,e,r){e===r?Dt.remove(n,t):Dt.set(n,t,e)},oi=function(n,t){var e=[],r=[],o=function(t,o){t.length>0?function(t,o){var i=qt.child(n,o).getOrThunk(function(){var t=en.fromTag(o,dt.owner(n).dom());return ue.append(n,t),t});le.empty(i);var u=B.map(t,function(n){n.isNew()&&e.push(n.element());var t=n.element();return le.empty(t),B.each(n.cells(),function(n){n.isNew()&&r.push(n.element()),ri(n.element(),"colspan",n.colspan(),1),ri(n.element(),"rowspan",n.rowspan(),1),ue.append(t,n.element())}),t});ae.append(i,u)}(t,o):qt.child(n,o).bind(le.remove)},i=[],u=[],a=[];return B.each(t,function(n){switch(n.section()){case"thead":i.push(n);break;case"tbody":u.push(n);break;case"tfoot":a.push(n)}}),o(i,"thead"),o(u,"tbody"),o(a,"tfoot"),{newRows:m.constant(e),newCells:m.constant(r)}},ii=function(n){return B.map(n,function(n){var t=pe(n.element());return B.each(n.cells(),function(n){var e=he(n.element());ri(e,"colspan",n.colspan(),1),ri(e,"rowspan",n.rowspan(),1),ue.append(t,e)}),t})},ui=function(n,t){for(var e=[],r=0;r<n;r++)e.push(t(r));return e},ai=function(n,t){for(var e=[],r=n;r<t;r++)e.push(r);return e},ci=function(n,t){if(t<0||t>=n.length-1)return w.none();var e=n[t].fold(function(){var e=B.reverse(n.slice(0,t));return $o(e,function(n,t){return n.map(function(n){return{value:n,delta:t+1}})})},function(n){return w.some({value:n,delta:0})}),r=n[t+1].fold(function(){var e=n.slice(t+1);return $o(e,function(n,t){return n.map(function(n){return{value:n,delta:t+1}})})},function(n){return w.some({value:n,delta:1})});return e.bind(function(n){return r.map(function(t){var e=t.delta+n.delta;return Math.abs(t.value-n.value)/e})})},li=function(n,t,e){var r=n();return B.find(r,t).orThunk(function(){return w.from(r[0]).orThunk(e)}).map(function(n){return n.element()})},si=function(n){var t=n.grid(),e=ai(0,t.columns()),r=ai(0,t.rows());return B.map(e,function(t){return li(function(){return B.bind(r,function(e){return Kt.getAt(n,e,t).filter(function(n){return n.column()===t}).fold(m.constant([]),function(n){return[n]})})},function(n){return 1===n.colspan()},function(){return Kt.getAt(n,0,t)})})},fi=function(n){var t=n.grid(),e=ai(0,t.rows()),r=ai(0,t.columns());return B.map(e,function(t){return li(function(){return B.bind(r,function(e){return Kt.getAt(n,t,e).filter(function(n){return n.row()===t}).fold(m.constant([]),function(n){return[n]})})},function(n){return 1===n.rowspan()},function(){return Kt.getAt(n,t,0)})})},di=function(n,t,e,r,o){var i=en.fromTag("div");return re.setAll(i,{position:"absolute",left:t-r/2+"px",top:e+"px",height:o+"px",width:r+"px"}),Dt.setAll(i,{"data-column":n,role:"presentation"}),i},mi=function(n,t,e,r,o){var i=en.fromTag("div");return re.setAll(i,{position:"absolute",left:t+"px",top:e-o/2+"px",height:o+"px",width:r+"px"}),Dt.setAll(i,{"data-row":n,role:"presentation"}),i},gi=function(n){var t=n.replace(/\./g,"-");return{resolve:function(n){return t+"-"+n}}},pi={resolve:gi("ephox-snooker").resolve},hi=function(n,t){var e=Dt.get(n,t);return e===undefined||""===e?[]:e.split(" ")},vi=hi,bi=function(n,t,e){var r=hi(n,t).concat([e]);Dt.set(n,t,r.join(" "))},wi=function(n,t,e){var r=B.filter(hi(n,t),function(n){return n!==e});r.length>0?Dt.set(n,t,r.join(" ")):Dt.remove(n,t)},yi=function(n){return vi(n,"class")},xi=function(n,t){return bi(n,"class",t)},Ci=function(n,t){return wi(n,"class",t)},Si=yi,Ri=xi,Ti=Ci,Di=function(n,t){B.contains(yi(n),t)?Ci(n,t):xi(n,t)},Ai=function(n){return n.dom().classList!==undefined},ki=function(n,t){return Ai(n)&&n.dom().classList.contains(t)},Ni={add:function(n,t){Ai(n)?n.dom().classList.add(t):Ri(n,t)},remove:function(n,t){var e;Ai(n)?n.dom().classList.remove(t):Ti(n,t),0===(Ai(e=n)?e.dom().classList:Si(e)).length&&Dt.remove(e,"class")},toggle:function(n,t){return Ai(n)?n.dom().classList.toggle(t):Di(n,t)},toggler:function(n,t){var e,r,o,i,u,a,c=Ai(n),l=n.dom().classList;return e=function(){c?l.remove(t):Ti(n,t)},r=function(){c?l.add(t):Ri(n,t)},o=ki(n,t),i=o||!1,{on:u=function(){r(),i=!0},off:a=function(){e(),i=!1},toggle:function(){(i?a:u)()},isOn:function(){return i}}},has:ki},Oi=pi.resolve("resizer-bar"),Ei=pi.resolve("resizer-rows"),Bi=pi.resolve("resizer-cols"),Ii=function(n){var t=Bt.descendants(n.parent(),"."+Oi);B.each(t,le.remove)},Pi=function(n,t,e){var r=n.origin();B.each(t,function(t,o){t.each(function(t){var o=e(r,t);Ni.add(o,Oi),ue.append(n.parent(),o)})})},Wi=function(n,t,e,r,o,i){var u,a,c,l,s=ao(t),f=e.length>0?o.positions(e,t):[];u=n,a=f,c=s,l=Fr(t),Pi(u,a,function(n,t){var e=mi(t.row(),c.left()-n.left(),t.y()-n.top(),l,7);return Ni.add(e,Ei),e});var d,m,g,p,h=r.length>0?i.positions(r,t):[];d=n,m=h,g=s,p=Lr(t),Pi(d,m,function(n,t){var e=di(t.col(),t.x()-n.left(),g.top()-n.top(),7,p);return Ni.add(e,Bi),e})},_i=function(n,t){var e=Bt.descendants(n.parent(),"."+Oi);B.each(e,t)},Mi=function(n,t,e,r){Ii(n);var o=Gt(t),i=Kt.generate(o),u=fi(i),a=si(i);Wi(n,t,u,a,e,r)},Li=function(n){_i(n,function(n){re.set(n,"display","none")})},qi=function(n){_i(n,function(n){re.set(n,"display","block")})},zi=Ii,Fi=function(n){return Ni.has(n,Ei)},ji=function(n){return Ni.has(n,Bi)},Hi=function(n,t){return B.map(n,function(n){var e,r=(e=n.details(),$o(e,function(n){return dt.parent(n.element()).map(function(n){var t=dt.parent(n).isNone();return nn.elementnew(n,t)})}).getOrThunk(function(){return nn.elementnew(t.row(),!0)}));return nn.rowdatanew(r.element(),n.details(),n.section(),r.isNew())})},Vi=function(n,t){var e=ti(n,ot.eq);return Hi(e,t)},Ui=function(n,t){var e=B.flatten(B.map(n.all(),function(n){return n.cells()}));return B.find(e,function(n){return ot.eq(t,n.element())})},Gi=function(n,t,e,r,o){return function(i,u,a,c,l){var s=Gt(u),f=Kt.generate(s);return t(f,a).map(function(t){var e=ei(f,c,!1),r=n(e,t,ot.eq,o(c)),i=Vi(r.grid(),c);return{grid:m.constant(i),cursor:r.cursor}}).fold(function(){return w.none()},function(n){var t=oi(u,n.grid());return e(u,n.grid(),l),r(u),Mi(i,u,wo.height,l),w.some({cursor:n.cursor,newRows:t.newRows,newCells:t.newCells})})}},Xi=Vi,Yi=function(n,t){return jt(t.element()).bind(function(t){return Ui(n,t)})},$i=function(n,t){var e=B.map(t.selection(),function(t){return jt(t).bind(function(t){return Ui(n,t)})}),r=Yo(e);return r.length>0?w.some(r):w.none()},Ki=function(n,t){return jt(t.element()).bind(function(e){return Ui(n,e).map(function(n){return Xo.merge(n,{generators:t.generators,clipboard:t.clipboard})})})},Ji=function(n,t){var e=B.map(t.selection(),function(t){return jt(t).bind(function(t){return Ui(n,t)})}),r=Yo(e);return r.length>0?w.some(Xo.merge({cells:r},{generators:t.generators,clipboard:t.clipboard})):w.none()},Qi=function(n,t){return t.mergable()},Zi=function(n,t){return t.unmergable()},nu=function(n){return{is:function(t){return n===t},isValue:m.constant(!0),isError:m.constant(!1),getOr:m.constant(n),getOrThunk:m.constant(n),getOrDie:m.constant(n),or:function(t){return nu(n)},orThunk:function(t){return nu(n)},fold:function(t,e){return e(n)},map:function(t){return nu(t(n))},each:function(t){t(n)},bind:function(t){return t(n)},exists:function(t){return t(n)},forall:function(t){return t(n)},toOption:function(){return w.some(n)}}},tu=function(n){return{is:m.constant(!1),isValue:m.constant(!1),isError:m.constant(!0),getOr:m.identity,getOrThunk:function(n){return n()},getOrDie:function(){return m.die(n)()},or:function(n){return n},orThunk:function(n){return n()},fold:function(t,e){return t(n)},map:function(t){return tu(n)},each:m.noop,bind:function(t){return tu(n)},exists:m.constant(!1),forall:m.constant(!0),toOption:w.none}},eu={value:nu,error:tu},ru=function(n,t){return B.map(n,function(){return nn.elementnew(t.cell(),!0)})},ou=function(n,t,e){return n.concat(ui(t,function(t){return Qo.setCells(n[n.length-1],ru(n[n.length-1].cells(),e))}))},iu=function(n,t,e){return B.map(n,function(n){return Qo.setCells(n,n.cells().concat(ru(ai(0,t),e)))})},uu=function(n,t,e){if(n.row()>=t.length||n.column()>Qo.cellLength(t[0]))return eu.error("invalid start address out of table bounds, row: "+n.row()+", column: "+n.column());var r=t.slice(n.row()),o=r[0].cells().slice(n.column()),i=Qo.cellLength(e[0]),u=e.length;return eu.value({rowDelta:m.constant(r.length-u),colDelta:m.constant(o.length-i)})},au=function(n,t){var e=Qo.cellLength(n[0]),r=Qo.cellLength(t[0]);return{rowDelta:m.constant(0),colDelta:m.constant(e-r)}},cu=function(n,t,e){var r=t.colDelta()<0?iu:m.identity;return(t.rowDelta()<0?ou:m.identity)(r(n,Math.abs(t.colDelta()),e),Math.abs(t.rowDelta()),e)},lu=function(n,t,e,r){if(0===n.length)return n;for(var o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)Qo.mutateCell(n[o],i,nn.elementnew(r(),!1));return n},su=function(n,t,e,r){for(var o=!0,i=0;i<n.length;i++)for(var u=0;u<Qo.cellLength(n[0]);u++){var a=e(Qo.getCellElement(n[i],u),t);!0===a&&!1===o?Qo.mutateCell(n[i],u,nn.elementnew(r(),!0)):!0===a&&(o=!1)}return n},fu=function(n,t,e,r){if(t>0&&t<n.length){var o=n[t-1].cells(),i=(u=o,a=e,B.foldl(u,function(n,t){return B.exists(n,function(n){return a(n.element(),t.element())})?n:n.concat([t])},[]));B.each(i,function(o){for(var i=w.none(),u=t;u<n.length;u++)for(var a=0;a<Qo.cellLength(n[0]);a++){var c=n[u].cells()[a];e(c.element(),o.element())&&(i.isNone()&&(i=w.some(r())),i.each(function(t){Qo.mutateCell(n[u],a,nn.elementnew(t,!0))}))}})}var u,a;return n},du=function(n,t,e,r,o){return uu(n,t,e).map(function(i){var u=cu(t,i,r);return function(n,t,e,r,o){for(var i,u,a,c,l,s,f,d=n.row(),g=n.column(),p=d+e.length,h=g+Qo.cellLength(e[0]),v=d;v<p;v++)for(var b=g;b<h;b++){i=t,u=v,a=b,c=o,l=void 0,s=void 0,l=Qo.getCell(i[u],a),s=m.curry(c,l.element()),f=i[u],i.length>1&&Qo.cellLength(f)>1&&(a>0&&s(Qo.getCellElement(f,a-1))||a<f.length-1&&s(Qo.getCellElement(f,a+1))||u>0&&s(Qo.getCellElement(i[u-1],a))||u<i.length-1&&s(Qo.getCellElement(i[u+1],a)))&&su(t,Qo.getCellElement(t[v],b),o,r.cell);var w=Qo.getCellElement(e[v-d],b-g),y=r.replace(w);Qo.mutateCell(t[v],b,nn.elementnew(y,!0))}return t}(n,u,e,r,o)})},mu=function(n,t,e,r,o){fu(t,n,o,r.cell);var i=au(e,t),u=cu(e,i,r),a=au(t,u),c=cu(t,a,r);return c.slice(0,n).concat(u).concat(c.slice(n,c.length))},gu=function(n,t,e,r,o){var i=n.slice(0,t),u=n.slice(t),a=Qo.mapCells(n[e],function(e,i){return t>0&&t<n.length&&r(Qo.getCellElement(n[t-1],i),Qo.getCellElement(n[t],i))?Qo.getCell(n[t],i):nn.elementnew(o(e.element(),r),!0)});return i.concat([a]).concat(u)},pu=function(n,t,e,r,o){return B.map(n,function(n){var i=t>0&&t<Qo.cellLength(n)&&r(Qo.getCellElement(n,t-1),Qo.getCellElement(n,t))?Qo.getCell(n,t):nn.elementnew(o(Qo.getCellElement(n,e),r),!0);return Qo.addCell(n,t,i)})},hu=function(n,t,e,r,o){var i=e+1;return B.map(n,function(n,u){var a=u===t?nn.elementnew(o(Qo.getCellElement(n,e),r),!0):Qo.getCell(n,e);return Qo.addCell(n,i,a)})},vu=function(n,t,e,r,o){var i=t+1,u=n.slice(0,i),a=n.slice(i),c=Qo.mapCells(n[t],function(n,t){return t===e?nn.elementnew(o(n.element(),r),!0):n});return u.concat([c]).concat(a)},bu=function(n,t,e){return n.slice(0,t).concat(n.slice(e+1))},wu=function(n,t,e){var r=B.map(n,function(n){var r=n.cells().slice(0,t).concat(n.cells().slice(e+1));return nn.rowcells(r,n.section())});return B.filter(r,function(n){return n.cells().length>0})},yu=function(n,t,e,r){return B.map(n,function(n){return Qo.mapCells(n,function(n){return o=n,B.exists(t,function(n){return e(o.element(),n.element())})?nn.elementnew(r(n.element(),e),!0):n;var o})})},xu=function(n,t,e,r){return Qo.getCellElement(n[t],e)!==undefined&&t>0&&r(Qo.getCellElement(n[t-1],e),Qo.getCellElement(n[t],e))},Cu=function(n,t,e){return t>0&&e(Qo.getCellElement(n,t-1),Qo.getCellElement(n,t))},Su=function(n,t,e,r){var o=B.bind(n,function(r,o){return xu(n,o,t,e)||Cu(r,t,e)?[]:[Qo.getCell(r,t)]});return yu(n,o,e,r)},Ru=function(n,t,e,r){var o=n[t],i=B.bind(o.cells(),function(r,i){return xu(n,t,i,e)||Cu(o,i,e)?[]:[r]});return yu(n,i,e,r)},Tu=function(n){return{fold:n}},Du=function(){return Tu(function(n,t,e,r,o){return n()})},Au=function(n){return Tu(function(t,e,r,o,i){return e(n)})},ku=function(n,t){return Tu(function(e,r,o,i,u){return o(n,t)})},Nu=function(n,t,e){return Tu(function(r,o,i,u,a){return u(n,t,e)})},Ou=function(n,t){return Tu(function(e,r,o,i,u){return u(n,t)})},Eu=function(n,t,e,r){var o,i,u=n.slice(0),a=(i=t,0===(o=n).length?Du():1===o.length?Au(0):0===i?ku(0,1):i===o.length-1?Ou(i-1,i):i>0&&i<o.length-1?Nu(i-1,i,i+1):Du()),c=function(n){return B.map(n,m.constant(0))},l=m.constant(c(u)),s=function(n,t){if(e>=0){var o=Math.max(r.minCellWidth(),u[t]-e);return c(u.slice(0,n)).concat([e,o-u[t]]).concat(c(u.slice(t+1)))}var i=Math.max(r.minCellWidth(),u[n]+e),a=u[n]-i;return c(u.slice(0,n)).concat([i-u[n],a]).concat(c(u.slice(t+1)))},f=s;return a.fold(l,function(n){return r.singleColumnWidth(u[n],e)},f,function(n,t,e){return s(t,e)},function(n,t){if(e>=0)return c(u.slice(0,t)).concat([e]);var o=Math.max(r.minCellWidth(),u[t]+e);return c(u.slice(0,t)).concat([o-u[t]])})},Bu=function(n,t){return Dt.has(n,t)&&parseInt(Dt.get(n,t),10)>1},Iu={hasColspan:function(n){return Bu(n,"colspan")},hasRowspan:function(n){return Bu(n,"rowspan")},minWidth:m.constant(10),minHeight:m.constant(10),getInt:function(n,t){return parseInt(re.get(n,t),10)}},Pu=function(n,t,e){return re.getRaw(n,t).fold(function(){return e(n)+"px"},function(n){return n})},Wu=function(n){return Pu(n,"width",no.getPixelWidth)},_u=function(n){return Pu(n,"height",no.getHeight)},Mu=function(n,t,e,r,o){var i=si(n),u=B.map(i,function(n){return n.map(t.edge)});return B.map(i,function(n,t){return n.filter(m.not(Iu.hasColspan)).fold(function(){var n=ci(u,t);return r(n)},function(n){return e(n,o)})})},Lu=function(n){return n.map(function(n){return n+"px"}).getOr("")},qu=function(n,t,e,r){var o=fi(n),i=B.map(o,function(n){return n.map(t.edge)});return B.map(o,function(n,t){return n.filter(m.not(Iu.hasRowspan)).fold(function(){var n=ci(i,t);return r(n)},function(n){return e(n)})})},zu={getRawWidths:function(n,t){return Mu(n,t,Wu,Lu)},getPixelWidths:function(n,t,e){return Mu(n,t,no.getPixelWidth,function(n){return n.getOrThunk(e.minCellWidth)},e)},getPercentageWidths:function(n,t,e){return Mu(n,t,no.getPercentageWidth,function(n){return n.fold(function(){return e.minCellWidth()},function(n){return n/e.pixelWidth()*100})},e)},getPixelHeights:function(n,t){return qu(n,t,no.getHeight,function(n){return n.getOrThunk(Iu.minHeight)})},getRawHeights:function(n,t){return qu(n,t,_u,Lu)}},Fu=function(n,t,e){for(var r=0,o=n;o<t;o++)r+=e[o]!==undefined?e[o]:0;return r},ju=function(n,t){var e=Kt.justCells(n);return B.map(e,function(n){var e=Fu(n.column(),n.column()+n.colspan(),t);return{element:n.element,width:m.constant(e),colspan:n.colspan}})},Hu=function(n,t){var e=Kt.justCells(n);return B.map(e,function(n){var e=Fu(n.row(),n.row()+n.rowspan(),t);return{element:n.element,height:m.constant(e),rowspan:n.rowspan}})},Vu=function(n,t){return B.map(n.all(),function(n,e){return{element:n.element,height:m.constant(t[e])}})},Uu=function(n){var t=parseInt(n,10),e=m.identity;return{width:m.constant(t),pixelWidth:m.constant(t),getWidths:zu.getPixelWidths,getCellDelta:e,singleColumnWidth:function(n,t){return[Math.max(Iu.minWidth(),n+t)-n]},minCellWidth:Iu.minWidth,setElementWidth:no.setPixelWidth,setTableWidth:function(n,t,e){var r=B.foldr(t,function(n,t){return n+t},0);no.setPixelWidth(n,r)}}},Gu=function(n,t){if(no.percentageBasedSizeRegex().test(t)){var e=no.percentageBasedSizeRegex().exec(t);return o=e[1],i=n,u=parseFloat(o),a=zr(i),{width:m.constant(u),pixelWidth:m.constant(a),getWidths:zu.getPercentageWidths,getCellDelta:function(n){return n/a*100},singleColumnWidth:function(n,t){return[100-n]},minCellWidth:function(){return Iu.minWidth()/a*100},setElementWidth:no.setPercentageWidth,setTableWidth:function(n,t,e){var r=u+e;no.setPercentageWidth(n,r)}}}if(no.pixelBasedSizeRegex().test(t)){var r=no.pixelBasedSizeRegex().exec(t);return Uu(r[1])}var o,i,u,a,c=zr(n);return Uu(c)},Xu=function(n){return no.getRawWidth(n).fold(function(){var t=zr(n);return Uu(t)},function(t){return Gu(n,t)})},Yu=function(n){return Kt.generate(n)},$u=function(n){var t=Gt(n);return Yu(t)},Ku=function(n,t,e,r){var o=Xu(n),i=o.getCellDelta(t),u=$u(n),a=o.getWidths(u,r,o),c=Eu(a,e,i,o),l=B.map(c,function(n,t){return n+a[t]}),s=ju(u,l);B.each(s,function(n){o.setElementWidth(n.element(),n.width())}),e===u.grid().columns()-1&&o.setTableWidth(n,l,i)},Ju=function(n,t,e,r){var o=$u(n),i=zu.getPixelHeights(o,r),u=B.map(i,function(n,r){return e===r?Math.max(t+n,Iu.minHeight()):n}),a=Hu(o,u),c=Vu(o,u);B.each(c,function(n){no.setHeight(n.element(),n.height())}),B.each(a,function(n){no.setHeight(n.element(),n.height())});var l,s=(l=u,B.foldr(l,function(n,t){return n+t},0));no.setHeight(n,s)},Qu=function(n,t,e){var r=Xu(n),o=Yu(t),i=r.getWidths(o,e,r),u=ju(o,i);B.each(u,function(n){r.setElementWidth(n.element(),n.width())});var a=B.foldr(i,function(n,t){return t+n},0);u.length>0&&r.setElementWidth(n,a)},Zu=function(n){0===Ht(n).length&&le.remove(n)},na=X.immutable("grid","cursor"),ta=function(n,t,e){return ea(n,t,e).orThunk(function(){return ea(n,0,0)})},ea=function(n,t,e){return w.from(n[t]).bind(function(n){return w.from(n.cells()[e]).bind(function(n){return w.from(n.element())})})},ra=function(n,t,e){return na(n,ea(n,t,e))},oa=function(n){return B.foldl(n,function(n,t){return B.exists(n,function(n){return n.row()===t.row()})?n:n.concat([t])},[]).sort(function(n,t){return n.row()-t.row()})},ia=function(n){return B.foldl(n,function(n,t){return B.exists(n,function(n){return n.column()===t.column()})?n:n.concat([t])},[]).sort(function(n,t){return n.column()-t.column()})},ua=function(n,t,e){var r=Xt(n,e),o=Kt.generate(r);return ei(o,t,!0)},aa=Qu,ca={insertRowBefore:Gi(function(n,t,e,r){var o=t.row(),i=t.row(),u=gu(n,i,o,e,r.getOrInit);return ra(u,i,t.column())},Yi,m.noop,m.noop,Oo),insertRowsBefore:Gi(function(n,t,e,r){var o=t[0].row(),i=t[0].row(),u=oa(t),a=B.foldl(u,function(n,t){return gu(n,i,o,e,r.getOrInit)},n);return ra(a,i,t[0].column())},$i,m.noop,m.noop,Oo),insertRowAfter:Gi(function(n,t,e,r){var o=t.row(),i=t.row()+t.rowspan(),u=gu(n,i,o,e,r.getOrInit);return ra(u,i,t.column())},Yi,m.noop,m.noop,Oo),insertRowsAfter:Gi(function(n,t,e,r){var o=oa(t),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),a=B.foldl(o,function(n,t){return gu(n,u,i,e,r.getOrInit)},n);return ra(a,u,t[0].column())},$i,m.noop,m.noop,Oo),insertColumnBefore:Gi(function(n,t,e,r){var o=t.column(),i=t.column(),u=pu(n,i,o,e,r.getOrInit);return ra(u,t.row(),i)},Yi,aa,m.noop,Oo),insertColumnsBefore:Gi(function(n,t,e,r){var o=ia(t),i=o[0].column(),u=o[0].column(),a=B.foldl(o,function(n,t){return pu(n,u,i,e,r.getOrInit)},n);return ra(a,t[0].row(),u)},$i,aa,m.noop,Oo),insertColumnAfter:Gi(function(n,t,e,r){var o=t.column(),i=t.column()+t.colspan(),u=pu(n,i,o,e,r.getOrInit);return ra(u,t.row(),i)},Yi,aa,m.noop,Oo),insertColumnsAfter:Gi(function(n,t,e,r){var o=t[t.length-1].column(),i=t[t.length-1].column()+t[t.length-1].colspan(),u=ia(t),a=B.foldl(u,function(n,t){return pu(n,i,o,e,r.getOrInit)},n);return ra(a,t[0].row(),i)},$i,aa,m.noop,Oo),splitCellIntoColumns:Gi(function(n,t,e,r){var o=hu(n,t.row(),t.column(),e,r.getOrInit);return ra(o,t.row(),t.column())},Yi,aa,m.noop,Oo),splitCellIntoRows:Gi(function(n,t,e,r){var o=vu(n,t.row(),t.column(),e,r.getOrInit);return ra(o,t.row(),t.column())},Yi,m.noop,m.noop,Oo),eraseColumns:Gi(function(n,t,e,r){var o=ia(t),i=wu(n,o[0].column(),o[o.length-1].column()),u=ta(i,t[0].row(),t[0].column());return na(i,u)},$i,aa,Zu,Oo),eraseRows:Gi(function(n,t,e,r){var o=oa(t),i=bu(n,o[0].row(),o[o.length-1].row()),u=ta(i,t[0].row(),t[0].column());return na(i,u)},$i,m.noop,Zu,Oo),makeColumnHeader:Gi(function(n,t,e,r){var o=Su(n,t.column(),e,r.replaceOrInit);return ra(o,t.row(),t.column())},Yi,m.noop,m.noop,Eo("row","th")),unmakeColumnHeader:Gi(function(n,t,e,r){var o=Su(n,t.column(),e,r.replaceOrInit);return ra(o,t.row(),t.column())},Yi,m.noop,m.noop,Eo(null,"td")),makeRowHeader:Gi(function(n,t,e,r){var o=Ru(n,t.row(),e,r.replaceOrInit);return ra(o,t.row(),t.column())},Yi,m.noop,m.noop,Eo("col","th")),unmakeRowHeader:Gi(function(n,t,e,r){var o=Ru(n,t.row(),e,r.replaceOrInit);return ra(o,t.row(),t.column())},Yi,m.noop,m.noop,Eo(null,"td")),mergeCells:Gi(function(n,t,e,r){var o=t.cells();Ho(o);var i=lu(n,t.bounds(),e,m.constant(o[0]));return na(i,w.from(o[0]))},Qi,m.noop,m.noop,Bo),unmergeCells:Gi(function(n,t,e,r){var o=B.foldr(t,function(n,t){return su(n,t,e,r.combine(t))},n);return na(o,w.from(t[0]))},Zi,aa,m.noop,Bo),pasteCells:Gi(function(n,t,e,r){var o,i,u,a,c=(o=t.clipboard(),i=t.generators(),u=Gt(o),a=Kt.generate(u),ei(a,i,!0)),l=nn.address(t.row(),t.column());return du(l,n,c,t.generators(),e).fold(function(){return na(n,w.some(t.element()))},function(n){var e=ta(n,t.row(),t.column());return na(n,e)})},Ki,aa,m.noop,Oo),pasteRowsBefore:Gi(function(n,t,e,r){var o=n[t.cells[0].row()],i=t.cells[0].row(),u=ua(t.clipboard(),t.generators(),o),a=mu(i,n,u,t.generators(),e),c=ta(a,t.cells[0].row(),t.cells[0].column());return na(a,c)},Ji,m.noop,m.noop,Oo),pasteRowsAfter:Gi(function(n,t,e,r){var o=n[t.cells[0].row()],i=t.cells[t.cells.length-1].row()+t.cells[t.cells.length-1].rowspan(),u=ua(t.clipboard(),t.generators(),o),a=mu(i,n,u,t.generators(),e),c=ta(a,t.cells[0].row(),t.cells[0].column());return na(a,c)},Ji,m.noop,m.noop,Oo)},la=function(n){return en.fromDom(n.getBody())},sa={getBody:la,getIsRoot:function(n){return function(t){return ot.eq(t,la(n))}},addSizeSuffix:function(n){return/^[0-9]+$/.test(n)&&(n+="px"),n},removePxSuffix:function(n){return n?n.replace(/px$/,""):""}},fa=function(n){return"rtl"===re.get(n,"direction")?"rtl":"ltr"},da={onDirection:function(n,t){return function(e){return"rtl"===fa(e)?t:n}},getDirection:fa},ma={isRtl:m.constant(!1)},ga={isRtl:m.constant(!0)},pa=function(n){return"rtl"===da.getDirection(n)?ga:ma},ha=function(n,t){var e,r=function(n){return"table"===xt.name(sa.getBody(n))};!1!==n.settings.table_clone_elements&&("string"==typeof n.settings.table_clone_elements?e=n.settings.table_clone_elements.split(/[ ,]/):Array.isArray(n.settings.table_clone_elements)&&(e=n.settings.table_clone_elements));var o=w.from(e),i=function(t,e,r,i){return function(u,a){var c=Bt.descendants(u,"td[data-mce-style],th[data-mce-style]");B.each(c,function(n){Dt.remove(n,"data-mce-style")});var l=i(),s=en.fromDom(n.getDoc()),f=xo(pa),d=Oe(r,s,o);return e(u)?t(l,u,a,d,f).bind(function(t){return B.each(t.newRows(),function(t){var e;e=t,n.fire("newrow",{node:e.dom()}),e.dom()}),B.each(t.newCells(),function(t){var e;e=t,n.fire("newcell",{node:e.dom()}),e.dom()}),t.cursor().map(function(t){var e=n.dom.createRng();return e.setStart(t.dom(),0),e.setEnd(t.dom(),0),e})}):w.none()}};return{deleteRow:i(ca.eraseRows,function(t){var e=Co(t);return!1===r(n)||e.rows()>1},m.noop,t),deleteColumn:i(ca.eraseColumns,function(t){var e=Co(t);return!1===r(n)||e.columns()>1},m.noop,t),insertRowsBefore:i(ca.insertRowsBefore,m.always,m.noop,t),insertRowsAfter:i(ca.insertRowsAfter,m.always,m.noop,t),insertColumnsBefore:i(ca.insertColumnsBefore,m.always,to,t),insertColumnsAfter:i(ca.insertColumnsAfter,m.always,to,t),mergeCells:i(ca.mergeCells,m.always,m.noop,t),unmergeCells:i(ca.unmergeCells,m.always,m.noop,t),pasteRowsBefore:i(ca.pasteRowsBefore,m.always,m.noop,t),pasteRowsAfter:i(ca.pasteRowsAfter,m.always,m.noop,t),pasteCells:i(ca.pasteCells,m.always,m.noop,t)}},va=function(n,t,e){var r=Gt(n),o=Kt.generate(r);return $i(o,t).map(function(n){var t=ei(o,e,!1).slice(n[0].row(),n[n.length-1].row()+n[n.length-1].rowspan()),r=Xi(t,e);return ii(r)})},ba=tinymce.util.Tools.resolve("tinymce.util.Tools"),wa=tinymce.util.Tools.resolve("tinymce.Env"),ya={applyAlign:function(n,t,e){e&&n.formatter.apply("align"+e,{},t)},applyVAlign:function(n,t,e){e&&n.formatter.apply("valign"+e,{},t)},unApplyAlign:function(n,t){ba.each("left center right".split(" "),function(e){n.formatter.remove("align"+e,{},t)})},unApplyVAlign:function(n,t){ba.each("top middle bottom".split(" "),function(e){n.formatter.remove("valign"+e,{},t)})},getTDTHOverallStyle:function(n,t,e){var r;return r=function(t,r){for(var o=0;o<r.length;o++){var i=n.getStyle(r[o],e);if(void 0===t&&(t=i),t!==i)return""}return t}(r,n.select("td,th",t))}},xa=function(n,t){var e=n.dom,r=t.control.rootControl,o=r.toJSON(),i=e.parseStyle(o.style);"style"===t.control.name()?(r.find("#borderStyle").value(i["border-style"]||"")[0].fire("select"),r.find("#borderColor").value(i["border-color"]||"")[0].fire("change"),r.find("#backgroundColor").value(i["background-color"]||"")[0].fire("change"),r.find("#width").value(i.width||"").fire("change"),r.find("#height").value(i.height||"").fire("change")):(i["border-style"]=o.borderStyle,i["border-color"]=o.borderColor,i["background-color"]=o.backgroundColor,i.width=o.width?sa.addSizeSuffix(o.width):"",i.height=o.height?sa.addSizeSuffix(o.height):""),r.find("#style").value(e.serializeStyle(e.parseStyle(e.serializeStyle(i))))},Ca={createStyleForm:function(n){var t=function(){var t=n.settings.color_picker_callback;if(t)return function(e){return t.call(n,function(n){e.control.value(n).fire("change")},e.control.value())}};return{title:"Advanced",type:"form",defaults:{onchange:m.curry(xa,n)},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border style",type:"listbox",name:"borderStyle",width:90,onselect:m.curry(xa,n),values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{label:"Border color",type:"colorbox",name:"borderColor",onaction:t()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:t()}]}]}},buildListItems:function(n,t,e){var r=function(n,e){return e=e||[],ba.each(n,function(n){var o={text:n.text||n.title};n.menu?o.menu=r(n.menu):(o.value=n.value,t&&t(o)),e.push(o)}),e};return r(n,e||[])},updateStyleField:xa,extractAdvancedStyles:function(n,t){var e=n.parseStyle(n.getAttrib(t,"style")),r={};return e["border-style"]&&(r.borderStyle=e["border-style"]),e["border-color"]&&(r.borderColor=e["border-color"]),e["background-color"]&&(r.backgroundColor=e["background-color"]),r.style=n.serializeStyle(e),r}};function Sa(n,t,e,r){if("TD"===t.tagName||"TH"===t.tagName)n.setStyle(t,e,r);else if(t.children)for(var o=0;o<t.children.length;o++)Sa(n,t.children[o],e,r)}var Ra=function(n,t,e){var r,o,i=n.dom;Ca.updateStyleField(n,e),!1===(o=e.control.rootControl.toJSON())["class"]&&delete o["class"],n.undoManager.transact(function(){t||(t=Pr.insert(n,o.cols||1,o.rows||1)),function(n,t,e){var r=n.dom,o={},i={};if(o["class"]=e["class"],i.height=sa.addSizeSuffix(e.height),r.getAttrib(t,"width")&&!n.settings.table_style_by_css?o.width=sa.removePxSuffix(e.width):i.width=sa.addSizeSuffix(e.width),n.settings.table_style_by_css?(i["border-width"]=sa.addSizeSuffix(e.border),i["border-spacing"]=sa.addSizeSuffix(e.cellspacing),ba.extend(o,{"data-mce-border-color":e.borderColor,"data-mce-cell-padding":e.cellpadding,"data-mce-border":e.border})):ba.extend(o,{border:e.border,cellpadding:e.cellpadding,cellspacing:e.cellspacing}),n.settings.table_style_by_css&&t.children)for(var u=0;u<t.children.length;u++)Sa(r,t.children[u],{"border-width":sa.addSizeSuffix(e.border),"border-color":e.borderColor,padding:sa.addSizeSuffix(e.cellpadding)});e.style?ba.extend(i,r.parseStyle(e.style)):i=ba.extend({},r.parseStyle(r.getAttrib(t,"style")),i),o.style=r.serializeStyle(i),r.setAttribs(t,o)}(n,t,o),(r=i.select("caption",t)[0])&&!o.caption&&i.remove(r),!r&&o.caption&&((r=i.create("caption")).innerHTML=wa.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(r,t.firstChild)),ya.unApplyAlign(n,t),o.align&&ya.applyAlign(n,t,o.align),n.focus(),n.addVisual()})},Ta=function(n,t){var e,r,o,i,u,a,c,l,s,f=n.dom,d={};!0===t?(e=f.getParent(n.selection.getStart(),"table"))&&(c=e,l=(a=n).dom,s={width:l.getStyle(c,"width")||l.getAttrib(c,"width"),height:l.getStyle(c,"height")||l.getAttrib(c,"height"),cellspacing:l.getStyle(c,"border-spacing")||l.getAttrib(c,"cellspacing"),cellpadding:l.getAttrib(c,"data-mce-cell-padding")||l.getAttrib(c,"cellpadding")||ya.getTDTHOverallStyle(a.dom,c,"padding"),border:l.getAttrib(c,"data-mce-border")||l.getAttrib(c,"border")||ya.getTDTHOverallStyle(a.dom,c,"border"),borderColor:l.getAttrib(c,"data-mce-border-color"),caption:!!l.select("caption",c)[0],"class":l.getAttrib(c,"class")},ba.each("left center right".split(" "),function(n){a.formatter.matchNode(c,"align"+n)&&(s.align=n)}),!1!==a.settings.table_advtab&&ba.extend(s,Ca.extractAdvancedStyles(l,c)),d=s):(r={label:"Cols",name:"cols"},o={label:"Rows",name:"rows"}),n.settings.table_class_list&&(d["class"]&&(d["class"]=d["class"].replace(/\s*mce\-item\-table\s*/g,"")),i={name:"class",type:"listbox",label:"Class",values:Ca.buildListItems(n.settings.table_class_list,function(t){t.value&&(t.textStyle=function(){return n.formatter.getCssText({block:"table",classes:[t.value]})})})}),u={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:!1!==n.settings.table_appearance_options?[r,o,{label:"Width",name:"width",onchange:m.curry(Ca.updateStyleField,n)},{label:"Height",name:"height",onchange:m.curry(Ca.updateStyleField,n)},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[r,o,{label:"Width",name:"width",onchange:m.curry(Ca.updateStyleField,n)},{label:"Height",name:"height",onchange:m.curry(Ca.updateStyleField,n)}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},i]},!1!==n.settings.table_advtab?n.windowManager.open({title:"Table properties",data:d,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Ca.createStyleForm(n)],onsubmit:m.curry(Ra,n,e)}):n.windowManager.open({title:"Table properties",data:d,body:u,onsubmit:m.curry(Ra,n,e)})},Da=function(n,t,e){var r=n.getParent(t,"table"),o=t.parentNode,i=n.select(e,r)[0];i||(i=n.create(e),r.firstChild?"CAPTION"===r.firstChild.nodeName?n.insertAfter(i,r.firstChild):r.insertBefore(i,r.firstChild):r.appendChild(i)),i.appendChild(t),o.hasChildNodes()||n.remove(o)};function Aa(n,t,e){var r,o=n.dom;function i(n,t,e){e&&o.setAttrib(n,t,e)}Ca.updateStyleField(n,e),r=e.control.rootControl.toJSON(),n.undoManager.transact(function(){ba.each(t,function(e){var u,a,c;i(e,"scope",r.scope),i(e,"style",r.style),i(e,"class",r["class"]),u=e,a="height",(c=sa.addSizeSuffix(r.height))&&o.setStyle(u,a,c),r.type!==e.parentNode.nodeName.toLowerCase()&&Da(n.dom,e,r.type),1===t.length&&ya.unApplyAlign(n,e),r.align&&ya.applyAlign(n,e,r.align)}),n.focus()})}var ka=function(n){var t,e,r,o,i,u,a,c,l,s,f=n.dom,d=[];t=f.getParent(n.selection.getStart(),"table"),e=f.getParent(n.selection.getStart(),"td,th"),ba.each(t.rows,function(n){ba.each(n.cells,function(t){if(f.getAttrib(t,"data-mce-selected")||t===e)return d.push(n),!1})}),(r=d[0])&&(d.length>1?i={height:"",scope:"","class":"",align:"",type:r.parentNode.nodeName.toLowerCase()}:(c=r,l=(a=n).dom,(s={height:l.getStyle(c,"height")||l.getAttrib(c,"height"),scope:l.getAttrib(c,"scope"),"class":l.getAttrib(c,"class")}).type=c.parentNode.nodeName.toLowerCase(),ba.each("left center right".split(" "),function(n){a.formatter.matchNode(c,"align"+n)&&(s.align=n)}),!1!==a.settings.table_row_advtab&&ba.extend(s,Ca.extractAdvancedStyles(l,c)),i=s),n.settings.table_row_class_list&&(o={name:"class",type:"listbox",label:"Class",values:Ca.buildListItems(n.settings.table_row_class_list,function(t){t.value&&(t.textStyle=function(){return n.formatter.getCssText({block:"tr",classes:[t.value]})})})}),u={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},!1!==n.settings.table_row_advtab?n.windowManager.open({title:"Row properties",data:i,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Ca.createStyleForm(n)],onsubmit:m.curry(Aa,n,d)}):n.windowManager.open({title:"Row properties",data:i,body:u,onsubmit:m.curry(Aa,n,d)}))},Na=function(n,t,e){var r,o=n.dom;function i(n,t,e){e&&o.setAttrib(n,t,e)}function u(n,t,e){e&&o.setStyle(n,t,e)}Ca.updateStyleField(n,e),r=e.control.rootControl.toJSON(),n.undoManager.transact(function(){ba.each(t,function(e){var a,c;i(e,"scope",r.scope),1===t.length?i(e,"style",r.style):(a=e,c=r.style,a.style.cssText+=";"+c),i(e,"class",r["class"]),u(e,"width",sa.addSizeSuffix(r.width)),u(e,"height",sa.addSizeSuffix(r.height)),r.type&&e.nodeName.toLowerCase()!==r.type&&(e=o.rename(e,r.type)),1===t.length&&(ya.unApplyAlign(n,e),ya.unApplyVAlign(n,e)),r.align&&ya.applyAlign(n,e,r.align),r.valign&&ya.applyVAlign(n,e,r.valign)}),n.focus()})},Oa=function(n){var t,e,r,o=[];if(o=n.dom.select("td[data-mce-selected],th[data-mce-selected]"),t=n.dom.getParent(n.selection.getStart(),"td,th"),!o.length&&t&&o.push(t),t=t||o[0]){var i,u,a,c;o.length>1?e={width:"",height:"",scope:"","class":"",align:"",style:"",type:t.nodeName.toLowerCase()}:(u=t,a=(i=n).dom,(c={width:a.getStyle(u,"width")||a.getAttrib(u,"width"),height:a.getStyle(u,"height")||a.getAttrib(u,"height"),scope:a.getAttrib(u,"scope"),"class":a.getAttrib(u,"class")}).type=u.nodeName.toLowerCase(),ba.each("left center right".split(" "),function(n){i.formatter.matchNode(u,"align"+n)&&(c.align=n)}),ba.each("top middle bottom".split(" "),function(n){i.formatter.matchNode(u,"valign"+n)&&(c.valign=n)}),!1!==i.settings.table_cell_advtab&&ba.extend(c,Ca.extractAdvancedStyles(a,u)),e=c),n.settings.table_cell_class_list&&(r={name:"class",type:"listbox",label:"Class",values:Ca.buildListItems(n.settings.table_cell_class_list,function(t){t.value&&(t.textStyle=function(){return n.formatter.getCssText({block:"td",classes:[t.value]})})})});var l={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width",onchange:m.curry(Ca.updateStyleField,n)},{label:"Height",name:"height",onchange:m.curry(Ca.updateStyleField,n)},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},r]};!1!==n.settings.table_cell_advtab?n.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:e,body:[{title:"General",type:"form",items:l},Ca.createStyleForm(n)],onsubmit:m.curry(Na,n,o)}):n.windowManager.open({title:"Cell properties",data:e,body:l,onsubmit:m.curry(Na,n,o)})}},Ea=ba.each,Ba=w.none(),Ia={registerCommands:function(n,t,e,r){var o=sa.getIsRoot(n),i=function(){return en.fromDom(n.dom.getParent(n.selection.getStart(),"th,td"))},u=function(n){return Vt(n,o)},a=function(t){var o=i();u(o).each(function(i){var u=kr.forMenu(r,i,o);t(i,u).each(function(t){n.selection.setRng(t),n.focus(),e.clear(i)})})},c=function(t){var e=i();return u(e).bind(function(t){var o=en.fromDom(n.getDoc()),i=kr.forMenu(r,t,e),u=Oe(m.noop,o,w.none());return va(t,i,u)})},l=function(t){Ba.each(function(o){var a=B.map(o,function(n){return he(n)}),c=i();u(c).bind(function(o){var i=en.fromDom(n.getDoc()),u=Ee(i),l=kr.pasteRows(r,o,c,a,u);t(o,l).each(function(t){n.selection.setRng(t),n.focus(),e.clear(o)})})})};Ea({mceTableSplitCells:function(){a(t.unmergeCells)},mceTableMergeCells:function(){a(t.mergeCells)},mceTableInsertRowBefore:function(){a(t.insertRowsBefore)},mceTableInsertRowAfter:function(){a(t.insertRowsAfter)},mceTableInsertColBefore:function(){a(t.insertColumnsBefore)},mceTableInsertColAfter:function(){a(t.insertColumnsAfter)},mceTableDeleteCol:function(){a(t.deleteColumn)},mceTableDeleteRow:function(){a(t.deleteRow)},mceTableCutRow:function(n){Ba=c(),a(t.deleteRow)},mceTableCopyRow:function(n){Ba=c()},mceTablePasteRowBefore:function(n){l(t.pasteRowsBefore)},mceTablePasteRowAfter:function(n){l(t.pasteRowsAfter)},mceTableDelete:function(){var t=en.fromDom(n.dom.getParent(n.selection.getStart(),"th,td"));Vt(t,o).filter(m.not(o)).each(function(t){var e=en.fromText("");ue.after(t,e),le.remove(t);var r=n.dom.createRng();r.setStart(e.dom(),0),r.setEnd(e.dom(),0),n.selection.setRng(r)})}},function(t,e){n.addCommand(e,t)}),Ea({mceInsertTable:m.curry(Ta,n),mceTableProps:m.curry(Ta,n,!0),mceTableRowProps:m.curry(ka,n),mceTableCellProps:m.curry(Oa,n)},function(t,e){n.addCommand(e,function(n,e){t(e)})})},getClipboardRows:function(){return Ba.fold(function(){},function(n){return B.map(n,function(n){return n.dom()})})},setClipboardRows:function(n){var t=B.map(n,en.fromDom);Ba=w.from(t)}},Pa=function(n){var t=w.from(n.dom().documentElement).map(en.fromDom).getOr(n);return{parent:m.constant(t),view:m.constant(n),origin:m.constant(oo(0,0))}},Wa=function(n,t){return{parent:m.constant(t),view:m.constant(n),origin:m.constant(oo(0,0))}},_a=function(n){var t=X.immutable.apply(null,n),e=[];return{bind:function(n){if(n===undefined)throw"Event bind error: undefined handler";e.push(n)},unbind:function(n){e=B.filter(e,function(t){return t!==n})},trigger:function(){var n=t.apply(null,arguments);B.each(e,function(t){t(n)})}}},Ma=function(n){return{registry:L.map(n,function(n){return{bind:n.bind,unbind:n.unbind}}),trigger:L.map(n,function(n){return n.trigger})}},La={mode:Ao.exactly(["compare","extract","mutate","sink"]),sink:Ao.exactly(["element","start","stop","destroy"]),api:Ao.exactly(["forceDrop","drop","move","delayDrop"])},qa={resolve:gi("ephox-dragster").resolve},za=function(n,t){return function(e){if(n(e)){var r,o,i,u,a,c,l,s=en.fromDom(e.target),f=function(){e.stopPropagation()},d=function(){e.preventDefault()},g=m.compose(d,f),p=(r=s,o=e.clientX,i=e.clientY,u=f,a=d,c=g,l=e,{target:m.constant(r),x:m.constant(o),y:m.constant(i),stop:u,prevent:a,kill:c,raw:m.constant(l)});t(p)}}},Fa=function(n,t,e,r,o){var i=za(e,r);return n.dom().addEventListener(t,i,o),{unbind:m.curry(ja,n,t,i,o)}},ja=function(n,t,e,r){n.dom().removeEventListener(t,e,r)},Ha=function(n,t,e,r){return Fa(n,t,e,r,!1)},Va=m.constant(!0),Ua=function(n,t,e){return Ha(n,t,Va,e)},Ga=La.mode({compare:function(n,t){return oo(t.left()-n.left(),t.top()-n.top())},extract:function(n){return w.some(oo(n.x(),n.y()))},sink:function(n,t){var e,r,o,i=(e=t,r=Xo.merge({layerClass:qa.resolve("blocker")},e),o=en.fromTag("div"),Dt.set(o,"role","presentation"),re.setAll(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),Ni.add(o,qa.resolve("blocker")),Ni.add(o,r.layerClass),{element:function(){return o},destroy:function(){le.remove(o)}}),u=Ua(i.element(),"mousedown",n.forceDrop),a=Ua(i.element(),"mouseup",n.drop),c=Ua(i.element(),"mousemove",n.move),l=Ua(i.element(),"mouseout",n.delayDrop);return La.sink({element:i.element,start:function(n){ue.append(n,i.element())},stop:function(){le.remove(i.element())},destroy:function(){i.destroy(),a.unbind(),c.unbind(),l.unbind(),u.unbind()}})},mutate:function(n,t){n.mutate(t.left(),t.top())}}),Xa=function(){var n=w.none(),t=Ma({move:_a(["info"])});return{onEvent:function(e,r){r.extract(e).each(function(e){var o,i,u;(o=r,i=e,u=n.map(function(n){return o.compare(n,i)}),n=w.some(i),u).each(function(n){t.trigger.move(n)})})},reset:function(){n=w.none()},events:t.registry}},Ya=function(){var n={onEvent:function(n,t){},reset:m.noop},t=Xa(),e=n;return{on:function(){e.reset(),e=t},off:function(){e.reset(),e=n},isOn:function(){return e===t},onEvent:function(n,t){e.onEvent(n,t)},events:t.events}},$a=function(n,t){var e=null;return{cancel:function(){null!==e&&(clearTimeout(e),e=null)},throttle:function(){var r=arguments;null!==e&&clearTimeout(e),e=setTimeout(function(){n.apply(null,r),e=null,r=null},t)}}},Ka=function(n,t,e){var r=!1,o=Ma({start:_a([]),stop:_a([])}),i=Ya(),u=function(){l.stop(),i.isOn()&&(i.off(),o.trigger.stop())},a=$a(u,200);i.events.move.bind(function(e){t.mutate(n,e.info())});var c=function(n){return function(){var t=Array.prototype.slice.call(arguments,0);if(r)return n.apply(null,t)}},l=t.sink(La.api({forceDrop:u,drop:c(u),move:c(function(n,e){a.cancel(),i.onEvent(n,t)}),delayDrop:c(a.throttle)}),e);return{element:l.element,go:function(n){l.start(n),i.on(),o.trigger.start()},on:function(){r=!0},off:function(){r=!1},destroy:function(){l.destroy()},events:o.registry}},Ja=function(n,t){var e=t!==undefined?t:{},r=e.mode!==undefined?e.mode:Ga;return Ka(n,r,t)},Qa=function(){var n,t=Ma({drag:_a(["xDelta","yDelta","target"])}),e=w.none(),r={mutate:function(t,e){n.trigger.drag(t,e)},events:(n=Ma({drag:_a(["xDelta","yDelta"])})).registry};return r.events.drag.bind(function(n){e.each(function(e){t.trigger.drag(n.xDelta(),n.yDelta(),e)})}),{assign:function(n){e=w.some(n)},get:function(){return e},mutate:r.mutate,events:t.registry}},Za=function(n,t,e){return qt.ancestor(n,t,e).isSome()},nc=pi.resolve("resizer-bar-dragging"),tc=function(n,t){var e=wo.height,r=function(n,t,e){var r=Qa(),o=Ja(r,{}),i=w.none(),u=function(n,t){return w.from(Dt.get(n,t))};r.events.drag.bind(function(n){u(n.target(),"data-row").each(function(t){var e=Iu.getInt(n.target(),"top");re.set(n.target(),"top",e+n.yDelta()+"px")}),u(n.target(),"data-column").each(function(t){var e=Iu.getInt(n.target(),"left");re.set(n.target(),"left",e+n.xDelta()+"px")})});var a=function(n,t){return Iu.getInt(n,t)-parseInt(Dt.get(n,"data-initial-"+t),10)};o.events.stop.bind(function(){r.get().each(function(r){i.each(function(o){u(r,"data-row").each(function(n){var t=a(r,"top");Dt.remove(r,"data-initial-top"),d.trigger.adjustHeight(o,t,parseInt(n,10))}),u(r,"data-column").each(function(n){var t=a(r,"left");Dt.remove(r,"data-initial-left"),d.trigger.adjustWidth(o,t,parseInt(n,10))}),Mi(n,o,e,t)})})});var c=function(t,e){d.trigger.startAdjust(),r.assign(t),Dt.set(t,"data-initial-"+e,parseInt(re.get(t,e),10)),Ni.add(t,nc),re.set(t,"opacity","0.2"),o.go(n.parent())},l=Ua(n.parent(),"mousedown",function(n){Fi(n.target())&&c(n.target(),"top"),ji(n.target())&&c(n.target(),"left")}),s=function(t){return ot.eq(t,n.view())},f=Ua(n.view(),"mouseover",function(r){"table"===xt.name(r.target())||Za(r.target(),"table",s)?(i="table"===xt.name(r.target())?w.some(r.target()):qt.ancestor(r.target(),"table",s)).each(function(r){Mi(n,r,e,t)}):Nt.inBody(r.target())&&zi(n)}),d=Ma({adjustHeight:_a(["table","delta","row"]),adjustWidth:_a(["table","delta","column"]),startAdjust:_a([])});return{destroy:function(){l.unbind(),f.unbind(),o.destroy(),zi(n)},refresh:function(r){Mi(n,r,e,t)},on:o.on,off:o.off,hideBars:m.curry(Li,n),showBars:m.curry(qi,n),events:d.registry}}(n,t,e),o=Ma({beforeResize:_a(["table"]),afterResize:_a(["table"]),startDrag:_a([])});return r.events.adjustHeight.bind(function(n){o.trigger.beforeResize(n.table());var t=e.delta(n.delta(),n.table());Ju(n.table(),t,n.row(),e),o.trigger.afterResize(n.table())}),r.events.startAdjust.bind(function(n){o.trigger.startDrag()}),r.events.adjustWidth.bind(function(n){o.trigger.beforeResize(n.table());var e=t.delta(n.delta(),n.table());Ku(n.table(),e,n.column(),t),o.trigger.afterResize(n.table())}),{on:r.on,off:r.off,hideBars:r.hideBars,showBars:r.showBars,destroy:r.destroy,events:o.registry}},ec=function(n,t){return n.inline?Wa(sa.getBody(n),(e=en.fromTag("div"),re.setAll(e,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),ue.append(Nt.body(),e),e)):Pa(en.fromDom(n.getDoc()));var e},rc=function(n,t){n.inline&&le.remove(t.parent())},oc=function(n){var t,e,r=w.none(),o=w.none(),i=w.none(),u=/(\d+(\.\d+)?)%/,a=function(n){return"TABLE"===n.nodeName};return n.on("init",function(){var t=xo(pa),e=ec(n);if(i=w.some(e),n.settings.object_resizing&&!1!==n.settings.table_resize_bars&&(!0===n.settings.object_resizing||"table"===n.settings.object_resizing)){var u=tc(e,t);u.on(),u.events.startDrag.bind(function(t){r=w.some(n.selection.getRng())}),u.events.afterResize.bind(function(t){var e=t.table(),o=Bt.descendants(e,"td[data-mce-style],th[data-mce-style]");B.each(o,function(n){Dt.remove(n,"data-mce-style")}),r.each(function(t){n.selection.setRng(t),n.focus()}),n.undoManager.add()}),o=w.some(u)}}),n.on("ObjectResizeStart",function(r){var o;a(r.target)&&(t=r.width,o=r.target,e=n.dom.getStyle(o,"width")||n.dom.getAttrib(o,"width"))}),n.on("ObjectResized",function(r){if(a(r.target)){var o=r.target;if(u.test(e)){var i=parseFloat(u.exec(e)[1]),c=r.width*i/t;n.dom.setStyle(o,"width",c+"%")}else{var l=[];ba.each(o.rows,function(t){ba.each(t.cells,function(t){var e=n.dom.getStyle(t,"width",!0);l.push({cell:t,width:e})})}),ba.each(l,function(t){n.dom.setStyle(t.cell,"width",t.width),n.dom.setAttrib(t.cell,"width",null)})}}}),{lazyResize:function(){return o},lazyWire:function(){return i.getOr(Pa(en.fromDom(n.getBody())))},destroy:function(){o.each(function(n){n.destroy()}),i.each(function(t){rc(n,t)})}}},ic=function(n){return{fold:n}},uc=function(n){return ic(function(t,e,r,o){return t(n)})},ac=function(n){return ic(function(t,e,r,o){return e(n)})},cc=function(n,t){return ic(function(e,r,o,i){return o(n,t)})},lc=function(n){return ic(function(t,e,r,o){return o(n)})},sc=function(n,t){return Vt(n,t).bind(function(t){var e=Ht(t);return B.findIndex(e,function(t){return ot.eq(n,t)}).map(function(n){return{index:m.constant(n),all:m.constant(e)}})})},fc=function(n,t){return sc(n,t).fold(function(){return uc(n)},function(t){return t.index()+1<t.all().length?cc(n,t.all()[t.index()+1]):lc(n)})},dc=function(n,t){return sc(n,t).fold(function(){return uc()},function(t){return t.index()-1>=0?cc(n,t.all()[t.index()-1]):ac(n)})},mc=wr([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),gc={before:mc.before,on:mc.on,after:mc.after,cata:function(n,t,e,r){return n.fold(t,e,r)},getStart:function(n){return n.fold(m.identity,m.identity,m.identity)}},pc=wr([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),hc=X.immutable("start","soffset","finish","foffset"),vc={domRange:pc.domRange,relative:pc.relative,exact:pc.exact,exactFromRange:function(n){return pc.exact(n.start(),n.soffset(),n.finish(),n.foffset())},range:hc,getWin:function(n){var t=n.match({domRange:function(n){return en.fromDom(n.startContainer)},relative:function(n,t){return gc.getStart(n)},exact:function(n,t,e,r){return n}});return dt.defaultView(t)}},bc=function(n,t,e,r){var o=dt.owner(n).dom().createRange();return o.setStart(n.dom(),t),o.setEnd(e.dom(),r),o},wc=function(n,t,e,r){var o=bc(n,t,e,r),i=ot.eq(n,e)&&t===r;return o.collapsed&&!i},yc=function(n,t){n.selectNodeContents(t.dom())},xc=function(n){n.deleteContents()},Cc=function(n){return{left:m.constant(n.left),top:m.constant(n.top),right:m.constant(n.right),bottom:m.constant(n.bottom),width:m.constant(n.width),height:m.constant(n.height)}},Sc={create:function(n){return n.document.createRange()},replaceWith:function(n,t){xc(n),n.insertNode(t.dom())},selectNodeContents:function(n,t){var e=n.document.createRange();return yc(e,t),e},selectNodeContentsUsing:yc,relativeToNative:function(n,t,e){var r,o,i=n.document.createRange();return r=i,t.fold(function(n){r.setStartBefore(n.dom())},function(n,t){r.setStart(n.dom(),t)},function(n){r.setStartAfter(n.dom())}),o=i,e.fold(function(n){o.setEndBefore(n.dom())},function(n,t){o.setEnd(n.dom(),t)},function(n){o.setEndAfter(n.dom())}),i},exactToNative:function(n,t,e,r,o){var i=n.document.createRange();return i.setStart(t.dom(),e),i.setEnd(r.dom(),o),i},deleteContents:xc,cloneFragment:function(n){var t=n.cloneContents();return en.fromDom(t)},getFirstRect:function(n){var t=n.getClientRects(),e=t.length>0?t[0]:n.getBoundingClientRect();return e.width>0||e.height>0?w.some(e).map(Cc):w.none()},getBounds:function(n){var t=n.getBoundingClientRect();return t.width>0||t.height>0?w.some(t).map(Cc):w.none()},isWithin:function(n,t){return t.compareBoundaryPoints(n.END_TO_START,n)<1&&t.compareBoundaryPoints(n.START_TO_END,n)>-1},toString:function(n){return n.toString()}},Rc=wr([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Tc=function(n,t,e){return t(en.fromDom(e.startContainer),e.startOffset,en.fromDom(e.endContainer),e.endOffset)},Dc=function(n,t){var e,r,o,i=(e=n,t.match({domRange:function(n){return{ltr:m.constant(n),rtl:w.none}},relative:function(n,t){return{ltr:yn(function(){return Sc.relativeToNative(e,n,t)}),rtl:yn(function(){return w.some(Sc.relativeToNative(e,t,n))})}},exact:function(n,t,r,o){return{ltr:yn(function(){return Sc.exactToNative(e,n,t,r,o)}),rtl:yn(function(){return w.some(Sc.exactToNative(e,r,o,n,t))})}}}));return(o=(r=i).ltr()).collapsed?r.rtl().filter(function(n){return!1===n.collapsed}).map(function(n){return Rc.rtl(en.fromDom(n.endContainer),n.endOffset,en.fromDom(n.startContainer),n.startOffset)}).getOrThunk(function(){return Tc(0,Rc.ltr,o)}):Tc(0,Rc.ltr,o)},Ac=(Rc.ltr,Rc.rtl,Dc),kc=function(n,t){return Dc(n,t).match({ltr:function(t,e,r,o){var i=n.document.createRange();return i.setStart(t.dom(),e),i.setEnd(r.dom(),o),i},rtl:function(t,e,r,o){var i=n.document.createRange();return i.setStart(r.dom(),o),i.setEnd(t.dom(),e),i}})},Nc=function(n,t,e){return t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom},Oc=function(n,t,e,r,o){if(0===o)return 0;if(t===r)return o-1;for(var i=r,u=1;u<o;u++){var a=n(u),c=Math.abs(t-a.left);if(e>a.bottom);else{if(e<a.top||c>i)return u-1;i=c}}return 0},Ec={locate:function(n,t,e,r){var o=n.dom().createRange();o.selectNode(t.dom());var i=o.getClientRects();return $o(i,function(n){return Nc(n,e,r)?w.some(n):w.none()}).map(function(o){return i=n,a=e,c=r,l=o,s=function(n){var t=i.dom().createRange();return t.setStart(u.dom(),n),t.collapse(!0),t},f=we.get(u=t).length,d=Oc(function(n){return s(n).getBoundingClientRect()},a,c,l.right,f),s(d);var i,u,a,c,l,s,f,d})}},Bc=function(n,t,e,r){var o=n.dom().createRange(),i=dt.children(t);return $o(i,function(t){return o.selectNode(t.dom()),Nc(o.getBoundingClientRect(),e,r)?Ic(n,t,e,r):w.none()})},Ic=function(n,t,e,r){return(xt.isText(t)?Ec.locate:Bc)(n,t,e,r)},Pc=function(n,t,e,r){var o=n.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,e)),a=Math.max(i.top,Math.min(i.bottom,r));return Ic(n,t,u,a)},Wc=function(n,t){return t-n.left<n.right-t},_c=function(n,t,e){var r=n.dom().createRange();return r.selectNode(t.dom()),r.collapse(e),r},Mc=function(n,t,e){var r=n.dom().createRange();r.selectNode(t.dom());var o=r.getBoundingClientRect(),i=Wc(o,e);return(!0===i?Te.first:Te.last)(t).map(function(t){return _c(n,t,i)})},Lc=function(n,t,e){var r=t.dom().getBoundingClientRect(),o=Wc(r,e);return w.some(_c(n,t,o))},qc=function(n,t,e){return(0===dt.children(t).length?Lc:Mc)(n,t,e)},zc=document.caretPositionFromPoint?function(n,t,e){return w.from(n.dom().caretPositionFromPoint(t,e)).bind(function(t){if(null===t.offsetNode)return w.none();var e=n.dom().createRange();return e.setStart(t.offsetNode,t.offset),e.collapse(),w.some(e)})}:document.caretRangeFromPoint?function(n,t,e){return w.from(n.dom().caretRangeFromPoint(t,e))}:function(n,t,e){return en.fromPoint(n,t,e).bind(function(r){var o=function(){return qc(n,r,t)};return 0===dt.children(r).length?o():function(n,t,e,r){var o=n.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,e)),a=Math.max(i.top,Math.min(i.bottom,r));return Pc(n,t,u,a)}(n,r,t,e).orThunk(o)})},Fc=function(n,t,e){var r=en.fromDom(n.document);return zc(r,t,e).map(function(n){return vc.range(en.fromDom(n.startContainer),n.startOffset,en.fromDom(n.endContainer),n.endOffset)})},jc=function(n,t){var e=xt.name(n);return"input"===e?gc.after(n):B.contains(["br","img"],e)?0===t?gc.before(n):gc.after(n):gc.on(n,t)},Hc=function(n,t){var e=n.fold(gc.before,jc,gc.after),r=t.fold(gc.before,jc,gc.after);return vc.relative(e,r)},Vc=function(n,t,e,r){var o=jc(n,t),i=jc(e,r);return vc.relative(o,i)},Uc=function(n){return n.match({domRange:function(n){var t=en.fromDom(n.startContainer),e=en.fromDom(n.endContainer);return Vc(t,n.startOffset,e,n.endOffset)},relative:Hc,exact:Vc})},Gc=Hc,Xc=Vc,Yc=function(n,t){w.from(n.getSelection()).each(function(n){n.removeAllRanges(),n.addRange(t)})},$c=function(n,t,e,r,o){var i=Sc.exactToNative(n,t,e,r,o);Yc(n,i)},Kc=function(n,t){return Ac(n,t).match({ltr:function(t,e,r,o){$c(n,t,e,r,o)},rtl:function(t,e,r,o){var i=n.getSelection();i.extend?(i.collapse(t.dom(),e),i.extend(r.dom(),o)):$c(n,r,o,t,e)}})},Jc=function(n){var t=en.fromDom(n.anchorNode),e=en.fromDom(n.focusNode);return wc(t,n.anchorOffset,e,n.focusOffset)?w.some(vc.range(en.fromDom(n.anchorNode),n.anchorOffset,en.fromDom(n.focusNode),n.focusOffset)):function(n){if(n.rangeCount>0){var t=n.getRangeAt(0),e=n.getRangeAt(n.rangeCount-1);return w.some(vc.range(en.fromDom(t.startContainer),t.startOffset,en.fromDom(e.endContainer),e.endOffset))}return w.none()}(n)},Qc=function(n){var t=n.getSelection();return t.rangeCount>0?Jc(t):w.none()},Zc=function(n,t,e,r,o){var i=Xc(t,e,r,o);Kc(n,i)},nl=function(n){return Qc(n).map(function(n){return vc.exact(n.start(),n.soffset(),n.finish(),n.foffset())})},tl=function(n,t,e){var r=Gc(t,e);Kc(n,r)},el=function(n){var t=vc.getWin(n).dom(),e=function(n,e,r,o){return Sc.exactToNative(t,n,e,r,o)},r=Uc(n);return Ac(t,r).match({ltr:e,rtl:e})},rl=function(n,t){var e=Sc.selectNodeContents(n,t);Yc(n,e)},ol=function(n){n.getSelection().removeAllRanges()},il=function(n,t){var e=kc(n,t);return Sc.getFirstRect(e)},ul=function(n,t,e){return Fc(n,t,e)},al=tinymce.util.Tools.resolve("tinymce.util.VK"),cl=function(n,t,e,r){return fl(n,t,fc(e),r)},ll=function(n,t,e,r){return fl(n,t,dc(e),r)},sl=function(n,t){var e=vc.exact(t,0,t,0);return el(e)},fl=function(n,t,e,r,o){return e.fold(w.none,w.none,function(n,t){return Te.first(t).map(function(n){return sl(0,n)})},function(e){return Vt(e,t).bind(function(t){var o,i=kr.noMenu(e);return n.undoManager.transact(function(){r.insertRowsAfter(t,i)}),o=Bt.descendants(t,"tr"),B.last(o).bind(function(n){return qt.descendant(n,"td,th").map(function(n){return sl(0,n)})})})})},dl=["table","li","dl"],ml={handle:function(n,t,e,r){if(n.keyCode===al.TAB){var o=sa.getBody(t),i=function(n){var t=xt.name(n);return ot.eq(n,o)||B.contains(dl,t)},u=t.selection.getRng();if(u.collapsed){var a=en.fromDom(u.startContainer);jt(a,i).each(function(o){n.preventDefault(),(n.shiftKey?ll:cl)(t,i,o,e,r).each(function(n){t.selection.setRng(n)})})}}}},gl={response:X.immutable("selection","kill")},pl=function(n){return function(t){return t===n}},hl=pl(38),vl=pl(40),bl={ltr:{isBackward:pl(37),isForward:pl(39)},rtl:{isBackward:pl(39),isForward:pl(37)},isUp:hl,isDown:vl,isNavigation:function(n){return n>=37&&n<=40}},wl=function(n,t){var e=kc(n,t);return{start:m.constant(en.fromDom(e.startContainer)),soffset:m.constant(e.startOffset),finish:m.constant(en.fromDom(e.endContainer)),foffset:m.constant(e.endOffset)}},yl=function(n,t,e,r){return{start:m.constant(gc.on(n,t)),finish:m.constant(gc.on(e,r))}},xl=(tt.detect().browser.isSafari(),function(n){var t=n!==undefined?n.dom():document,e=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop;return oo(e,r)}),Cl=xl,Sl=function(n,t,e){(e!==undefined?e.dom():document).defaultView.scrollBy(n,t)},Rl=function(n){return{elementFromPoint:function(t,e){return w.from(n.document.elementFromPoint(t,e)).map(en.fromDom)},getRect:function(n){return n.dom().getBoundingClientRect()},getRangedRect:function(t,e,r,o){var i=vc.exact(t,e,r,o);return il(n,i).map(function(n){return L.map(n,m.apply)})},getSelection:function(){return nl(n).map(function(t){return wl(n,t)})},fromSitus:function(t){var e=vc.relative(t.start(),t.finish());return wl(n,e)},situsFromPoint:function(t,e){return ul(n,t,e).map(function(n){return{start:m.constant(gc.on(n.start(),n.soffset())),finish:m.constant(gc.on(n.finish(),n.foffset()))}})},clearSelection:function(){ol(n)},setSelection:function(t){Zc(n,t.start(),t.soffset(),t.finish(),t.foffset())},setRelativeSelection:function(t,e){tl(n,t,e)},selectContents:function(t){rl(n,t)},getInnerHeight:function(){return n.innerHeight},getScrollY:function(){return Cl(en.fromDom(n.document)).top()},scrollBy:function(t,e){Sl(t,e,en.fromDom(n.document))}}},Tl=function(n,t,e,r,o){if(!ot.eq(e,r))return lr(e,r,t).bind(function(t){var r=t.boxes().getOr([]);return r.length>0?(o(n,r,t.start(),t.finish()),w.some(gl.response(w.some(yl(e,0,e,Ce(e))),!0))):w.none()})},Dl={sync:function(n,t,e,r,o,i,u){return ot.eq(e,o)&&r===i?w.none():qt.closest(e,"td,th",t).bind(function(e){return qt.closest(o,"td,th",t).bind(function(r){return Tl(n,t,e,r,u)})})},detect:Tl,update:function(n,t,e,r,o){return fr(r,n,t,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(n){return o.clear(e),o.selectRange(e,n.boxes(),n.start(),n.finish()),n.boxes()})}},Al=X.immutableBag(["left","top","right","bottom"],[]),kl={nu:Al,moveUp:function(n,t){return Al({left:n.left(),top:n.top()-t,right:n.right(),bottom:n.bottom()-t})},moveDown:function(n,t){return Al({left:n.left(),top:n.top()+t,right:n.right(),bottom:n.bottom()+t})},moveBottomTo:function(n,t){var e=n.bottom()-n.top();return Al({left:n.left(),top:t-e,right:n.right(),bottom:t})},moveTopTo:function(n,t){var e=n.bottom()-n.top();return Al({left:n.left(),top:t,right:n.right(),bottom:t+e})},getTop:function(n){return n.top()},getBottom:function(n){return n.bottom()},translate:function(n,t,e){return Al({left:n.left()+t,top:n.top()+e,right:n.right()+t,bottom:n.bottom()+e})},toString:function(n){return"("+n.left()+", "+n.top()+") -> ("+n.right()+", "+n.bottom()+")"}},Nl=function(n){return kl.nu({left:n.left,top:n.top,right:n.right,bottom:n.bottom})},Ol=function(n,t){return w.some(n.getRect(t))},El=function(n,t,e){return xt.isElement(t)?Ol(n,t).map(Nl):xt.isText(t)?(r=n,o=t,i=e,i>=0&&i<Ce(o)?r.getRangedRect(o,i,o,i+1):i>0?r.getRangedRect(o,i-1,o,i):w.none()).map(Nl):w.none();var r,o,i},Bl=function(n,t){return xt.isElement(t)?Ol(n,t).map(Nl):xt.isText(t)?n.getRangedRect(t,0,t,Ce(t)).map(Nl):w.none()},Il=X.immutable("item","mode"),Pl=function(n,t,e,r){var o=r!==undefined?r:Wl;return n.property().parent(t).map(function(n){return Il(n,o)})},Wl=function(n,t,e,r){var o=r!==undefined?r:_l;return e.sibling(n,t).map(function(n){return Il(n,o)})},_l=function(n,t,e,r){var o=r!==undefined?r:_l,i=n.property().children(t);return e.first(i).map(function(n){return Il(n,o)})},Ml=[{current:Pl,next:Wl,fallback:w.none()},{current:Wl,next:_l,fallback:w.some(Pl)},{current:_l,next:_l,fallback:w.some(Wl)}],Ll=function(n,t,e,r,o){return o=o!==undefined?o:Ml,B.find(o,function(n){return n.current===e}).bind(function(e){return e.current(n,t,r,e.next).orThunk(function(){return e.fallback.bind(function(e){return Ll(n,t,e,r)})})})},ql={backtrack:Pl,sidestep:Wl,advance:_l,go:Ll},zl={left:function(){return{sibling:function(n,t){return n.query().prevSibling(t)},first:function(n){return n.length>0?w.some(n[n.length-1]):w.none()}}},right:function(){return{sibling:function(n,t){return n.query().nextSibling(t)},first:function(n){return n.length>0?w.some(n[0]):w.none()}}}},Fl=function(n,t,e,r,o,i){return ql.go(n,t,r,o).bind(function(t){return i(t.item())?w.none():e(t.item())?w.some(t.item()):Fl(n,t.item(),e,t.mode(),o,i)})},jl=function(n,t,e,r){return Fl(n,t,e,ql.sidestep,zl.left(),r)},Hl=function(n,t,e,r){return Fl(n,t,e,ql.sidestep,zl.right(),r)},Vl=function(n,t){return 0===n.property().children(t).length},Ul=function(n,t,e,r){return jl(n,t,e,r)},Gl=function(n,t,e,r){return Hl(n,t,e,r)},Xl={before:function(n,t,e){return Ul(n,t,m.curry(Vl,n),e)},after:function(n,t,e){return Gl(n,t,m.curry(Vl,n),e)},seekLeft:Ul,seekRight:Gl,walkers:function(){return{left:zl.left,right:zl.right}},walk:function(n,t,e,r,o){return ql.go(n,t,e,r,o)},backtrack:ql.backtrack,sidestep:ql.sidestep,advance:ql.advance},Yl=Pe(),$l={gather:function(n,t,e){return Xl.gather(Yl,n,t,e)},before:function(n,t){return Xl.before(Yl,n,t)},after:function(n,t){return Xl.after(Yl,n,t)},seekLeft:function(n,t,e){return Xl.seekLeft(Yl,n,t,e)},seekRight:function(n,t,e){return Xl.seekRight(Yl,n,t,e)},walkers:function(){return Xl.walkers()},walk:function(n,t,e,r){return Xl.walk(Yl,n,t,e,r)}},Kl=wr([{none:[]},{retry:["caret"]}]),Jl=function(n,t,e){return Mt.closest(t,zo).fold(m.constant(!1),function(t){return Bl(n,t).exists(function(n){return r=n,(t=e).left()<r.left()||Math.abs(r.right()-t.left())<1||t.left()>r.right();var t,r})})},Ql={point:kl.getTop,adjuster:function(n,t,e,r,o){var i=kl.moveUp(o,5);return Math.abs(e.top()-r.top())<1?Kl.retry(i):e.bottom()<o.top()?Kl.retry(i):e.bottom()===o.top()?Kl.retry(kl.moveUp(o,1)):Jl(n,t,o)?Kl.retry(kl.translate(i,5,0)):Kl.none()},move:kl.moveUp,gather:$l.before},Zl={point:kl.getBottom,adjuster:function(n,t,e,r,o){var i=kl.moveDown(o,5);return Math.abs(e.bottom()-r.bottom())<1?Kl.retry(i):e.top()>o.bottom()?Kl.retry(i):e.top()===o.bottom()?Kl.retry(kl.moveDown(o,1)):Jl(n,t,o)?Kl.retry(kl.translate(i,5,0)):Kl.none()},move:kl.moveDown,gather:$l.after},ns=function(n,t,e,r,o){return 0===o?w.some(r):(c=n,l=r.left(),s=t.point(r),c.elementFromPoint(l,s).filter(function(n){return"table"===xt.name(n)}).isSome()?(u=r,a=o-1,ns(n,i=t,e,i.move(u,5),a)):n.situsFromPoint(r.left(),t.point(r)).bind(function(i){return i.start().fold(w.none,function(i,u){return Bl(n,i,u).bind(function(u){return t.adjuster(n,i,u,e,r).fold(w.none,function(r){return ns(n,t,e,r,o-1)})}).orThunk(function(){return w.some(r)})},w.none)}));var i,u,a,c,l,s},ts=function(n,t,e){var r,o,i,u=n.move(e,5),a=ns(t,n,e,u,100).getOr(u);return(r=n,o=a,i=t,r.point(o)>i.getInnerHeight()?w.some(r.point(o)-i.getInnerHeight()):r.point(o)<0?w.some(-r.point(o)):w.none()).fold(function(){return t.situsFromPoint(a.left(),n.point(a))},function(e){return t.scrollBy(0,e),t.situsFromPoint(a.left(),n.point(a)-e)})},es={tryUp:m.curry(ts,Ql),tryDown:m.curry(ts,Zl),ieTryUp:function(n,t){return n.situsFromPoint(t.left(),t.top()-5)},ieTryDown:function(n,t){return n.situsFromPoint(t.left(),t.bottom()+5)},getJumpSize:m.constant(5)},rs=wr([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}]),os=function(n){return qt.closest(n,"tr")},is={verify:function(n,t,e,r,o,i,u){return qt.closest(r,"td,th",u).bind(function(e){return qt.closest(t,"td,th",u).map(function(t){return ot.eq(e,t)?ot.eq(r,e)&&Ce(e)===o?i(t):rs.none("in same cell"):Ve(os,[e,t]).fold(function(){return o=t,u=e,a=(r=n).getRect(o),(c=r.getRect(u)).right>a.left&&c.left<a.right?rs.success():i(t);var r,o,u,a,c},function(n){return i(t)})})}).getOr(rs.none("default"))},cata:function(n,t,e,r,o){return n.fold(t,e,r,o)},adt:rs},us={point:X.immutable("element","offset"),delta:X.immutable("element","deltaOffset"),range:X.immutable("element","start","finish"),points:X.immutable("begin","end"),text:X.immutable("element","text")},as=(X.immutable("ancestor","descendants","element","index"),X.immutable("parent","children","element","index")),cs=function(n,t){return B.findIndex(n,m.curry(ot.eq,t))},ls=function(n){return dt.parent(n).bind(function(t){var e=dt.children(t);return cs(e,n).map(function(r){return as(t,e,n,r)})})},ss=function(n){return"br"===xt.name(n)},fs=function(n,t,e){return t(n,e).bind(function(n){return xt.isText(n)&&0===we.get(n).trim().length?fs(n,t,e):w.some(n)})},ds=function(n,t,e,r){return(o=t,i=e,dt.child(o,i).filter(ss).orThunk(function(){return dt.child(o,i-1).filter(ss)})).bind(function(t){return r.traverse(t).fold(function(){return fs(t,r.gather,n).map(r.relative)},function(n){return ls(n).map(function(n){return gc.on(n.parent(),n.index())})})});var o,i},ms=function(n,t,e,r){var o,i,u;return(ss(t)?(o=n,i=t,(u=r).traverse(i).orThunk(function(){return fs(i,u.gather,o)}).map(u.relative)):ds(n,t,e,r)).map(function(n){return{start:m.constant(n),finish:m.constant(n)}})},gs=function(n){return is.cata(n,function(n){return w.none("BR ADT: none")},function(){return w.none()},function(n){return w.some(us.point(n,0))},function(n){return w.some(us.point(n,Ce(n)))})},ps=tt.detect(),hs=function(n,t,e,r,o,i){return 0===i?w.none():ws(n,t,e,r,o).bind(function(u){var a=n.fromSitus(u),c=is.verify(n,e,r,a.finish(),a.foffset(),o.failure,t);return is.cata(c,function(){return w.none()},function(){return w.some(u)},function(u){return ot.eq(e,u)&&0===r?vs(n,e,r,kl.moveUp,o):hs(n,t,u,0,o,i-1)},function(u){return ot.eq(e,u)&&r===Ce(u)?vs(n,e,r,kl.moveDown,o):hs(n,t,u,Ce(u),o,i-1)})})},vs=function(n,t,e,r,o){return El(n,t,e).bind(function(t){return bs(n,o,r(t,es.getJumpSize()))})},bs=function(n,t,e){return ps.browser.isChrome()||ps.browser.isSafari()||ps.browser.isFirefox()||ps.browser.isEdge()?t.otherRetry(n,e):ps.browser.isIE()?t.ieRetry(n,e):w.none()},ws=function(n,t,e,r,o){return El(n,e,r).bind(function(t){return bs(n,o,t)})},ys=function(n,t,e){return(r=n,o=t,i=e,r.getSelection().bind(function(n){return ms(o,n.finish(),n.foffset(),i).fold(function(){return w.some(us.point(n.finish(),n.foffset()))},function(t){var e=r.fromSitus(t),u=is.verify(r,n.finish(),n.foffset(),e.finish(),e.foffset(),i.failure,o);return gs(u)})})).bind(function(r){return hs(n,t,r.element(),r.offset(),e,20).map(n.fromSitus)});var r,o,i},xs=function(n,t,e){return Mt.ancestor(n,t,e).isSome()},Cs=tt.detect(),Ss=function(n,t,e,r,o){return qt.closest(r,"td,th",t).bind(function(r){return qt.closest(r,"table",t).bind(function(i){return u=i,xs(o,function(n){return dt.parent(n).exists(function(n){return ot.eq(n,u)})})?ys(n,t,e).bind(function(n){return qt.closest(n.finish(),"td,th",t).map(function(t){return{start:m.constant(r),finish:m.constant(t),range:m.constant(n)}})}):w.none();var u})})},Rs=function(n,t,e,r,o,i){return Cs.browser.isIE()?w.none():i(r,t).orThunk(function(){return Ss(n,t,e,r,o).map(function(n){var t=n.range();return gl.response(w.some(yl(t.start(),t.soffset(),t.finish(),t.foffset())),!0)})})},Ts=function(n,t,e,r,o,i,u){return Ss(n,e,r,o,i).bind(function(n){return Dl.detect(t,e,n.start(),n.finish(),u)})},Ds=function(n,t){return qt.closest(n,"tr",t).bind(function(n){return qt.closest(n,"table",t).bind(function(e){var r=Bt.descendants(e,"tr");return ot.eq(n,r[0])?$l.seekLeft(e,function(n){return Te.last(n).isSome()},t).map(function(n){var t=Ce(n);return gl.response(w.some(yl(n,t,n,t)),!0)}):w.none()})})},As=function(n,t){return qt.closest(n,"tr",t).bind(function(n){return qt.closest(n,"table",t).bind(function(e){var r=Bt.descendants(e,"tr");return ot.eq(n,r[r.length-1])?$l.seekRight(e,function(n){return Te.first(n).isSome()},t).map(function(n){return gl.response(w.some(yl(n,0,n,0)),!0)}):w.none()})})},ks=function(n,t){return qt.closest(n,"td,th",t)},Ns={down:{traverse:dt.nextSibling,gather:$l.after,relative:gc.before,otherRetry:es.tryDown,ieRetry:es.ieTryDown,failure:is.adt.failedDown},up:{traverse:dt.prevSibling,gather:$l.before,relative:gc.before,otherRetry:es.tryUp,ieRetry:es.ieTryUp,failure:is.adt.failedUp}},Os=X.immutable("rows","cols"),Es=function(n,t,e,r){var o,i,u,a,c,l,s=Rl(n),f=(o=s,i=t,u=e,a=r,c=w.none(),l=function(){c=w.none()},{mousedown:function(n){a.clear(i),c=ks(n.target(),u)},mouseover:function(n){c.each(function(t){a.clear(i),ks(n.target(),u).each(function(n){lr(t,n,u).each(function(e){var r=e.boxes().getOr([]);(r.length>1||1===r.length&&!ot.eq(t,n))&&(a.selectRange(i,r,e.start(),e.finish()),o.selectContents(n))})})})},mouseup:function(){c.each(l)}});return{mousedown:f.mousedown,mouseover:f.mouseover,mouseup:f.mouseup}},Bs=function(n,t,e,r){var o=Rl(n),i=function(){return r.clear(t),w.none()};return{keydown:function(n,u,a,c,l,s){var f=n.raw().which,d=!0===n.raw().shiftKey;return sr(t,r.selectedSelector()).fold(function(){return bl.isDown(f)&&d?m.curry(Ts,o,t,e,Ns.down,c,u,r.selectRange):bl.isUp(f)&&d?m.curry(Ts,o,t,e,Ns.up,c,u,r.selectRange):bl.isDown(f)?m.curry(Rs,o,e,Ns.down,c,u,As):bl.isUp(f)?m.curry(Rs,o,e,Ns.up,c,u,Ds):w.none},function(n){var e=function(e){return function(){return $o(e,function(e){return Dl.update(e.rows(),e.cols(),t,n,r)}).fold(function(){return dr(t,r.firstSelectedSelector(),r.lastSelectedSelector()).map(function(n){var e=bl.isDown(f)||s.isForward(f)?gc.after:gc.before;return o.setRelativeSelection(gc.on(n.first(),0),e(n.table())),r.clear(t),gl.response(w.none(),!0)})},function(n){return w.some(gl.response(w.none(),!0))})}};return bl.isDown(f)&&d?e([Os(1,0)]):bl.isUp(f)&&d?e([Os(-1,0)]):s.isBackward(f)&&d?e([Os(0,-1),Os(-1,0)]):s.isForward(f)&&d?e([Os(0,1),Os(1,0)]):bl.isNavigation(f)&&!1===d?i:w.none})()},keyup:function(n,o,i,u,a){return sr(t,r.selectedSelector()).fold(function(){var c=n.raw().which;return 0==(!0===n.raw().shiftKey)?w.none():bl.isNavigation(c)?Dl.sync(t,e,o,i,u,a,r.selectRange):w.none()},w.none)}}},Is=function(n){var t=function(t){Dt.remove(t,n.selected()),Dt.remove(t,n.firstSelected()),Dt.remove(t,n.lastSelected())},e=function(t){Dt.set(t,n.selected(),"1")},r=function(e){var r=Bt.descendants(e,n.selectedSelector());B.each(r,t)};return{clear:r,selectRange:function(t,o,i,u){r(t),B.each(o,e),Dt.set(i,n.firstSelected(),"1"),Dt.set(u,n.lastSelected(),"1")},selectedSelector:n.selectedSelector,firstSelectedSelector:n.firstSelectedSelector,lastSelectedSelector:n.lastSelectedSelector}},Ps=function(n,t){var e=X.immutableBag(["mousedown","mouseover","mouseup","keyup","keydown"],[]),r=w.none(),o=Is(br);return n.on("init",function(i){var u=n.getWin(),a=sa.getBody(n),c=sa.getIsRoot(n),l=Es(u,a,c,o),s=Bs(u,a,c,o),f=function(t,e){e.kill()&&t.kill(),e.selection().each(function(t){var e=vc.relative(t.start(),t.finish()),r=kc(u,e);n.selection.setRng(r)})},d=function(t){var e=h(t);if(e.raw().shiftKey&&bl.isNavigation(e.raw().which)){var r=n.selection.getRng(),o=en.fromDom(r.startContainer),i=en.fromDom(r.endContainer);s.keyup(e,o,r.startOffset,i,r.endOffset).each(function(n){f(e,n)})}},g=function(n){return!(Dt.has(n,"data-mce-bogus")||"br"===xt.name(n)||xt.isText(n)&&0===we.get(n).length)},p=function(e){var r,o,i=h(e);t().each(function(n){n.hideBars()}),40===e.which&&(r=en.fromDom(n.getBody()),o=function(n){return dt.prevSibling(n).bind(function(n){return g(n)?w.some(n):o(n)})},dt.lastChild(r).bind(function(n){return g(n)?w.some(n):o(n)})).each(function(t){"table"===xt.name(t)&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,"<br/>"):n.dom.add(n.getBody(),"br"))});var u=n.selection.getRng(),a=en.fromDom(n.selection.getStart()),c=en.fromDom(u.startContainer),l=en.fromDom(u.endContainer),d=pa(a).isRtl()?bl.rtl:bl.ltr;s.keydown(i,c,u.startOffset,l,u.endOffset,d).each(function(n){f(i,n)}),t().each(function(n){n.showBars()})},h=function(n){var t=en.fromDom(n.target),e=function(){n.stopPropagation()},r=function(){n.preventDefault()},o=m.compose(r,e);return{target:m.constant(t),x:m.constant(n.x),y:m.constant(n.y),stop:e,prevent:r,kill:o,raw:m.constant(n)}},v=function(n){return 0===n.button},b=function(n){v(n)&&l.mousedown(h(n))},y=function(n){var t;((t=n).buttons===undefined||0!=(1&t.buttons))&&l.mouseover(h(n))},x=function(n){v&&l.mouseup(h(n))};n.on("mousedown",b),n.on("mouseover",y),n.on("mouseup",x),n.on("keyup",d),n.on("keydown",p),n.on("nodechange",function(){var t=n.selection,e=en.fromDom(t.getStart()),r=en.fromDom(t.getEnd()),i=Vt(e),u=Vt(r);i.bind(function(n){return u.bind(function(t){return ot.eq(n,t)?w.some(!0):w.none()})}).fold(function(){o.clear(a)},m.noop)}),r=w.some(e({mousedown:b,mouseover:y,mouseup:x,keyup:d,keydown:p}))}),{clear:o.clear,destroy:function(){r.each(function(n){})}}},Ws=function(n){return{get:function(){var t=sa.getBody(n);return mr(t,br.selectedSelector()).fold(function(){return n.selection.getStart()===undefined?xr.none():xr.single(n.selection)},function(n){return xr.multiple(n)})}}},_s=ba.each,Ms={addButtons:function(n){var t=[];function e(t){return function(){n.execCommand(t)}}_s("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"===e?t.push({text:"-"}):t.push(n.menuItems[e])}),n.addButton("table",{type:"menubutton",title:"Table",menu:t}),n.addButton("tableprops",{title:"Table properties",onclick:m.curry(Ta,n,!0),icon:"table"}),n.addButton("tabledelete",{title:"Delete table",onclick:e("mceTableDelete")}),n.addButton("tablecellprops",{title:"Cell properties",onclick:e("mceTableCellProps")}),n.addButton("tablemergecells",{title:"Merge cells",onclick:e("mceTableMergeCells")}),n.addButton("tablesplitcells",{title:"Split cell",onclick:e("mceTableSplitCells")}),n.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:e("mceTableInsertRowBefore")}),n.addButton("tableinsertrowafter",{title:"Insert row after",onclick:e("mceTableInsertRowAfter")}),n.addButton("tabledeleterow",{title:"Delete row",onclick:e("mceTableDeleteRow")}),n.addButton("tablerowprops",{title:"Row properties",onclick:e("mceTableRowProps")}),n.addButton("tablecutrow",{title:"Cut row",onclick:e("mceTableCutRow")}),n.addButton("tablecopyrow",{title:"Copy row",onclick:e("mceTableCopyRow")}),n.addButton("tablepasterowbefore",{title:"Paste row before",onclick:e("mceTablePasteRowBefore")}),n.addButton("tablepasterowafter",{title:"Paste row after",onclick:e("mceTablePasteRowAfter")}),n.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:e("mceTableInsertColBefore")}),n.addButton("tableinsertcolafter",{title:"Insert column after",onclick:e("mceTableInsertColAfter")}),n.addButton("tabledeletecol",{title:"Delete column",onclick:e("mceTableDeleteCol")})},addToolbars:function(n){var t=n.settings.table_toolbar;""!==t&&!1!==t&&(t||(t="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),n.addContextToolbar(function(t){return n.dom.is(t,"table")&&n.getBody().contains(t)},t))}},Ls={addMenuItems:function(n,t){var e=w.none(),r=[],o=[],i=[],u=[],a=function(n){n.disabled(!0)},c=function(n){n.disabled(!1)},l=function(){var n=this;r.push(n),e.fold(function(){a(n)},function(t){c(n)})},s=function(){var n=this;o.push(n),e.fold(function(){a(n)},function(t){c(n)})};n.on("init",function(){n.on("nodechange",function(l){var s=w.from(n.dom.getParent(n.selection.getStart(),"th,td"));(e=s.bind(function(n){var e=en.fromDom(n);return Vt(e).map(function(n){return kr.forMenu(t,n,e)})})).fold(function(){B.each(r,a),B.each(o,a),B.each(i,a),B.each(u,a)},function(n){B.each(r,c),B.each(o,c),B.each(i,function(t){t.disabled(n.mergable().isNone())}),B.each(u,function(t){t.disabled(n.unmergable().isNone())})})})});var f=function(n,t,e,r){var o,i,u,a,c,l=r.getEl().getElementsByTagName("table")[0],s=r.isRtl()||"tl-tr"===r.parent().rel;for(l.nextSibling.innerHTML=t+1+" x "+(e+1),s&&(t=9-t),i=0;i<10;i++)for(o=0;o<10;o++)a=l.rows[i].childNodes[o].firstChild,c=(s?o>=t:o<=t)&&i<=e,n.dom.toggleClass(a,"mce-active",c),c&&(u=a);return u.parentNode},d=!1===n.settings.table_grid?{text:"Table",icon:"table",context:"table",onclick:m.curry(Ta,n)}:{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(t){t.aria&&(this.parent().hideAll(),t.stopImmediatePropagation(),Ta(n))},onshow:function(){f(n,0,0,this.menu.items()[0])},onhide:function(){var t=this.menu.items()[0].getEl().getElementsByTagName("a");n.dom.removeClass(t,"mce-active"),n.dom.addClass(t[0],"mce-active")},menu:[{type:"container",html:function(){var n="";n='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){n+="<tr>";for(var e=0;e<10;e++)n+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+e)+'" href="#" data-mce-x="'+e+'" data-mce-y="'+t+'"></a></td>';n+="</tr>"}return n+="</table>",n+='<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(t){var e,r,o=t.target;"A"===o.tagName.toUpperCase()&&(e=parseInt(o.getAttribute("data-mce-x"),10),r=parseInt(o.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"===this.parent().rel)&&(e=9-e),e===this.lastX&&r===this.lastY||(f(n,e,r,t.control),this.lastX=e,this.lastY=r))},onclick:function(t){var e=this;"A"===t.target.tagName.toUpperCase()&&(t.preventDefault(),t.stopPropagation(),e.parent().cancel(),n.undoManager.transact(function(){Pr.insert(n,e.lastX+1,e.lastY+1)}),n.addVisual())}}]};function g(t){return function(){n.execCommand(t)}}var p={text:"Table properties",context:"table",onPostRender:l,onclick:m.curry(Ta,n,!0)},h={text:"Delete table",context:"table",onPostRender:l,cmd:"mceTableDelete"},v={text:"Row",context:"table",menu:[{text:"Insert row before",onclick:g("mceTableInsertRowBefore"),onPostRender:s},{text:"Insert row after",onclick:g("mceTableInsertRowAfter"),onPostRender:s},{text:"Delete row",onclick:g("mceTableDeleteRow"),onPostRender:s},{text:"Row properties",onclick:g("mceTableRowProps"),onPostRender:s},{text:"-"},{text:"Cut row",onclick:g("mceTableCutRow"),onPostRender:s},{text:"Copy row",onclick:g("mceTableCopyRow"),onPostRender:s},{text:"Paste row before",onclick:g("mceTablePasteRowBefore"),onPostRender:s},{text:"Paste row after",onclick:g("mceTablePasteRowAfter"),onPostRender:s}]},b={text:"Column",context:"table",menu:[{text:"Insert column before",onclick:g("mceTableInsertColBefore"),onPostRender:s},{text:"Insert column after",onclick:g("mceTableInsertColAfter"),onPostRender:s},{text:"Delete column",onclick:g("mceTableDeleteCol"),onPostRender:s}]},y={separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:g("mceTableCellProps"),onPostRender:s},{text:"Merge cells",onclick:g("mceTableMergeCells"),onPostRender:function(){var n=this;i.push(n),e.fold(function(){a(n)},function(t){n.disabled(t.mergable().isNone())})}},{text:"Split cell",onclick:g("mceTableSplitCells"),onPostRender:function(){var n=this;u.push(n),e.fold(function(){a(n)},function(t){n.disabled(t.unmergable().isNone())})}}]};n.addMenuItem("inserttable",d),n.addMenuItem("tableprops",p),n.addMenuItem("deletetable",h),n.addMenuItem("row",v),n.addMenuItem("column",b),n.addMenuItem("cell",y)}};f.add("table",function(n){var t=oc(n),e=Ps(n,t.lazyResize),r=ha(n,t.lazyWire),o=Ws(n);Ia.registerCommands(n,r,e,o),Nr.registerEvents(n,o,r,e),Ls.addMenuItems(n,o),Ms.addButtons(n),Ms.addToolbars(n),n.on("PreInit",function(){n.serializer.addTempAttr(br.firstSelected()),n.serializer.addTempAttr(br.lastSelected())}),!1!==n.settings.table_tab_navigation&&n.on("keydown",function(e){ml.handle(e,n,r,t.lazyWire)}),n.on("remove",function(){t.destroy(),e.destroy()}),this.insertTable=function(t,e){return Pr.insert(n,t,e)},this.setClipboardRows=Ia.setClipboardRows,this.getClipboardRows=Ia.getClipboardRows})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),n=tinymce.util.Tools.resolve("tinymce.EditorManager"),i=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Delay"),l=tinymce.util.Tools.resolve("tinymce.util.Tools"),u=tinymce.util.Tools.resolve("tinymce.util.VK"),r={getTabFocus:function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))}},c=t.DOM,s=function(e){e.keyCode!==u.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},a=function(e){function t(t){var s,a,y,f;if(!(t.keyCode!==u.TAB||t.ctrlKey||t.altKey||t.metaKey||t.isDefaultPrevented())&&(1===(y=l.explode(r.getTabFocus(e))).length&&(y[1]=y[0],y[0]=":prev"),a=t.shiftKey?":prev"===y[0]?m(-1):c.get(y[0]):":next"===y[1]?m(1):c.get(y[1]))){var d=n.get(a.id||a.name);a.id&&d?d.focus():o.setTimeout(function(){i.webkit||window.focus(),a.focus()},10),t.preventDefault()}function m(i){function o(e){return/INPUT|TEXTAREA|BUTTON/.test(e.tagName)&&n.get(t.id)&&-1!==e.tabIndex&&function i(e){return"BODY"===e.nodeName||"hidden"!==e.type&&"none"!==e.style.display&&"hidden"!==e.style.visibility&&i(e.parentNode)}(e)}if(a=c.select(":input:enabled,*[tabindex]:not(iframe)"),l.each(a,function(t,n){if(t.id===e.id)return s=n,!1}),i>0){for(f=s+1;f<a.length;f++)if(o(a[f]))return a[f]}else for(f=s-1;f>=0;f--)if(o(a[f]))return a[f];return null}}e.on("init",function(){e.inline&&c.setAttrib(e.getBody(),"tabIndex",null),e.on("keyup",s),i.gecko?e.on("keypress keydown",t):e.on("keydown",t)})};e.add("tabfocus",function(e){a(e)})}();!function(){"use strict";var e=function(t){var n=t,r=function(){return n};return{get:r,set:function(e){n=e},clone:function(){return e(r())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return!(!/(^|[ ,])tinymcespellchecker([, ]|$)/.test(e.settings.plugins)||!t.get("tinymcespellchecker")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("Spell Checker Pro is incompatible with Spell Checker plugin! Remove 'spellchecker' from the 'plugins' option."),0))},r=function(e){return e.getParam("spellchecker_languages","English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv")},o=function(e){var t=e.getParam("language","en");return e.getParam("spellchecker_language",t)},i=function(e){return e.getParam("spellchecker_rpc_url")},c=function(e){return e.getParam("spellchecker_callback")},a=function(e){var t=new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+',"g");return e.getParam("spellchecker_wordchar_pattern",t)},l=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=tinymce.util.Tools.resolve("tinymce.util.URI"),u=tinymce.util.Tools.resolve("tinymce.util.XHR"),d=function(e){return e.fire("SpellcheckStart")},f=function(e){return e.fire("SpellcheckEnd")};function h(e){return e&&1===e.nodeType&&"false"===e.contentEditable}var g,m=function(e,t){var n,r,o,i,c,a=[],l=t.dom;function s(e,t){if(!e[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function u(t){var n=e.getElementsByTagName("*"),r=[];t="number"==typeof t?""+t:null;for(var o=0;o<n.length;o++){var i=n[o],c=i.getAttribute("data-mce-index");null!==c&&c.length&&-1!==i.className.indexOf("mce-spellchecker-word")&&(c!==t&&null!==t||r.push(i))}return r}function d(e){for(var t=a.length;t--;)if(a[t]===e)return t;return-1}function f(e){for(var t=0,n=a.length;t<n&&!1!==e(a[t],t);t++);return this}function g(e){var t,n,r=u(e?d(e):null);for(t=r.length;t--;)(n=r[t]).parentNode.insertBefore(n.firstChild,n),n.parentNode.removeChild(n);return this}function m(e){var n=u(d(e)),r=t.dom.createRng();return r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),r}return o=t.schema.getBlockElements(),i=t.schema.getWhiteSpaceElements(),c=t.schema.getShortEndedElements(),{text:r=function p(e){var t;if(3===e.nodeType)return e.data;if(i[e.nodeName]&&!o[e.nodeName])return"";if(h(e))return"\n";if(t="",(o[e.nodeName]||c[e.nodeName])&&(t+="\n"),e=e.firstChild)do{t+=p(e)}while(e=e.nextSibling);return t}(e),matches:a,each:f,filter:function(e){var t=[];return f(function(n,r){e(n,r)&&t.push(n)}),a=t,this},reset:function(){return a.splice(0,a.length),g(),this},matchFromElement:function(e){return a[e.getAttribute("data-mce-index")]},elementFromMatch:function(e){return u(d(e))[0]},find:function(e,t){if(r&&e.global)for(;n=e.exec(r);)a.push(s(n,t));return this},add:function(e,t,n){return a.push({start:e,end:e+t,text:r.substr(e,t),data:n}),this},wrap:function(t){return a.length&&function(e,t,n){var r,a,l,s,u,d=[],f=0,g=e,m=0;(t=t.slice(0)).sort(function(e,t){return e.start-t.start}),u=t.shift();e:for(;;){if((o[g.nodeName]||c[g.nodeName]||h(g))&&f++,3===g.nodeType&&(!a&&g.length+f>=u.end?(a=g,s=u.end-f):r&&d.push(g),!r&&g.length+f>u.start&&(r=g,l=u.start-f),f+=g.length),r&&a){if(g=n({startNode:r,startNodeIndex:l,endNode:a,endNodeIndex:s,innerNodes:d,match:u.text,matchIndex:m}),f-=a.length-s,r=null,a=null,d=[],m++,!(u=t.shift()))break}else if(i[g.nodeName]&&!o[g.nodeName]||!g.firstChild){if(g.nextSibling){g=g.nextSibling;continue}}else if(!h(g)){g=g.firstChild;continue}for(;;){if(g.nextSibling){g=g.nextSibling;break}if(g.parentNode===e)break e;g=g.parentNode}}}(e,a,function(e){function t(t,n){var r=a[n];r.stencil||(r.stencil=e(r));var o=r.stencil.cloneNode(!1);return o.setAttribute("data-mce-index",n),t&&o.appendChild(l.doc.createTextNode(t)),o}return function(e){var n,r,o,i=e.startNode,c=e.endNode,a=e.matchIndex,s=l.doc;if(i===c){var u=i;o=u.parentNode,e.startNodeIndex>0&&(n=s.createTextNode(u.data.substring(0,e.startNodeIndex)),o.insertBefore(n,u));var d=t(e.match,a);return o.insertBefore(d,u),e.endNodeIndex<u.length&&(r=s.createTextNode(u.data.substring(e.endNodeIndex)),o.insertBefore(r,u)),u.parentNode.removeChild(u),d}n=s.createTextNode(i.data.substring(0,e.startNodeIndex)),r=s.createTextNode(c.data.substring(e.endNodeIndex));for(var f=t(i.data.substring(e.startNodeIndex),a),h=[],g=0,m=e.innerNodes.length;g<m;++g){var p=e.innerNodes[g],v=t(p.data,a);p.parentNode.replaceChild(v,p),h.push(v)}var x=t(c.data.substring(0,e.endNodeIndex),a);return(o=i.parentNode).insertBefore(n,i),o.insertBefore(f,i),o.removeChild(i),(o=c.parentNode).insertBefore(x,c),o.insertBefore(r,c),o.removeChild(c),x}}(t)),this},unwrap:g,replace:function(e,n){var r=m(e);return r.deleteContents(),n.length>0&&r.insertNode(t.dom.doc.createTextNode(n)),r},rangeFromMatch:m,indexOf:d}},p=function(e,t){if(!t.get()){var n=m(e.getBody(),e);t.set(n)}return t.get()},v=function(e,t,n,r,o,a,d){var f,h,g,m=c(e);(m||(f=e,h=t,g=n,function(e,t,n,r){var o={method:e,lang:g.get()},c="";o["addToDictionary"===e?"word":"text"]=t,l.each(o,function(e,t){c&&(c+="&"),c+=t+"="+encodeURIComponent(e)}),u.send({url:new s(h).toAbsolute(i(f)),type:"post",content_type:"application/x-www-form-urlencoded",data:c,success:function(e){if(e=JSON.parse(e))e.error?r(e.error):n(e);else{var t=f.translate("Server response wasn't proper JSON.");r(t)}},error:function(){var e=f.translate("The spelling service was not found: (")+i(f)+f.translate(")");r(e)}})})).call(e.plugins.spellchecker,r,o,a,d)},x=function(e,t,n){e.dom.select("span.mce-spellchecker-word").length||N(e,t,n)},N=function(e,t,n){if(p(e,n).reset(),n.set(null),t.get())return t.set(!1),f(e),!0},k=function(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t},y=function(e,t,n,r,o){var i,c;if(o.words?(c=!!o.dictionary,i=o.words):i=o,e.setProgressState(!1),function(e){for(var t in e)return!1;return!0}(i)){var l=e.translate("No misspellings found.");return e.notificationManager.open({text:l,type:"info"}),void t.set(!1)}r.set({suggestions:i,hasDictionarySupport:c}),p(e,n).find(a(e)).filter(function(e){return!!i[e.text]}).wrap(function(t){return e.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1,"data-mce-word":t.text})}),t.set(!0),d(e)},S={spellcheck:function(e,t,n,r,o,i){N(e,n,r)||(e.setProgressState(!0),v(e,t,i,"spellcheck",p(e,r).text,function(t){y(e,n,r,o,t)},function(t){e.notificationManager.open({text:t,type:"error"}),e.setProgressState(!1),N(e,n,r)}),e.focus())},checkIfFinished:x,addToDictionary:function(e,t,n,r,o,i){e.setProgressState(!0),v(e,t,"addToDictionary",o,function(){e.setProgressState(!1),e.dom.remove(i,!0),x(e,n,r)},function(t){e.notificationManager.open({text:t,type:"error"}),e.setProgressState(!1)})},ignoreWord:function(e,t,n,r,o,i){e.selection.collapse(),i?l.each(e.dom.select("span.mce-spellchecker-word"),function(t){t.getAttribute("data-mce-word")===r&&e.dom.remove(t,!0)}):e.dom.remove(o,!0),x(e,t,n)},findSpansByIndex:function(e,t){var n,r=[];if((n=l.toArray(e.getBody().getElementsByTagName("span"))).length)for(var o=0;o<n.length;o++){var i=k(n[o]);null!==i&&i.length&&i===t.toString()&&r.push(n[o])}return r},getElmIndex:k,markErrors:y},w=function(e,t,n,r,i){return{getTextMatcher:function(){return r.get()},getWordCharPattern:function(){return a(e)},markErrors:function(o){S.markErrors(e,t,r,n,o)},getLanguage:function(){return o(e)}}},b=function(e,t,n,r,o,i){e.addCommand("mceSpellCheck",function(){S.spellcheck(e,t,n,r,o,i)})},T=function(e,t,n,i,c,a){var s,u,d,f,h=(d=e,s=l.map(r(d).split(","),function(e){return{name:(e=e.split("="))[0],value:e[1]}}),u=[],l.each(s,function(e){u.push({selectable:!0,text:e.name,data:e.value})}),u),g=function(){S.spellcheck(e,t,n,i,a,c)},m={tooltip:"Spellcheck",onclick:g,onPostRender:function(t){var r=t.control;e.on("SpellcheckStart SpellcheckEnd",function(){r.active(n.get())})}};h.length>1&&(m.type="splitbutton",m.menu=h,m.onshow=(f=e,function(e){var t=o(f);e.control.items().each(function(e){e.active(e.settings.data===t)})}),m.onselect=function(e){c.set(e.control.settings.data)}),e.addButton("spellchecker",m),e.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:g,selectable:!0,onPostRender:function(){var t=this;t.active(n.get()),e.on("SpellcheckStart SpellcheckEnd",function(){t.active(n.get())})}})},I=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),E=tinymce.util.Tools.resolve("tinymce.ui.Factory"),P=function(e,t,n,r,o){e.on("click",function(i){var c=i.target;if("mce-spellchecker-word"===c.className){i.preventDefault();var a=S.findSpansByIndex(e,S.getElmIndex(c));if(a.length>0){var s=e.dom.createRng();s.setStartBefore(a[0]),s.setEndAfter(a[a.length-1]),e.selection.setRng(s),function(e,t,n,r,o,i,c){var a=[],s=n.get().suggestions[i];l.each(s,function(t){a.push({text:t,onclick:function(){e.insertContent(e.dom.encode(t)),e.dom.remove(c),S.checkIfFinished(e,r,o)}})}),a.push({text:"-"}),n.get().hasDictionarySupport&&a.push({text:"Add to Dictionary",onclick:function(){S.addToDictionary(e,t,r,o,i,c)}}),a.push.apply(a,[{text:"Ignore",onclick:function(){S.ignoreWord(e,r,o,i,c)}},{text:"Ignore all",onclick:function(){S.ignoreWord(e,r,o,i,c,!0)}}]),(g=E.create("menu",{items:a,context:"contextmenu",onautohide:function(e){-1!==e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){g.remove(),g=null}})).renderTo(document.body);var u=I.DOM.getPos(e.getContentAreaContainer()),d=e.dom.getPos(c[0]),f=e.dom.getRoot();"BODY"===f.nodeName?(d.x-=f.ownerDocument.documentElement.scrollLeft||f.scrollLeft,d.y-=f.ownerDocument.documentElement.scrollTop||f.scrollTop):(d.x-=f.scrollLeft,d.y-=f.scrollTop),u.x+=d.x,u.y+=d.y,g.moveTo(u.x,u.y+c[0].offsetHeight)}(e,t,n,r,o,c.getAttribute("data-mce-word"),a)}}})};t.add("spellchecker",function(t,r){if(!1===n(t)){var i=e(!1),c=e(o(t)),a=e(null),l=e({});return T(t,r,i,a,c,l),P(t,r,l,i,a),b(t,r,i,a,l,c),w(t,i,l,a,r)}})}();!function(){"use strict";var e=function(t){var n=t,r=function(){return n};return{get:r,set:function(e){n=e},clone:function(){return e(r())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.Tools");function r(e){return e&&1===e.nodeType&&"false"===e.contentEditable}var a={findAndReplaceDOMText:function(e,t,n,a,i){var o,d,c,l,s,u,f=[],p=0;function g(e,t){if(t=t||0,!e[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");var n=e.index;if(t>0){var r=e[t];if(!r)throw new Error("Invalid capture group");n+=e[0].indexOf(r),e[0]=r}return[n,n+e[0].length,[e[0]]]}if(c=t.ownerDocument,l=i.getBlockElements(),s=i.getWhiteSpaceElements(),u=i.getShortEndedElements(),d=function h(e){var t;if(3===e.nodeType)return e.data;if(s[e.nodeName]&&!l[e.nodeName])return"";if(t="",r(e))return"\n";if((l[e.nodeName]||u[e.nodeName])&&(t+="\n"),e=e.firstChild)do{t+=h(e)}while(e=e.nextSibling);return t}(t)){if(e.global)for(;o=e.exec(d);)f.push(g(o,a));else o=d.match(e),f.push(g(o,a));return f.length&&(p=f.length,function(e,t,n){var a,i,o,d,c=[],f=0,p=e,g=t.shift(),h=0;e:for(;;){if((l[p.nodeName]||u[p.nodeName]||r(p))&&f++,3===p.nodeType&&(!i&&p.length+f>=g[1]?(i=p,d=g[1]-f):a&&c.push(p),!a&&p.length+f>g[0]&&(a=p,o=g[0]-f),f+=p.length),a&&i){if(p=n({startNode:a,startNodeIndex:o,endNode:i,endNodeIndex:d,innerNodes:c,match:g[2],matchIndex:h}),f-=i.length-d,a=null,i=null,c=[],h++,!(g=t.shift()))break}else if(s[p.nodeName]&&!l[p.nodeName]||!p.firstChild){if(p.nextSibling){p=p.nextSibling;continue}}else if(!r(p)){p=p.firstChild;continue}for(;;){if(p.nextSibling){p=p.nextSibling;break}if(p.parentNode===e)break e;p=p.parentNode}}}(t,f,function(e){var t;if("function"!=typeof e){var n=e.nodeType?e:c.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(c.createTextNode(e)),r}}else t=e;return function(e){var n,r,a,i=e.startNode,o=e.endNode,d=e.matchIndex;if(i===o){var l=i;a=l.parentNode,e.startNodeIndex>0&&(n=c.createTextNode(l.data.substring(0,e.startNodeIndex)),a.insertBefore(n,l));var s=t(e.match[0],d);return a.insertBefore(s,l),e.endNodeIndex<l.length&&(r=c.createTextNode(l.data.substring(e.endNodeIndex)),a.insertBefore(r,l)),l.parentNode.removeChild(l),s}n=c.createTextNode(i.data.substring(0,e.startNodeIndex)),r=c.createTextNode(o.data.substring(e.endNodeIndex));for(var u=t(i.data.substring(e.startNodeIndex),d),f=[],p=0,g=e.innerNodes.length;p<g;++p){var h=e.innerNodes[p],m=t(h.data,d);h.parentNode.replaceChild(m,h),f.push(m)}var v=t(o.data.substring(0,e.endNodeIndex),d);return(a=i.parentNode).insertBefore(n,i),a.insertBefore(u,i),a.removeChild(i),(a=o.parentNode).insertBefore(v,o),a.insertBefore(r,o),a.removeChild(o),v}}(n))),p}}},i=function(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t},o=function(e){var t=e.parentNode;e.firstChild&&t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)},d=function(e,t){var r,a=[];if((r=n.toArray(e.getBody().getElementsByTagName("span"))).length)for(var o=0;o<r.length;o++){var d=i(r[o]);null!==d&&d.length&&d===t.toString()&&a.push(r[o])}return a},c=function(e,t,n){var r=t.get(),a=e.dom;(n=!1!==n)?r++:r--,a.removeClass(d(e,t.get()),"mce-match-marker-selected");var i=d(e,r);return i.length?(a.addClass(d(e,r),"mce-match-marker-selected"),e.selection.scrollIntoView(i[0]),r):-1},l=function(e,t){var n=t.parentNode;e.remove(t),e.isEmpty(n)&&e.remove(n)},s=function(e,t){var n=c(e,t,!0);-1!==n&&t.set(n)},u=function(e,t){var n=c(e,t,!1);-1!==n&&t.set(n)},f=function(e){var t=i(e);return null!==t&&t.length>0},p=function(e,t,r){var a,d,c,l;for(d=n.toArray(e.getBody().getElementsByTagName("span")),a=0;a<d.length;a++){var s=i(d[a]);null!==s&&s.length&&(s===t.get().toString()&&(c||(c=d[a].firstChild),l=d[a].firstChild),o(d[a]))}if(c&&l){var u=e.dom.createRng();return u.setStart(c,0),u.setEnd(l,l.data.length),!1!==r&&e.selection.setRng(u),u}},g=function(e,t){return d(e,t.get()+1).length>0},h=function(e,t){return d(e,t.get()-1).length>0},m={done:p,find:function(e,t,n,r,i){n=(n=n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")).replace(/\s/g,"\\s"),n=i?"\\b"+n+"\\b":n;var o,d,l,s,u,f=(o=e,d=t,l=new RegExp(n,r?"g":"gi"),(u=o.dom.create("span",{"data-mce-bogus":1})).className="mce-match-marker",s=o.getBody(),p(o,d,!1),a.findAndReplaceDOMText(l,s,u,!1,o.schema));return f&&(t.set(-1),t.set(c(e,t,!0))),f},next:s,prev:u,replace:function(e,t,r,a,d){var c,p,m,v,x,b,N=t.get();for(a=!1!==a,m=e.getBody(),p=n.grep(n.toArray(m.getElementsByTagName("span")),f),c=0;c<p.length;c++){var y=i(p[c]);if(v=x=parseInt(y,10),d||v===t.get()){for(r.length?(p[c].firstChild.nodeValue=r,o(p[c])):l(e.dom,p[c]);p[++c];){if((v=parseInt(i(p[c]),10))!==x){c--;break}l(e.dom,p[c])}a&&N--}else x>t.get()&&p[c].setAttribute("data-mce-index",x-1)}return t.set(N),a?(b=g(e,t),s(e,t)):(b=h(e,t),u(e,t)),!d&&b},hasNext:g,hasPrev:h},v=function(e,t){return{done:function(n){return m.done(e,t,n)},find:function(n,r,a){return m.find(e,t,n,r,a)},next:function(){return m.next(e,t)},prev:function(){return m.prev(e,t)},replace:function(n,r,a){return m.replace(e,t,n,r,a)}}},x=function(e,t){var r,a={};function i(){d.statusbar.find("#next").disabled(!1===m.hasNext(e,t)),d.statusbar.find("#prev").disabled(!1===m.hasPrev(e,t))}function o(){e.windowManager.alert("Could not find the specified string.",function(){d.find("#find")[0].focus()})}e.undoManager.add(),r=n.trim(e.selection.getContent({format:"text"}));var d=e.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){e.focus(),m.done(e,t),e.undoManager.add()},onSubmit:function(n){var r,c,l,s;return n.preventDefault(),c=d.find("#case").checked(),s=d.find("#words").checked(),(l=d.find("#find").value()).length?a.text===l&&a.caseState===c&&a.wholeWord===s?m.hasNext(e,t)?(m.next(e,t),void i()):void o():((r=m.find(e,t,l,c,s))||o(),d.statusbar.items().slice(1).disabled(0===r),i(),void(a={text:l,caseState:c,wholeWord:s})):(m.done(e,t,!1),void d.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){d.submit()}},{text:"Replace",disabled:!0,onclick:function(){m.replace(e,t,d.find("#replace").value())||(d.statusbar.items().slice(1).disabled(!0),t.set(-1),a={})}},{text:"Replace all",disabled:!0,onclick:function(){m.replace(e,t,d.find("#replace").value(),!0,!0),d.statusbar.items().slice(1).disabled(!0),a={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){m.prev(e,t),i()}},{text:"Next",name:"next",disabled:!0,onclick:function(){m.next(e,t),i()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:r},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})},b=function(e,t){e.addCommand("SearchReplace",function(){x(e,t)})},N=function(e,t){return function(){x(e,t)}},y=function(e,t){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:N(e,t),separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",onclick:N(e,t)}),e.shortcuts.add("Meta+F","",N(e,t))};t.add("searchreplace",function(t){var n=e(-1);return b(t,n),y(t,n),v(t,n)})}();!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=function(n){return n.getParam("save_enablewhendirty",!0)},o=function(n){return!!n.getParam("save_onsavecallback")},c=function(n){return!!n.getParam("save_oncancelcallback")},i=function(n,e){n.notificationManager.open({text:n.translate(e),type:"error"})},r=function(n){var t;if(t=e.DOM.getParent(n.id,"form"),!a(n)||n.isDirty()){if(n.save(),o(n))return n.execCallback("save_onsavecallback",n),void n.nodeChanged();t?(n.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():i(n,"Error: Form submit field collision.")),n.nodeChanged()):i(n,"Error: No form element found.")}},l=function(n){var e=t.trim(n.startContent);c(n)?n.execCallback("save_oncancelcallback",n):(n.setContent(e),n.undoManager.clear(),n.nodeChanged())},d=function(n){n.addCommand("mceSave",function(){r(n)}),n.addCommand("mceCancel",function(){l(n)})},s=function(n){return function(e){var t=e.control;n.on("nodeChange dirty",function(){t.disabled(a(n)&&!n.isDirty())})}},u=function(n){n.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:s(n)}),n.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:s(n)}),n.addShortcut("Meta+S","","mceSave")};n.add("save",function(n){u(n),d(n)})}();!function(){"use strict";var t=function(t){t.addCommand("mcePrint",function(){t.getWin().print()})},n=function(t){t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print"})};tinymce.util.Tools.resolve("tinymce.PluginManager").add("print",function(i){t(i),n(i),i.addShortcut("Meta+P","","mcePrint")})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),n=function(e){return parseInt(e.getParam("plugin_preview_width","650"),10)},i=function(e){return parseInt(e.getParam("plugin_preview_height","500"),10)},o=function(e){return e.getParam("content_style","")},r=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(e){var t="",n=e.dom.encode,i=o(e);t+='<base href="'+n(e.documentBaseURI.getURI())+'">',i&&(t+='<style type="text/css">'+i+"</style>"),r.each(e.contentCSS,function(i){t+='<link type="text/css" rel="stylesheet" href="'+n(e.documentBaseURI.toAbsolute(i))+'">'});var c=e.settings.body_id||"tinymce";-1!==c.indexOf("=")&&(c=(c=e.getParam("body_id","","hash"))[e.id]||c);var a=e.settings.body_class||"";-1!==a.indexOf("=")&&(a=(a=e.getParam("body_class","","hash"))[e.id]||"");var s=e.settings.directionality?' dir="'+e.settings.directionality+'"':"";return"<!DOCTYPE html><html><head>"+t+'</head><body id="'+n(c)+'" class="mce-content-body '+n(a)+'"'+n(s)+">"+e.getContent()+'<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A") {e.preventDefault();}}}, false);<\/script> </body></html>'},a=function(e,t,n){var i=c(e);if(n)t.src="data:text/html;charset=utf-8,"+encodeURIComponent(i);else{var o=t.contentWindow.document;o.open(),o.write(i),o.close()}},s=function(e){var o=!t.ie,r='<iframe src="javascript:\'\'" frameborder="0"'+(o?' sandbox="allow-scripts"':"")+"></iframe>",c=n(e),s=i(e);e.windowManager.open({title:"Preview",width:c,height:s,html:r,buttons:{text:"Close",onclick:function(e){e.control.parent().parent().close()}},onPostRender:function(t){var n=t.control.getEl("body").firstChild;a(e,n,o)}})},d=function(e){e.addCommand("mcePreview",function(){s(e)})},l=function(e){e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})};e.add("preview",function(e){d(e),l(e)})}();!function(){"use strict";var e=function(t){var n=t,r=function(){return n};return{get:r,set:function(e){n=e},clone:function(){return e(r())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(e.settings.plugins)||!t.get("powerpaste")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},r=function(e,t){return{clipboard:e,quirks:t}},a={firePastePreProcess:function(e,t,n,r){return e.fire("PastePreProcess",{content:t,internal:n,wordContent:r})},firePastePostProcess:function(e,t,n,r){return e.fire("PastePostProcess",{node:t,internal:n,wordContent:r})},firePastePlainTextToggle:function(e,t){return e.fire("PastePlainTextToggle",{state:t})},firePaste:function(e,t){return e.fire("paste",{ieFake:t})}},i={shouldPlainTextInform:function(e){return e.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(e){return e.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(e){return e.getParam("paste_data_images",!1)},shouldFilterDrop:function(e){return e.getParam("paste_filter_drop",!0)},getPreProcess:function(e){return e.getParam("paste_preprocess")},getPostProcess:function(e){return e.getParam("paste_postprocess")},getWebkitStyles:function(e){return e.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(e){return e.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(e){return e.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(e){return e.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(e){return e.getParam("paste_as_text",!1)},getRetainStyleProps:function(e){return e.getParam("paste_retain_style_properties")},getWordValidElements:function(e){return e.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(e){return e.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(e){return e.getParam("paste_enable_default_filters",!0)}},o=function(e,t,n){var r,o,s;"text"===t.pasteFormat?(t.pasteFormat="html",a.firePastePlainTextToggle(e,!1)):(t.pasteFormat="text",a.firePastePlainTextToggle(e,!0),s=e,!1===n.get()&&i.shouldPlainTextInform(s)&&(o="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=e).notificationManager.open({text:r.translate(o),type:"info"}),n.set(!0))),e.focus()},s=function(e,t,n){e.addCommand("mceTogglePlainTextPaste",function(){o(e,t,n)}),e.addCommand("mceInsertClipboardContent",function(e,n){n.content&&t.pasteHtml(n.content,n.internal),n.text&&t.pasteText(n.text)})},l=tinymce.util.Tools.resolve("tinymce.Env"),u=tinymce.util.Tools.resolve("tinymce.util.Delay"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=tinymce.util.Tools.resolve("tinymce.util.VK"),d="x-tinymce/html",m="\x3c!-- "+d+" --\x3e",p={mark:function(e){return m+e},unmark:function(e){return e.replace(m,"")},isMarked:function(e){return-1!==e.indexOf(m)},internalHtmlMime:function(){return d}},g=tinymce.util.Tools.resolve("tinymce.html.Entities"),v=function(e){return e.replace(/\r?\n/g,"<br>")},h=function(e,t,n){var r=e.split(/\n\n/),a=function(e,t){var n,r=[],a="<"+e;if("object"==typeof t){for(n in t)t.hasOwnProperty(n)&&r.push(n+'="'+g.encodeAllRaw(t[n])+'"');r.length&&(a+=" "+r.join(" "))}return a+">"}(t,n),i="</"+t+">",o=c.map(r,function(e){return e.split(/\n/).join("<br />")});return 1===o.length?o[0]:c.map(o,function(e){return a+e+i}).join("")},P={isPlainText:function(e){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(e)},convert:function(e,t,n){return t?h(e,t,n):v(e)},toBRs:v,toBlockElements:h},y=tinymce.util.Tools.resolve("tinymce.html.DomParser"),b=tinymce.util.Tools.resolve("tinymce.html.Node"),x=tinymce.util.Tools.resolve("tinymce.html.Schema"),w=tinymce.util.Tools.resolve("tinymce.html.Serializer");function T(e,t){return c.each(t,function(t){e=t.constructor===RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}var C={filter:T,innerText:function(e){var t=x(),n=y({},t),r="",a=t.getShortEndedElements(),i=c.makeMap("script noscript style textarea video audio iframe object"," "),o=t.getBlockElements();return e=T(e,[/<!\[[^\]]+\]>/g]),function s(e){var t=e.name,n=e;if("br"!==t)if(a[t]&&(r+=" "),i[t])r+=" ";else{if(3===e.type&&(r+=e.value),!e.shortEnded&&(e=e.firstChild))do{s(e)}while(e=e.next);o[t]&&n.next&&(r+="\n","p"===t&&(r+="\n"))}else r+="\n"}(n.parse(e)),r},trimHtml:function(e){return e=T(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(e,t,n){return t||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(e){var t=0;return function(){return e+t++}},isMsEdge:function(){return-1!==navigator.userAgent.indexOf(" Edge/")}};function _(e){var t,n;return n=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],e=e.replace(/^[\u00a0 ]+/,""),c.each(n,function(n){if(n.test(e))return t=!0,!1}),t}function D(e){var t,n,r=1;function a(e){var t="";if(3===e.type)return e.value;if(e=e.firstChild)do{t+=a(e)}while(e=e.next);return t}function i(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do{if(!i(e,t))return!1}while(e=e.next);return!0}function o(e,a,o){var s=e._listLevel||r;s!==r&&(s<r?t&&(t=t.parent.parent):(n=t,t=null)),t&&t.name===a?t.append(e):(n=n||t,t=new b(a,1),o>1&&t.attr("start",""+o),e.wrap(t)),e.name="li",s>r&&n&&n.lastChild.append(t),r=s,function l(e){if(e._listIgnore)e.remove();else if(e=e.firstChild)do{l(e)}while(e=e.next)}(e),i(e,/^\u00a0+/),i(e,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),i(e,/^\u00a0+/)}for(var s=[],l=e.firstChild;void 0!==l&&null!==l;)if(s.push(l),null!==(l=l.walk()))for(;void 0!==l&&l.parent!==e;)l=l.walk();for(var u=0;u<s.length;u++)if("p"===(e=s[u]).name&&e.firstChild){var c=a(e);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){o(e,"ul");continue}if(_(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),o(e,"ol",d);continue}if(e._listLevel){o(e,"ul",1);continue}t=null}else n=t,t=null}function k(e,t,n,r){var a,o={},s=e.dom.parseStyle(r);return c.each(s,function(s,l){switch(l){case"mso-list":(a=/\w+ \w+([0-9]+)/i.exec(r))&&(n._listLevel=parseInt(a[1],10)),/Ignore/i.test(s)&&n.firstChild&&(n._listIgnore=!0,n.firstChild._listIgnore=!0);break;case"horiz-align":l="text-align";break;case"vert-align":l="vertical-align";break;case"font-color":case"mso-foreground":l="color";break;case"mso-background":case"mso-highlight":l="background";break;case"font-weight":case"font-style":return void("normal"!==s&&(o[l]=s));case"mso-element":if(/^(comment|comment-list)$/i.test(s))return void n.remove()}0!==l.indexOf("mso-comment")?0!==l.indexOf("mso-")&&("all"===i.getRetainStyleProps(e)||t&&t[l])&&(o[l]=s):n.remove()}),/(bold)/i.test(o["font-weight"])&&(delete o["font-weight"],n.wrap(new b("b",1))),/(italic)/i.test(o["font-style"])&&(delete o["font-style"],n.wrap(new b("i",1))),(o=e.dom.serializeStyle(o,n.name))||null}var R={preProcess:function(e,t){return i.shouldUseDefaultFilters(e)?function(e,t){var n,r;(n=i.getRetainStyleProps(e))&&(r=c.makeMap(n.split(/[, ]/))),t=C.filter(t,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var a=i.getWordValidElements(e),o=x({valid_elements:a,valid_children:"-li[p]"});c.each(o.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var s=y({},o);s.addAttributeFilter("style",function(t){for(var n,a=t.length;a--;)(n=t[a]).attr("style",k(e,r,n,n.attr("style"))),"span"===n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),s.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=(t=e[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),s.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),s.addNodeFilter("a",function(e){for(var t,n,r,a=e.length;a--;)if(n=(t=e[a]).attr("href"),r=t.attr("name"),n&&-1!==n.indexOf("#_msocom_"))t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1])&&(n="#"+n),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var l=s.parse(t);return i.shouldConvertWordFakeLists(e)&&D(l),t=w({validate:e.settings.validate},o).serialize(l)}(e,t):t},isWordContent:function(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}},E=function(e,t){return{content:e,cancelled:t}},F=function(e,t,n,r){var i,o,s,l,u,c,f=a.firePastePreProcess(e,t,n,r);return e.hasEventListeners("PastePostProcess")&&!f.isDefaultPrevented()?(i=e,o=f.content,s=n,l=r,u=i.dom.create("div",{style:"display:none"},o),c=a.firePastePostProcess(i,u,s,l),E(c.node.innerHTML,c.isDefaultPrevented())):E(f.content,f.isDefaultPrevented())},M={process:function(e,t,n){var r=R.isWordContent(t),a=r?R.preProcess(e,t):t;return F(e,a,n,r)}},S=function(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},I=function(e){return S(e)&&/.(gif|jpe?g|png)$/.test(e)},A=function(e,t,n){return!(!1!==e.selection.isCollapsed()||!S(t)||(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.execCommand("mceInsertLink",!1,a)}),0));var r,a,i},O=function(e,t,n){return!!I(t)&&(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.insertContent('<img src="'+a+'">')}),!0);var r,a,i},B=function(e,t){return e.insertContent(t,{merge:i.shouldMergeFormats(e),paste:!0}),!0},H={isImageUrl:I,isAbsoluteUrl:S,insertContent:function(e,t){var n,r;!1===i.isSmartPasteEnabled(e)?B(e,t):(n=e,r=t,c.each([A,O,B],function(e){return!0!==e(n,r,B)}))}},N=function(e){var t,n,r,o,s,d,m=this,g=0,v=(t=e,r="%MCEPASTEBIN%",{create:function(){var e,a,i=t.dom,o=t.getBody(),s=t.dom.getViewPort(t.getWin()).y,u=20;if(n=t.selection.getRng(),t.inline&&(a=t.selection.getScrollContainer())&&a.scrollTop>0&&(s=a.scrollTop),n.getClientRects){var c=function(e){var t,r,a,o=e.startContainer;if((t=e.getClientRects()).length)return t[0];if(e.collapsed&&1===o.nodeType){for(a=o.childNodes[n.startOffset];a&&3===a.nodeType&&!a.data.length;)a=a.nextSibling;if(a)return"BR"===a.tagName&&(r=i.doc.createTextNode("\ufeff"),a.parentNode.insertBefore(r,a),(e=i.createRng()).setStartBefore(r),e.setEndAfter(r),t=e.getClientRects(),i.remove(r)),t.length?t[0]:void 0}}(n);if(c)u=s+(c.top-i.getPos(o).y);else{u=s;var f=n.startContainer;f&&(3===f.nodeType&&f.parentNode!==o&&(f=f.parentNode),1===f.nodeType&&(u=i.getPos(f,a||o).y))}}e=t.dom.add(t.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+u+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"},r),(l.ie||l.gecko)&&i.setStyle(e,"left","rtl"===i.getStyle(o,"direction",!0)?65535:-65535),i.bind(e,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),e.focus(),t.selection.select(e,!0)},remove:function(){if(o()){for(var e=void 0;e=t.dom.get("mcepastebin");)t.dom.remove(e),t.dom.unbind(e);n&&t.selection.setRng(n)}n=null},getEl:o=function(){return t.dom.get("mcepastebin")},getHtml:function(){var e,n,r,a,i,o=function(e,n){e.appendChild(n),t.dom.remove(n,!0)};for(n=c.grep(t.getBody().childNodes,function(e){return"mcepastebin"===e.id}),e=n.shift(),c.each(n,function(t){o(e,t)}),r=(a=t.dom.select("div[id=mcepastebin]",e)).length-1;r>=0;r--)i=t.dom.create("div"),e.insertBefore(i,a[r]),o(i,a[r]);return e?e.innerHTML:""},getLastRng:function(){return n},isDefault:function(){var e,t=o();return(e=t)&&"mcepastebin"===e.id&&s(t.innerHTML)},isDefaultContent:s=function(e){return e===r}}),h="data:text/mce-internal,",y=C.createIdGenerator("mceclip");function b(t,n){var r=n||p.isMarked(t),a=M.process(e,p.unmark(t),r);!1===a.cancelled&&H.insertContent(e,a.content)}function x(t){t=e.dom.encode(t).replace(/\r\n/g,"\n"),b(t=P.convert(t,e.settings.forced_root_block,e.settings.forced_root_block_attrs),!1)}function w(e){var t={};if(e){if(e.getData){var n=e.getData("Text");n&&n.length>0&&-1===n.indexOf(h)&&(t["text/plain"]=n)}if(e.types)for(var r=0;r<e.types.length;r++){var a=e.types[r];try{t[a]=e.getData(a)}catch(i){t[a]=""}}}return t}function T(e){return k(e,"text/html")||k(e,"text/plain")}function _(t,n,r){t&&(e.selection.setRng(t),t=null);var a,i,o,s,l,u,c=n.result,f=-1!==(i=(a=c).indexOf(","))?a.substr(i+1):null,d=y(),m=e.settings.images_reuse_filename&&r.name?(o=r.name,(s=o.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?e.dom.encode(s[1]):null):d,p=new Image;if(p.src=c,l=e.settings,u=p,!l.images_dataimg_filter||l.images_dataimg_filter(u)){var g,v=e.editorUpload.blobCache,h=void 0;(g=v.findFirst(function(e){return e.base64()===f}))?h=g:(h=v.create(d,r,f,m),v.add(h)),b('<img src="'+h.blobUri()+'">',!1)}else b('<img src="'+c+'">',!1)}function D(t,n){var r=t.clipboardData||t.dataTransfer;function a(e){var r,a,i,o=!1;if(e)for(r=0;r<e.length;r++)if(a=e[r],/^image\/(jpeg|png|gif|bmp)$/.test(a.type)){var s=a.getAsFile?a.getAsFile():a;(i=new window.FileReader).onload=_.bind(null,n,i,s),i.readAsDataURL(s),t.preventDefault(),o=!0}return o}if(e.settings.paste_data_images&&r)return a(r.items)||a(r.files)}function k(e,t){return t in e&&e[t].length>0}function R(e){return f.metaKeyPressed(e)&&86===e.keyCode||e.shiftKey&&45===e.keyCode}function E(){function t(t,n,r,a){var i,o;k(t,"text/html")?i=t["text/html"]:(i=v.getHtml(),a=a||p.isMarked(i),v.isDefaultContent(i)&&(r=!0)),i=C.trimHtml(i),v.remove(),o=!1===a&&P.isPlainText(i),i.length&&!o||(r=!0),r&&(i=k(t,"text/plain")&&o?t["text/plain"]:C.innerText(i)),v.isDefaultContent(i)?n||e.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):r?x(i):b(i,a)}e.on("keydown",function(t){function n(e){R(e)&&!e.isDefaultPrevented()&&v.remove()}if(R(t)&&!t.isDefaultPrevented()){if((d=t.shiftKey&&86===t.keyCode)&&l.webkit&&-1!==navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),g=(new Date).getTime(),l.ie&&d)return t.preventDefault(),void a.firePaste(e,!0);v.remove(),v.create(),e.once("keyup",n),e.once("paste",function(){e.off("keyup",n)})}}),e.on("paste",function(n){var r,a,i=(new Date).getTime(),o=(r=w(n.clipboardData||e.getDoc().dataTransfer),C.isMsEdge()?c.extend(r,{"text/html":""}):r),s=(new Date).getTime()-i,f=(new Date).getTime()-g-s<1e3,h="text"===m.pasteFormat||d,P=k(o,p.internalHtmlMime());d=!1,n.isDefaultPrevented()||(a=n.clipboardData,-1!==navigator.userAgent.indexOf("Android")&&a&&a.items&&0===a.items.length)?v.remove():T(o)||!D(n,v.getLastRng()||e.selection.getRng())?(f||n.preventDefault(),!l.ie||f&&!n.ieFake||k(o,"text/html")||(v.create(),e.dom.bind(v.getEl(),"paste",function(e){e.stopPropagation()}),e.getDoc().execCommand("Paste",!1,null),o["text/html"]=v.getHtml()),k(o,"text/html")?(n.preventDefault(),P||(P=p.isMarked(o["text/html"])),t(o,f,h,P)):u.setEditorTimeout(e,function(){t(o,f,h,P)},0)):v.remove()})}m.pasteFormat=i.isPasteAsTextEnabled(e)?"text":"html",m.pasteHtml=b,m.pasteText=x,m.pasteImageData=D,m.getDataTransferItems=w,m.hasHtmlOrText=T,m.hasContentType=k,e.on("preInit",function(){var t;E(),e.parser.addNodeFilter("img",function(n,r,a){function i(e){e.attr("data-mce-object")||t===l.transparentSrc||e.remove()}if(!e.settings.paste_data_images&&(s=a).data&&!0===s.data.paste)for(var o=n.length;o--;)(t=n[o].attributes.map.src)&&(0===t.indexOf("webkit-fake-url")?i(n[o]):e.settings.allow_html_data_urls||0!==t.indexOf("data:")||i(n[o]));var s})})},L=function(){},$=function(e,t,n){if(r=e,!1!==l.iOS||r===undefined||"function"!=typeof r.setData||!0===C.isMsEdge())return!1;try{return e.clearData(),e.setData("text/html",t),e.setData("text/plain",n),e.setData(p.internalHtmlMime(),t),!0}catch(a){return!1}var r},W=function(e,t,n,r){$(e.clipboardData,t.html,t.text)?(e.preventDefault(),r()):n(t.html,r)},j=function(e){return function(t,n){var r=p.mark(t),a=e.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),i=e.dom.create("div",{contenteditable:"true"},r);e.dom.setStyles(a,{position:"fixed",left:"-3000px",width:"1000px",overflow:"hidden"}),a.appendChild(i),e.dom.add(e.getBody(),a);var o=e.selection.getRng();i.focus();var s=e.dom.createRng();s.selectNodeContents(i),e.selection.setRng(s),setTimeout(function(){a.parentNode.removeChild(a),e.selection.setRng(o),n()},0)}},U=function(e){return{html:e.selection.getContent({contextual:!0}),text:e.selection.getContent({format:"text"})}},V=function(e){var t,n;e.on("cut",(t=e,function(e){!1===t.selection.isCollapsed()&&W(e,U(t),j(t),function(){setTimeout(function(){t.execCommand("Delete")},0)})})),e.on("copy",(n=e,function(e){!1===n.selection.isCollapsed()&&W(e,U(n),j(n),L)}))},z=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),K=function(e,t){return z.getCaretRangeFromPoint(t.clientX,t.clientY,e.getDoc())},G=function(e,t){e.focus(),e.selection.setRng(t)},X=function(e,t,n){i.shouldBlockDrop(e)&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),i.shouldPasteDataImages(e)||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.on("drop",function(r){var a,o;if(o=K(e,r),!r.isDefaultPrevented()&&!n.get()){a=t.getDataTransferItems(r.dataTransfer);var s,l=t.hasContentType(a,p.internalHtmlMime());if((t.hasHtmlOrText(a)&&(!(s=a["text/plain"])||0!==s.indexOf("file://"))||!t.pasteImageData(r,o))&&o&&i.shouldFilterDrop(e)){var c=a["mce-internal"]||a["text/html"]||a["text/plain"];c&&(r.preventDefault(),u.setEditorTimeout(e,function(){e.undoManager.transact(function(){a["mce-internal"]&&e.execCommand("Delete"),G(e,o),c=C.trimHtml(c),a["text/html"]?t.pasteHtml(c,l):t.pasteText(c)})}))}}}),e.on("dragstart",function(e){n.set(!0)}),e.on("dragover dragend",function(t){i.shouldPasteDataImages(e)&&!1===n.get()&&(t.preventDefault(),G(e,K(e,t))),"dragend"===t.type&&n.set(!1)})},q=function(e){var t=e.plugins.paste,n=i.getPreProcess(e);n&&e.on("PastePreProcess",function(e){n.call(t,t,e)});var r=i.getPostProcess(e);r&&e.on("PastePostProcess",function(e){r.call(t,t,e)})};function Y(e,t){e.on("PastePreProcess",function(n){n.content=t(e,n.content,n.internal,n.wordContent)})}function Z(e,t){if(!R.isWordContent(t))return t;var n=[];c.each(e.schema.getBlockElements(),function(e,t){n.push(t)});var r=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return t=C.filter(t,[[r,"$1"]]),t=C.filter(t,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function J(e,t,n,r){if(r||n)return t;var a=i.getWebkitStyles(e);if(!1===i.shouldRemoveWebKitStyles(e)||"all"===a)return t;if(a&&(a=a.split(/[, ]/)),a){var o=e.dom,s=e.selection.getNode();t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,t,n,r){var i=o.parseStyle(o.decode(n),"span"),l={};if("none"===a)return t+r;for(var u=0;u<a.length;u++){var c=i[a[u]],f=o.getStyle(s,a[u],!0);/color/.test(a[u])&&(c=o.toHex(c),f=o.toHex(f)),f!==c&&(l[a[u]]=c)}return(l=o.serializeStyle(l,"span"))?t+' style="'+l+'"'+r:t+r})}else t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return t=t.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}function Q(e,t){e.$("a",t).find("font,u").each(function(t,n){e.dom.remove(n,!0)})}var ee=function(e){var t,n;l.webkit&&Y(e,J),l.ie&&(Y(e,Z),n=Q,(t=e).on("PastePostProcess",function(e){n(t,e.node)}))},te=function(e){return function(){return e}},ne=function(e){for(var t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var a=t.concat(n);return e.apply(null,a)}},re=(te(!1),te(!0),function(e,t){var n=ne((te(!1),te(!0),function(e,t,n){var r=n.control;r.active("text"===t.pasteFormat),e.on("PastePlainTextToggle",function(e){r.active(e.state)})}),e,t);e.addButton("pastetext",{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:t.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})}),ae=e(!1);t.add("paste",function(t){if(!1===n(t)){var a=new N(t),i=ee(t),o=e(!1);return re(t,a),s(t,a,ae),q(t),V(t),X(t,a,o),r(a,i)}})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env"),n=function(e){return e.getParam("pagebreak_separator","\x3c!-- pagebreak --\x3e")},t=function(e){return e.getParam("pagebreak_split_block",!1)},r=function(){return"mce-pagebreak"},c=function(){return'<img src="'+a.transparentSrc+'" class="mce-pagebreak" data-mce-resize="false" data-mce-placeholder />'},o=function(e){var a=n(e),r=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi");e.on("BeforeSetContent",function(e){e.content=e.content.replace(r,c())}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(n){for(var r,c,o=n.length;o--;)if((c=(r=n[o]).attr("class"))&&-1!==c.indexOf("mce-pagebreak")){var i=r.parent;if(e.schema.getBlockElements()[i.name]&&t(e)){i.type=3,i.value=a,i.raw=!0,r.remove();continue}r.type=3,r.value=a,r.raw=!0}})})},i=c,g=r,u=function(e){e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent("<p>"+i()+"</p>"):e.insertContent(i())})},m=function(e){e.on("ResolveName",function(a){"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,g())&&(a.name="pagebreak")})},s=function(e){e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"})};e.add("pagebreak",function(e){u(e),s(e),o(e),m(e)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t){return t.getParam("noneditable_noneditable_class","mceNonEditable")},r=function(t){return t.getParam("noneditable_editable_class","mceEditable")},a=function(t){var n=t.getParam("noneditable_regexp",[]);return n&&n.constructor===RegExp?[n]:n},i=function(t){return function(n){return-1!==(" "+n.attr("class")+" ").indexOf(t)}},o=function(t,n,e){return function(r){var a=arguments,i=a[a.length-2],o=i>0?n.charAt(i-1):"";if('"'===o)return r;if(">"===o){var c=n.lastIndexOf("<",i);if(-1!==c&&-1!==n.substring(c,i).indexOf('contenteditable="false"'))return r}return'<span class="'+e+'" data-mce-content="'+t.dom.encode(a[0])+'">'+t.dom.encode("string"==typeof a[1]?a[1]:a[0])+"</span>"}},c=function(t){var c,l,u="contenteditable";c=" "+n.trim(r(t))+" ",l=" "+n.trim(e(t))+" ";var f=i(c),s=i(l),d=a(t);t.on("PreInit",function(){d.length>0&&t.on("BeforeSetContent",function(n){!function(t,n,r){var a=n.length,i=r.content;if("raw"!==r.format){for(;a--;)i=i.replace(n[a],o(t,i,e(t)));r.content=i}}(t,d,n)}),t.parser.addAttributeFilter("class",function(t){for(var n,e=t.length;e--;)n=t[e],f(n)?n.attr(u,"true"):s(n)&&n.attr(u,"false")}),t.serializer.addAttributeFilter(u,function(t){for(var n,e=t.length;e--;)n=t[e],(f(n)||s(n))&&(d.length>0&&n.attr("data-mce-content")?(n.name="#text",n.type=3,n.raw=!0,n.value=n.attr("data-mce-content")):n.attr(u,null))})})};t.add("noneditable",function(t){c(t)})}();!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=function(n,e){var t,a=(t=n).plugins.visualchars&&t.plugins.visualchars.isEnabled()?'<span class="mce-nbsp"> </span>':" ";n.insertContent(function(n,e){for(var t="",a=0;a<e;a++)t+=n;return t}(a,e)),n.dom.setAttrib(n.dom.select("span.mce-nbsp"),"data-mce-bogus","1")},t=function(n){n.addCommand("mceNonBreaking",function(){e(n,1)})},a=tinymce.util.Tools.resolve("tinymce.util.VK"),i=function(n){var e=n.getParam("nonbreaking_force_tab",0);return"boolean"==typeof e?!0===e?3:0:e},o=function(n){var t=i(n);t>0&&n.on("keydown",function(i){if(i.keyCode===a.TAB&&!i.isDefaultPrevented()){if(i.shiftKey)return;i.preventDefault(),i.stopImmediatePropagation(),e(n,t)}})},r=function(n){n.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),n.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"})};n.add("nonbreaking",function(n){t(n),r(n),o(n)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),r=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=function(e){return e.getParam("media_scripts")},a=function(e){return e.getParam("audio_template_callback")},o=function(e){return e.getParam("video_template_callback")},n=function(e){return e.getParam("media_live_embeds",!0)},c=function(e){return e.getParam("media_filter_html",!0)},s=function(e){return e.getParam("media_url_resolver")},u=function(e){return e.getParam("media_alt_source",!0)},l=function(e){return e.getParam("media_poster",!0)},m=function(e){return e.getParam("media_dimensions",!0)},d=tinymce.util.Tools.resolve("tinymce.html.SaxParser"),h=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),p=function(e,t){if(e)for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r].filter))return e[r]},f=function(e){return function(t){return t?t.style[e].replace(/px$/,""):""}},g=function(e){return function(t,r){var i;t&&(t.style[e]=/^[0-9.]+$/.test(i=r)?i+"px":i)}},w={getMaxWidth:f("maxWidth"),getMaxHeight:f("maxHeight"),setMaxWidth:g("maxWidth"),setMaxHeight:g("maxHeight")},v=h.DOM,b=function(e){return v.getAttrib(e,"data-ephox-embed-iri")},y=function(e,t){return s=t,u=v.createFragment(s),""!==b(u.firstChild)?(n=t,c=v.createFragment(n).firstChild,{type:"ephox-embed-iri",source1:b(c),source2:"",poster:"",width:w.getMaxWidth(c),height:w.getMaxHeight(c)}):(i=e,a=t,o={},new d({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,t){if(o.source1||"param"!==e||(o.source1=t.map.movie),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(o.type||(o.type=e),o=r.extend(t.map,o)),"script"===e){var a=p(i,t.map.src);if(!a)return;o={type:"script",source1:t.map.src,width:a.width,height:a.height}}"source"===e&&(o.source1?o.source2||(o.source2=t.map.src):o.source1=t.map.src),"img"!==e||o.poster||(o.poster=t.map.src)}}).parse(a),o.source1=o.source1||o.src||o.data,o.source2=o.source2||"",o.poster=o.poster||"",o);var i,a,o,n,c,s,u},x=tinymce.util.Tools.resolve("tinymce.util.Promise"),j=function(e){var t={mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"}[e.toLowerCase().split(".").pop()];return t||""},M=tinymce.util.Tools.resolve("tinymce.html.Writer"),_=tinymce.util.Tools.resolve("tinymce.html.Schema"),C=h.DOM,S=function(e,t){var r,i,a,o;for(r in t)if(a=""+t[r],e.map[r])for(i=e.length;i--;)(o=e[i]).name===r&&(a?(e.map[r]=a,o.value=a):(delete e.map[r],e.splice(i,1)));else a&&(e.push({name:r,value:a}),e.map[r]=a)},k=function(e,t){var r,i,a=C.createFragment(e).firstChild;return w.setMaxWidth(a,t.width),w.setMaxHeight(a,t.height),r=a.outerHTML,i=M(),new d(i).parse(r),i.getContent()},A=function(e,t,r){return u=e,l=C.createFragment(u),""!==C.getAttrib(l.firstChild,"data-ephox-embed-iri")?k(e,t):(i=e,a=t,o=r,c=M(),s=0,new d({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){c.comment(e)},cdata:function(e){c.cdata(e)},text:function(e,t){c.text(e,t)},start:function(e,t,r){switch(e){case"video":case"object":case"embed":case"img":case"iframe":a.height!==undefined&&a.width!==undefined&&S(t,{width:a.width,height:a.height})}if(o)switch(e){case"video":S(t,{poster:a.poster,src:""}),a.source2&&S(t,{src:""});break;case"iframe":S(t,{src:a.source1});break;case"source":if(++s<=2&&(S(t,{src:a["source"+s],type:a["source"+s+"mime"]}),!a["source"+s]))return;break;case"img":if(!a.poster)return;n=!0}c.start(e,t,r)},end:function(e){if("video"===e&&o)for(var t=1;t<=2;t++)if(a["source"+t]){var r=[];r.map={},s<t&&(S(r,{src:a["source"+t],type:a["source"+t+"mime"]}),c.start("source",r,!0))}if(a.poster&&"object"===e&&o&&!n){var i=[];i.map={},S(i,{src:a.poster,width:a.width,height:a.height}),c.start("img",i,!0)}c.end(e)}},_({})).parse(i),c.getContent());var i,a,o,n,c,s,u,l},F=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\-_]+(?:\?.+)?)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowfullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0",allowfullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],N=function(e,t){var n=r.extend({},t);if(!n.source1&&(r.extend(n,y(i(e),n.embed)),!n.source1))return"";if(n.source2||(n.source2=""),n.poster||(n.poster=""),n.source1=e.convertURL(n.source1,"source"),n.source2=e.convertURL(n.source2,"source"),n.source1mime=j(n.source1),n.source2mime=j(n.source2),n.poster=e.convertURL(n.poster,"poster"),r.each(F,function(e){var t,r,i=e.regex.exec(n.source1);if(i){for(r=e.url,t=0;i[t];t++)r=r.replace("$"+t,function(){return i[t]});n.source1=r,n.type=e.type,n.allowFullscreen=e.allowFullscreen,n.width=n.width||e.w,n.height=n.height||e.h}}),n.embed)return A(n.embed,n,!0);var c=p(i(e),n.source1);c&&(n.type="script",n.width=c.width,n.height=c.height);var s,u,l,m,d,h,f,g,w=a(e),v=o(e);return n.width=n.width||300,n.height=n.height||150,r.each(n,function(t,r){n[r]=e.dom.encode(t)}),"iframe"===n.type?(g=(f=n).allowFullscreen?' allowFullscreen="1"':"",'<iframe src="'+f.source1+'" width="'+f.width+'" height="'+f.height+'"'+g+"></iframe>"):"application/x-shockwave-flash"===n.source1mime?(h='<object data="'+(d=n).source1+'" width="'+d.width+'" height="'+d.height+'" type="application/x-shockwave-flash">',d.poster&&(h+='<img src="'+d.poster+'" width="'+d.width+'" height="'+d.height+'" />'),h+="</object>"):-1!==n.source1mime.indexOf("audio")?(l=n,(m=w)?m(l):'<audio controls="controls" src="'+l.source1+'">'+(l.source2?'\n<source src="'+l.source2+'"'+(l.source2mime?' type="'+l.source2mime+'"':"")+" />\n":"")+"</audio>"):"script"===n.type?'<script src="'+n.source1+'"><\/script>':(s=n,(u=v)?u(s):'<video width="'+s.width+'" height="'+s.height+'"'+(s.poster?' poster="'+s.poster+'"':"")+' controls="controls">\n<source src="'+s.source1+'"'+(s.source1mime?' type="'+s.source1mime+'"':"")+" />\n"+(s.source2?'<source src="'+s.source2+'"'+(s.source2mime?' type="'+s.source2mime+'"':"")+" />\n":"")+"</video>")},O={},P=function(e){return function(t){return N(e,t)}},T=function(e,t){var r,i,a,o,n,c=s(e);return c?(a=t,o=P(e),n=c,new x(function(e,t){var r=function(t){return t.html&&(O[a.source1]=t),e({url:a.source1,html:t.html?t.html:o(a)})};O[a.source1]?r(O[a.source1]):n({url:a.source1},r,t)})):(r=t,i=P(e),new x(function(e){e({html:i(r),url:r.source1})}))},z=function(e){return O.hasOwnProperty(e)},$=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},L=function(e,t){var r=e.find("#width")[0],i=e.find("#height")[0],a=e.find("#constrain")[0];r&&i&&a&&t(r,i,a.checked())},H=function(e,t,r){var i=e.state.get("oldVal"),a=t.state.get("oldVal"),o=e.value(),n=t.value();r&&i&&a&&o&&n&&(o!==i?(n=Math.round(o/i*n),isNaN(n)||t.value(n)):(o=Math.round(n/a*o),isNaN(o)||e.value(o))),$(e,t)},W=function(e){L(e,H)},J=function(e){var t=function(){e(function(e){W(e)})};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},R=function(e){L(e,$)},D=W,E=t.ie&&t.ie<=8?"onChange":"onInput",I=function(e){return function(t){var r=t&&t.msg?"Media embed handler error: "+t.msg:"Media embed handler threw unknown error.";e.notificationManager.open({type:"error",text:r})}},U=function(e,t){return function(a){var o=a.html,n=e.find("#embed")[0],c=r.extend(y(i(t),o),{source1:a.url});e.fromJSON(c),n&&(n.value(o),D(e))}},V=function(e,t){var r=e.dom.select("img[data-mce-object]");e.insertContent(t),function(e,t){var r,i,a=e.dom.select("img[data-mce-object]");for(r=0;r<t.length;r++)for(i=a.length-1;i>=0;i--)t[r]===a[i]&&a.splice(i,1);e.selection.select(a[0])}(e,r),e.nodeChanged()},B=function(e){var t,a,o,n,c,s=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onpaste:function(){setTimeout(function(){T(e,t.toJSON()).then(U(t,e))["catch"](I(e))},1)},onchange:function(i){var a,o;T(e,t.toJSON()).then(U(t,e))["catch"](I(e)),a=t,o=i.meta,r.each(o,function(e,t){a.find("#"+t).value(e)})},onbeforecall:function(e){e.meta=t.toJSON()}}],d=[];if(u(e)&&d.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),l(e)&&d.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),m(e)){var h=J(function(e){e(t),a=t.toJSON(),t.find("#embed").value(A(a.embed,a))});s.push(h)}n=(o=e).selection.getNode(),c=n.getAttribute("data-ephox-embed-iri"),a=c?{source1:c,"data-ephox-embed-iri":c,width:w.getMaxWidth(n),height:w.getMaxHeight(n)}:n.getAttribute("data-mce-object")?y(i(o),o.serializer.serialize(n,{selection:!0})):{};var p={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:function(e){var t=e.selection.getNode();if(t.getAttribute("data-mce-object")||t.getAttribute("data-ephox-embed-iri"))return e.selection.getContent()}(e),multiline:!0,rows:5,label:"Source"};p[E]=function(){a=r.extend({},y(i(e),this.value())),this.parent().parent().fromJSON(a)},t=e.windowManager.open({title:"Insert/edit media",data:a,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Embed",type:"container",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},p]},{title:"Advanced",type:"form",items:d}],onSubmit:function(){var r,i;D(t),r=e,(i=t.toJSON()).embed=A(i.embed,i),i.embed&&z(i.source1)?V(r,i.embed):T(r,i).then(function(e){V(r,e.html)})["catch"](I(r))}}),R(t)},G=function(e){return{showDialog:function(){B(e)}}},q=function(e){e.addCommand("mceMedia",function(){B(e)})},K=tinymce.util.Tools.resolve("tinymce.html.Node"),Q=function(e,t){if(!1===c(e))return t;var r,i=M();return new d({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(e){i.comment(e)},cdata:function(e){i.cdata(e)},text:function(e,t){i.text(e,t)},start:function(t,a,o){if(r=!0,"script"!==t&&"noscript"!==t){for(var n=0;n<a.length;n++){if(0===a[n].name.indexOf("on"))return;"style"===a[n].name&&(a[n].value=e.dom.serializeStyle(e.dom.parseStyle(a[n].value),t))}i.start(t,a,o),r=!1}},end:function(e){r||i.end(e)}},_({})).parse(t),i.getContent()},X=function(e,r){var i,a=r.name;return(i=new K("img",1)).shortEnded=!0,Z(e,r,i),i.attr({width:r.attr("width")||"300",height:r.attr("height")||("audio"===a?"30":"150"),style:r.attr("style"),src:t.transparentSrc,"data-mce-object":a,"class":"mce-object mce-object-"+a}),i},Y=function(e,t){var r,i,a,o=t.name;return(r=new K("span",1)).attr({contentEditable:"false",style:t.attr("style"),"data-mce-object":o,"class":"mce-preview-object mce-object-"+o}),Z(e,t,r),(i=new K(o,1)).attr({src:t.attr("src"),allowfullscreen:t.attr("allowfullscreen"),width:t.attr("width")||"300",height:t.attr("height")||("audio"===o?"30":"150"),frameborder:"0"}),(a=new K("span",1)).attr("class","mce-shim"),r.append(i),r.append(a),r},Z=function(e,t,r){var i,a,o,n,c;for(n=(o=t.attributes).length;n--;)i=o[n].name,a=o[n].value,"width"!==i&&"height"!==i&&"style"!==i&&("data"!==i&&"src"!==i||(a=e.convertURL(a,i)),r.attr("data-mce-p-"+i,a));(c=t.firstChild&&t.firstChild.value)&&(r.attr("data-mce-html",escape(Q(e,c))),r.firstChild=null)},ee=function(e){for(;e=e.parent;)if(e.attr("data-ephox-embed-iri"))return!0;return!1},te=function(e){return function(r){for(var a,o,c=r.length;c--;)(a=r[c]).parent&&(a.parent.attr("data-mce-object")||("script"!==a.name||(o=p(i(e),a.attr("src"))))&&(o&&(o.width&&a.attr("width",o.width.toString()),o.height&&a.attr("height",o.height.toString())),"iframe"===a.name&&n(e)&&t.ceFalse?ee(a)||a.replace(Y(e,a)):ee(a)||a.replace(X(e,a))))}},re=function(e){e.on("preInit",function(){var t=e.schema.getSpecialElements();r.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();r.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",te(e)),e.serializer.addAttributeFilter("data-mce-object",function(t,r){for(var i,a,o,n,c,s,u,l,m=t.length;m--;)if((i=t[m]).parent){for(u=i.attr(r),a=new K(u,1),"audio"!==u&&"script"!==u&&((l=i.attr("class"))&&-1!==l.indexOf("mce-preview-object")?a.attr({width:i.firstChild.attr("width"),height:i.firstChild.attr("height")}):a.attr({width:i.attr("width"),height:i.attr("height")})),a.attr({style:i.attr("style")}),o=(n=i.attributes).length;o--;){var d=n[o].name;0===d.indexOf("data-mce-p-")&&a.attr(d.substr(11),n[o].value)}"script"===u&&a.attr("type","text/javascript"),(c=i.attr("data-mce-html"))&&((s=new K("#text",3)).raw=!0,s.value=Q(e,unescape(c)),a.append(s)),i.replace(a)}})}),e.on("setContent",function(){e.$("span.mce-preview-object").each(function(t,r){var i=e.$(r);0===i.find("span.mce-shim",r).length&&i.append('<span class="mce-shim"></span>')})})},ie=function(e){e.on("ResolveName",function(e){var t;1===e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)})},ae=function(e){e.on("click keyup",function(){var t=e.selection.getNode();t&&e.dom.hasClass(t,"mce-preview-object")&&e.dom.getAttrib(t,"data-mce-selected")&&t.setAttribute("data-mce-selected","2")}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");"audio"!==t&&"script"!==t||e.preventDefault()}),e.on("objectResized",function(e){var t,r=e.target;r.getAttribute("data-mce-object")&&(t=r.getAttribute("data-mce-html"))&&(t=unescape(t),r.setAttribute("data-mce-html",escape(A(t,{width:e.width,height:e.height}))))})},oe=function(e){e.addButton("media",{tooltip:"Insert/edit media",cmd:"mceMedia",stateSelector:["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"]}),e.addMenuItem("media",{icon:"media",text:"Media",cmd:"mceMedia",context:"insert",prependToContext:!0})};e.add("media",function(e){return q(e),oe(e),ie(e),re(e),ae(e),G(e)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),n=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),o=tinymce.util.Tools.resolve("tinymce.util.VK"),r=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),s=function(e){return e&&"BR"===e.nodeName},d=function(e){return e&&3===e.nodeType},l=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},c=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},f=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},u=s,m=function(e){return e.parentNode.firstChild===e},g=function(e){return e.parentNode.lastChild===e},p=function(e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},v=function(e,t){return e&&e.nodeName in t},h=function(e,t){return!!s(t)&&!(!e.isBlock(t.nextSibling)||s(t.previousSibling))},C=function(e,t,n){var o=e.isEmpty(t);return!(n&&e.select("span[data-mce-type=bookmark]",t).length>0)&&o},y=function(e,t){return e.isChildOf(t,e.getRoot())},N=function(e,n){var o=t.getNode(e,n);return c(e)&&d(o)?{container:o,offset:n>=e.childNodes.length?o.data.length:0}:{container:e,offset:n}},L=function(e){var t=e.cloneRange(),n=N(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);var o=N(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},S=a.DOM,b=function(e){var t={},n=function(n){var o,r,i;r=e[n?"startContainer":"endContainer"],i=e[n?"startOffset":"endOffset"],1===r.nodeType&&(o=S.create("span",{"data-mce-type":"bookmark"}),r.hasChildNodes()?(i=Math.min(i,r.childNodes.length-1),n?r.insertBefore(o,r.childNodes[i]):S.insertAfter(o,r.childNodes[i])):r.appendChild(o),r=o,i=0),t[n?"startContainer":"endContainer"]=r,t[n?"startOffset":"endOffset"]=i};return n(!0),e.collapsed||n(),t},D=function(e){function t(t){var n,o,r;n=r=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],n&&(1===n.nodeType&&(o=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1}(n),n=n.parentNode,S.remove(r),!n.hasChildNodes()&&S.isBlock(n)&&n.appendChild(S.create("br"))),e[t?"startContainer":"endContainer"]=n,e[t?"startOffset":"endOffset"]=o)}t(!0),t();var n=S.createRng();return n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),L(n)},k=a.DOM,T=function(e,t){var n,o=t.parentNode;"LI"===o.nodeName&&o.firstChild===t&&((n=o.previousSibling)&&"LI"===n.nodeName?(n.appendChild(t),C(e,o)&&k.remove(o)):k.setStyle(o,"listStyleType","none")),l(o)&&(n=o.previousSibling)&&"LI"===n.nodeName&&n.appendChild(t)},I=function(e,t){i.each(i.grep(e.select("ol,ul",t)),function(t){T(e,t)})},B=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),R=function(e){var t=e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",O(e,t))},O=function(e,t){var n=e.dom.getParents(t,"TD,TH");return n.length>0?n[0]:e.getBody()},E={getParentList:R,getSelectedSubLists:function(e){var t,n,o,r=R(e),a=e.selection.getSelectedBlocks();return o=a,(n=r)&&1===o.length&&o[0]===n?(t=r,i.grep(t.querySelectorAll("ol,ul,dl"),function(e){return l(e)})):i.grep(a,function(e){return l(e)&&r!==e})},getSelectedListItems:function(e){var t,n,o,r=e.selection.getSelectedBlocks();return i.grep((t=e,n=r,o=i.map(n,function(e){var n=t.dom.getParent(e,"li,dd,dt",O(t,e));return n||e}),B.unique(o)),function(e){return c(e)})},getClosestListRootElm:O},A=tinymce.util.Tools.resolve("tinymce.Env"),P=a.DOM,x=function(e,t,n){var o,r,i,a=P.createFragment(),s=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&((r=P.create(n)).tagName===e.settings.forced_root_block&&P.setAttribs(r,e.settings.forced_root_block_attrs),v(t.firstChild,s)||a.appendChild(r)),t)for(;o=t.firstChild;){var d=o.nodeName;i||"SPAN"===d&&"bookmark"===o.getAttribute("data-mce-type")||(i=!0),v(o,s)?(a.appendChild(o),r=null):n?(r||(r=P.create(n),a.appendChild(r)),r.appendChild(o)):a.appendChild(o)}return e.settings.forced_root_block?i||A.ie&&!(A.ie>10)||r.appendChild(P.create("br",{"data-mce-bogus":"1"})):a.appendChild(P.create("br")),a},_=a.DOM,M=function(e,t,n,o){var r,a,s,d,l;for(s=_.select('span[data-mce-type="bookmark"]',t),o=o||x(e,n),(r=_.createRng()).setStartAfter(n),r.setEndAfter(t),d=(a=r.extractContents()).firstChild;d;d=d.firstChild)if("LI"===d.nodeName&&e.dom.isEmpty(d)){_.remove(d);break}e.dom.isEmpty(a)||_.insertAfter(a,t),_.insertAfter(o,t),C(e.dom,n.parentNode)&&(l=n.parentNode,i.each(s,function(e){l.parentNode.insertBefore(e,n.parentNode)}),_.remove(l)),_.remove(n),C(e.dom,t)&&_.remove(t)},U=a.DOM,H=function(e,t){C(e,t)&&U.remove(t)},$=function(e,t){var n,o=t.parentNode,r=o.parentNode;return!(o!==e.getBody()&&("DD"===t.nodeName?(U.rename(t,"DT"),0):m(t)&&g(t)?("LI"===r.nodeName?(U.insertAfter(t,r),H(e.dom,r),U.remove(o)):l(r)?U.remove(o,!0):(r.insertBefore(x(e,t),o),U.remove(o)),0):m(t)?("LI"===r.nodeName?(U.insertAfter(t,r),t.appendChild(o),H(e.dom,r)):l(r)?r.insertBefore(t,o):(r.insertBefore(x(e,t),o),U.remove(t)),0):g(t)?("LI"===r.nodeName?U.insertAfter(t,r):l(r)?U.insertAfter(t,o):(U.insertAfter(x(e,t),o),U.remove(t)),0):("LI"===r.nodeName?(o=r,n=x(e,t,"LI")):n=l(r)?x(e,t,"LI"):x(e,t),M(e,o,t,n),I(e.dom,o.parentNode),0)))},w=$,K=function(e){var t=E.getSelectedListItems(e);if(t.length){var n=b(e.selection.getRng(!0)),o=void 0,r=void 0,i=E.getClosestListRootElm(e,e.selection.getStart(!0));for(o=t.length;o--;)for(var a=t[o].parentNode;a&&a!==i;){for(r=t.length;r--;)if(t[r]===a){t.splice(o,1);break}a=a.parentNode}for(o=0;o<t.length&&($(e,t[o])||0!==o);o++);return e.selection.setRng(D(n)),e.nodeChanged(),!0}},Q=function(e,t){i.each(t,function(t,n){e.setAttribute(n,t)})},W=function(e,t,n){var o,r,a,s,d,l,c;o=e,r=t,s=(a=n)["list-style-type"]?a["list-style-type"]:null,o.setStyle(r,"list-style-type",s),d=e,Q(l=t,(c=n)["list-attributes"]),i.each(d.select("li",l),function(e){Q(e,c["list-item-attributes"])})},j=function(e,t,n,o){var r,i;for(r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1===r.nodeType&&(r=r.childNodes[Math.min(i,r.childNodes.length-1)]||r),!n&&u(r.nextSibling)&&(r=r.nextSibling);r.parentNode!==o;){if(p(e,r))return r;if(/^(TD|TH)$/.test(r.parentNode.nodeName))return r;r=r.parentNode}return r},q=function(e,t,n){var o,a=e.selection.getRng(!0),s="LI",d=E.getClosestListRootElm(e,e.selection.getStart(!0)),c=e.dom;n=n||{},"false"!==c.getContentEditable(e.selection.getNode())&&("DL"===(t=t.toUpperCase())&&(s="DT"),o=b(a),i.each(function(e,t,n){for(var o,a=[],s=e.dom,d=j(e,t,!0,n),l=j(e,t,!1,n),c=[],f=d;f&&(c.push(f),f!==l);f=f.nextSibling);return i.each(c,function(t){if(p(e,t))return a.push(t),void(o=null);if(s.isBlock(t)||u(t))return u(t)&&s.remove(t),void(o=null);var i=t.nextSibling;r.isBookmarkNode(t)&&(p(e,i)||!i&&t.parentNode===n)?o=null:(o||(o=s.create("p"),t.parentNode.insertBefore(o,t),a.push(o)),o.appendChild(t))}),a}(e,a,d),function(o){var r,i,a,d,f,u;(i=o.previousSibling)&&l(i)&&i.nodeName===t&&(a=i,d=n,f=c.getStyle(a,"list-style-type"),u=d?d["list-style-type"]:"",f===(u=null===u?"":u))?(r=i,o=c.rename(o,s),i.appendChild(o)):(r=c.create(t),o.parentNode.insertBefore(r,o),r.appendChild(o),o=c.rename(o,s)),W(c,r,n),z(e.dom,r)}),e.selection.setRng(D(o)))},F=function(e){var t=b(e.selection.getRng(!0)),n=E.getClosestListRootElm(e,e.selection.getStart(!0)),o=E.getSelectedListItems(e),r=i.grep(o,function(t){return e.dom.isEmpty(t)});o=i.grep(o,function(t){return!e.dom.isEmpty(t)}),i.each(r,function(t){C(e.dom,t)&&w(e,t)}),i.each(o,function(t){var o,r;if(t.parentNode!==e.getBody()){for(o=t;o&&o!==n;o=o.parentNode)l(o)&&(r=o);M(e,r,t),I(e.dom,r.parentNode)}}),e.selection.setRng(D(t))},V=function(e,t,n){return d=n,(s=t)&&d&&l(s)&&s.nodeName===d.nodeName&&(i=t,a=n,(r=e).getStyle(i,"list-style-type",!0)===r.getStyle(a,"list-style-type",!0))&&(o=n,t.className===o.className);var o,r,i,a,s,d},z=function(e,t){var n,o;if(n=t.nextSibling,V(e,t,n)){for(;o=n.firstChild;)t.appendChild(o);e.remove(n)}if(n=t.previousSibling,V(e,t,n)){for(;o=n.lastChild;)t.insertBefore(o,t.firstChild);e.remove(n)}},G=function(e,t,n,o,r){if(t.nodeName!==o||J(r)){var a=b(e.selection.getRng(!0));i.each([t].concat(n),function(t){!function(e,t,n,o){if(t.nodeName!==n){var r=e.rename(t,n);W(e,r,o)}else W(e,t,o)}(e.dom,t,o,r)}),e.selection.setRng(D(a))}else F(e)},J=function(e){return"list-style-type"in e},X={toggleList:function(e,t,n){var o=E.getParentList(e),r=E.getSelectedSubLists(e);n=n||{},o&&r.length>0?G(e,o,r,t,n):function(e,t,n,o){if(t!==e.getBody())if(t)if(t.nodeName!==n||J(o)){var r=b(e.selection.getRng(!0));W(e.dom,t,o),z(e.dom,e.dom.rename(t,n)),e.selection.setRng(D(r))}else F(e);else q(e,n,o)}(e,o,t,n)},removeList:F,mergeWithAdjacentLists:z},Y=function(e,o,r,i){var a,s,d=o.startContainer,l=o.startOffset;if(3===d.nodeType&&(r?l<d.data.length:l>0))return d;for(a=e.schema.getNonEmptyElements(),1===d.nodeType&&(d=t.getNode(d,l)),s=new n(d,i),r&&h(e.dom,d)&&s.next();d=s[r?"next":"prev2"]();){if("LI"===d.nodeName&&!d.hasChildNodes())return d;if(a[d.nodeName])return d;if(3===d.nodeType&&d.data.length>0)return d}},Z=function(e,t){var n=t.childNodes;return 1===n.length&&!l(n[0])&&e.isBlock(n[0])},ee=function(e,t,n){var o,r,i,a;if(r=Z(e,n)?n.firstChild:n,Z(i=e,a=t)&&i.remove(a.firstChild,!0),!C(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},te=function(e,t,n){var o,r,i=t.parentNode;y(e,t)&&y(e,n)&&(l(n.lastChild)&&(r=n.lastChild),i===n.lastChild&&u(i.previousSibling)&&e.remove(i.previousSibling),(o=n.lastChild)&&u(o)&&t.hasChildNodes()&&e.remove(o),C(e,n,!0)&&e.$(n).empty(),ee(e,t,n),r&&n.appendChild(r),e.remove(t),C(e,i)&&i!==e.getRoot()&&e.remove(i))},ne=function(e,t,n,o){var r,i,a,s=e.dom;if(s.isEmpty(o))i=n,a=o,(r=e).dom.$(a).empty(),te(r.dom,i,a),r.selection.setCursorLocation(a);else{var d=b(t);te(s,n,o),e.selection.setRng(D(d))}},oe=function(e,t){var n,o,r,i=e.dom,a=e.selection,s=a.getStart(),d=E.getClosestListRootElm(e,s),l=i.getParent(a.getStart(),"LI",d);if(l){if((n=l.parentNode)===e.getBody()&&C(i,n))return!0;if(o=L(a.getRng(!0)),(r=i.getParent(Y(e,o,t,d),"LI",d))&&r!==l)return t?ne(e,o,r,l):function(e,t,n,o){var r=b(t);te(e.dom,n,o);var i=D(r);e.selection.setRng(i)}(e,o,l,r),!0;if(!r&&!t&&X.removeList(e))return!0}return!1},re=function(e,t){return oe(e,t)||function(e,t){var n=e.dom,o=e.selection.getStart(),r=E.getClosestListRootElm(e,o),i=n.getParent(o,n.isBlock,r);if(i&&n.isEmpty(i)){var a=L(e.selection.getRng(!0)),s=n.getParent(Y(e,a,t,r),"LI",r);if(s)return e.undoManager.transact(function(){var o,a,d,l;a=i,d=r,l=(o=n).getParent(a.parentNode,o.isBlock,d),o.remove(a),l&&o.isEmpty(l)&&o.remove(l),X.mergeWithAdjacentLists(n,s.parentNode),e.selection.select(s,!0),e.selection.collapse(t)}),!0}return!1}(e,t)},ie=function(e,t){return e.selection.isCollapsed()?re(e,t):(o=(n=e).selection.getStart(),r=E.getClosestListRootElm(n,o),!!(n.dom.getParent(o,"LI,DT,DD",r)||E.getSelectedListItems(n).length>0)&&(n.undoManager.transact(function(){n.execCommand("Delete"),I(n.dom,n.getBody())}),!0));var n,o,r},ae=function(e){e.on("keydown",function(t){t.keyCode===o.BACKSPACE?ie(e,!1)&&t.preventDefault():t.keyCode===o.DELETE&&ie(e,!0)&&t.preventDefault()})},se=ie,de=function(e){return{backspaceDelete:function(t){se(e,t)}}},le=a.DOM,ce=function(e,t){var n;if(l(e)){for(;n=e.firstChild;)t.appendChild(n);le.remove(e)}},fe=function(e){var t,n,o,r,i=E.getSelectedListItems(e);if(i.length){for(var a=b(e.selection.getRng(!0)),s=0;s<i.length&&(t=i[s],n=void 0,o=void 0,r=void 0,("DT"===t.nodeName?(le.rename(t,"DD"),1):(n=t.previousSibling)&&l(n)?(n.appendChild(t),1):n&&"LI"===n.nodeName&&l(n.lastChild)?(n.lastChild.appendChild(t),ce(t.lastChild,n.lastChild),1):(n=t.nextSibling)&&l(n)?(n.insertBefore(t,n.firstChild),1):(n=t.previousSibling)&&"LI"===n.nodeName&&(o=le.create(t.parentNode.nodeName),(r=le.getStyle(t.parentNode,"listStyleType"))&&le.setStyle(o,"listStyleType",r),n.appendChild(o),o.appendChild(t),ce(t.lastChild,o),1))||0!==s);s++);return e.selection.setRng(D(a)),e.nodeChanged(),!0}},ue=function(e,t){return function(){var n=e.dom.getParent(e.selection.getStart(),"UL,OL,DL");return n&&n.nodeName===t}},me=function(e){e.on("BeforeExecCommand",function(t){var n,o=t.command.toLowerCase();if("indent"===o?fe(e)&&(n=!0):"outdent"===o&&K(e)&&(n=!0),n)return e.fire("ExecCommand",{command:t.command}),t.preventDefault(),!0}),e.addCommand("InsertUnorderedList",function(t,n){X.toggleList(e,"UL",n)}),e.addCommand("InsertOrderedList",function(t,n){X.toggleList(e,"OL",n)}),e.addCommand("InsertDefinitionList",function(t,n){X.toggleList(e,"DL",n)}),e.addQueryStateHandler("InsertUnorderedList",ue(e,"UL")),e.addQueryStateHandler("InsertOrderedList",ue(e,"OL")),e.addQueryStateHandler("InsertDefinitionList",ue(e,"DL"))},ge=function(e){return e.getParam("lists_indent_on_tab",!0)},pe=function(e){var t;ge(e)&&(t=e).on("keydown",function(e){e.keyCode!==o.TAB||o.metaKeyPressed(e)||t.dom.getParent(t.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?K(t):fe(t))}),ae(e)},ve=function(e,t){return function(n){var o=n.control;e.on("NodeChange",function(e){var n=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}(e.parents,f),r=-1!==n?e.parents.slice(0,n):e.parents,a=i.grep(r,l);o.active(a.length>0&&a[0].nodeName===t)})}},he=function(e){var t,n,o,r;n="advlist",o=(t=e).settings.plugins?t.settings.plugins:"",-1===i.inArray(o.split(/[ ,]/),n)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ve(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ve(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:(r=e,function(e){var t=e.control;r.on("nodechange",function(){var e=E.getSelectedListItems(r),n=e.length>0&&m(e[0]);t.disabled(n)})})})};e.add("lists",function(e){return pe(e),he(e),me(e),de(e)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.VK"),n=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},r=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},l=function(t){return t.link_list},u=function(t){return"string"==typeof t.default_link_target},c=function(t){return t.default_link_target},s=n,f=function(t,e){t.settings.target_list=e},d=function(t){return!1!==n(t)},m=o,v=function(t){return o(t)!==undefined},g=i,h=function(t){return i(t)!==undefined},x=function(t){return!1!==t.link_title},p=function(t){return"boolean"==typeof t.allow_unsafe_link_target&&t.allow_unsafe_link_target},y=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),k=tinymce.util.Tools.resolve("tinymce.Env"),b=function(t){if(!k.ie||k.ie>10){var e=document.createElement("a");e.target="_blank",e.href=t,e.rel="noreferrer noopener";var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),r=e,a=n,document.body.appendChild(r),r.dispatchEvent(a),document.body.removeChild(r)}else{var o=window.open("","_blank");if(o){o.opener=null;var i=o.document;i.open(),i.write('<meta http-equiv="refresh" content="0; url='+y.DOM.encode(t)+'">'),i.close()}}var r,a},_=tinymce.util.Tools.resolve("tinymce.util.Tools"),w=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===_.inArray(i,t)})};return(r=e?(n=a(n=r)).length?n.concat(i):i:a(r)).length?(o=r,_.trim(o.sort().join(" "))):null},T=function(t,e){return e=e||t.selection.getNode(),M(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},C=function(t){return t&&"A"===t.nodeName&&t.href},M=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},O=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},N=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},R=function(t,e){return function(n){t.undoManager.transact(function(){var o=t.selection.getNode(),i=T(t,o),r={href:n.href,target:n.target?n.target:null,rel:n.rel?n.rel:null,"class":n["class"]?n["class"]:null,title:n.title?n.title:null};v(t.settings)||!1!==p(t.settings)||(r.rel=w(r.rel,"_blank"===r.target)),n.href===e.href&&(e.attach(),e={}),i?(t.focus(),n.hasOwnProperty("text")&&("innerText"in i?i.innerText=n.text:i.textContent=n.text),t.dom.setAttribs(i,r),t.selection.select(i),t.undoManager.add()):M(o)?N(t,o,r):n.hasOwnProperty("text")?t.insertContent(t.dom.createHTML("a",r,t.dom.encode(n.text))):t.execCommand("mceInsertLink",!1,r)})}},A=function(t){return function(){t.undoManager.transact(function(){var e=t.selection.getNode();M(e)?O(t,e):t.execCommand("unlink")})}},L=C,P=function(t){return _.grep(t,C).length>0},E=function(t){return!(/</.test(t)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},K=T,S=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},U=w,D=tinymce.util.Tools.resolve("tinymce.util.Delay"),I=tinymce.util.Tools.resolve("tinymce.util.XHR"),B={},F=function(t,e,n){var o=function(t,n){return n=n||[],_.each(t,function(t){var i={text:t.text||t.title};t.menu?i.menu=o(t.menu):(i.value=t.value,e&&e(i)),n.push(i)}),n};return o(t,n||[])},q=function(t,e,n){var o=t.selection.getRng();D.setEditorTimeout(t,function(){t.windowManager.confirm(e,function(e){t.selection.setRng(o),n(e)})})},V=function(t,e){var n,o,i,a,l,y,k,b,w,T,C,M={},O=t.selection,N=t.dom,L=function(t){var e=i.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),i.find("#href").value(t.control.value())},P=function(){o||!a||M.text||this.parent().parent().find("#text")[0].value(this.value())};a=E(O.getContent()),n=K(t),M.text=o=S(t.selection,n),M.href=n?N.getAttrib(n,"href"):"",n?M.target=N.getAttrib(n,"target"):u(t.settings)&&(M.target=c(t.settings)),(C=N.getAttrib(n,"rel"))&&(M.rel=C),(C=N.getAttrib(n,"class"))&&(M["class"]=C),(C=N.getAttrib(n,"title"))&&(M.title=C),a&&(l={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){M.text=this.value()}}),e&&(y={type:"listbox",label:"Link list",values:F(e,function(e){e.value=t.convertURL(e.value||e.url,"href")},[{text:"None",value:""}]),onselect:L,value:t.convertURL(M.href,"href"),onPostRender:function(){y=this}}),d(t.settings)&&(s(t.settings)===undefined&&f(t,[{text:"None",value:""},{text:"New window",value:"_blank"}]),b={name:"target",type:"listbox",label:"Target",values:F(s(t.settings))}),v(t.settings)&&(k={name:"rel",type:"listbox",label:"Rel",values:F(m(t.settings),function(e){!1===p(t.settings)&&(e.value=U(e.value,"_blank"===M.target))})}),h(t.settings)&&(w={name:"class",type:"listbox",label:"Class",values:F(g(t.settings),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({inline:"a",classes:[e.value]})})})}),x(t.settings)&&(T={name:"title",type:"textbox",label:"Title",value:M.title}),i=t.windowManager.open({title:"Insert link",data:M,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(e){var n=e.meta||{};y&&y.value(t.convertURL(this.value(),"href")),_.each(e.meta,function(t,e){var n=i.find("#"+e);"text"===e?0===o.length&&(n.value(t),M.text=t):n.value(t)}),n.attach&&(B={href:this.value(),attach:n.attach}),n.text||P.call(this)},onkeyup:P,onbeforecall:function(t){t.meta=i.toJSON()}},l,T,function(e){var n=[];if(_.each(t.dom.select("a:not([href])"),function(t){var o=t.name||t.id;o&&n.push({text:o,value:"#"+o,selected:-1!==e.indexOf("#"+o)})}),n.length)return n.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:n,onselect:L}}(M.href),y,k,b,w],onSubmit:function(e){var n=r(t.settings),i=R(t,B),l=A(t),u=_.extend({},M,e.data),c=u.href;c?(a&&u.text!==o||delete u.text,c.indexOf("@")>0&&-1===c.indexOf("//")&&-1===c.indexOf("mailto:")?q(t,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(u.href="mailto:"+c),i(u)}):!0===n&&!/^\w+:/i.test(c)||!1===n&&/^\s*www[\.|\d\.]/i.test(c)?q(t,"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){t&&(u.href="http://"+c),i(u)}):i(u)):l()}})},z=function(t){var e,n,o;n=V,"string"==typeof(o=l((e=t).settings))?I.send({url:o,success:function(t){n(e,JSON.parse(t))}}):"function"==typeof o?o(function(t){n(e,t)}):n(e,o)},H=function(t,e){return t.dom.getParent(e,"a[href]")},J=function(t){return H(t,t.selection.getStart())},$=function(t,e){if(e){var n=(i=e).getAttribute("data-mce-href")||i.getAttribute("href");if(/^#/.test(n)){var o=t.$(n);o.length&&t.selection.scrollIntoView(o[0],!0)}else b(e.href)}var i},j=function(t){return function(){z(t)}},G=function(t){return function(){$(t,J(t))}},X=function(t){return function(e){var n,o,i,r,l;return!!(a(t.settings)&&(r=t,l=r.plugins.contextmenu,!l||!l.isContextMenuVisible())&&L(e)&&3===(i=(o=(n=t.selection).getRng()).startContainer).nodeType&&n.isCollapsed()&&o.startOffset>0&&o.startOffset<i.data.length)}},Q=function(t){t.on("click",function(n){var o=H(t,n.target);o&&e.metaKeyPressed(n)&&(n.preventDefault(),$(t,o))}),t.on("keydown",function(e){var n,o=J(t);o&&13===e.keyCode&&!0===(n=e).altKey&&!1===n.shiftKey&&!1===n.ctrlKey&&!1===n.metaKey&&(e.preventDefault(),$(t,o))})},W=function(t){return function(){var e=this;t.on("nodechange",function(n){e.active(!t.readonly&&!!K(t,n.element))})}},Y=function(t){return function(){var e=this,n=function(t){P(t.parents)?e.show():e.hide()};P(t.dom.getParents(t.selection.getStart()))||e.hide(),t.on("nodechange",n),e.on("remove",function(){t.off("nodechange",n)})}},Z=function(t){t.addCommand("mceLink",j(t))},tt=function(t){t.addShortcut("Meta+K","",j(t))},et=function(t){t.addButton("link",{active:!1,icon:"link",tooltip:"Insert/edit link",onclick:j(t),onpostrender:W(t)}),t.addButton("unlink",{active:!1,icon:"unlink",tooltip:"Remove link",onclick:A(t),onpostrender:W(t)}),t.addContextToolbar&&t.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:G(t)})},nt=function(t){t.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:G(t),onPostRender:Y(t),prependToContext:!0}),t.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:j(t),stateSelector:"a[href]",context:"insert",prependToContext:!0})},ot=function(t){t.addContextToolbar&&t.addContextToolbar(X(t),"openlink | link unlink")};t.add("link",function(t){et(t),nt(t),ot(t),Q(t),Z(t),tt(t)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.util.Tools"),n=function(e){e.settings.inline_styles=!1,e.on("init",function(){var n,i,a,o;n=e,i="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",a=t.explode(n.settings.font_size_style_values),o=n.schema,n.formatter.register({alignleft:{selector:i,attributes:{align:"left"}},aligncenter:{selector:i,attributes:{align:"center"}},alignright:{selector:i,attributes:{align:"right"}},alignjustify:{selector:i,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(e){return t.inArray(a,e.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),t.each("b,i,u,strike".split(","),function(e){o.addValidElements(e+"[*]")}),o.getElementRule("font")||o.addValidElements("font[face|size|color|style]"),t.each(i.split(","),function(e){var t=o.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})},i=function(e){e.addButton("fontsizeselect",function(){var t=[],n=e.settings.fontsizeFormats||"8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7";return e.$.each(n.split(" "),function(e,n){var i=n,a=n,o=n.split("=");o.length>1&&(i=o[0],a=o[1]),t.push({text:i,value:a})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:function(){var t=this;e.on("NodeChange",function(){var n;(n=e.dom.getParent(e.selection.getNode(),"font"))?t.value(n.size):t.value("")})},onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addButton("fontselect",function(){var t=[],n=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats");return e.$.each(n,function(e,n){t.push({text:{raw:n[0]},value:n[1],textStyle:-1===n[1].indexOf("dings")?"font-family:"+n[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:t,fixedWidth:!0,onPostRender:function(){var t=this;e.on("NodeChange",function(){var n;(n=e.dom.getParent(e.selection.getNode(),"font"))?t.value(n.face):t.value("")})},onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}})};e.add("legacyoutput",function(e){n(e),i(e)})}();!function(){"use strict";var e=function(t){var n=t,r=function(){return n};return{get:r,set:function(e){n=e},clone:function(){return e(r())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))},r=function(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])},a=function(e){return e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d"))},i=n,o=r,u=function(e){var t=r(e);return t.length>0?t[0]:n(e)},c=function(e){return e.getParam("insertdatetime_element",!1)},l="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),m="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),d="January February March April May June July August September October November December".split(" "),p=function(e,t){if((e=""+e).length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e},f=function(e,t,n){return n=n||new Date,t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+n.getFullYear())).replace("%y",""+n.getYear())).replace("%m",p(n.getMonth()+1,2))).replace("%d",p(n.getDate(),2))).replace("%H",""+p(n.getHours(),2))).replace("%M",""+p(n.getMinutes(),2))).replace("%S",""+p(n.getSeconds(),2))).replace("%I",""+((n.getHours()+11)%12+1))).replace("%p",n.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(d[n.getMonth()]))).replace("%b",""+e.translate(s[n.getMonth()]))).replace("%A",""+e.translate(m[n.getDay()]))).replace("%a",""+e.translate(l[n.getDay()]))).replace("%%","%")},g=function(e,t){if(c(e)){var n=f(e,t),r=void 0;r=/%[HMSIp]/.test(t)?f(e,"%Y-%m-%dT%H:%M"):f(e,"%Y-%m-%d");var a=e.dom.getParent(e.selection.getStart(),"time");a?(o=a,u=r,l=n,m=(i=e).dom.create("time",{datetime:u},l),o.parentNode.insertBefore(m,o),i.dom.remove(o),i.selection.select(m,!0),i.selection.collapse(!1)):e.insertContent('<time datetime="'+r+'">'+n+"</time>")}else e.insertContent(f(e,t));var i,o,u,l,m},y=f,M=function(e){e.addCommand("mceInsertDate",function(){g(e,a(e))}),e.addCommand("mceInsertTime",function(){g(e,i(e))})},v=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(e,t){var n,r,a,i=(r=t,a=o(n=e),v.map(a,function(e){return{text:y(n,e),onclick:function(){r.set(e),g(n,e)}}}));e.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",menu:i,onclick:function(){var n=t.get();g(e,n||u(e))}}),e.addMenuItem("insertdatetime",{icon:"date",text:"Date/time",menu:i,context:"insert"})};t.add("insertdatetime",function(t){var n=e(null);M(t),S(t,n)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),n=tinymce.util.Tools.resolve("tinymce.EditorManager"),r=tinymce.util.Tools.resolve("tinymce.Env"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(e){return e.getParam("importcss_merge_classes")},o=function(e){return e.getParam("importcss_exclusive")},s=function(e){return e.getParam("importcss_selector_converter")},u=function(e){return e.getParam("importcss_selector_filter")},l=function(e){return e.getParam("importcss_groups")},a=function(e){return e.getParam("importcss_append")},f=function(e){return e.getParam("importcss_file_filter")},m=function(e){var t=r.cacheSuffix;return"string"==typeof e&&(e=e.replace("?"+t,"").replace("&"+t,"")),e},g=function(e,t){var r=e.settings,i=!1!==r.skin&&(r.skin||"lightgray");return!!i&&t===(r.skin_url?e.documentBaseURI.toAbsolute(r.skin_url):n.baseURL+"/skins/"+i)+"/content"+(e.inline?".inline":"")+".min.css"},p=function(e){return"string"==typeof e?function(t){return-1!==t.indexOf(e)}:e instanceof RegExp?function(t){return e.test(t)}:e},v=function(e,t,n){var r=[],c={};i.each(e.contentCSS,function(e){c[e]=!0}),n||(n=function(e,t){return t||c[e]});try{i.each(t.styleSheets,function(t){!function c(t,o){var s,u=t.href;if((u=m(u))&&n(u,o)&&!g(e,u)){i.each(t.imports,function(e){c(e,!0)});try{s=t.cssRules||t.rules}catch(l){}i.each(s,function(e){e.styleSheet?c(e.styleSheet,!0):e.selectorText&&i.each(e.selectorText.split(","),function(e){r.push(i.trim(e))})})}}(t)})}catch(o){}return r},h=function(e,t){var n,r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(r){var o=r[1],s=r[2].substr(1).split(".").join(" "),u=i.makeMap("a,img");return r[1]?(n={title:t},e.schema.getTextBlockElements()[o]?n.block=o:e.schema.getBlockElements()[o]||u[o.toLowerCase()]?n.selector=o:n.inline=o):r[2]&&(n={inline:"span",title:t.substr(1),classes:s}),!1!==c(e)?n.classes=s:n.attributes={"class":s},n}},d=function(e,t){return null===t||!1!==o(e)},y=h,_=function(e){e.on("renderFormatsMenu",function(n){var r,c={},o=p(u(e)),m=n.control,g=(r=l(e),i.map(r,function(e){return i.extend({},e,{original:e,selectors:{},filter:p(e.filter),item:{text:e.title,menu:[]}})})),y=function(n,r){if(_=n,T=c,!(d(e,x=r)?_ in T:_ in x.selectors)){p=n,y=c,d(e,v=r)?y[p]=!0:v.selectors[p]=!0;var o=(l=e,a=e.plugins.importcss,f=n,((g=r)&&g.selector_converter?g.selector_converter:s(l)?s(l):function(){return h(l,f)}).call(a,f,g));if(o){var u=o.name||t.DOM.uniqueId();return e.formatter.register(u,o),i.extend({},m.settings.itemDefaults,{text:o.title,format:u})}}var l,a,f,g,p,v,y,_,x,T;return null};a(e)||m.items().remove(),i.each(v(e,n.doc||e.getDoc(),p(f(e))),function(e){if(-1===e.indexOf(".mce-")&&(!o||o(e))){var t=(r=g,c=e,i.grep(r,function(e){return!e.filter||e.filter(c)}));if(t.length>0)i.each(t,function(t){var n=y(e,t);n&&t.item.menu.push(n)});else{var n=y(e,null);n&&m.add(n)}}var r,c}),i.each(g,function(e){e.item.menu.length>0&&m.add(e.item)}),n.control.renderNew()})},x=function(e){return{convertSelectorToFormat:function(t){return y(e,t)}}};e.add("importcss",function(e){return _(e),x(e)})}();!function(){"use strict";var t=function(e){var n=e,o=function(){return n};return{get:o,set:function(t){n=t},clone:function(){return t(o())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.Tools");function o(t,e){return i(document.createElement("canvas"),t,e)}function r(t){return t.getContext("2d")}function i(t,e,n){return t.width=e,t.height=n,t}var a,u,c,l,s={create:o,clone:function(t){var e;return r(e=o(t.width,t.height)).drawImage(t,0,0),e},resize:i,get2dContext:r,get3dContext:function(t){var e=null;try{e=t.getContext("webgl")||t.getContext("experimental-webgl")}catch(n){}return e||(e=null),e}},f={getWidth:function(t){return t.naturalWidth||t.width},getHeight:function(t){return t.naturalHeight||t.height}},d=window.Promise?window.Promise:function(){var t=function(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],c(t,n(i,this),n(a,this))},e=t.immediateFn||"function"==typeof setImmediate&&setImmediate||function(t){setTimeout(t,1)};function n(t,e){return function(){t.apply(e,arguments)}}var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function r(t){var n=this;null!==this._state?e(function(){var e=n._state?t.onFulfilled:t.onRejected;if(null!==e){var o;try{o=e(n._value)}catch(r){return void t.reject(r)}t.resolve(o)}else(n._state?t.resolve:t.reject)(n._value)}):this._deferreds.push(t)}function i(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var e=t.then;if("function"==typeof e)return void c(n(e,t),n(i,this),n(a,this))}this._state=!0,this._value=t,u.call(this)}catch(o){a.call(this,o)}}function a(t){this._state=!1,this._value=t,u.call(this)}function u(){for(var t=0,e=this._deferreds.length;t<e;t++)r.call(this,this._deferreds[t]);this._deferreds=null}function c(t,e,n){var o=!1;try{t(function(t){o||(o=!0,e(t))},function(t){o||(o=!0,n(t))})}catch(r){if(o)return;o=!0,n(r)}}return t.prototype["catch"]=function(t){return this.then(null,t)},t.prototype.then=function(e,n){var o=this;return new t(function(t,i){r.call(o,new function(t,e,n,o){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.resolve=n,this.reject=o}(e,n,t,i))})},t.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&o(arguments[0])?arguments[0]:arguments);return new t(function(t,n){if(0===e.length)return t([]);var o=e.length;function r(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var u=a.then;if("function"==typeof u)return void u.call(a,function(t){r(i,t)},n)}e[i]=a,0==--o&&t(e)}catch(c){n(c)}}for(var i=0;i<e.length;i++)r(i,e[i])})},t.resolve=function(e){return e&&"object"==typeof e&&e.constructor===t?e:new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.race=function(e){return new t(function(t,n){for(var o=0,r=e.length;o<r;o++)e[o].then(t,n)})},t}(),h=function(t){return function(){return t}},p={noop:function(){},noarg:function(t){return function(){return t()}},compose:function(t,e){return function(){return t(e.apply(null,arguments))}},constant:h,identity:function(t){return t},tripleEquals:function(t,e){return t===e},curry:function(t){for(var e=new Array(arguments.length-1),n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){for(var n=new Array(arguments.length),o=0;o<n.length;o++)n[o]=arguments[o];var r=e.concat(n);return t.apply(null,r)}},not:function(t){return function(){return!t.apply(null,arguments)}},die:function(t){return function(){throw new Error(t)}},apply:function(t){return t()},call:function(t){t()},never:h(!1),always:h(!0)},m=p.never,g=p.always,v=function(){return y},y=(l={fold:function(t,e){return t()},is:m,isSome:m,isNone:g,getOr:c=function(t){return t},getOrThunk:u=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},or:c,orThunk:u,map:v,ap:v,each:function(){},bind:v,flatten:v,exists:m,forall:g,filter:v,equals:a=function(t){return t.isNone()},equals_:a,toArray:function(){return[]},toString:p.constant("none()")},Object.freeze&&Object.freeze(l),l),b=function(t){var e=function(){return t},n=function(){return r},o=function(e){return e(t)},r={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:g,isNone:m,getOr:e,getOrThunk:e,getOrDie:e,or:n,orThunk:n,map:function(e){return b(e(t))},ap:function(e){return e.fold(v,function(e){return b(e(t))})},each:function(e){e(t)},bind:o,flatten:e,exists:o,forall:o,filter:function(e){return e(t)?r:y},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(m,function(e){return n(t,e)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return r},w={some:b,none:v,from:function(t){return null===t||t===undefined?y:b(t)}},x="undefined"!=typeof window?window:Function("return this;")(),R=function(t,e){for(var n=e!==undefined&&null!==e?e:x,o=0;o<t.length&&n!==undefined&&null!==n;++o)n=n[t[o]];return n},I=function(t,e){var n=t.split(".");return R(n,e)},T=function(t,e){var n=I(t,e);if(n===undefined||null===n)throw t+" not available on this browser";return n},k=function(t,e){return new(T("Blob"))(t,e)},C=function(){return new(T("FileReader"))},B=function(t){return new(T("Uint8Array"))(t)},U={atob:function(t){return T("atob")(t)},requestAnimationFrame:function(t){T("requestAnimationFrame")(t)}};function M(t){return new d(function(e,n){var o=URL.createObjectURL(t),r=new Image,i=function(){r.removeEventListener("load",a),r.removeEventListener("error",u)};function a(){i(),e(r)}function u(){i(),n("Unable to load data of type "+t.type+": "+o)}r.addEventListener("load",a),r.addEventListener("error",u),r.src=o,r.complete&&a()})}function j(t){return new d(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function A(t){var e=t.split(","),n=/data:([^;]+)/.exec(e[0]);if(!n)return w.none();for(var o=n[1],r=e[1],i=U.atob(r),a=i.length,u=Math.ceil(a/1024),c=new Array(u),l=0;l<u;++l){for(var s=1024*l,f=Math.min(s+1024,a),d=new Array(f-s),h=s,p=0;h<f;++p,++h)d[p]=i[h].charCodeAt(0);c[l]=B(d)}return w.some(k(c,{type:o}))}function z(t){return new d(function(e,n){A(t).fold(function(){n("uri is not base64: "+t)},e)})}function E(t){return new d(function(e){var n=new C;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}var S={blobToImage:M,imageToBlob:function(t){return(e=t,new d(function(t){e.complete?t(e):e.addEventListener("load",function n(){e.removeEventListener("load",n),t(e)})})).then(function(t){var e=t.src;return 0===e.indexOf("blob:")?j(e):0===e.indexOf("data:")?z(e):j(e)});var e},blobToDataUri:E,blobToBase64:function(t){return E(t).then(function(t){return t.split(",")[1]})},dataUriToBlobSync:A,canvasToBlob:function(t,e,n){return e=e||"image/png",HTMLCanvasElement.prototype.toBlob?new d(function(o){t.toBlob(function(t){o(t)},e,n)}):z(t.toDataURL(e,n))},canvasToDataURL:function(t,e,n){return e=e||"image/png",t.then(function(t){return t.toDataURL(e,n)})},blobToCanvas:function(t){return M(t).then(function(t){var e,n;return e=t,URL.revokeObjectURL(e.src),n=s.create(f.getWidth(t),f.getHeight(t)),s.get2dContext(n).drawImage(t,0,0),n})},uriToBlob:function(t){return 0===t.indexOf("blob:")?j(t):0===t.indexOf("data:")?z(t):null}},L=function(t){return S.blobToImage(t)},H=function(t){return S.imageToBlob(t)};function O(t,e,n){var o=e.type;function r(e,n){return t.then(function(t){return S.canvasToDataURL(t,e,n)})}return{getType:p.constant(o),toBlob:function(){return d.resolve(e)},toDataURL:function(){return n},toBase64:function(){return n.split(",")[1]},toAdjustedBlob:function(e,n){return t.then(function(t){return S.canvasToBlob(t,e,n)})},toAdjustedDataURL:r,toAdjustedBase64:function(t,e){return r(t,e).then(function(t){return t.split(",")[1]})},toCanvas:function(){return t.then(s.clone)}}}function _(t){return S.blobToDataUri(t).then(function(e){return O(S.blobToCanvas(t),t,e)})}var D={fromBlob:_,fromCanvas:function(t,e){return S.canvasToBlob(t,e).then(function(e){return O(d.resolve(t),e,t.toDataURL())})},fromImage:function(t){return S.imageToBlob(t).then(function(t){return _(t)})},fromBlobAndUrlSync:function(t,e){return O(S.blobToCanvas(t),t,e)}};function F(t,e,n){return(t=parseFloat(t))>n?t=n:t<e&&(t=e),t}var P=[0,.01,.02,.04,.05,.06,.07,.08,.1,.11,.12,.14,.15,.16,.17,.18,.2,.21,.22,.24,.25,.27,.28,.3,.32,.34,.36,.38,.4,.42,.44,.46,.48,.5,.53,.56,.59,.62,.65,.68,.71,.74,.77,.8,.83,.86,.89,.92,.95,.98,1,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.54,1.6,1.66,1.72,1.78,1.84,1.9,1.96,2,2.12,2.25,2.37,2.5,2.62,2.75,2.87,3,3.2,3.4,3.6,3.8,4,4.3,4.7,4.9,5,5.5,6,6.5,6.8,7,7.3,7.5,7.8,8,8.4,8.7,9,9.4,9.6,9.8,10];function W(t,e){var n,o,r,i,a=[],u=new Array(10);for(n=0;n<5;n++){for(o=0;o<5;o++)a[o]=e[o+5*n];for(o=0;o<5;o++){for(i=0,r=0;r<5;r++)i+=t[o+5*r]*a[r];u[o+5*n]=i}}return u}function q(t,e){return e=F(e,0,1),t.map(function(t,n){return n%6==0?t=1-(1-t)*e:t*=e,F(t,0,1)})}var V={identity:function(){return[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]},adjust:q,multiply:W,adjustContrast:function(t,e){var n;return e=F(e,-1,1),W(t,[(n=(e*=100)<0?127+e/100*127:127*(n=0==(n=e%1)?P[e]:P[Math.floor(e)]*(1-n)+P[Math.floor(e)+1]*n)+127)/127,0,0,0,.5*(127-n),0,n/127,0,0,.5*(127-n),0,0,n/127,0,.5*(127-n),0,0,0,1,0,0,0,0,0,1])},adjustBrightness:function(t,e){return W(t,[1,0,0,0,e=F(255*e,-255,255),0,1,0,0,e,0,0,1,0,e,0,0,0,1,0,0,0,0,0,1])},adjustSaturation:function(t,e){var n,o,r;return W(t,[(o=.3086)*(1-(n=1+((e=F(e,-1,1))>0?3*e:e)))+n,(r=.6094)*(1-n),.082*(1-n),0,0,o*(1-n),r*(1-n)+n,.082*(1-n),0,0,o*(1-n),r*(1-n),.082*(1-n)+n,0,0,0,0,0,1,0,0,0,0,0,1])},adjustHue:function(t,e){var n,o,r,i,a;return e=F(e,-180,180)/180*Math.PI,n=Math.cos(e),o=Math.sin(e),W(t,[(r=.213)+.787*n+o*-r,(i=.715)+n*-i+o*-i,(a=.072)+n*-a+.928*o,0,0,r+n*-r+.143*o,i+n*(1-i)+.14*o,a+n*-a+-.283*o,0,0,r+n*-r+-.787*o,i+n*-i+o*i,a+.928*n+o*a,0,0,0,0,0,1,0,0,0,0,0,1])},adjustColors:function(t,e,n,o){return W(t,[e=F(e,0,2),0,0,0,0,0,n=F(n,0,2),0,0,0,0,0,o=F(o,0,2),0,0,0,0,0,1,0,0,0,0,0,1])},adjustSepia:function(t,e){return W(t,q([.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0,0,0,0,0,1],e=F(e,0,1)))},adjustGrayscale:function(t,e){return W(t,q([.33,.34,.33,0,0,.33,.34,.33,0,0,.33,.34,.33,0,0,0,0,0,1,0,0,0,0,0,1],e=F(e,0,1)))}};function N(t,e){return t.toCanvas().then(function(n){return o=n,r=t.getType(),i=e,u=s.get2dContext(o),a=function(t,e){var n,o,r,i,a,u=t.data,c=e[0],l=e[1],s=e[2],f=e[3],d=e[4],h=e[5],p=e[6],m=e[7],g=e[8],v=e[9],y=e[10],b=e[11],w=e[12],x=e[13],R=e[14],I=e[15],T=e[16],k=e[17],C=e[18],B=e[19];for(a=0;a<u.length;a+=4)n=u[a],o=u[a+1],r=u[a+2],i=u[a+3],u[a]=n*c+o*l+r*s+i*f+d,u[a+1]=n*h+o*p+r*m+i*g+v,u[a+2]=n*y+o*b+r*w+i*x+R,u[a+3]=n*I+o*T+r*k+i*C+B;return t}(u.getImageData(0,0,o.width,o.height),i),u.putImageData(a,0,0),D.fromCanvas(o,r);var o,r,i,a,u})}function X(t,e){return t.toCanvas().then(function(n){return o=n,r=t.getType(),i=e,c=s.get2dContext(o),a=c.getImageData(0,0,o.width,o.height),u=c.getImageData(0,0,o.width,o.height),u=function(t,e,n){var o,r,i,a,u,c,l,s,f,d,h,p,m,g,v,y,b;function w(t,e,n){return t>n?t=n:t<e&&(t=e),t}for(i=Math.round(Math.sqrt(n.length)),a=Math.floor(i/2),o=t.data,r=e.data,y=t.width,b=t.height,c=0;c<b;c++)for(u=0;u<y;u++){for(l=s=f=0,h=0;h<i;h++)for(d=0;d<i;d++)p=w(u+d-a,0,y-1),m=w(c+h-a,0,b-1),g=4*(m*y+p),v=n[h*i+d],l+=o[g]*v,s+=o[g+1]*v,f+=o[g+2]*v;r[g=4*(c*y+u)]=w(l,0,255),r[g+1]=w(s,0,255),r[g+2]=w(f,0,255)}return e}(a,u,i),c.putImageData(u,0,0),D.fromCanvas(o,r);var o,r,i,a,u,c})}function $(t){return function(e,n){return e.toCanvas().then(function(o){return function(e,n,o){var r,i,a=s.get2dContext(e),u=new Array(256);for(i=0;i<u.length;i++)u[i]=t(i,o);return r=function(t,e){var n,o=t.data;for(n=0;n<o.length;n+=4)o[n]=e[o[n]],o[n+1]=e[o[n+1]],o[n+2]=e[o[n+2]];return t}(a.getImageData(0,0,e.width,e.height),u),a.putImageData(r,0,0),D.fromCanvas(e,n)}(o,e.getType(),n)})}}function G(t){return function(e,n){return N(e,t(V.identity(),n))}}function Y(t){return function(e){return X(e,t)}}var J,K={invert:(J=[-1,0,0,0,255,0,-1,0,0,255,0,0,-1,0,255,0,0,0,1,0],function(t){return N(t,J)}),brightness:G(V.adjustBrightness),hue:G(V.adjustHue),saturate:G(V.adjustSaturation),contrast:G(V.adjustContrast),grayscale:G(V.adjustGrayscale),sepia:G(V.adjustSepia),colorize:function(t,e,n,o){return N(t,V.adjustColors(V.identity(),e,n,o))},sharpen:Y([0,-1,0,-1,5,-1,0,-1,0]),emboss:Y([-2,-1,0,-1,1,1,0,1,2]),gamma:$(function(t,e){return 255*Math.pow(t/255,1-e)}),exposure:$(function(t,e){return 255*(1-Math.exp(-t/255*e))}),colorFilter:N,convoluteFilter:X},Z={scale:function te(t,e,n){var o=f.getWidth(t),r=f.getHeight(t),i=e/o,a=n/r,u=!1;(i<.5||i>2)&&(i=i<.5?.5:2,u=!0),(a<.5||a>2)&&(a=a<.5?.5:2,u=!0);var c,l,h,p=(c=t,l=i,h=a,new d(function(t){var e=f.getWidth(c),n=f.getHeight(c),o=Math.floor(e*l),r=Math.floor(n*h),i=s.create(o,r),a=s.get2dContext(i);a.drawImage(c,0,0,e,n,0,0,o,r),t(i)}));return u?p.then(function(t){return te(t,e,n)}):p}},Q={rotate:function(t,e){return t.toCanvas().then(function(n){return o=n,r=t.getType(),i=e,a=s.create(o.width,o.height),u=s.get2dContext(a),c=0,l=0,90!=(i=i<0?360+i:i)&&270!=i||s.resize(a,a.height,a.width),90!=i&&180!=i||(c=a.width),270!=i&&180!=i||(l=a.height),u.translate(c,l),u.rotate(i*Math.PI/180),u.drawImage(o,0,0),D.fromCanvas(a,r);var o,r,i,a,u,c,l})},flip:function(t,e){return t.toCanvas().then(function(n){return o=n,r=t.getType(),i=e,a=s.create(o.width,o.height),u=s.get2dContext(a),"v"==i?(u.scale(1,-1),u.drawImage(o,0,-a.height)):(u.scale(-1,1),u.drawImage(o,-a.width,0)),D.fromCanvas(a,r);var o,r,i,a,u})},crop:function(t,e,n,o,r){return t.toCanvas().then(function(i){return a=i,u=t.getType(),c=e,l=n,f=o,d=r,h=s.create(f,d),s.get2dContext(h).drawImage(a,-c,-l),D.fromCanvas(h,u);var a,u,c,l,f,d,h})},resize:function(t,e,n){return t.toCanvas().then(function(o){return Z.scale(o,e,n).then(function(e){return D.fromCanvas(e,t.getType())})})}},tt={invert:function(t){return K.invert(t)},sharpen:function(t){return K.sharpen(t)},emboss:function(t){return K.emboss(t)},brightness:function(t,e){return K.brightness(t,e)},hue:function(t,e){return K.hue(t,e)},saturate:function(t,e){return K.saturate(t,e)},contrast:function(t,e){return K.contrast(t,e)},grayscale:function(t,e){return K.grayscale(t,e)},sepia:function(t,e){return K.sepia(t,e)},colorize:function(t,e,n,o){return K.colorize(t,e,n,o)},gamma:function(t,e){return K.gamma(t,e)},exposure:function(t,e){return K.exposure(t,e)},flip:function(t,e){return Q.flip(t,e)},crop:function(t,e,n,o,r){return Q.crop(t,e,n,o,r)},resize:function(t,e,n){return Q.resize(t,e,n)},rotate:function(t,e){return Q.rotate(t,e)}},et=function(t){return t.toBlob()},nt={blobToImageResult:function(t){return D.fromBlob(t)},fromBlobAndUrlSync:function(t,e){return D.fromBlobAndUrlSync(t,e)},imageToImageResult:function(t){return D.fromImage(t)},imageResultToBlob:function(t,e,n){return e===undefined&&n===undefined?et(t):t.toAdjustedBlob(e,n)},imageResultToOriginalBlob:et,imageResultToDataURL:function(t){return t.toDataURL()}},ot=function(){return T("URL")},rt={createObjectURL:function(t){return ot().createObjectURL(t)},revokeObjectURL:function(t){ot().revokeObjectURL(t)}},it=tinymce.util.Tools.resolve("tinymce.util.Delay"),at=tinymce.util.Tools.resolve("tinymce.util.Promise"),ut=tinymce.util.Tools.resolve("tinymce.util.URI"),ct=function(t){return t.getParam("imagetools_toolbar","rotateleft rotateright | flipv fliph | crop editimage imageoptions")},lt=function(t){return t.getParam("imagetools_proxy")},st={getImageSize:function(t){var e,n;function o(t){return/^[0-9\.]+px$/.test(t)}return e=t.style.width,n=t.style.height,e||n?o(e)&&o(n)?{w:parseInt(e,10),h:parseInt(n,10)}:null:(e=t.width,n=t.height,e&&n?{w:parseInt(e,10),h:parseInt(n,10)}:null)},setImageSize:function(t,e){var n,o;e&&(n=t.style.width,o=t.style.height,(n||o)&&(t.style.width=e.w+"px",t.style.height=e.h+"px",t.removeAttribute("data-mce-style")),n=t.width,o=t.height,(n||o)&&(t.setAttribute("width",e.w),t.setAttribute("height",e.h)))},getNaturalImageSize:function(t){return{w:t.naturalWidth,h:t.naturalHeight}}},ft=(Array.prototype.indexOf,undefined,Array.prototype.push,Array.prototype.slice,function(t,e){for(var n=0,o=t.length;n<o;n++){var r=t[n];if(e(r,n,t))return w.some(r)}return w.none()}),dt=function(t){return null!==t&&t!==undefined},ht={traverse:function(t,e){var n;return n=e.reduce(function(t,e){return dt(t)?t[e]:undefined},t),dt(n)?n:null},readBlob:function(t){return new at(function(e){var n=new C;n.onload=function(t){var n=t.target;e(n.result)},n.readAsText(t)})},requestUrlAsBlob:function(t,e){return new at(function(o){var r;(r=new function(){return new(T("XMLHttpRequest"))}).onreadystatechange=function(){4===r.readyState&&o({status:r.status,blob:this.response})},r.open("GET",t,!0),n.each(e,function(t,e){r.setRequestHeader(e,t)}),r.responseType="blob",r.send()})},parseJson:function(t){var e;try{e=JSON.parse(t)}catch(n){}return e}},pt=[{code:404,message:"Could not find Image Proxy"},{code:403,message:"Rejected request"},{code:0,message:"Incorrect Image Proxy URL"}],mt=[{type:"key_missing",message:"The request did not include an api key."},{type:"key_not_found",message:"The provided api key could not be found."},{type:"domain_not_trusted",message:"The api key is not valid for the request origins."}],gt=function(t){return"ImageProxy HTTP error: "+ft(pt,function(e){return t===e.code}).fold(p.constant("Unknown ImageProxy error"),function(t){return t.message})},vt=function(t){var e=gt(t);return at.reject(e)},yt=function(t){return ft(mt,function(e){return e.type===t}).fold(p.constant("Unknown service error"),function(t){return t.message})},bt=function(t,e){return ht.readBlob(e).then(function(t){var e,n,o,r=(e=t,n=ht.parseJson(e),"ImageProxy Service error: "+((o=ht.traverse(n,["error","type"]))?yt(o):"Invalid JSON in service error message"));return at.reject(r)})},wt={handleServiceErrorResponse:function(t,e){return 400===(n=t)||403===n||500===n?bt(0,e):vt(t);var n},handleHttpError:vt,getHttpErrorMsg:gt,getServiceErrorMsg:yt},xt=function(t,e){return ht.requestUrlAsBlob((n=t,o=e,r=-1===n.indexOf("?")?"?":"&",/[?&]apiKey=/.test(n)||!o?n:n+r+"apiKey="+encodeURIComponent(o)),{"Content-Type":"application/json;charset=UTF-8","tiny-api-key":e}).then(function(t){return t.status<200||t.status>=300?wt.handleServiceErrorResponse(t.status,t.blob):at.resolve(t.blob)});var n,o,r},Rt=function(t,e){return e?xt(t,e):(n=t,ht.requestUrlAsBlob(n,{}).then(function(t){return t.status<200||t.status>=300?wt.handleHttpError(t.status):at.resolve(t.blob)}));var n},It=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),Tt=tinymce.util.Tools.resolve("tinymce.ui.Factory"),kt=function(){var t=[],e=-1;function n(){return e>0}function o(){return-1!==e&&e<t.length-1}return{data:t,add:function(n){var o;return o=t.splice(++e),t.push(n),{state:n,removed:o}},undo:function(){if(n())return t[--e]},redo:function(){if(o())return t[++e]},canUndo:n,canRedo:o}},Ct=tinymce.util.Tools.resolve("tinymce.geom.Rect"),Bt=function(t){return new at(function(e){var n=function(){t.removeEventListener("load",n),e(t)};t.complete?e(t):t.addEventListener("load",n)})},Ut=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Mt=tinymce.util.Tools.resolve("tinymce.util.Observable"),jt=tinymce.util.Tools.resolve("tinymce.util.VK"),At=0,zt=function(t,e,o,r,i){var a,u,c,l,s="mce-",f=s+"crid-"+At++;function d(t,e){return{x:e.x-t.x,y:e.y-t.y,w:e.w,h:e.h}}function h(e,n,r,i){var u,c,l,s,f;u=n.x,c=n.y,l=n.w,s=n.h,u+=r*e.deltaX,c+=i*e.deltaY,l+=r*e.deltaW,s+=i*e.deltaH,l<20&&(l=20),s<20&&(s=20),f=t=Ct.clamp({x:u,y:c,w:l,h:s},o,"move"===e.name),f=d(o,f),a.fire("updateRect",{rect:f}),g(f)}function p(t){function o(t,e){e.h<0&&(e.h=0),e.w<0&&(e.w=0),Ut("#"+f+"-"+t,r).css({left:e.x,top:e.y,width:e.w,height:e.h})}n.each(u,function(e){Ut("#"+f+"-"+e.name,r).css({left:t.w*e.xMul+t.x,top:t.h*e.yMul+t.y})}),o("top",{x:e.x,y:e.y,w:e.w,h:t.y-e.y}),o("right",{x:t.x+t.w,y:t.y,w:e.w-t.x-t.w+e.x,h:t.h}),o("bottom",{x:e.x,y:t.y+t.h,w:e.w,h:e.h-t.y-t.h+e.y}),o("left",{x:e.x,y:t.y,w:t.x-e.x,h:t.h}),o("move",t)}function m(e){p(t=e)}function g(t){var e,n;m((e=o,{x:(n=t).x+e.x,y:n.y+e.y,w:n.w,h:n.h}))}return u=[{name:"move",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:0,deltaH:0,label:"Crop Mask"},{name:"nw",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:-1,deltaH:-1,label:"Top Left Crop Handle"},{name:"ne",xMul:1,yMul:0,deltaX:0,deltaY:1,deltaW:1,deltaH:-1,label:"Top Right Crop Handle"},{name:"sw",xMul:0,yMul:1,deltaX:1,deltaY:0,deltaW:-1,deltaH:1,label:"Bottom Left Crop Handle"},{name:"se",xMul:1,yMul:1,deltaX:0,deltaY:0,deltaW:1,deltaH:1,label:"Bottom Right Crop Handle"}],l=["top","right","bottom","left"],Ut('<div id="'+f+'" class="'+s+'croprect-container" role="grid" aria-dropeffect="execute">').appendTo(r),n.each(l,function(t){Ut("#"+f,r).append('<div id="'+f+"-"+t+'"class="'+s+'croprect-block" style="display: none" data-mce-bogus="all">')}),n.each(u,function(t){Ut("#"+f,r).append('<div id="'+f+"-"+t.name+'" class="'+s+"croprect-handle "+s+"croprect-handle-"+t.name+'"style="display: none" data-mce-bogus="all" role="gridcell" tabindex="-1" aria-label="'+t.label+'" aria-grabbed="false">')}),c=n.map(u,function(e){var n;return new(Tt.get("DragHelper"))(f,{document:r.ownerDocument,handle:f+"-"+e.name,start:function(){n=t},drag:function(t){h(e,n,t.deltaX,t.deltaY)}})}),p(t),Ut(r).on("focusin focusout",function(t){Ut(t.target).attr("aria-grabbed","focus"===t.type)}),Ut(r).on("keydown",function(e){var o;function r(t,e,n,r,i){t.stopPropagation(),t.preventDefault(),h(o,n,r,i)}switch(n.each(u,function(t){if(e.target.id===f+"-"+t.name)return o=t,!1}),e.keyCode){case jt.LEFT:r(e,0,t,-10,0);break;case jt.RIGHT:r(e,0,t,10,0);break;case jt.UP:r(e,0,t,0,-10);break;case jt.DOWN:r(e,0,t,0,10);break;case jt.ENTER:case jt.SPACEBAR:e.preventDefault(),i()}}),a=n.extend({toggleVisibility:function(t){var e;e=n.map(u,function(t){return"#"+f+"-"+t.name}).concat(n.map(l,function(t){return"#"+f+"-"+t})).join(","),t?Ut(e,r).show():Ut(e,r).hide()},setClampRect:function(e){o=e,p(t)},setRect:m,getInnerRect:function(){return d(o,t)},setInnerRect:g,setViewPortRect:function(n){e=n,p(t)},destroy:function(){n.each(c,function(t){t.destroy()}),c=[]}},Mt)},Et={create:function(t){return new(Tt.get("Control").extend({Defaults:{classes:"imagepanel"},selection:function(t){return arguments.length?(this.state.set("rect",t),this):this.state.get("rect")},imageSize:function(){var t=this.state.get("viewRect");return{w:t.w,h:t.h}},toggleCropRect:function(t){this.state.set("cropEnabled",t)},imageSrc:function(t){var e=this,n=new Image;n.src=t,Bt(n).then(function(){var t,o,r=e.state.get("viewRect");if((o=e.$el.find("img"))[0])o.replaceWith(n);else{var i=document.createElement("div");i.className="mce-imagepanel-bg",e.getEl().appendChild(i),e.getEl().appendChild(n)}t={x:0,y:0,w:n.naturalWidth,h:n.naturalHeight},e.state.set("viewRect",t),e.state.set("rect",Ct.inflate(t,-20,-20)),r&&r.w===t.w&&r.h===t.h||e.zoomFit(),e.repaintImage(),e.fire("load")})},zoom:function(t){return arguments.length?(this.state.set("zoom",t),this):this.state.get("zoom")},postRender:function(){return this.imageSrc(this.settings.imageSrc),this._super()},zoomFit:function(){var t,e,n,o,r,i;t=this.$el.find("img"),e=this.getEl().clientWidth,n=this.getEl().clientHeight,o=t[0].naturalWidth,r=t[0].naturalHeight,(i=Math.min((e-10)/o,(n-10)/r))>=1&&(i=1),this.zoom(i)},repaintImage:function(){var t,e,n,o,r,i,a,u,c,l,s;s=this.getEl(),c=this.zoom(),l=this.state.get("rect"),a=this.$el.find("img"),u=this.$el.find(".mce-imagepanel-bg"),r=s.offsetWidth,i=s.offsetHeight,n=a[0].naturalWidth*c,o=a[0].naturalHeight*c,t=Math.max(0,r/2-n/2),e=Math.max(0,i/2-o/2),a.css({left:t,top:e,width:n,height:o}),u.css({left:t,top:e,width:n,height:o}),this.cropRect&&(this.cropRect.setRect({x:l.x*c+t,y:l.y*c+e,w:l.w*c,h:l.h*c}),this.cropRect.setClampRect({x:t,y:e,w:n,h:o}),this.cropRect.setViewPortRect({x:0,y:0,w:r,h:i}))},bindStates:function(){var t=this;t.state.on("change:cropEnabled",function(e){t.cropRect.toggleVisibility(e.value),t.repaintImage()}),t.state.on("change:zoom",function(){t.repaintImage()}),t.state.on("change:rect",function(e){var n,o=e.value;t.cropRect||(n=o,t.cropRect=zt(n,t.state.get("viewRect"),t.state.get("viewRect"),t.getEl(),function(){t.fire("crop")}),t.cropRect.on("updateRect",function(e){var n=e.rect,o=t.zoom();n={x:Math.round(n.x/o),y:Math.round(n.y/o),w:Math.round(n.w/o),h:Math.round(n.h/o)},t.state.set("rect",n)}),t.on("remove",t.cropRect.destroy)),t.cropRect.setRect(o)})}}))(t)}};function St(t){return{blob:t,url:rt.createObjectURL(t)}}function Lt(t){t&&rt.revokeObjectURL(t.url)}function Ht(t){n.each(t,Lt)}function Ot(t,e,o,r){var i,a,u,c,l,s,f,d,h,p,m,g,v,y,b,w,x,R,I,T,k,C,B,U,M,j,A,z=kt();function E(t){var e,n,o,r;e=i.find("#w")[0],n=i.find("#h")[0],o=parseInt(e.value(),10),r=parseInt(n.value(),10),i.find("#constrain")[0].checked()&&U&&M&&o&&r&&("w"===t.control.settings.name?(r=Math.round(o*j),n.value(r)):(o=Math.round(r*A),e.value(o))),U=o,M=r}function S(t){return Math.round(100*t)+"%"}function L(){i.find("#undo").disabled(!z.canUndo()),i.find("#redo").disabled(!z.canRedo()),i.statusbar.find("#save").disabled(!z.canUndo())}function H(){i.find("#undo").disabled(!0),i.find("#redo").disabled(!0)}function O(t){t&&d.imageSrc(t.url)}function _(t){return function(){var e=n.grep(B,function(e){return e.settings.name!==t});n.each(e,function(t){t.hide()}),t.show(),t.focus()}}function D(t){O(c=St(t))}function F(t){O(e=St(t)),Ht(z.add(e).removed),L()}function P(){var t=d.selection();nt.blobToImageResult(e.blob).then(function(e){tt.crop(e,t.x,t.y,t.w,t.h).then(X).then(function(t){F(t),q()})})}var W=function(t){var n=[].slice.call(arguments,1);return function(){var o=c||e;nt.blobToImageResult(o.blob).then(function(e){t.apply(this,[e].concat(n)).then(X).then(D)})}};function q(){O(e),Lt(c),_(a)(),L()}function V(){c?(F(c.blob),q()):function e(n,o){c?o():setTimeout(function(){n-- >0?e(n,o):t.windowManager.alert("Error: failed to apply image operation.")},10)}(100,V)}function N(t){return Tt.create("Form",{layout:"flex",direction:"row",labelGap:5,border:"0 0 1 0",align:"center",pack:"center",padding:"0 10 0 10",spacing:5,flex:0,minHeight:60,defaults:{classes:"imagetool",type:"button"},items:t})}var X=function(t){return t.toBlob()};function $(t,n){return N([{text:"Back",onclick:q},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:V}]).hide().on("show",function(){H(),nt.blobToImageResult(e.blob).then(function(t){return n(t)}).then(X).then(function(t){var e=St(t);O(e),Lt(c),c=e})})}function G(t,n,o,r,i){return N([{text:"Back",onclick:q},{type:"spacer",flex:1},{type:"slider",flex:1,ondragend:function(t){var o;o=t.value,nt.blobToImageResult(e.blob).then(function(t){return n(t,o)}).then(X).then(function(t){var e=St(t);O(e),Lt(c),c=e})},minValue:r,maxValue:i,value:o,previewFilter:S},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:V}]).hide().on("show",function(){this.find("slider").value(o),H()})}l=N([{text:"Back",onclick:q},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:P}]).hide().on("show hide",function(t){d.toggleCropRect("show"===t.type)}).on("show",H),s=N([{text:"Back",onclick:q},{type:"spacer",flex:1},{type:"textbox",name:"w",label:"Width",size:4,onkeyup:E},{type:"textbox",name:"h",label:"Height",size:4,onkeyup:E},{type:"checkbox",name:"constrain",text:"Constrain proportions",checked:!0,onchange:function(t){!0===t.control.value()&&(j=M/U,A=U/M)}},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:"submit"}]).hide().on("submit",function(t){var n=parseInt(i.find("#w").value(),10),o=parseInt(i.find("#h").value(),10);t.preventDefault(),function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];var r=[].slice.call(arguments,1);return function(){nt.blobToImageResult(e.blob).then(function(e){t.apply(this,[e].concat(r)).then(X).then(F)})}}(tt.resize,n,o)(),q()}).on("show",H),f=N([{text:"Back",onclick:q},{type:"spacer",flex:1},{icon:"fliph",tooltip:"Flip horizontally",onclick:W(tt.flip,"h")},{icon:"flipv",tooltip:"Flip vertically",onclick:W(tt.flip,"v")},{icon:"rotateleft",tooltip:"Rotate counterclockwise",onclick:W(tt.rotate,-90)},{icon:"rotateright",tooltip:"Rotate clockwise",onclick:W(tt.rotate,90)},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:V}]).hide().on("show",H),m=$(0,tt.invert),I=$(0,tt.sharpen),T=$(0,tt.emboss),g=G(0,tt.brightness,0,-1,1),v=G(0,tt.hue,180,0,360),y=G(0,tt.saturate,0,-1,1),b=G(0,tt.contrast,0,-1,1),w=G(0,tt.grayscale,0,0,1),x=G(0,tt.sepia,0,0,1),R=function(t,n){function o(){var t,o,r;t=i.find("#r")[0].value(),o=i.find("#g")[0].value(),r=i.find("#b")[0].value(),nt.blobToImageResult(e.blob).then(function(e){return n(e,t,o,r)}).then(X).then(function(t){var e=St(t);O(e),Lt(c),c=e})}return N([{text:"Back",onclick:q},{type:"spacer",flex:1},{type:"slider",label:"R",name:"r",minValue:0,value:1,maxValue:2,ondragend:o,previewFilter:S},{type:"slider",label:"G",name:"g",minValue:0,value:1,maxValue:2,ondragend:o,previewFilter:S},{type:"slider",label:"B",name:"b",minValue:0,value:1,maxValue:2,ondragend:o,previewFilter:S},{type:"spacer",flex:1},{text:"Apply",subtype:"primary",onclick:V}]).hide().on("show",function(){i.find("#r,#g,#b").value(1),H()})}(0,tt.colorize),k=G(0,tt.gamma,0,-1,1),C=G(0,tt.exposure,1,0,2),u=N([{text:"Back",onclick:q},{type:"spacer",flex:1},{text:"hue",icon:"hue",onclick:_(v)},{text:"saturate",icon:"saturate",onclick:_(y)},{text:"sepia",icon:"sepia",onclick:_(x)},{text:"emboss",icon:"emboss",onclick:_(T)},{text:"exposure",icon:"exposure",onclick:_(C)},{type:"spacer",flex:1}]).hide(),a=N([{tooltip:"Crop",icon:"crop",onclick:_(l)},{tooltip:"Resize",icon:"resize2",onclick:_(s)},{tooltip:"Orientation",icon:"orientation",onclick:_(f)},{tooltip:"Brightness",icon:"sun",onclick:_(g)},{tooltip:"Sharpen",icon:"sharpen",onclick:_(I)},{tooltip:"Contrast",icon:"contrast",onclick:_(b)},{tooltip:"Color levels",icon:"drop",onclick:_(R)},{tooltip:"Gamma",icon:"gamma",onclick:_(k)},{tooltip:"Invert",icon:"invert",onclick:_(m)}]),d=Et.create({flex:1,imageSrc:e.url}),h=Tt.create("Container",{layout:"flex",direction:"column",border:"0 1 0 0",padding:5,spacing:5,items:[{type:"button",icon:"undo",tooltip:"Undo",name:"undo",onclick:function(){O(e=z.undo()),L()}},{type:"button",icon:"redo",tooltip:"Redo",name:"redo",onclick:function(){O(e=z.redo()),L()}},{type:"button",icon:"zoomin",tooltip:"Zoom in",onclick:function(){var t=d.zoom();t<2&&(t+=.1),d.zoom(t)}},{type:"button",icon:"zoomout",tooltip:"Zoom out",onclick:function(){var t=d.zoom();t>.1&&(t-=.1),d.zoom(t)}}]}),p=Tt.create("Container",{type:"container",layout:"flex",direction:"row",align:"stretch",flex:1,items:[h,d]}),B=[a,l,s,f,u,m,g,v,y,b,w,x,R,I,T,k,C],(i=t.windowManager.open({layout:"flex",direction:"column",align:"stretch",minWidth:Math.min(It.DOM.getViewPort().w,800),minHeight:Math.min(It.DOM.getViewPort().h,650),title:"Edit image",items:B.concat([p]),buttons:[{text:"Save",name:"save",subtype:"primary",onclick:function(){o(e.blob),i.close()}},{text:"Cancel",onclick:"close"}]})).on("close",function(){r(),Ht(z.data),z=null,c=null}),z.add(e),L(),d.on("load",function(){U=d.imageSize().w,M=d.imageSize().h,j=M/U,A=U/M,i.find("#w").value(U),i.find("#h").value(M)}),d.on("crop",P)}var _t={edit:function(t,e){return new at(function(n,o){return e.toBlob().then(function(e){Ot(t,St(e),n,o)})})}},Dt=0,Ft=function(t,e){t.notificationManager.open({text:e,type:"error"})},Pt=function(t){return t.selection.getNode()},Wt=function(t,e){var n=e.src;return 0===n.indexOf("data:")||0===n.indexOf("blob:")||new ut(n).host===t.documentBaseURI.host},qt=function(t,e){return-1!==n.inArray(t.settings.imagetools_cors_hosts,new ut(e.src).host)},Vt=function(t){var e,n,o,r,i,a;return(e=t.editorUpload.blobCache.getByUri(Pt(t).src))?at.resolve(e.blob()):(n=t,o=Pt(t),a=o.src,qt(n,o)?Rt(o.src,null):Wt(n,o)?H(o):(a=lt(n),a+=(-1===a.indexOf("?")?"?":"&")+"url="+encodeURIComponent(o.src),r=(i=n).settings.api_key||i.settings.imagetools_api_key,Rt(a,r)))},Nt=function(t,e){var n=it.setEditorTimeout(t,function(){t.editorUpload.uploadImagesAuto()},t.settings.images_upload_timeout||3e4);e.set(n)},Xt=function(t){clearTimeout(t.get())},$t=function(t,e,n,o){return e.toBlob().then(function(r){var i,a,u,c,l,s,f;return u=t.editorUpload.blobCache,i=(l=Pt(t)).src,t.settings.images_reuse_filename&&((c=u.getByUri(i))?(i=c.uri(),a=c.name()):(s=t,a=(f=i.match(/\/([^\/\?]+)?\.(?:jpeg|jpg|png|gif)(?:\?|$)/i))?s.dom.encode(f[1]):null)),c=u.create({id:"imagetools"+Dt++,blob:r,base64:e.toBase64(),uri:i,name:a}),u.add(c),t.undoManager.transact(function(){t.$(l).on("load",function e(){t.$(l).off("load",e),t.nodeChanged(),n?t.editorUpload.uploadImagesAuto():(Xt(o),Nt(t,o))}),t.$(l).attr({src:c.blobUri()}).removeAttr("data-mce-src")}),c})},Gt=function(t,e,n){return function(){return t._scanForImages().then(p.curry(Vt,t)).then(nt.blobToImageResult).then(n).then(function(n){return $t(t,n,!1,e)},function(e){Ft(t,e)})}},Yt={rotate:function(t,e,n){return function(){return Gt(t,e,function(e){var o=st.getImageSize(Pt(t));return o&&st.setImageSize(Pt(t),{w:o.h,h:o.w}),tt.rotate(e,n)})()}},flip:function(t,e,n){return function(){return Gt(t,e,function(t){return tt.flip(t,n)})()}},editImageDialog:function(t,e){return function(){var n=Pt(t),o=st.getNaturalImageSize(n),r=function(t){return new at(function(e){L(t).then(function(r){var i=st.getNaturalImageSize(r);o.w===i.w&&o.h===i.h||st.getImageSize(n)&&st.setImageSize(n,i),rt.revokeObjectURL(r.src),e(t)})})};Vt(t).then(nt.blobToImageResult).then(p.curry(function(t,n){return _t.edit(t,n).then(r).then(nt.blobToImageResult).then(function(n){return $t(t,n,!0,e)},function(){})},t),function(e){Ft(t,e)})}},isEditableImage:function(t,e){return t.dom.is(e,"img:not([data-mce-object],[data-mce-placeholder])")&&(Wt(t,e)||qt(t,e)||t.settings.imagetools_proxy)},cancelTimedUpload:Xt},Jt=function(t,e){n.each({mceImageRotateLeft:Yt.rotate(t,e,-90),mceImageRotateRight:Yt.rotate(t,e,90),mceImageFlipVertical:Yt.flip(t,e,"v"),mceImageFlipHorizontal:Yt.flip(t,e,"h"),mceEditImage:Yt.editImageDialog(t,e)},function(e,n){t.addCommand(n,e)})},Kt=function(t,e,n){t.on("NodeChange",function(o){var r=n.get();r&&r.src!==o.element.src&&(Yt.cancelTimedUpload(e),t.editorUpload.uploadImagesAuto(),n.set(null)),Yt.isEditableImage(t,o.element)&&n.set(o.element)})},Zt=function(t){t.addButton("rotateleft",{title:"Rotate counterclockwise",cmd:"mceImageRotateLeft"}),t.addButton("rotateright",{title:"Rotate clockwise",cmd:"mceImageRotateRight"}),t.addButton("flipv",{title:"Flip vertically",cmd:"mceImageFlipVertical"}),t.addButton("fliph",{title:"Flip horizontally",cmd:"mceImageFlipHorizontal"}),t.addButton("editimage",{title:"Edit image",cmd:"mceEditImage"}),t.addButton("imageoptions",{title:"Image options",icon:"options",cmd:"mceImage"})},Qt=function(t){t.addContextToolbar(p.curry(Yt.isEditableImage,t),ct(t))};e.add("imagetools",function(e){var n=t(0),o=t(null);Jt(e,n),Zt(e),Qt(e),Kt(e,n,o)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.util.Tools"),n={hasDimensions:function(e){return!1!==e.settings.image_dimensions},hasAdvTab:function(e){return!0===e.settings.image_advtab},getPrependUrl:function(e){return e.getParam("image_prepend_url","")},getClassList:function(e){return e.getParam("image_class_list")},hasDescription:function(e){return!1!==e.settings.image_description},hasImageTitle:function(e){return!0===e.settings.image_title},hasImageCaption:function(e){return!0===e.settings.image_caption},getImageList:function(e){return e.getParam("image_list",!1)},hasUploadUrl:function(e){return e.getParam("images_upload_url",!1)},hasUploadHandler:function(e){return e.getParam("images_upload_handler",!1)},getUploadUrl:function(e){return e.getParam("images_upload_url")},getUploadHandler:function(e){return e.getParam("images_upload_handler")},getUploadBasePath:function(e){return e.getParam("images_upload_base_path")},getUploadCredentials:function(e){return e.getParam("images_upload_credentials")}},a="undefined"!=typeof window?window:Function("return this;")(),i=function(e,t){for(var n=t!==undefined&&null!==t?t:a,i=0;i<e.length&&n!==undefined&&null!==n;++i)n=n[e[i]];return n},r=function(e,t){var n=e.split(".");return i(n,t)},o=function(e,t){var n=r(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n},l=function(){return new(o("FileReader"))},s=tinymce.util.Tools.resolve("tinymce.util.Promise"),c=tinymce.util.Tools.resolve("tinymce.util.XHR"),u=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},g={getImageSize:function(e,t){var n=document.createElement("img");function a(e,a){n.parentNode&&n.parentNode.removeChild(n),t({width:e,height:a})}n.onload=function(){a(u(n.width,n.clientWidth),u(n.height,n.clientHeight))},n.onerror=function(){a(0,0)};var i=n.style;i.visibility="hidden",i.position="fixed",i.bottom=i.left="0px",i.width=i.height="auto",document.body.appendChild(n),n.src=e},buildListItems:function(e,n,a){return function i(e,a){return a=a||[],t.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=i(e.menu):(t.value=e.value,n(t)),a.push(t)}),a}(e,a||[])},removePixelSuffix:function(e){return e&&(e=e.replace(/px$/,"")),e},addPixelSuffix:function(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e},mergeMargins:function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},createImageList:function(e,t){var a=n.getImageList(e);"string"==typeof a?c.send({url:a,success:function(e){t(JSON.parse(e))}}):"function"==typeof a?a(t):t(a)},waitLoadImage:function(e,t,a){function i(){a.onload=a.onerror=null,e.selection&&(e.selection.select(a),e.nodeChanged())}a.onload=function(){t.width||t.height||!n.hasDimensions(e)||e.dom.setAttribs(a,{width:a.clientWidth,height:a.clientHeight}),i()},a.onerror=i},blobToDataUri:function(e){return new s(function(t,n){var a=new l;a.onload=function(){t(a.result)},a.onerror=function(){n(l.error.message)},a.readAsDataURL(e)})}},d={makeTab:function(e,t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(a=e,function(e){var t=a.dom,i=e.control.rootControl;if(n.hasAdvTab(a)){var r=i.toJSON(),o=t.parseStyle(r.style);i.find("#vspace").value(""),i.find("#hspace").value(""),((o=g.mergeMargins(o))["margin-top"]&&o["margin-bottom"]||o["margin-right"]&&o["margin-left"])&&(o["margin-top"]===o["margin-bottom"]?i.find("#vspace").value(g.removePixelSuffix(o["margin-top"])):i.find("#vspace").value(""),o["margin-right"]===o["margin-left"]?i.find("#hspace").value(g.removePixelSuffix(o["margin-right"])):i.find("#hspace").value("")),o["border-width"]&&i.find("#border").value(g.removePixelSuffix(o["border-width"])),i.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(o))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:function(n){t(e,n.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]};var a}},m=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},f=function(e,t){var n=e.find("#width")[0],a=e.find("#height")[0],i=e.find("#constrain")[0];n&&a&&i&&t(n,a,i.checked())},p=function(e,t,n){var a=e.state.get("oldVal"),i=t.state.get("oldVal"),r=e.value(),o=t.value();n&&a&&i&&r&&o&&(r!==a?(o=Math.round(r/a*o),isNaN(o)||t.value(o)):(r=Math.round(o/i*r),isNaN(r)||e.value(r))),m(e,t)},h=function(e){f(e,p)},b={createUi:function(){var e=function(e){h(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},syncSize:function(e){f(e,m)},updateSize:h},v=function(e){e.meta=e.control.rootControl.toJSON()},y=function(e,a){var i=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(a){var i,r,o,l,s,c,u,d,m;r=e,c=(i=a).meta||{},u=i.control,d=u.rootControl,(m=d.find("#image-list")[0])&&m.value(r.convertURL(u.value(),"src")),t.each(c,function(e,t){d.find("#"+t).value(e)}),c.width||c.height||(o=r.convertURL(u.value(),"src"),l=n.getPrependUrl(r),s=new RegExp("^(?:[a-z]+:)?//","i"),l&&!s.test(o)&&o.substring(0,l.length)!==l&&(o=l+o),u.value(o),g.getImageSize(r.documentBaseURI.toAbsolute(u.value()),function(e){e.width&&e.height&&n.hasDimensions(r)&&(d.find("#width").value(e.width),d.find("#height").value(e.height),b.updateSize(d))}))},onbeforecall:v},a];return n.hasDescription(e)&&i.push({name:"alt",type:"textbox",label:"Image description"}),n.hasImageTitle(e)&&i.push({name:"title",type:"textbox",label:"Image Title"}),n.hasDimensions(e)&&i.push(b.createUi()),n.getClassList(e)&&i.push({name:"class",type:"listbox",label:"Class",values:g.buildListItems(n.getClassList(e),function(t){t.value&&(t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})})})}),n.hasImageCaption(e)&&i.push({name:"caption",type:"checkbox",label:"Caption"}),i},x={makeTab:function(e,t){return{title:"General",type:"form",items:y(e,t)}},getGeneralItems:y},w=function(){return o("URL")},S=function(e){return w().createObjectURL(e)},U=function(e){w().revokeObjectURL(e)},T=tinymce.util.Tools.resolve("tinymce.ui.Factory"),C=function(){},I=function(e){var n=function(t,n,a,i){var r,l;(r=new function(){return new(o("XMLHttpRequest"))}).open("POST",e.url),r.withCredentials=e.credentials,r.upload.onprogress=function(e){i(e.loaded/e.total*100)},r.onerror=function(){a("Image upload failed due to a XHR Transport error. Code: "+r.status)},r.onload=function(){var t,i,o;r.status<200||r.status>=300?a("HTTP Error: "+r.status):(t=JSON.parse(r.responseText))&&"string"==typeof t.location?n((i=e.basePath,o=t.location,i?i.replace(/\/$/,"")+"/"+o.replace(/^\//,""):o)):a("Invalid JSON: "+r.responseText)},(l=new FormData).append("file",t.blob(),t.filename()),r.send(l)};return e=t.extend({credentials:!1,handler:n},e),{upload:function(t){return e.url||e.handler!==n?(a=t,i=e.handler,new s(function(e,t){try{i(a,e,t,C)}catch(n){t(n.message)}})):s.reject("Upload url missing from the settings.");var a,i}}},P=function(e){return function(t){var a=T.get("Throbber"),i=t.control.rootControl,r=new a(i.getEl()),o=t.control.value(),l=S(o),s=I({url:n.getUploadUrl(e),basePath:n.getUploadBasePath(e),credentials:n.getUploadCredentials(e),handler:n.getUploadHandler(e)}),c=function(){r.hide(),U(l)};return r.show(),g.blobToDataUri(o).then(function(t){var n=e.editorUpload.blobCache.create({blob:o,blobUri:l,name:o.name?o.name.replace(/\.[^\.]+$/,""):null,base64:t.split(",")[1]});return s.upload(n).then(function(e){var t=i.find("#src");return t.value(e),i.find("tabpanel")[0].activateTab(0),t.fire("change"),c(),e})})["catch"](function(t){e.windowManager.alert(t),c()})}},L=".jpg,.jpeg,.png,.gif",_={makeTab:function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:L,onchange:P(e)},{text:"OR",type:"label"}]},{text:"灏嗗浘鐗囨嫋鎷戒簬姝ゅ",type:"dropzone",accept:L,height:100,onchange:P(e)}]}}},N=function(e){var a=function(e,t){if(n.hasAdvTab(e)){var a=e.dom,i=t.toJSON(),r=a.parseStyle(i.style);r=g.mergeMargins(r),i.vspace&&(r["margin-top"]=r["margin-bottom"]=g.addPixelSuffix(i.vspace)),i.hspace&&(r["margin-left"]=r["margin-right"]=g.addPixelSuffix(i.hspace)),i.border&&(r["border-width"]=g.addPixelSuffix(i.border)),t.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(r))))}};function i(i){var r,o,l,s,c={},u=e.dom;function m(){var n,i;b.updateSize(r),a(e,r),(c=t.extend(c,r.toJSON())).alt||(c.alt=""),c.title||(c.title=""),""===c.width&&(c.width=null),""===c.height&&(c.height=null),c.style||(c.style=null),c={src:c.src,alt:c.alt,title:c.title,width:c.width,height:c.height,style:c.style,caption:c.caption,"class":c["class"]},e.undoManager.transact(function(){if(c.src){if(""===c.title&&(c.title=null),o?u.setAttribs(o,c):(c.id="__mcenew",e.focus(),e.selection.setContent(u.createHTML("img",c)),o=u.get("__mcenew"),u.setAttrib(o,"id",null)),e.editorUpload.uploadImagesAuto(),!1===c.caption&&u.is(o.parentNode,"figure.image")&&(n=o.parentNode,u.insertAfter(o,n),u.remove(n)),!0!==c.caption)g.waitLoadImage(e,c,o);else if(!u.is(o.parentNode,"figure.image")){i=o,o=o.cloneNode(!0),(n=u.create("figure",{"class":"image"})).appendChild(o),n.appendChild(u.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable=!1;var t=u.getParent(i,function(t){return e.schema.getTextBlockElements()[t.nodeName]});t?u.split(t,i,n):u.replace(n,i),e.selection.select(n)}}else if(o){var a=u.is(o.parentNode,"figure.image")?o.parentNode:o;u.remove(a),e.focus(),e.nodeChanged(),u.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}})}if(o=e.selection.getNode(),(l=u.getParent(o,"figure.image"))&&(o=u.select("img",l)[0]),o&&("IMG"!==o.nodeName||o.getAttribute("data-mce-object")||o.getAttribute("data-mce-placeholder"))&&(o=null),o&&(c={src:u.getAttrib(o,"src"),alt:u.getAttrib(o,"alt"),title:u.getAttrib(o,"title"),"class":u.getAttrib(o,"class"),width:u.getAttrib(o,"width"),height:u.getAttrib(o,"height"),caption:!!l}),i&&(s={type:"listbox",label:"Image list",name:"image-list",values:g.buildListItems(i,function(t){t.value=e.convertURL(t.value||t.url,"src")},[{text:"None",value:""}]),value:c.src&&e.convertURL(c.src,"src"),onselect:function(e){var t=r.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),r.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){s=this}}),n.hasAdvTab(e)||n.hasUploadUrl(e)||n.hasUploadHandler(e)){var f=[x.makeTab(e,s)];n.hasAdvTab(e)&&(o&&(o.style.marginLeft&&o.style.marginRight&&o.style.marginLeft===o.style.marginRight&&(c.hspace=g.removePixelSuffix(o.style.marginLeft)),o.style.marginTop&&o.style.marginBottom&&o.style.marginTop===o.style.marginBottom&&(c.vspace=g.removePixelSuffix(o.style.marginTop)),o.style.borderWidth&&(c.border=g.removePixelSuffix(o.style.borderWidth)),c.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(o,"style")))),f.push(d.makeTab(e,a))),(n.hasUploadUrl(e)||n.hasUploadHandler(e))&&f.push(_.makeTab(e)),r=e.windowManager.open({title:"Insert/edit image",data:c,bodyType:"tabpanel",body:f,onSubmit:m})}else r=e.windowManager.open({title:"Insert/edit image",data:c,body:x.getGeneralItems(e,s),onSubmit:m});b.syncSize(r)}return{open:function(){g.createImageList(e,i)}}},A=function(e){e.addCommand("mceImage",N(e).open)},k=function(e){return function(n){for(var a,i,r=n.length,o=function(t){t.attr("contenteditable",e?"true":null)};r--;)a=n[r],(i=a.attr("class"))&&/\bimage\b/.test(i)&&(a.attr("contenteditable",e?"false":null),t.each(a.getAll("figcaption"),o))}},z=function(e){e.on("preInit",function(){e.parser.addNodeFilter("figure",k(!0)),e.serializer.addNodeFilter("figure",k(!1))})},R=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:N(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:N(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){z(e),R(e),A(e)})}();!function(){"use strict";var n=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"<hr />")})},t=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};tinymce.util.Tools.resolve("tinymce.PluginManager").add("hr",function(o){n(o),t(o)})}();!function(){"use strict";var e=function(t){var n=t,i=function(){return n};return{get:i,set:function(e){n=e},clone:function(){return e(i())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return{isFullscreen:function(){return null!==e.get()}}},i=function(e,t){e.fire("FullscreenStateChanged",{state:t})},r=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils").DOM,l=function(e,t){var n,l,o,c,s,u,d=document.body,a=document.documentElement,h=t.get(),f=function(){var e,t,n,i;r.setStyle(o,"height",(n=window,i=document.body,i.offsetWidth&&(e=i.offsetWidth,t=i.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}).h-(l.clientHeight-o.clientHeight))},m=function(){r.unbind(window,"resize",f)};if(n=(l=e.getContainer()).style,c=(o=e.getContentAreaContainer().firstChild).style,h)c.width=h.iframeWidth,c.height=h.iframeHeight,h.containerWidth&&(n.width=h.containerWidth),h.containerHeight&&(n.height=h.containerHeight),r.removeClass(d,"mce-fullscreen"),r.removeClass(a,"mce-fullscreen"),r.removeClass(l,"mce-fullscreen"),s=h.scrollPos,window.scrollTo(s.x,s.y),r.unbind(window,"resize",h.resizeHandler),e.off("remove",h.removeHandler),t.set(null),i(e,!1);else{var g={scrollPos:(u=r.getViewPort(),{x:u.x,y:u.y}),containerWidth:n.width,containerHeight:n.height,iframeWidth:c.width,iframeHeight:c.height,resizeHandler:f,removeHandler:m};c.width=c.height="100%",n.width=n.height="",r.addClass(d,"mce-fullscreen"),r.addClass(a,"mce-fullscreen"),r.addClass(l,"mce-fullscreen"),r.bind(window,"resize",f),e.on("remove",m),f(),t.set(g),i(e,!0)}},o=function(e,t){e.addCommand("mceFullScreen",function(){l(e,t)})},c=function(e){return function(t){var n=t.control;e.on("FullscreenStateChanged",function(e){n.active(e.state)})}},s=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:c(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:c(e)})};t.add("fullscreen",function(t){var i=e(null);return o(t,i),s(t),t.addShortcut("Ctrl+Shift+F","","mceFullScreen"),n(i)})}();!function(){"use strict";var e=function(t){var n=t,l=function(){return n};return{get:l,set:function(e){n=e},clone:function(){return e(l())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=tinymce.util.Tools.resolve("tinymce.html.DomParser"),i=tinymce.util.Tools.resolve("tinymce.html.Node"),r=tinymce.util.Tools.resolve("tinymce.html.Serializer"),o=function(e){return e.getParam("fullpage_hide_in_source_view")},a=function(e){return e.getParam("fullpage_default_xml_pi")},c=function(e){return e.getParam("fullpage_default_encoding")},s=function(e){return e.getParam("fullpage_default_font_family")},u=function(e){return e.getParam("fullpage_default_font_size")},d=function(e){return e.getParam("fullpage_default_text_color")},f=function(e){return e.getParam("fullpage_default_title")},g=function(e){return e.getParam("fullpage_default_doctype","<!DOCTYPE html>")},m=function(e){return l({validate:!1,root_name:"#document"}).parse(e)},h=m,p=function(e,t){var l,i,r=m(t),o={};function a(e,t){return e.attr(t)||""}return o.fontface=s(e),o.fontsize=u(e),7===(l=r.firstChild).type&&(o.xml_pi=!0,(i=/encoding="([^"]+)"/.exec(l.value))&&(o.docencoding=i[1])),(l=r.getAll("#doctype")[0])&&(o.doctype="<!DOCTYPE"+l.value+">"),(l=r.getAll("title")[0])&&l.firstChild&&(o.title=l.firstChild.value),n.each(r.getAll("meta"),function(e){var t,n=e.attr("name"),l=e.attr("http-equiv");n?o[n.toLowerCase()]=e.attr("content"):"Content-Type"===l&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")))&&(o.docencoding=t[1])}),(l=r.getAll("html")[0])&&(o.langcode=a(l,"lang")||a(l,"xml:lang")),o.stylesheets=[],n.each(r.getAll("link"),function(e){"stylesheet"===e.attr("rel")&&o.stylesheets.push(e.attr("href"))}),(l=r.getAll("body")[0])&&(o.langdir=a(l,"dir"),o.style=a(l,"style"),o.visited_color=a(l,"vlink"),o.link_color=a(l,"link"),o.active_color=a(l,"alink")),o},y=function(e,t,l){var o,a,c,s,u,d=e.dom;function f(e,t,n){e.attr(t,n||undefined)}function g(e){a.firstChild?a.insert(e,a.firstChild):a.append(e)}o=m(l),(a=o.getAll("head")[0])||(s=o.getAll("html")[0],a=new i("head",1),s.firstChild?s.insert(a,s.firstChild,!0):s.append(a)),s=o.firstChild,t.xml_pi?(u='version="1.0"',t.docencoding&&(u+=' encoding="'+t.docencoding+'"'),7!==s.type&&(s=new i("xml",7),o.insert(s,o.firstChild,!0)),s.value=u):s&&7===s.type&&s.remove(),s=o.getAll("#doctype")[0],t.doctype?(s||(s=new i("#doctype",10),t.xml_pi?o.insert(s,o.firstChild):g(s)),s.value=t.doctype.substring(9,t.doctype.length-1)):s&&s.remove(),s=null,n.each(o.getAll("meta"),function(e){"Content-Type"===e.attr("http-equiv")&&(s=e)}),t.docencoding?(s||((s=new i("meta",1)).attr("http-equiv","Content-Type"),s.shortEnded=!0,g(s)),s.attr("content","text/html; charset="+t.docencoding)):s&&s.remove(),s=o.getAll("title")[0],t.title?(s?s.empty():g(s=new i("title",1)),s.append(new i("#text",3)).value=t.title):s&&s.remove(),n.each("keywords,description,author,copyright,robots".split(","),function(e){var n,l,r=o.getAll("meta"),a=t[e];for(n=0;n<r.length;n++)if((l=r[n]).attr("name")===e)return void(a?l.attr("content",a):l.remove());a&&((s=new i("meta",1)).attr("name",e),s.attr("content",a),s.shortEnded=!0,g(s))});var h={};return n.each(o.getAll("link"),function(e){"stylesheet"===e.attr("rel")&&(h[e.attr("href")]=e)}),n.each(t.stylesheets,function(e){h[e]||((s=new i("link",1)).attr({rel:"stylesheet",text:"text/css",href:e}),s.shortEnded=!0,g(s)),delete h[e]}),n.each(h,function(e){e.remove()}),(s=o.getAll("body")[0])&&(f(s,"dir",t.langdir),f(s,"style",t.style),f(s,"vlink",t.visited_color),f(s,"link",t.link_color),f(s,"alink",t.active_color),d.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),(s=o.getAll("html")[0])&&(f(s,"lang",t.langcode),f(s,"xml:lang",t.langcode)),a.firstChild||a.remove(),(c=r({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(o)).substring(0,c.indexOf("</body>"))},v=function(e,t){var l=p(e,t.get());e.windowManager.open({title:"Document properties",data:l,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(i){var r=y(e,n.extend(l,i.data),t.get());t.set(r)}})},_=function(e,t){e.addCommand("mceFullPageProperties",function(){v(e,t)})},b=function(e,t){return n.each(e,function(e){t=t.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})}),t},x=function(e){return e.replace(/<!--mce:protected ([\s\S]*?)-->/g,function(e,t){return unescape(t)})},k=n.each,C=function(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})},A=function(e){var t,n="",l="";if(a(e)){var i=c(e);n+='<?xml version="1.0" encoding="'+(i||"ISO-8859-1")+'" ?>\n'}return n+=g(e),n+="\n<html>\n<head>\n",(t=f(e))&&(n+="<title>"+t+"</title>\n"),(t=c(e))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=s(e))&&(l+="font-family: "+t+";"),(t=u(e))&&(l+="font-size: "+t+";"),(t=d(e))&&(l+="color: "+t+";"),n+="</head>\n<body"+(l?' style="'+l+'"':"")+">\n"},w=function(e,t,l){e.on("BeforeSetContent",function(i){!function(e,t,l,i){var r,a,c,s,u,d="",f=e.dom;if(!(i.selection||(c=b(e.settings.protect,i.content),"raw"===i.format&&t.get()||i.source_view&&o(e)))){0!==c.length||i.source_view||(c=n.trim(t.get())+"\n"+n.trim(c)+"\n"+n.trim(l.get())),-1!==(r=(c=c.replace(/<(\/?)BODY/gi,"<$1body")).indexOf("<body"))?(r=c.indexOf(">",r),t.set(C(c.substring(0,r+1))),-1===(a=c.indexOf("</body",r))&&(a=c.length),i.content=n.trim(c.substring(r+1,a)),l.set(C(c.substring(a)))):(t.set(A(e)),l.set("\n</body>\n</html>")),s=h(t.get()),k(s.getAll("style"),function(e){e.firstChild&&(d+=e.firstChild.value)}),(u=s.getAll("body")[0])&&f.setAttribs(e.getBody(),{style:u.attr("style")||"",dir:u.attr("dir")||"",vLink:u.attr("vlink")||"",link:u.attr("link")||"",aLink:u.attr("alink")||""}),f.remove("fullpage_styles");var g=e.getDoc().getElementsByTagName("head")[0];d&&(f.add(g,"style",{id:"fullpage_styles"},d),(u=f.get("fullpage_styles")).styleSheet&&(u.styleSheet.cssText=d));var m={};n.each(g.getElementsByTagName("link"),function(e){"stylesheet"===e.rel&&e.getAttribute("data-mce-fullpage")&&(m[e.href]=e)}),n.each(s.getAll("link"),function(e){var t=e.attr("href");if(!t)return!0;m[t]||"stylesheet"!==e.attr("rel")||f.add(g,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),delete m[t]}),n.each(m,function(e){e.parentNode.removeChild(e)})}}(e,t,l,i)}),e.on("GetContent",function(i){var r,a,c,s;r=e,a=t.get(),c=l.get(),(s=i).selection||s.source_view&&o(r)||(s.content=x(n.trim(a)+"\n"+n.trim(s.content)+"\n"+n.trim(c)))})},P=function(e){e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"})};t.add("fullpage",function(t){var n=e(""),l=e("");_(t,n),P(t),w(t,n,l)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]],o=function(t){var o;return o='<table role="list" class="mce-grid">',e.each(i,function(i){o+="<tr>",e.each(i,function(e){var i=t+"/img/smiley-"+e+".gif";o+='<td><a href="#" data-mce-url="'+i+'" data-mce-alt="'+e+'" tabindex="-1" role="option" aria-label="'+e+'"><img src="'+i+'" style="width: 18px; height: 18px" role="presentation" /></a></td>'}),o+="</tr>"}),o+="</table>"},n=function(t,e){var i=o(e);t.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:i,onclick:function(e){var i,o,n,a=t.dom.getParent(e.target,"a");a&&(i=t,o=a.getAttribute("data-mce-url"),n=a.getAttribute("data-mce-alt"),i.insertContent(i.dom.createHTML("img",{src:o,alt:n})),this.hide())}},tooltip:"Emoticons"})};t.add("emoticons",function(t,e){n(t,e)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=function(t,i){var n,o=t.dom,c=t.selection.getSelectedBlocks();c.length&&(n=o.getAttrib(c[0],"dir"),e.each(c,function(t){o.getParent(t.parentNode,'*[dir="'+i+'"]',o.getRoot())||o.setAttrib(t,"dir",n!==i?i:null)}),t.nodeChanged())},n=function(t){t.addCommand("mceDirectionLTR",function(){i(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){i(t,"rtl")})},o=function(t){var i=[];return e.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(e){i.push(e+"[dir="+t+"]")}),i.join(",")},c=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:o("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:o("rtl")})};t.add("directionality",function(t){n(t),c(t)})}();!function(){"use strict";var t=function(n){var e=n,o=function(){return e};return{get:o,set:function(t){e=t},clone:function(){return t(o())}}},n=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=function(t){return{isContextMenuVisible:function(){return t.get()}}},o=function(t){return t.settings.contextmenu_never_use_native},r=function(t){return t.getParam("contextmenu","link openlink image inserttable | cell row column deletetable")},i=tinymce.util.Tools.resolve("tinymce.Env"),u=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=function(t,n){return{x:t,y:n}},l=function(t,n,e){return c(t.x+n,t.y+e)},s=function(t,n){if(t&&"static"!==u.DOM.getStyle(t,"position",!0)){var e=u.DOM.getPos(t),o=e.x-t.scrollLeft,r=e.y-t.scrollTop;return l(n,-o,-r)}return l(n,0,0)},a=function(t){return i.container},f=function(t,n){if(t.inline)return s(a(),c((f=n).pageX,f.pageY));var e,o,r,i,f,m=(e=t.getContentAreaContainer(),o=c((i=n).clientX,i.clientY),r=u.DOM.getPos(e),l(o,r.x,r.y));return s(a(),m)},m=tinymce.util.Tools.resolve("tinymce.ui.Factory"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=function(t,n,e,o){null===o.get()?o.set(function(t,n){var e,o,i=[];o=r(t),v.each(o.split(/[ ,]/),function(n){var e=t.menuItems[n];"|"===n&&(e={text:n}),e&&(e.shortcut="",i.push(e))});for(var u=0;u<i.length;u++)"|"===i[u].text&&(0!==u&&u!==i.length-1||i.splice(u,1));return(e=m.create("menu",{items:i,context:"contextmenu",classes:"contextmenu"}).renderTo()).on("hide",function(t){t.control===this&&n.set(!1)}),t.on("remove",function(){e.remove(),e=null}),e}(t,e)):o.get().show(),o.get().moveTo(n.x,n.y),e.set(!0)},y=function(t,n,e){t.on("contextmenu",function(r){var i;i=t,(!r.ctrlKey||o(i))&&(r.preventDefault(),g(t,f(t,r),n,e))})};n.add("contextmenu",function(n){var o=t(null),r=t(!1);return y(n,r,o),e(r)})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.Color"),i=function(e,n){e.find("#preview")[0].getEl().style.background=n},t=function(e,t){var l=n(t),a=l.toRgb();e.fromJSON({r:a.r,g:a.g,b:a.b,hex:l.toHex().substr(1)}),i(e,l.toHex())},l=function(e,n,l){var a=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:l,onchange:function(){var e=this.rgb();a&&(a.find("#r").value(e.r),a.find("#g").value(e.g),a.find("#b").value(e.b),a.find("#hex").value(this.value().substr(1)),i(a,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=a.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return t(a,n="#"+n),void i.value(n);n={r:a.find("#r").value(),g:a.find("#g").value(),b:a.find("#b").value()},i.value(n),t(a,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+a.toJSON().hex)}});t(a,l)};e.add("colorpicker",function(e){e.settings.color_picker_callback||(e.settings.color_picker_callback=function(n,i){l(e,n,i)})})}();!function(){"use strict";var e=function(t){var a=t,n=function(){return a};return{get:n,set:function(e){a=e},clone:function(){return e(n())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),n=function(e){return e.settings.codesample_content_css},i=function(e){return e.settings.codesample_languages},r=function(e){return Math.min(a.DOM.getViewPort().w,e.getParam("codesample_dialog_width",800))},s=function(e){return Math.min(a.DOM.getViewPort().w,e.getParam("codesample_dialog_height",650))},o={},l=void 0!==o?o:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},c=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=l.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){switch(t.util.type(e)){case"Object":var a={};for(var n in e)e.hasOwnProperty(n)&&(a[n]=t.util.clone(e[n]));return a;case"Array":return e.map&&e.map(function(e){return t.util.clone(e)})}return e}},languages:{extend:function(e,a){var n=t.util.clone(t.languages[e]);for(var i in a)n[i]=a[i];return n},insertBefore:function(e,a,n,i){var r=(i=i||t.languages)[e];if(2===arguments.length){for(var s in n=arguments[1])n.hasOwnProperty(s)&&(r[s]=n[s]);return r}var o={};for(var l in r)if(r.hasOwnProperty(l)){if(l===a)for(var s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);o[l]=r[l]}return t.languages.DFS(t.languages,function(t,a){a===i[e]&&t!==e&&(this[t]=o)}),i[e]=o},DFS:function(e,a,n){for(var i in e)e.hasOwnProperty(i)&&(a.call(e,i,e[i],n||i),"Object"===t.util.type(e[i])?t.languages.DFS(e[i],a):"Array"===t.util.type(e[i])&&t.languages.DFS(e[i],a,i))}},plugins:{},highlightAll:function(e,a){for(var n=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),i=0,r=void 0;r=n[i++];)t.highlightElement(r,!0===e,a)},highlightElement:function(a,n,i){for(var r,s,o=a;o&&!e.test(o.className);)o=o.parentNode;o&&(r=(o.className.match(e)||[,""])[1],s=t.languages[r]),a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+r,o=a.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+r);var c=a.textContent,u={element:a,language:r,grammar:s,code:c};if(c&&s)if(t.hooks.run("before-highlight",u),n&&l.Worker){var g=new Worker(t.filename);g.onmessage=function(e){u.highlightedCode=e.data,t.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(u.element),t.hooks.run("after-highlight",u),t.hooks.run("complete",u)},g.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=t.highlight(u.code,u.grammar,u.language),t.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(a),t.hooks.run("after-highlight",u),t.hooks.run("complete",u);else t.hooks.run("complete",u)},highlight:function(e,n,i){var r=t.tokenize(e,n);return a.stringify(t.util.encode(r),i)},tokenize:function(e,a,n){var i=t.Token,r=[e],s=a.rest;if(s){for(var o in s)a[o]=s[o];delete a.rest}e:for(var o in a)if(a.hasOwnProperty(o)&&a[o]){var l=a[o];l="Array"===t.util.type(l)?l:[l];for(var c=0;c<l.length;++c){var u=l[c],g=u.inside,d=!!u.lookbehind,p=0,f=u.alias;u=u.pattern||u;for(var h=0;h<r.length;h++){var m=r[h];if(r.length>e.length)break e;if(!(m instanceof i)){u.lastIndex=0;var b=u.exec(m);if(b){d&&(p=b[1].length);var y=b.index-1+p,v=y+(b=b[0].slice(p)).length,k=m.slice(0,y+1),w=m.slice(v+1),x=[h,1];k&&x.push(k);var S=new i(o,g?t.tokenize(b,g):b,f);x.push(S),w&&x.push(w),Array.prototype.splice.apply(r,x)}}}}}return r},hooks:{all:{},add:function(e,a){var n=t.hooks.all;n[e]=n[e]||[],n[e].push(a)},run:function(e,a){var n=t.hooks.all[e];if(n&&n.length)for(var i=0,r=void 0;r=n[i++];)r(a)}}},a=t.Token=function(e,t,a){this.type=e,this.content=t,this.alias=a};if(a.stringify=function(e,n,i){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return a.stringify(t,n,e)}).join("");var r={type:e.type,content:a.stringify(e.content,n,i),tag:"span",classes:["token",e.type],attributes:{},language:n,parent:i};if("comment"===r.type&&(r.attributes.spellcheck="true"),e.alias){var s="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(r.classes,s)}t.hooks.run("wrap",r);var o="";for(var l in r.attributes)o+=(o?" ":"")+l+'="'+(r.attributes[l]||"")+'"';return"<"+r.tag+' class="'+r.classes.join(" ")+'" '+o+">"+r.content+"</"+r.tag+">"},!l.document)return l.addEventListener?(l.addEventListener("message",function(e){var a=JSON.parse(e.data),n=a.language,i=a.code,r=a.immediateClose;l.postMessage(t.highlight(i,t.languages[n],n)),r&&l.close()},!1),l.Prism):l.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=c),"undefined"!=typeof global&&(global.Prism=c),c.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[^\s>\/=.]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},c.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),c.languages.xml=c.languages.markup,c.languages.html=c.languages.markup,c.languages.mathml=c.languages.markup,c.languages.svg=c.languages.markup,c.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},c.languages.css.atrule.inside.rest=c.util.clone(c.languages.css),c.languages.markup&&(c.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/i,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/i,inside:c.languages.markup.tag.inside},rest:c.languages.css},alias:"language-css"}}),c.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:c.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:c.languages.css}},alias:"language-css"}},c.languages.markup.tag)),c.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},c.languages.javascript=c.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),c.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),c.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:c.languages.javascript}},string:/[\s\S]+/}}}),c.languages.markup&&c.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/i,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/i,inside:c.languages.markup.tag.inside},rest:c.languages.javascript},alias:"language-javascript"}}),c.languages.js=c.languages.javascript,c.languages.c=c.languages.extend("clike",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/\-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*\/]/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i}),c.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,lookbehind:!0}}}}),delete c.languages.c["class-name"],delete c.languages.c["boolean"],c.languages.csharp=c.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+)\b/i}),c.languages.insertBefore("csharp","keyword",{preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0}}),c.languages.cpp=c.languages.extend("c",{keyword:/\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,"boolean":/\b(true|false)\b/,operator:/[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),c.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}),c.languages.java=c.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),c.languages.php=c.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0}}),c.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),c.languages.insertBefore("php","keyword",{delimiter:/\?>|<\?(?:php)?/i,variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),c.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),c.languages.markup&&(c.hooks.add("before-highlight",function(e){"php"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/gi,function(t){return e.tokenStack.push(t),"{{{PHP"+e.tokenStack.length+"}}}"}))}),c.hooks.add("before-insert",function(e){"php"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),c.hooks.add("after-highlight",function(e){if("php"===e.language){for(var t=0,a=void 0;a=e.tokenStack[t];t++)e.highlightedCode=e.highlightedCode.replace("{{{PHP"+(t+1)+"}}}",c.highlight(a,e.grammar,"php").replace(/\$/g,"$$$$"));e.element.innerHTML=e.highlightedCode}}),c.hooks.add("wrap",function(e){"php"===e.language&&"markup"===e.type&&(e.content=e.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'<span class="token php">$1</span>'))}),c.languages.insertBefore("php","comment",{markup:{pattern:/<[^?]\/?(.*?)>/,inside:c.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/})),c.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(?:\\?.)*?\1/,"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/},function(e){e.languages.ruby=e.languages.extend("clike",{comment:/#(?!\{[^\r\n]*?\}).*/,keyword:/\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.util.clone(e.languages.ruby)}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}],variable:/[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,symbol:/:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.insertBefore("ruby","number",{builtin:/\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,inside:{interpolation:t}},{pattern:/("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,inside:{interpolation:t}}]}(c);var u={isCodeSample:function(e){return e&&"PRE"===e.nodeName&&-1!==e.className.indexOf("language-")},trimArg:function(e){return function(t,a){return e(a)}}},g=function(e){var t=e.selection.getNode();return u.isCodeSample(t)?t:null},d=g,p=function(e,t,n){e.undoManager.transact(function(){var i=g(e);n=a.DOM.encode(n),i?(e.dom.setAttrib(i,"class","language-"+t),i.innerHTML=n,c.highlightElement(i),e.selection.select(i)):(e.insertContent('<pre id="__new" class="language-'+t+'">'+n+"</pre>"),e.selection.select(e.$("#__new").removeAttr("id")[0]))})},f=function(e){var t=g(e);return t?t.textContent:""},h=function(e){var t=i(e);return t||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}]},m=function(e){var t,a=d(e);return a&&(t=a.className.match(/language-(\w+)/))?t[1]:""},b=function(e){var t=r(e),a=s(e),n=m(e),i=h(e),o=f(e);e.windowManager.open({title:"Insert/Edit code sample",minWidth:t,minHeight:a,layout:"flex",direction:"column",align:"stretch",body:[{type:"listbox",name:"language",label:"Language",maxWidth:200,value:n,values:i},{type:"textbox",name:"code",multiline:!0,spellcheck:!1,ariaLabel:"Code view",flex:1,style:"direction: ltr; text-align: left",classes:"monospace",value:o,autofocus:!0}],onSubmit:function(t){p(e,t.data.language,t.data.code)}})},y=function(e){e.addCommand("codesample",function(){var t=e.selection.getNode();e.selection.isCollapsed()||u.isCodeSample(t)?b(e):e.formatter.toggle("code")})},v=function(e){var t=e.$;e.on("PreProcess",function(e){t("pre[contenteditable=false]",e.node).filter(u.trimArg(u.isCodeSample)).each(function(e,a){var n=t(a),i=a.textContent;n.attr("class",t.trim(n.attr("class"))),n.removeAttr("contentEditable"),n.empty().append(t("<code></code>").each(function(){this.textContent=i}))})}),e.on("SetContent",function(){var a=t("pre").filter(u.trimArg(u.isCodeSample)).filter(function(e,t){return"false"!==t.contentEditable});a.length&&e.undoManager.transact(function(){a.each(function(a,n){t(n).find("br").each(function(t,a){a.parentNode.replaceChild(e.getDoc().createTextNode("\n"),a)}),n.contentEditable=!1,n.innerHTML=e.dom.encode(n.textContent),c.highlightElement(n),n.className=t.trim(n.className)})})})},k=function(e,t,a,i){var r,s=n(e);e.inline&&a.get()||!e.inline&&i.get()||(e.inline?a.set(!0):i.set(!0),!1!==s&&(r=e.dom.create("link",{rel:"stylesheet",href:s||t+"/css/prism.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(r)))},w=function(e){e.addButton("codesample",{cmd:"codesample",title:"Insert/Edit code sample"}),e.addMenuItem("codesample",{cmd:"codesample",text:"Code sample",icon:"codesample"})},x=e(!1);t.add("codesample",function(t,a){var n=e(!1);v(t),w(t),y(t),t.on("init",function(){k(t,a,x,n)}),t.on("dblclick",function(e){u.isCodeSample(e.target)&&b(t)})})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),e=function(t){return t.getParam("code_dialog_width",600)},o=function(t){return t.getParam("code_dialog_height",Math.min(n.DOM.getViewPort().h-200,500))},i=function(t,n){t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged()},c=function(t){return t.getContent({source_view:!0})},d=function(t){var n=e(t),d=o(t);t.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:n,minHeight:d,spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(n){i(t,n.data.code)}}).find("#code").value(c(t))},u=function(t){t.addCommand("mceCodeEditor",function(){d(t)})},a=function(t){t.addButton("code",{icon:"code",tooltip:"Source code",onclick:function(){d(t)}}),t.addMenuItem("code",{icon:"code",text:"Source code",onclick:function(){d(t)}})};t.add("code",function(t){return u(t),a(t),{}})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e,t){return e.fire("insertCustomChar",{chr:t})},a=function(e,a){var i=t(e,a).chr;e.execCommand("mceInsertContent",!1,i)},i=tinymce.util.Tools.resolve("tinymce.util.Tools"),r=function(e){return e.settings.charmap},n=function(e){return e.settings.charmap_append},o=i.isArray,l=function(e){return o(e)?[].concat((t=e,i.grep(t,function(e){return o(e)&&2===e.length}))):"function"==typeof e?e():[];var t},c=function(e){return function(e,t){var a=r(e);a&&(t=l(a));var i=n(e);return i?[].concat(t).concat(l(i)):t}(e,[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]])},s=function(e){return{getCharMap:function(){return c(e)},insertChar:function(t){a(e,t)}}},u=function(e){var t,a,i,r=Math.min(e.length,25),n=Math.ceil(e.length/r);for(t='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>',i=0;i<n;i++){for(t+="<tr>",a=0;a<r;a++){var o=i*r+a;if(o<e.length){var l=e[o],c=parseInt(l[0],10),s=l?String.fromCharCode(c):" ";t+='<td title="'+l[1]+'"><div tabindex="-1" title="'+l[1]+'" role="button" data-chr="'+c+'">'+s+"</div></td>"}else t+="<td />"}t+="</tr>"}return t+="</tbody></table>"},d=function(e){for(;e;){if("TD"===e.nodeName)return e;e=e.parentNode}},m=function(e){var t,i={type:"container",html:u(c(e)),onclick:function(i){var r=i.target;if(/^(TD|DIV)$/.test(r.nodeName)){var n=d(r).firstChild;if(n&&n.hasAttribute("data-chr")){var o=n.getAttribute("data-chr"),l=parseInt(o,10);isNaN(l)||a(e,String.fromCharCode(l)),i.ctrlKey||t.close()}}},onmouseover:function(e){var a=d(e.target);a&&a.firstChild?(t.find("#preview").text(a.firstChild.firstChild.data),t.find("#previewTitle").text(a.title)):(t.find("#preview").text(" "),t.find("#previewTitle").text(" "))}};t=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[i,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){t.close()}}]})},g=function(e){e.addCommand("mceShowCharmap",function(){m(e)})},p=function(e){e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"})};e.add("charmap",function(e){return g(e),p(e),s(e)})}();!function(){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(o){o=t.trim(o);var e=function(t,e){o=o.replace(t,e)};return e(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),e(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),e(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),e(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),e(/<font>(.*?)<\/font>/gi,"$1"),e(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),e(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),e(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),e(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),e(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),e(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),e(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),e(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),e(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),e(/<\/(strong|b)>/gi,"[/b]"),e(/<(strong|b)>/gi,"[b]"),e(/<\/(em|i)>/gi,"[/i]"),e(/<(em|i)>/gi,"[i]"),e(/<\/u>/gi,"[/u]"),e(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),e(/<u>/gi,"[u]"),e(/<blockquote[^>]*>/gi,"[quote]"),e(/<\/blockquote>/gi,"[/quote]"),e(/<br \/>/gi,"\n"),e(/<br\/>/gi,"\n"),e(/<br>/gi,"\n"),e(/<p>/gi,""),e(/<\/p>/gi,"\n"),e(/ |\u00a0/gi," "),e(/"/gi,'"'),e(/</gi,"<"),e(/>/gi,">"),e(/&/gi,"&"),o},i=function(o){o=t.trim(o);var e=function(t,e){o=o.replace(t,e)};return e(/\n/gi,"<br />"),e(/\[b\]/gi,"<strong>"),e(/\[\/b\]/gi,"</strong>"),e(/\[i\]/gi,"<em>"),e(/\[\/i\]/gi,"</em>"),e(/\[u\]/gi,"<u>"),e(/\[\/u\]/gi,"</u>"),e(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),e(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),e(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),e(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),e(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> '),e(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> '),o};o.add("bbcode",function(){return{init:function(o){o.on("beforeSetContent",function(o){o.content=i(o.content)}),o.on("postProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=e(o.content))})}}})}();!function(){"use strict";var t=function(e){var r=e,n=function(){return r};return{get:n,set:function(t){r=t},clone:function(){return t(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),r=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),n=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=function(t){return t.fire("RestoreDraft")},o=function(t){return t.fire("StoreDraft")},i=function(t){return t.fire("RemoveDraft")},s=function(t,e){return((t=/^(\d+)([ms]?)$/.exec(""+(t||e)))[2]?{s:1e3,m:6e4}[t[2]]:1)*parseInt(t,10)},u=function(t){return t.getParam("autosave_ask_before_unload",!0)},f=function(t){var e=t.getParam("autosave_prefix","tinymce-autosave-{path}{query}{hash}-{id}-");return e=(e=(e=(e=e.replace(/\{path\}/g,document.location.pathname)).replace(/\{query\}/g,document.location.search)).replace(/\{hash\}/g,document.location.hash)).replace(/\{id\}/g,t.id)},c=function(t){return s(t.settings.autosave_interval,"30s")},l=function(t){return s(t.settings.autosave_retention,"20m")},m=function(t,e){var r=t.settings.forced_root_block;return""===(e=n.trim(void 0===e?t.getBody().innerHTML:e))||new RegExp("^<"+r+"[^>]*>((\xa0| |[ \t]|<br[^>]*>)+?|)</"+r+">|<br>$","i").test(e)},v=function(t){var e=parseInt(r.getItem(f(t)+"time"),10)||0;return!((new Date).getTime()-e>l(t)&&(d(t,!1),1))},d=function(t,e){var n=f(t);r.removeItem(n+"draft"),r.removeItem(n+"time"),!1!==e&&i(t)},D=function(t){var e=f(t);!m(t)&&t.isDirty()&&(r.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),r.setItem(e+"time",(new Date).getTime().toString()),o(t))},g=function(t){var e=f(t);v(t)&&(t.setContent(r.getItem(e+"draft"),{format:"raw"}),a(t))},y={isEmpty:m,hasDraft:v,removeDraft:d,storeDraft:D,restoreDraft:g,startStoreDraft:function(t,e){var r=c(t);e.get()||(setInterval(function(){t.removed||D(t)},r),e.set(!0))},restoreLastDraft:function(t){t.undoManager.transact(function(){g(t),d(t)}),t.focus()}},p=function(t,e){return function(){var r=Array.prototype.slice.call(arguments);return t.apply(null,[e].concat(r))}},h=function(t){return{hasDraft:p(y.hasDraft,t),storeDraft:p(y.storeDraft,t),restoreDraft:p(y.restoreDraft,t),removeDraft:p(y.removeDraft,t),isEmpty:p(y.isEmpty,t)}},_=tinymce.util.Tools.resolve("tinymce.EditorManager");_._beforeUnloadHandler=function(){var t;return n.each(_.get(),function(e){e.plugins.autosave&&e.plugins.autosave.storeDraft(),!t&&e.isDirty()&&u(e)&&(t=e.translate("You have unsaved changes are you sure you want to navigate away?"))}),t};var b=function(t){window.onbeforeunload=_._beforeUnloadHandler},I=function(t,e){return function(r){var n=r.control;n.disabled(!y.hasDraft(t)),t.on("StoreDraft RestoreDraft RemoveDraft",function(){n.disabled(!y.hasDraft(t))}),y.startStoreDraft(t,e)}},w=function(t,e){t.addButton("restoredraft",{title:"Restore last draft",onclick:function(){y.restoreLastDraft(t)},onPostRender:I(t,e)}),t.addMenuItem("restoredraft",{text:"Restore last draft",onclick:function(){y.restoreLastDraft(t)},onPostRender:I(t,e),context:"file"})};e.add("autosave",function(e){var r=t(!1);return b(e),w(e,r),h(e)})}();!function(){"use strict";var t=function(e){var n=e,i=function(){return n};return{get:i,set:function(t){n=t},clone:function(){return t(i())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.Env"),i=tinymce.util.Tools.resolve("tinymce.util.Delay"),o=function(t){return parseInt(t.getParam("autoresize_min_height",t.getElement().offsetHeight),10)},r=function(t){return parseInt(t.getParam("autoresize_max_height",0),10)},a=function(t){return t.getParam("autoresize_overflow_padding",1)},u=function(t){return t.getParam("autoresize_bottom_margin",50)},s=function(t){return t.getParam("autoresize_on_init",!0)},l=function(t,e,n,o,r){i.setEditorTimeout(t,function(){c(t,e),n--?l(t,e,n,o,r):r&&r()},o)},g=function(t,e){var n=t.getBody();n&&(n.style.overflowY=e?"":"hidden",e||(n.scrollTop=0))},c=function(t,e){var i,a,u,s,l,f,d,m,p,y,h,v=t.dom;if(a=t.getDoc())if((S=t).plugins.fullscreen&&S.plugins.fullscreen.isFullscreen())g(t,!0);else{var S;u=a.body,s=o(t),f=v.getStyle(u,"margin-top",!0),d=v.getStyle(u,"margin-bottom",!0),m=v.getStyle(u,"padding-top",!0),p=v.getStyle(u,"padding-bottom",!0),y=v.getStyle(u,"border-top-width",!0),h=v.getStyle(u,"border-bottom-width",!0),l=u.offsetHeight+parseInt(f,10)+parseInt(d,10)+parseInt(m,10)+parseInt(p,10)+parseInt(y,10)+parseInt(h,10),(isNaN(l)||l<=0)&&(l=n.ie?u.scrollHeight:n.webkit&&0===u.clientHeight?0:u.offsetHeight),l>o(t)&&(s=l);var _=r(t);_&&l>_?(s=_,g(t,!0)):g(t,!1),s!==e.get()&&(i=s-e.get(),v.setStyle(t.iframeElement,"height",s+"px"),e.set(s),n.webkit&&i<0&&c(t,e))}},f={setup:function(t,e){t.on("init",function(){var e,n,i=t.dom;e=a(t),n=u(t),!1!==e&&i.setStyles(t.getBody(),{paddingLeft:e,paddingRight:e}),!1!==n&&i.setStyles(t.getBody(),{paddingBottom:n})}),t.on("nodechange setcontent keyup FullscreenStateChanged",function(n){c(t,e)}),s(t)&&t.on("init",function(){l(t,e,20,100,function(){l(t,e,5,1e3)})})},resize:c},d=function(t,e){t.addCommand("mceAutoResize",function(){f.resize(t,e)})};e.add("autoresize",function(e){if(!e.inline){var n=t(0);d(e,n),f.setup(e,n)}})}();!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),n=function(e){return e.getParam("autolink_pattern",/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i)},i=function(e){return e.getParam("default_link_target","")},o=function(e,t){if(t<0&&(t=0),3===e.nodeType){var n=e.data.length;t>n&&(t=n)}return t},r=function(e,t,n){1!==t.nodeType||t.hasChildNodes()?e.setStart(t,o(t,n)):e.setStartBefore(t)},a=function(e,t,n){1!==t.nodeType||t.hasChildNodes()?e.setEnd(t,o(t,n)):e.setEndAfter(t)},d=function(e,t,o){var d,f,s,l,c,u,g,h,C,m,y=n(e),k=i(e);if("A"!==e.selection.getNode().tagName){if((d=e.selection.getRng(!0).cloneRange()).startOffset<5){if(!(h=d.endContainer.previousSibling)){if(!d.endContainer.firstChild||!d.endContainer.firstChild.nextSibling)return;h=d.endContainer.firstChild.nextSibling}if(C=h.length,r(d,h,C),a(d,h,C),d.endOffset<5)return;f=d.endOffset,l=h}else{if(3!==(l=d.endContainer).nodeType&&l.firstChild){for(;3!==l.nodeType&&l.firstChild;)l=l.firstChild;3===l.nodeType&&(r(d,l,0),a(d,l,l.nodeValue.length))}f=1===d.endOffset?2:d.endOffset-1-t}s=f;do{r(d,l,f>=2?f-2:0),a(d,l,f>=1?f-1:0),f-=1,m=d.toString()}while(" "!==m&&""!==m&&160!==m.charCodeAt(0)&&f-2>=0&&m!==o);var p;(p=d.toString())===o||" "===p||160===p.charCodeAt(0)?(r(d,l,f),a(d,l,s),f+=1):0===d.startOffset?(r(d,l,0),a(d,l,s)):(r(d,l,f),a(d,l,s)),"."===(u=d.toString()).charAt(u.length-1)&&a(d,l,s-1),(g=(u=d.toString().trim()).match(y))&&("www."===g[1]?g[1]="http://www.":/@$/.test(g[1])&&!/^mailto:/.test(g[1])&&(g[1]="mailto:"+g[1]),c=e.selection.getBookmark(),e.selection.setRng(d),e.execCommand("createlink",!1,g[1]+g[2]),k&&e.dom.setAttrib(e.selection.getNode(),"target",k),e.selection.moveToBookmark(c),e.nodeChanged())}},f=function(e){var n;e.on("keydown",function(t){13!==t.keyCode||d(e,-1,"")}),t.ie?e.on("focus",function(){if(!n){n=!0;try{e.execCommand("AutoUrlDetect",!1,!0)}catch(t){}}}):(e.on("keypress",function(t){41!==t.keyCode||d(e,-1,"(")}),e.on("keyup",function(t){32!==t.keyCode||d(e,0,"")}))};e.add("autolink",function(e){f(e)})}();!function(){"use strict";var t=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},e=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.id||e.name:""},n=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},o=function(o){var r=e(o);o.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:r},onsubmit:function(e){var r,a,i=e.data.id;r=o,(t(a=i)?(n(r,a),0):(r.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),1))&&e.preventDefault()}})},r=function(t){t.addCommand("mceAnchor",function(){o(t)})},a=function(t){return function(e){for(var n=0;n<e.length;n++)(o=e[n]).attr("href")||!o.attr("id")&&!o.attr("name")||o.firstChild||e[n].attr("contenteditable",t);var o}},i=function(t){t.on("PreInit",function(){t.parser.addNodeFilter("a",a("false")),t.serializer.addNodeFilter("a",a(null))})},c=function(t){t.addButton("anchor",{icon:"anchor",tooltip:"Anchor",cmd:"mceAnchor",stateSelector:"a:not([href])"}),t.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",cmd:"mceAnchor"})};tinymce.util.Tools.resolve("tinymce.PluginManager").add("anchor",function(t){i(t),r(t),c(t)})}();!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),n=function(t,e,n){var r="UL"===e?"InsertUnorderedList":"InsertOrderedList";t.execCommand(r,!1,!1===n?null:{"list-style-type":n})},r=function(t){t.addCommand("ApplyUnorderedListStyle",function(e,r){n(t,"UL",r["list-style-type"])}),t.addCommand("ApplyOrderedListStyle",function(e,r){n(t,"OL",r["list-style-type"])})},o=function(t){var e=t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");return e?e.split(/[ ,]/):[]},i=function(t){var e=t.getParam("advlist_bullet_styles","default,circle,disc,square");return e?e.split(/[ ,]/):[]},l=function(t){return t&&/^(TH|TD)$/.test(t.nodeName)},a=function(t){return function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)&&(r=e,(n=t).$.contains(n.getBody(),r));var n,r}},s=function(t){var e=t.dom.getParent(t.selection.getNode(),"ol,ul");return t.dom.getStyle(e,"listStyleType")||""},u=function(t){return e.map(t,function(t){return{text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"===t?"":t}})},c=function(t,n){return function(r){var o=r.control;t.on("NodeChange",function(r){var i=function(t,e){for(var n=0;n<t.length;n++)if(e(t[n]))return n;return-1}(r.parents,l),s=-1!==i?r.parents.slice(0,i):r.parents,u=e.grep(s,a(t));o.active(u.length>0&&u[0].nodeName===n)})}},d=function(t,e,r,o,i,l){var a;t.addButton(e,{active:!1,type:"splitbutton",tooltip:r,menu:u(l),onPostRender:c(t,i),onshow:(a=t,function(t){var e=s(a);t.control.items().each(function(t){t.active(t.settings.data===e)})}),onselect:function(e){n(t,i,e.control.settings.data)},onclick:function(){t.execCommand(o)}})},p=function(t,e,n,r,o,i){var l,a,s,u,p;i.length>0?d(t,e,n,r,o,i):(a=e,s=n,u=r,p=o,(l=t).addButton(a,{active:!1,type:"button",tooltip:s,onPostRender:c(l,p),onclick:function(){l.execCommand(u)}}))},f=function(t){p(t,"numlist","Numbered list","InsertOrderedList","OL",o(t)),p(t,"bullist","Bullet list","InsertUnorderedList","UL",i(t))};t.add("advlist",function(t){var n,o,i;o="lists",i=(n=t).settings.plugins?n.settings.plugins:"",-1!==e.inArray(i.split(/[ ,]/),o)&&(f(t),r(t))})}();!function(){"use strict";var e,t,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),s=tinymce.util.Tools.resolve("tinymce.EditorManager"),a=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(e){return!1!==u(e)},u=function(e){return e.getParam("menubar")},c=function(e){return e.getParam("toolbar_items_size")},d=function(e){return e.getParam("menu")},f=function(e){return!1===e.settings.skin},h=function(e){var t=e.getParam("resize","vertical");return!1===t?"none":"both"===t?"both":"vertical"},m=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),g=tinymce.util.Tools.resolve("tinymce.ui.Factory"),p=tinymce.util.Tools.resolve("tinymce.util.I18n"),v=function(e){return e.fire("SkinLoaded")},b=function(e){return e.fire("ResizeEditor")},y=function(e){return e.fire("BeforeRenderUI")},x=function(e,t){return function(){var n=e.find(t)[0];n&&n.focus(!0)}},w=function(e,t){e.shortcuts.add("Alt+F9","",x(t,"menubar")),e.shortcuts.add("Alt+F10,F10","",x(t,"toolbar")),e.shortcuts.add("Alt+F11","",x(t,"elementpath")),t.on("cancel",function(){e.focus()})},_=tinymce.util.Tools.resolve("tinymce.Env"),R=tinymce.util.Tools.resolve("tinymce.geom.Rect"),C=tinymce.util.Tools.resolve("tinymce.util.Delay"),k=function(e){return function(){return e}},E={noop:function(){},noarg:function(e){return function(){return e()}},compose:function(e,t){return function(){return e(t.apply(null,arguments))}},constant:k,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(e){for(var t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return function(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var r=t.concat(n);return e.apply(null,r)}},not:function(e){return function(){return!e.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:k(!1),always:k(!0)},H=E.never,S=E.always,M=function(){return T},T=(i={fold:function(e,t){return e()},is:H,isSome:H,isNone:S,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:M,ap:M,each:function(){},bind:M,flatten:M,exists:H,forall:S,filter:M,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:E.constant("none()")},Object.freeze&&Object.freeze(i),i),P=function(e){var t=function(){return e},n=function(){return r},i=function(t){return t(e)},r={fold:function(t,n){return n(e)},is:function(t){return e===t},isSome:S,isNone:H,getOr:t,getOrThunk:t,getOrDie:t,or:n,orThunk:n,map:function(t){return P(t(e))},ap:function(t){return t.fold(M,function(t){return P(t(e))})},each:function(t){t(e)},bind:i,flatten:t,exists:i,forall:i,filter:function(t){return t(e)?r:T},equals:function(t){return t.is(e)},equals_:function(t,n){return t.fold(H,function(t){return n(e,t)})},toArray:function(){return[e]},toString:function(){return"some("+e+")"}};return r},W={some:P,none:M,from:function(e){return null===e||e===undefined?T:P(e)}},D=function(){var e=_.container;if(e&&"static"!==m.DOM.getStyle(e,"position",!0)){var t=m.DOM.getPos(e),n=e.scrollLeft-t.x,i=e.scrollTop-t.y;return W.some({x:n,y:i})}return W.none()},N=function(e,t,n){var i,r=[];if(t)return a.each(t.split(/[ ,]/),function(t){var o,s=function(){var n=e.selection;t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})};"|"===t?i=null:(i||(i={type:"buttongroup",items:[]},r.push(i)),e.buttons[t]&&(o=t,"function"==typeof(t=e.buttons[o])&&(t=t()),t.type=t.type||"button",t.size=n,t=g.create(t),i.items.push(t),e.initialized?s():e.on("init",s)))}),{type:"toolbar",layout:"flow",items:r}},A=N,B=function(e,t){var n,i,r=[];if(a.each(!1===(i=(n=e).getParam("toolbar"))?[]:a.isArray(i)?a.grep(i,function(e){return e.length>0}):function(e,t){for(var n=[],i=1;i<10;i++){var r=e["toolbar"+i];if(!r)break;n.push(r)}var o=e.toolbar?[e.toolbar]:[t];return n.length>0?n:o}(n.settings,"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"),function(n){var i;(i=n)&&r.push(N(e,i,t))}),r.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:r}},O=m.DOM,z=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}},L=function(e,t){e.moveTo(t.left,t.top)},I=function(e,t,n,i,r,o){return o=z({x:t,y:n,w:o.w,h:o.h}),e&&(o=e({elementRect:z(i),contentAreaRect:z(r),panelRect:o})),o},F=function(e){var t,n=function(){return e.contextToolbars||[]},i=function(t,n){var i,r,o,s,l,u,c,d=e.getParam("inline_toolbar_position_handler");if(!e.removed){if(!t||!t.toolbar.panel)return f=e,void a.each(f.contextToolbars,function(e){e.panel&&e.panel.hide()});var f,h,m,g,p;c=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],l=t.toolbar.panel,n&&l.show(),h=t.element,m=O.getPos(e.getContentAreaContainer()),g=e.dom.getRect(h),"BODY"===(p=e.dom.getRoot()).nodeName&&(g.x-=p.ownerDocument.documentElement.scrollLeft||p.scrollLeft,g.y-=p.ownerDocument.documentElement.scrollTop||p.scrollTop),g.x+=m.x,g.y+=m.y,o=g,r=O.getRect(l.getEl()),s=O.getRect(e.getContentAreaContainer()||e.getBody());var v,b,y,x=D().getOr({x:0,y:0});if(o.x+=x.x,o.y+=x.y,r.x+=x.x,r.y+=x.y,s.x+=x.x,s.y+=x.y,"inline"!==O.getStyle(t.element,"display",!0)){var w=t.element.getBoundingClientRect();o.w=w.width,o.h=w.height}e.inline||(s.w=e.getDoc().documentElement.offsetWidth),e.selection.controlSelection.isResizable(t.element)&&o.w<25&&(o=R.inflate(o,0,8)),i=R.findBestRelativePosition(r,o,s,c),o=R.clamp(o,s),i?(u=R.relativePosition(r,o,i),L(l,I(d,u.x,u.y,o,s,r))):(s.h+=r.h,(o=R.intersect(s,o))?(i=R.findBestRelativePosition(r,o,s,["bc-tc","bl-tl","br-tr"]))?(u=R.relativePosition(r,o,i),L(l,I(d,u.x,u.y,o,s,r))):L(l,I(d,o.x,o.y,o,s,r)):l.hide()),v=l,y=function(e,t){return e===t},b=(b=i)?b.substr(0,2):"",a.each({t:"down",b:"up"},function(e,t){v.classes.toggle("arrow-"+e,y(t,b.substr(0,1)))}),a.each({l:"left",r:"right"},function(e,t){v.classes.toggle("arrow-"+e,y(t,b.substr(1,1)))})}},r=function(t){return function(){C.requestAnimationFrame(function(){e.selection&&i(l(e.selection.getNode()),t)})}},o=function(n){var o;if(n.toolbar.panel)return n.toolbar.panel.show(),void i(n);!function(){if(!t){var n=r(!0);t=e.selection.getScrollContainer()||e.getWin(),O.bind(t,"scroll",n),O.bind(_.container,"scroll",n),e.on("remove",function(){O.unbind(t,"scroll",n),O.unbind(_.container,"scroll",n)})}}(),o=g.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:A(e,n.toolbar.items),oncancel:function(){e.focus()}}),n.toolbar.panel=o,o.renderTo().reflow(),i(n)},s=function(){a.each(n(),function(e){e.panel&&e.panel.hide()})},l=function(t){var i,r,o,s=n();for(i=(o=e.$(t).parents().add(t)).length-1;i>=0;i--)for(r=s.length-1;r>=0;r--)if(s[r].predicate(o[i]))return{toolbar:s[r],element:o[i]};return null};e.on("click keyup setContent ObjectResized",function(t){("setcontent"!==t.type||t.selection)&&C.setEditorTimeout(e,function(){var t;(t=l(e.selection.getNode()))?(s(),o(t)):s()})}),e.on("blur hide contextmenu",s),e.on("ObjectResizeStart",function(){var t=l(e.selection.getNode());t&&t.toolbar.panel&&t.toolbar.panel.hide()}),e.on("ResizeEditor ResizeWindow",r(!0)),e.on("nodeChange",r(!1)),e.on("remove",function(){a.each(n(),function(e){e.panel&&e.panel.remove()}),e.contextToolbars={}}),e.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var t=l(e.selection.getNode());t&&t.toolbar.panel&&t.toolbar.panel.items()[0].focus()})},V=(r=Array.prototype.indexOf)===undefined?function(e,t){return J(e,t)}:function(e,t){return r.call(e,t)},U=function(e,t){return V(e,t)>-1},Y=function(e,t){for(var n=e.length,i=new Array(n),r=0;r<n;r++){var o=e[r];i[r]=t(o,r,e)}return i},$=function(e,t){for(var n=0,i=e.length;n<i;n++)t(e[n],n,e)},j=function(e,t){for(var n=e.length-1;n>=0;n--)t(e[n],n,e)},q=function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];t(o,i,e)&&n.push(o)}return n},X=function(e,t){for(var n=0,i=e.length;n<i;n++)if(t(e[n],n,e))return W.some(n);return W.none()},J=function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return n;return-1},G=Array.prototype.push,K=function(e){for(var t=[],n=0,i=e.length;n<i;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);G.apply(t,e[n])}return t},Z=function(e,t){for(var n=0,i=e.length;n<i;++n)if(!0!==t(e[n],n,e))return!1;return!0},Q=Array.prototype.slice,ee={map:Y,each:$,eachr:j,partition:function(e,t){for(var n=[],i=[],r=0,o=e.length;r<o;r++){var s=e[r];(t(s,r,e)?n:i).push(s)}return{pass:n,fail:i}},filter:q,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),i=[],r=[],o=0,s=e.length;o<s;o++){var a=e[o],l=t(a);l!==n&&(i.push(r),r=[]),n=l,r.push(a)}return 0!==r.length&&i.push(r),i},indexOf:function(e,t){var n=V(e,t);return-1===n?W.none():W.some(n)},foldr:function(e,t,n){return j(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return $(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,i=e.length;n<i;n++){var r=e[n];if(t(r,n,e))return W.some(r)}return W.none()},findIndex:X,flatten:K,bind:function(e,t){var n=Y(e,t);return K(n)},forall:Z,exists:function(e,t){return X(e,t).isSome()},contains:U,equal:function(e,t){return e.length===t.length&&Z(e,function(e,n){return e===t[n]})},reverse:function(e){var t=Q.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],i=0;i<e.length;i+=t){var r=e.slice(i,i+t);n.push(r)}return n},difference:function(e,t){return q(e,function(e){return!U(t,e)})},mapToObject:function(e,t){for(var n={},i=0,r=e.length;i<r;i++){var o=e[i];n[String(o)]=t(o,i)}return n},pure:function(e){return[e]},sort:function(e,t){var n=Q.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],i=0;i<e;i++)n.push(t(i));return n},head:function(e){return 0===e.length?W.none():W.some(e[0])},last:function(e){return 0===e.length?W.none():W.some(e[e.length-1])}},te={file:{title:"File",items:"newdocument restoredraft | preview | print"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},view:{title:"View",items:"code | visualaid visualchars visualblocks | spellchecker | preview fullscreen"},insert:{title:"Insert",items:"image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat"},tools:{title:"Tools",items:"spellchecker spellcheckerlanguage | a11ycheck"},table:{title:"Table"},help:{title:"Help"}},ne=function(e,t){return"|"===e?{name:"|",item:{text:"|"}}:t?{name:e,item:t}:null},ie=function(e){return e&&"|"===e.item.text},re=function(e,t,n,i){var r,o,s,l,u,c,d,f;return t?(o=t[i],l=!0):o=te[i],o&&(r={text:o.title},s=[],a.each((o.items||"").split(/[ ,]/),function(t){var n=ne(t,e[t]);n&&s.push(n)}),l||a.each(e,function(e,t){var n,r;e.context!==i||(n=s,r=t,ee.findIndex(n,function(e){return e.name===r}).isSome())||("before"===e.separator&&s.push({name:"|",item:{text:"|"}}),e.prependToContext?s.unshift(ne(t,e)):s.push(ne(t,e)),"after"===e.separator&&s.push({name:"|",item:{text:"|"}}))}),r.menu=ee.map((u=s,c=n,d=ee.filter(u,function(e){return!1===c.hasOwnProperty(e.name)}),f=ee.filter(d,function(e,t,n){return!ie(e)||!ie(n[t-1])}),ee.filter(f,function(e,t,n){return!ie(e)||t>0&&t<n.length-1})),function(e){return e.item}),!r.menu.length)?null:r},oe=function(e){for(var t,n=[],i=function(e){var t,n=[],i=d(e);if(i)for(t in i)n.push(t);else for(t in te)n.push(t);return n}(e),r=a.makeMap((t=e,t.getParam("removed_menuitems","")).split(/[ ,]/)),o=u(e),s="string"==typeof o?o.split(/[ ,]/):i,l=0;l<s.length;l++){var c=s[l],f=re(e.menuItems,d(e),r,c);f&&n.push(f)}return n},se=m.DOM,ae=function(e){return{width:e.clientWidth,height:e.clientHeight}},le=function(e,t,n){var i,r,o,s;i=e.getContainer(),r=e.getContentAreaContainer().firstChild,o=ae(i),s=ae(r),null!==t&&(t=Math.max(e.getParam("min_width",100,"number"),t),t=Math.min(e.getParam("max_width",65535,"number"),t),se.setStyle(i,"width",t+(o.width-s.width)),se.setStyle(r,"width",t)),n=Math.max(e.getParam("min_height",100,"number"),n),n=Math.min(e.getParam("max_height",65535,"number"),n),se.setStyle(r,"height",n),b(e)},ue=le,ce=function(e,t,n){var i=e.getContentAreaContainer();le(e,i.clientWidth+t,i.clientHeight+n)},de=function(e,t,n){var i,r=e.settings[n];r&&r((i=t.getEl("body"),{element:function(){return i}}))},fe=function(e,t,n){return function(i){var r,o,s,l,u,c=i.control,d=c.parents().filter("panel")[0],f=d.find("#"+t)[0],h=(r=n,o=t,a.grep(r,function(e){return e.name===o})[0]);s=t,l=d,u=n,a.each(u,function(e){var t=l.items().filter("#"+e.name)[0];t&&t.visible()&&e.name!==s&&(de(e,t,"onhide"),t.visible(!1))}),c.parent().items().each(function(e){e.active(!1)}),f&&f.visible()?(de(h,f,"onhide"),f.hide(),c.active(!1)):(f?(f.show(),de(h,f,"onshow")):(f=g.create({type:"container",name:t,layout:"stack",classes:"sidebar-panel",html:""}),d.prepend(f),de(h,f,"onrender"),de(h,f,"onshow")),c.active(!0)),b(e)}},he=function(e){return!(_.ie&&!(_.ie>=11)||!e.sidebars)&&e.sidebars.length>0},me=function(e){return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:a.map(e.sidebars,function(t){var n=t.settings;return{type:"button",icon:n.icon,image:n.image,tooltip:n.tooltip,onclick:fe(e,t.name,e.sidebars)}})}]}},ge=function(e){var t=function(){e._skinLoaded=!0,v(e)};return function(){e.initialized?t():e.on("init",t)}},pe=m.DOM,ve=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},be=function(e,t,n){var i,r,o,s,a;if(!1===f(e)&&n.skinUiCss?pe.styleSheetLoader.load(n.skinUiCss,ge(e)):ge(e)(),i=t.panel=g.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[{type:"container",classes:"top-part",items:[!1===l(e)?null:{type:"menubar",border:"0 0 1 0",items:oe(e)},B(e,c(e))]},he(e)?(s=e,{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[ve("0"),me(s)]}):ve("1 0 0 0")]}),"none"!==h(e)&&(r={type:"resizehandle",direction:h(e),onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;o={width:t.clientWidth,height:t.clientHeight}},onResize:function(t){"both"===h(e)?ue(e,o.width+t.deltaX,o.height+t.deltaY):ue(e,null,o.height+t.deltaY)}}),e.getParam("statusbar",!0,"boolean")){var u=p.translate(["Powered by {0}",'<a href="https://www.tinymce.com/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>']),d=e.getParam("branding",!0,"boolean")?{type:"label",classes:"branding",html:" "+u}:null;i.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:e},r,d]})}return y(e),e.on("SwitchMode",(a=i,function(e){a.find("*").disabled("readonly"===e.mode)})),i.renderBefore(n.targetNode).reflow(),e.getParam("readonly",!1,"boolean")&&e.setMode("readonly"),n.width&&pe.setStyle(i.getEl(),"width",n.width),e.on("remove",function(){i.remove(),i=null}),w(e,i),F(e),{iframeContainer:i.find("#iframe")[0].getEl(),editorContainer:i.getEl()}},ye=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),xe=0,we={id:function(){return"mceu_"+xe++},create:function(e,t,n){var i=document.createElement(e);return m.DOM.setAttribs(i,t),"string"==typeof n?i.innerHTML=n:a.each(n,function(e){e.nodeType&&i.appendChild(e)}),i},createFragment:function(e){return m.DOM.createFragment(e)},getWindowSize:function(){return m.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var i=e.getBoundingClientRect();t=Math.max(i.width||i.right-i.left,e.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return m.DOM.getPos(e,t||we.getContainer())},getContainer:function(){return _.container?_.container:document.body},getViewPort:function(e){return m.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return m.DOM.addClass(e,t)},removeClass:function(e,t){return m.DOM.removeClass(e,t)},hasClass:function(e,t){return m.DOM.hasClass(e,t)},toggleClass:function(e,t,n){return m.DOM.toggleClass(e,t,n)},css:function(e,t,n){return m.DOM.setStyle(e,t,n)},getRuntimeStyle:function(e,t){return m.DOM.getStyle(e,t,!0)},on:function(e,t,n,i){return m.DOM.bind(e,t,n,i)},off:function(e,t,n){return m.DOM.unbind(e,t,n)},fire:function(e,t,n){return m.DOM.fire(e,t,n)},innerHtml:function(e,t){m.DOM.setHTML(e,t)}};function _e(e,t,n){var i,r,o,s,a,l,u,c,d,f;return d=we.getViewPort(),o=(r=we.getPos(t)).x,s=r.y,e.state.get("fixed")&&"static"===we.getRuntimeStyle(document.body,"position")&&(o-=d.x,s-=d.y),i=e.getEl(),a=(f=we.getSize(i)).width,l=f.height,u=(f=we.getSize(t)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var Re={testMoveRel:function(e,t){for(var n=we.getViewPort(),i=0;i<t.length;i++){var r=_e(this,e,t[i]);if(this.state.get("fixed")){if(r.x>0&&r.x+r.w<n.w&&r.y>0&&r.y+r.h<n.h)return t[i]}else if(r.x>n.x&&r.x+r.w<n.w+n.x&&r.y>n.y&&r.y+r.h<n.h+n.y)return t[i]}return t[0]},moveRel:function(e,t){"string"!=typeof t&&(t=this.testMoveRel(e,t));var n=_e(this,e,t);return this.moveTo(n.x,n.y)},moveBy:function(e,t){var n=this.layoutRect();return this.moveTo(n.x+e,n.y+t),this},moveTo:function(e,t){var n=this;function i(e,t,n){return e<0?0:e+n>t&&(e=t-n)<0?0:e}if(n.settings.constrainToViewport){var r=we.getViewPort(window),o=n.layoutRect();e=i(e,r.w+r.x,o.w),t=i(t,r.h+r.y,o.h)}return n.state.get("rendered")?n.layoutRect({x:e,y:t}).repaint():(n.settings.x=e,n.settings.y=t),n.fire("move",{x:e,y:t}),n}},Ce=tinymce.util.Tools.resolve("tinymce.util.Class"),ke=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),Ee=function(e){var t;if(e)return"number"==typeof e?{top:e=e||0,left:e,bottom:e,right:e}:(1===(t=(e=e.split(" ")).length)?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],10)||0,right:parseInt(e[1],10)||0,bottom:parseInt(e[2],10)||0,left:parseInt(e[3],10)||0})},He=function(e,t){function n(t){var n=parseFloat(function(t){var n=e.ownerDocument.defaultView;if(n){var i=n.getComputedStyle(e,null);return i?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),i.getPropertyValue(t)):null}return e.currentStyle[t]}(t));return isNaN(n)?0:n}return{top:n(t+"TopWidth"),right:n(t+"RightWidth"),bottom:n(t+"BottomWidth"),left:n(t+"LeftWidth")}};function Se(){}function Me(e){this.cls=[],this.cls._map={},this.onchange=e||Se,this.prefix=""}a.extend(Me.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){var t=void 0;for(t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),Me.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)t>0&&(e+=" "),e+=this.prefix+this.cls[t];return e};var Te,Pe,We,De=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ne=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,Ae=/^\s*|\s*$/g,Be=Ce.extend({init:function(e){var t=this.match;function n(e,n,r){var o;function s(e){e&&n.push(e)}return s(function(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}((o=De.exec(e.replace(Ae,"")))[1])),s(function(e){if(e)return function(t){return t._name===e}}(o[2])),s(function(e){if(e)return e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.classes.contains(e[n]))return!1;return!0}}(o[3])),s(function(e,t,n){if(e)return function(i){var r=i[e]?i[e]():"";return t?"="===t?r===n:"*="===t?r.indexOf(n)>=0:"~="===t?(" "+r+" ").indexOf(" "+n+" ")>=0:"!="===t?r!==n:"^="===t?0===r.indexOf(n):"$="===t&&r.substr(r.length-n.length)===n:!!n}}(o[4],o[5],o[6])),s(function(e){var n;if(e)return(e=/(?:not\((.+)\))|(.+)/i.exec(e))[1]?(n=i(e[1],[]),function(e){return!t(e,n)}):(e=e[2],function(t,n,i){return"first"===e?0===n:"last"===e?n===i-1:"even"===e?n%2==0:"odd"===e?n%2==1:!!t[e]&&t[e]()})}(o[7])),n.pseudo=!!o[7],n.direct=r,n}function i(e,t){var r,o,s,a=[];do{if(Ne.exec(""),(o=Ne.exec(e))&&(e=o[3],a.push(o[1]),o[2])){r=o[3];break}}while(o);for(r&&i(r,t),e=[],s=0;s<a.length;s++)">"!==a[s]&&e.push(n(a[s],[],">"===a[s-1]));return t.push(e),t}this._selectors=i(e,[])},match:function(e,t){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(t=t||this._selectors).length;n<i;n++){for(m=e,h=0,r=(o=(s=t[n]).length)-1;r>=0;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(e){var t,n,i=[],r=this._selectors;function o(e,t,n){var r,s,a,l,u,c=t[n];for(r=0,s=e.length;r<s;r++){for(u=e[r],a=0,l=c.length;a<l;a++)if(!c[a](u,r,s)){a=l+1;break}if(a===l)n===t.length-1?i.push(u):u.items&&o(u.items(),t,n+1);else if(c.direct)return;u.items&&o(u.items(),t,n)}}if(e.items){for(t=0,n=r.length;t<n;t++)o(e.items(),r[t],0);n>1&&(i=function(e){for(var t,n=[],i=e.length;i--;)(t=e[i]).__checked||(n.push(t),t.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(i))}return Te||(Te=Be.Collection),new Te(i)}}),Oe=Array.prototype.push,ze=Array.prototype.slice;We={length:0,init:function(e){e&&this.add(e)},add:function(e){return a.isArray(e)?Oe.apply(this,e):e instanceof Pe?this.add(e.toArray()):Oe.call(this,e),this},set:function(e){var t,n=this,i=n.length;for(n.length=0,n.add(e),t=n.length;t<i;t++)delete n[t];return n},filter:function(e){var t,n,i,r,o=[];for("string"==typeof e?(e=new Be(e),r=function(t){return e.match(t)}):r=e,t=0,n=this.length;t<n;t++)r(i=this[t])&&o.push(i);return new Pe(o)},slice:function(){return new Pe(ze.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(e){return a.each(this,e),this},toArray:function(){return a.toArray(this)},indexOf:function(e){for(var t=this.length;t--&&this[t]!==e;);return t},reverse:function(){return new Pe(a.toArray(this).reverse())},hasClass:function(e){return!!this[0]&&this[0].classes.contains(e)},prop:function(e,t){var n;return t!==undefined?(this.each(function(n){n[e]&&n[e](t)}),this):(n=this[0])&&n[e]?n[e]():void 0},exec:function(e){var t=a.toArray(arguments).slice(1);return this.each(function(n){n[e]&&n[e].apply(n,t)}),this},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},a.each("fire on off show hide append prepend before after reflow".split(" "),function(e){We[e]=function(){var t=a.toArray(arguments);return this.each(function(n){e in n&&n[e].apply(n,t)}),this}}),a.each("text name disabled active selected checked visible parent value data".split(" "),function(e){We[e]=function(t){return this.prop(e,t)}}),Pe=Ce.extend(We),Be.Collection=Pe;var Le=Pe,Ie=function(e){this.create=e.create};Ie.create=function(e,t){return new Ie({create:function(n,i){var r,o=function(e){n.set(i,e.value)};return n.on("change:"+i,function(n){e.set(t,n.value)}),e.on("change:"+t,o),(r=n._bindings)||(r=n._bindings=[],n.on("destroy",function(){for(var e=r.length;e--;)r[e]()})),r.push(function(){e.off("change:"+t,o)}),e.get(t)}})};var Fe=tinymce.util.Tools.resolve("tinymce.util.Observable");function Ve(e){return e.nodeType>0}var Ue,Ye,$e=Ce.extend({Mixins:[Fe],init:function(e){var t,n;for(t in e=e||{})(n=e[t])instanceof Ie&&(e[t]=n.create(this,t));this.data=e},set:function(e,t){var n,i,r=this.data[e];if(t instanceof Ie&&(t=t.create(this,e)),"object"==typeof e){for(n in e)this.set(n,e[n]);return this}return function o(e,t){var n,i;if(e===t)return!0;if(null===e||null===t)return e===t;if("object"!=typeof e||"object"!=typeof t)return e===t;if(a.isArray(t)){if(e.length!==t.length)return!1;for(n=e.length;n--;)if(!o(e[n],t[n]))return!1}if(Ve(e)||Ve(t))return e===t;for(n in i={},t){if(!o(e[n],t[n]))return!1;i[n]=!0}for(n in e)if(!i[n]&&!o(e[n],t[n]))return!1;return!0}(r,t)||(this.data[e]=t,i={target:this,name:e,value:t,oldValue:r},this.fire("change:"+e,i),this.fire("change",i)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(e){return Ie.create(this,e)},destroy:function(){this.fire("destroy")}}),je={},qe={add:function(e){var t=e.parent();if(t){if(!t._layout||t._layout.isNative())return;je[t._id]||(je[t._id]=t),Ue||(Ue=!0,C.requestAnimationFrame(function(){var e,t;for(e in Ue=!1,je)(t=je[e]).state.get("rendered")&&t.reflow();je={}},document.body))}},remove:function(e){je[e._id]&&delete je[e._id]}},Xe="onmousewheel"in document,Je=!1,Ge=0,Ke={Statics:{classPrefix:"mce-"},isRtl:function(){return Ye.rtl},classPrefix:"mce-",init:function(e){var t,n,i=this;function r(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}i.settings=e=a.extend({},i.Defaults,e),i._id=e.id||"mceu_"+Ge++,i._aria={role:e.role},i._elmCache={},i.$=ye,i.state=new $e({visible:!0,active:!1,disabled:!1,value:""}),i.data=new $e(e.data),i.classes=new Me(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(t=e.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&t!==n&&r(n),r(t)),a.each("title text name visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=e,i.borderBox=Ee(e.border),i.paddingBox=Ee(e.padding),i.marginBox=Ee(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){return we.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e,t,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();e=c.borderBox=c.borderBox||He(f,"border"),c.paddingBox=c.paddingBox||He(f,"padding"),c.marginBox=c.marginBox||He(f,"margin"),u=we.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=e.left+e.right,m=e.top+e.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=t={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},t},layoutRect:function(e){var t,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),e?(i=a.deltaW,r=a.deltaH,e.x!==undefined&&(a.x=e.x),e.y!==undefined&&(a.y=e.y),e.minW!==undefined&&(a.minW=e.minW),e.minH!==undefined&&(a.minH=e.minH),(n=e.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=e.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=e.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=e.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),e.contentW!==undefined&&(a.contentW=e.contentW),e.contentH!==undefined&&(a.contentH=e.contentH),(t=s._lastLayoutRect).x===a.x&&t.y===a.y&&t.w===a.w&&t.h===a.h||((o=Ye.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),t.x=a.x,t.y=a.y,t.w=a.w,t.h=a.h),s):a},repaint:function(){var e,t,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(e){return e}:Math.round,e=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(e.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(e.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),e.width=(u>=0?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),e.height=(u>=0?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((t=n.style).width=(u>=0?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((t=t||n.style).height=(u>=0?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,we.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){var n,i,r,o=this;return Ze(o).on(e,"string"!=typeof(n=t)?n:function(e){return i||o.parentsAndSelf().each(function(e){var t=e.settings.callbacks;if(t&&(i=t[n]))return r=e,!1}),i?i.call(r,e):(e.action=n,void this.fire("execute",e))}),o},off:function(e,t){return Ze(this).off(e,t),this},fire:function(e,t,n){if((t=t||{}).control||(t.control=this),t=Ze(this).fire(e,t),!1!==n&&this.parent)for(var i=this.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return Ze(this).has(e)},parents:function(e){var t,n=new Le;for(t=this.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},parentsAndSelf:function(e){return new Le(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=ye("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,i=n.getEl(n.ariaTarget);return void 0===t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&i.setAttribute("role"===e?e:"aria-"+e,t),n)},encode:function(e,t){return!1!==t&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return Ye.translate?Ye.translate(e):e},before:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this),!0),this},after:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this)),this},remove:function(){var e,t,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(t=o.length;t--;)o[t].remove()}r&&r.items&&(e=[],r.items().each(function(t){t!==n&&e.push(t)}),r.items().set(e),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&ye(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(e){return ye(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return ye(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e,t,n,i,r,o=this,s=o.settings;for(i in o.$el=ye(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}Qe(o),s.style&&(e=o.getEl())&&(e.setAttribute("style",s.style),e.style.cssText=s.style),o.settings.border&&(t=o.borderBox,o.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),a.controlIdLookup[o._id]=o,o._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(e){var t,n=e.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(t=o.parent())&&(t._lastRect=null),o.fire(n?"show":"hide"),qe.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){var t,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(e,t){var n,i,r=e;for(n=i=0;r&&r!==t&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return t=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===e?(t-=o-i,n-=s-r):"center"===e&&(t-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=t,l.scrollTop=n,this},getRoot:function(){for(var e,t=this,n=[];t;){if(t.rootControl){e=t.rootControl;break}n.push(t),e=t,t=t.parent()}e||(e=this);for(var i=n.length;i--;)n[i].rootControl=e;return e},reflow:function(){qe.remove(this);var e=this.parent();return e&&e._layout&&!e._layout.isNative()&&e.reflow(),this}};function Ze(e){return e._eventDispatcher||(e._eventDispatcher=new ke({scope:e,toggleEvent:function(t,n){n&&ke.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e.state.get("rendered")&&Qe(e))}})),e._eventDispatcher}function Qe(e){var t,n,i,r,o,s;function a(t){var n=e.getParentCtrl(t.target);n&&n.fire(t.type,t)}function l(){var e=r._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),r._lastHoverCtrl=null)}function u(t){var n,i,o,s=e.getParentCtrl(t.target),a=r._lastHoverCtrl,l=0;if(s!==a){if(r._lastHoverCtrl=s,(i=s.parents().toArray().reverse()).push(s),a){for((o=a.parents().toArray().reverse()).push(a),l=0;l<o.length&&i[l]===o[l];l++);for(n=o.length-1;n>=l;n--)(a=o[n]).fire("mouseleave",{target:a.getEl()})}for(n=l;n<i.length;n++)(s=i[n]).fire("mouseenter",{target:s.getEl()})}}function c(t){t.preventDefault(),"mousewheel"===t.type?(t.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-.025*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=e.fire("wheel",t)}if(o=e._nativeEvents){for((i=e.parents().toArray()).unshift(e),t=0,n=i.length;!r&&t<n;t++)r=i[t]._eventsRoot;for(r||(r=i[i.length-1]||e),e._eventsRoot=r,n=t,t=0;t<n;t++)i[t]._eventsRoot=r;var d=r._delegates;for(s in d||(d=r._delegates={}),o){if(!o)return!1;"wheel"!==s||Je?("mouseenter"===s||"mouseleave"===s?r._hasMouseEnter||(ye(r.getEl()).on("mouseleave",l).on("mouseover",u),r._hasMouseEnter=1):d[s]||(ye(r.getEl()).on(s,a),d[s]=!0),o[s]=!1):Xe?ye(e.getEl()).on("mousewheel",c):ye(e.getEl()).on("DOMMouseScroll",c)}}}a.each("text title visible disabled active value".split(" "),function(e){Ke[e]=function(t){return 0===arguments.length?this.state.get(e):(void 0!==t&&this.state.set(e,t),this)}});var et=Ye=Ce.extend(Ke),tt=function(e){return!!e.getAttribute("data-mce-tabstop")},nt=function(e){var t,n,i=e.root;function r(e){return e&&1===e.nodeType}try{t=document.activeElement}catch(y){t=document.body}function o(e){return r(e=e||t)?e.getAttribute("role"):null}function s(e){for(var n,i=e||t;i=i.parentNode;)if(n=o(i))return n}function a(e){var n=t;if(r(n))return n.getAttribute("aria-"+e)}function l(e){var t=e.tagName.toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}function u(e){var t=[];return function n(e){if(1===e.nodeType&&"none"!==e.style.display&&!e.disabled){var i;(l(i=e)&&!i.hidden||tt(i)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(o(i)))&&t.push(e);for(var r=0;r<e.childNodes.length;r++)n(e.childNodes[r])}}(e||i.getEl()),t}function c(e){var t,i;(i=(e=e||n).parents().toArray()).unshift(e);for(var r=0;r<i.length&&!(t=i[r]).settings.ariaRoot;r++);return t}function d(e,t){return e<0?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function f(e,n){var i=-1,r=c();n=n||u(r.getEl());for(var o=0;o<n.length;o++)n[o]===t&&(i=o);i+=e,r.lastAriaIndex=d(i,n)}function h(){"tablist"===s()?f(-1,u(t.parentNode)):n.parent().submenu?v():f(-1)}function m(){var e=o(),n=s();"tablist"===n?f(1,u(t.parentNode)):"menuitem"===e&&"menu"===n&&a("haspopup")?b():f(1)}function g(){f(-1)}function p(){var e=o(),t=s();"menuitem"===e&&"menubar"===t?b():"button"===e&&a("haspopup")?b({key:"down"}):f(1)}function v(){n.fire("cancel")}function b(e){e=e||{},n.fire("click",{target:t,aria:e})}return n=i.getParentCtrl(t),i.on("keydown",function(e){function i(e,n){l(t)||tt(t)||"slider"!==o(t)&&!1!==n(e)&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:i(e,h);break;case 39:i(e,m);break;case 38:i(e,g);break;case 40:i(e,p);break;case 27:v();break;case 14:case 13:case 32:i(e,b);break;case 9:!function(e){if("tablist"===s()){var t=u(n.getEl("body"))[0];t&&t.focus()}else f(e.shiftKey?-1:1)}(e),e.preventDefault()}}),i.on("focusin",function(e){t=e.target,n=e.control}),{focusFirst:function(e){var t=c(e),n=u(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?d(t.lastAriaIndex,n):d(0,n)}}},it={},rt=et.extend({init:function(e){var t=this;t._super(e),(e=t.settings).fixed&&t.state.set("fixed",!0),t._items=new Le,t.isRtl()&&t.classes.add("rtl"),t.bodyClasses=new Me(function(){t.state.get("rendered")&&(t.getEl("body").className=this.toString())}),t.bodyClasses.prefix=t.classPrefix,t.classes.add("container"),t.bodyClasses.add("container-body"),e.containerCls&&t.classes.add(e.containerCls),t._layout=g.create((e.layout||"")+"layout"),t.settings.items?t.add(t.settings.items):t.add(t.render()),t._hasBody=!0},items:function(){return this._items},find:function(e){return(e=it[e]=it[e]||new Be(e)).find(this)},add:function(e){return this.items().add(this.create(e)).parent(this),this},focus:function(e){var t,n,i,r=this;if(!e||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(e){if(e.settings.autofocus)return t=null,!1;e.canFocus&&(t=t||e)}),t&&t.focus(),r;n.focusFirst(r)},replace:function(e,t){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===e){i[r]=t;break}r>=0&&((n=t.getEl())&&n.parentNode.removeChild(n),(n=e.getEl())&&n.parentNode.removeChild(n)),t.parent(this)},create:function(e){var t,n=this,i=[];return a.isArray(e)||(e=[e]),a.each(e,function(e){e&&(e instanceof et||("string"==typeof e&&(e={type:e}),t=a.extend({},n.settings.defaults,e),e.type=t.type=t.type||e.type||n.settings.defaultType||(t.defaults?t.defaults.type:null),e=g.create(t)),i.push(e))}),i},renderNew:function(){var e=this;return e.items().each(function(t,n){var i;t.parent(e),t.state.get("rendered")||((i=e.getEl("body")).hasChildNodes()&&n<=i.childNodes.length-1?ye(i.childNodes[n]).before(t.renderHtml()):ye(i).append(t.renderHtml()),t.postRender(),qe.add(t))}),e._layout.applyClasses(e.items().filter(":visible")),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){return this.items().set(this.create(e).concat(this.items().toArray())),this.renderNew()},insert:function(e,t,n){var i,r,o;return e=this.create(e),i=this.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(r=i.slice(0,t).toArray(),o=i.slice(t).toArray(),i.set(r.concat(e,o))),this.renderNew()},fromJSON:function(e){for(var t in e)this.find("#"+t).value(e[t]);return this},toJSON:function(){var e={};return this.find("*").each(function(t){var n=t.name(),i=t.value();n&&void 0!==i&&(e[n]=i)}),e},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e,t=this;return t.items().exec("postRender"),t._super(),t._layout.postRender(t),t.state.set("rendered",!0),t.settings.style&&t.$el.css(t.settings.style),t.settings.border&&(e=t.borderBox,t.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left})),t.parent()||(t.keyboardNav=nt({root:t})),t},initLayoutRect:function(){var e=this._super();return this._layout.recalc(this),e},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!==t.w||n.h!==t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var e;if(qe.remove(this),this.visible()){for(et.repaintControls=[],et.repaintControls.map={},this.recalc(),e=et.repaintControls.length;e--;)et.repaintControls[e].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),et.repaintControls=[]}return this}});function ot(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}var st,at,lt,ut,ct=function(e,t){var n,i,r,o,s,a,l,u=t.document||document;function c(){return u.getElementById(t.handle||e)}t=t||{},r=function(e){var r,d,f,h,m,g,p,v,b,y,x,w,_=(r=u,y=Math.max,d=r.documentElement,f=r.body,h=y(d.scrollWidth,f.scrollWidth),m=y(d.clientWidth,f.clientWidth),g=y(d.offsetWidth,f.offsetWidth),p=y(d.scrollHeight,f.scrollHeight),v=y(d.clientHeight,f.clientHeight),b=y(d.offsetHeight,f.offsetHeight),{width:h<g?m:h,height:p<b?v:p});ot(e),e.preventDefault(),i=e.button,x=c(),a=e.screenX,l=e.screenY,w=window.getComputedStyle?window.getComputedStyle(x,null).getPropertyValue("cursor"):x.runtimeStyle.cursor,n=ye("<div></div>").css({position:"absolute",top:0,left:0,width:_.width,height:_.height,zIndex:2147483647,opacity:1e-4,cursor:w}).appendTo(u.body),ye(u).on("mousemove touchmove",s).on("mouseup touchend",o),t.start(e)},s=function(e){if(ot(e),e.button!==i)return o(e);e.deltaX=e.screenX-a,e.deltaY=e.screenY-l,e.preventDefault(),t.drag(e)},o=function(e){ot(e),ye(u).off("mousemove touchmove",s).off("mouseup touchend",o),n.remove(),t.stop&&t.stop(e)},this.destroy=function(){ye(c()).off()},ye(c()).on("mousedown touchstart",r)},dt={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var e=this,t=2;function n(){var n,i,r;function o(r,o,s,a,l,u){var c,d,f,h,m,g,p,v;if(d=e.getEl("scroll"+r)){if(p=o.toLowerCase(),v=s.toLowerCase(),ye(e.getEl("absend")).css(p,e.layoutRect()[a]-1),!l)return void ye(d).css("display","none");ye(d).css("display","block"),c=e.getEl("body"),f=e.getEl("scroll"+r+"t"),h=c["client"+s]-2*t,m=(h-=n&&i?d["client"+u]:0)/c["scroll"+s],(g={})[p]=c["offset"+o]+t,g[v]=h,ye(d).css(g),(g={})[p]=c["scroll"+o]*m,g[v]=h*m,ye(f).css(g)}}r=e.getEl("body"),n=r.scrollWidth>r.clientWidth,i=r.scrollHeight>r.clientHeight,o("h","Left","Width","contentW",n,"Height"),o("v","Top","Height","contentH",i,"Width")}e.settings.autoScroll&&(e._hasScroll||(e._hasScroll=!0,function(){function n(n,i,r,o,s){var a,l=e._id+"-scroll"+n,u=e.classPrefix;ye(e.getEl()).append('<div id="'+l+'" class="'+u+"scrollbar "+u+"scrollbar-"+n+'"><div id="'+l+'t" class="'+u+'scrollbar-thumb"></div></div>'),e.draghelper=new ct(l+"t",{start:function(){a=e.getEl("body")["scroll"+i],ye("#"+l).addClass(u+"active")},drag:function(l){var u,c,d,f,h=e.layoutRect();c=h.contentW>h.innerW,d=h.contentH>h.innerH,f=e.getEl("body")["client"+r]-2*t,u=(f-=c&&d?e.getEl("scroll"+n)["client"+s]:0)/e.getEl("body")["scroll"+r],e.getEl("body")["scroll"+i]=a+l["delta"+o]/u},stop:function(){ye("#"+l).removeClass(u+"active")}})}e.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}(),e.on("wheel",function(t){var i=e.getEl("body");i.scrollLeft+=10*(t.deltaX||0),i.scrollTop+=10*t.deltaY,n()}),ye(e.getEl("body")).on("scroll",n)),n())}},ft=rt.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[dt],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),void 0===n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}}),ht={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(e,t){if(e<=1||t<=1){var n=we.getWindowSize();e=e<=1?e*n.w:e,t=t<=1?t*n.h:t}return this._layoutRect.autoResize=!1,this.layoutRect({minW:e,minH:t,w:e,h:t}).reflow()},resizeBy:function(e,t){var n=this.layoutRect();return this.resizeTo(n.w+e,n.h+t)}},mt=[],gt=[];function pt(e,t){for(;e;){if(e===t)return!0;e=e.parent()}}function vt(){st||(st=function(e){2!==e.button&&function(e){for(var t=mt.length;t--;){var n=mt[t],i=n.getParentCtrl(e.target);if(n.settings.autohide){if(i&&(pt(i,n)||n.parent()===i))continue;(e=n.fire("autohide",{target:e.target})).isDefaultPrevented()||n.hide()}}}(e)},ye(document).on("click touchstart",st))}function bt(e){var t=we.getViewPort().y;function n(t,n){for(var i,r=0;r<mt.length;r++)if(mt[r]!==e)for(i=mt[r].parent();i&&(i=i.parent());)i===e&&mt[r].fixed(t).moveBy(0,n).repaint()}e.settings.autofix&&(e.state.get("fixed")?e._autoFixY>t&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),n(!1,e._autoFixY-t)):(e._autoFixY=e.layoutRect().y,e._autoFixY<t&&(e.fixed(!0).layoutRect({y:0}).repaint(),n(!0,t-e._autoFixY))))}function yt(e,t){var n,i,r=xt.zIndex||65535;if(e)gt.push(t);else for(n=gt.length;n--;)gt[n]===t&>.splice(n,1);if(gt.length)for(n=0;n<gt.length;n++)gt[n].modal&&(r++,i=gt[n]),gt[n].getEl().style.zIndex=r,gt[n].zIndex=r,r++;var o=ye("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];i?ye(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),ut=!1),xt.currentZIndex=r}var xt=ft.extend({Mixins:[Re,ht],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.classes.add("floatpanel"),e.autohide&&(vt(),function(){if(!lt){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;lt=function(){document.all&&t===e.clientWidth&&n===e.clientHeight||(t=e.clientWidth,n=e.clientHeight,xt.hideAll())},ye(window).on("resize",lt)}}(),mt.push(t)),e.autofix&&(at||(at=function(){var e;for(e=mt.length;e--;)bt(mt[e])},ye(window).on("scroll",at)),t.on("move",function(){bt(this)})),t.on("postrender show",function(e){if(e.control===t){var n,i=t.classPrefix;t.modal&&!ut&&((n=ye("#"+i+"modal-block",t.getContainerElm()))[0]||(n=ye('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>').appendTo(t.getContainerElm())),C.setTimeout(function(){n.addClass(i+"in"),ye(t.getEl()).addClass(i+"in")}),ut=!0),yt(!0,t)}}),t.on("show",function(){t.parents().each(function(e){if(e.state.get("fixed"))return t.fixed(!0),!1})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!==e){if(t.state.get("rendered")){var n=we.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e,t=this._super();for(e=mt.length;e--&&mt[e]!==this;);return-1===e&&mt.push(this),t},hide:function(){return wt(this),yt(!1,this),this._super()},hideAll:function(){xt.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),yt(!1,this)),this},remove:function(){wt(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function wt(e){var t;for(t=mt.length;t--;)mt[t]===e&&mt.splice(t,1);for(t=gt.length;t--;)gt[t]===e&>.splice(t,1)}xt.hideAll=function(){for(var e=mt.length;e--;){var t=mt[e];t&&t.settings.autohide&&(t.hide(),mt.splice(e,1))}};var _t,Rt=function(e){return!(!e||_.container)},Ct=function(e,t,n){var i,r,o=m.DOM,s=e.getParam("fixed_toolbar_container");s&&(r=o.select(s)[0]);var a=function(){if(i&&i.moveRel&&i.visible()&&!i._fixed){var t=e.selection.getScrollContainer(),n=e.getBody(),r=0,s=0;if(t){var a=o.getPos(n),l=o.getPos(t);r=Math.max(0,l.x-a.x),s=Math.max(0,l.y-a.y)}i.fixed(!1).moveRel(n,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(r,s)}},u=function(){i&&(i.show(),a(),o.addClass(e.getBody(),"mce-edit-focus"))},d=function(){i&&(i.hide(),xt.hideAll(),o.removeClass(e.getBody(),"mce-edit-focus"))},h=function(){i?i.visible()||u():(i=t.panel=g.create({type:r?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:Rt(r),fixed:Rt(r),border:1,items:[!1===l(e)?null:{type:"menubar",border:"0 0 1 0",items:oe(e)},B(e,c(e))]}),y(e),r?i.renderTo(r).reflow():i.renderTo().reflow(),w(e,i),u(),F(e),e.on("nodeChange",a),e.on("ResizeWindow",a),e.on("activate",u),e.on("deactivate",d),e.nodeChanged())};return e.settings.content_editable=!0,e.on("focus",function(){!1===f(e)&&n.skinUiCss?o.styleSheetLoader.load(n.skinUiCss,h,h):h()}),e.on("blur hide",d),e.on("remove",function(){i&&(i.remove(),i=null)}),!1===f(e)&&n.skinUiCss?o.styleSheetLoader.load(n.skinUiCss,ge(e)):ge(e)(),{}},kt=function(e,t){var n,i,r=this,o=et.classPrefix;r.show=function(s,a){function l(){n&&(ye(e).append('<div class="'+o+"throbber"+(t?" "+o+"throbber-inline":"")+'"></div>'),a&&a())}return r.hide(),n=!0,s?i=C.setTimeout(l,s):l(),r},r.hide=function(){var t=e.lastChild;return C.clearTimeout(i),t&&-1!==t.className.indexOf("throbber")&&t.parentNode.removeChild(t),n=!1,r}},Et=function(e,t){var n;e.on("ProgressState",function(e){n=n||new kt(t.panel.getEl("body")),e.state?n.show(e.time):n.hide()})},Ht=function(e,t,n){var i=function(e){var t=e.settings,n=t.skin,i=t.skin_url;if(!1!==n){var r=n||"lightgray";i=i?e.documentBaseURI.toAbsolute(i):s.baseURL+"/skins/"+r}return i}(e);return i&&(n.skinUiCss=i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")),Et(e,t),e.getParam("inline",!1,"boolean")?Ct(e,t,n):be(e,t,n)},St=et.extend({Mixins:[Re],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=131070}}),Mt=et.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&!1!==Mt.tooltips&&(t.on("mouseenter",function(n){var i=t.tooltip().moveTo(-65535);if(n.control===t){var r=i.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);i.classes.toggle("tooltip-n","bc-tc"===r),i.classes.toggle("tooltip-nw","bc-tl"===r),i.classes.toggle("tooltip-ne","bc-tr"===r),i.moveRel(t.getEl(),r)}else i.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return _t||(_t=new St({type:"tooltip"})).renderTo(),_t},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){var e=this;function t(t){e.aria("disabled",t),e.classes.toggle("disabled",t)}function n(t){e.aria("pressed",t),e.classes.toggle("active",t)}return e.state.on("change:disabled",function(e){t(e.value)}),e.state.on("change:active",function(e){n(e.value)}),e.state.get("disabled")&&t(!0),e.state.get("active")&&n(!0),e._super()},remove:function(){this._super(),_t&&(_t.remove(),_t=null)}}),Tt=Mt.extend({Defaults:{value:0},init:function(e){this._super(e),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div class="'+t+'bar-container"><div class="'+t+'bar"></div></div><div class="'+t+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var e=this;function t(t){t=e.settings.filter(t),e.getEl().lastChild.innerHTML=t+"%",e.getEl().firstChild.firstChild.style.width=t+"%"}return e.state.on("change:value",function(e){t(e.value)}),t(e.state.get("value")),e._super()}}),Pt=function(e,t){e.getEl().lastChild.textContent=t+(e.progressBar?" "+e.progressBar.value()+"%":"")},Wt=et.extend({Mixins:[Re],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),t.maxWidth=e.maxWidth,e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new Tt),t.on("click",function(e){-1!==e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e,t=this,n=t.classPrefix,i="",r="",o="";return t.icon&&(i='<i class="'+n+"ico "+n+"i-"+t.icon+'"></i>'),e=' style="max-width: '+t.maxWidth+"px;"+(t.color?"background-color: "+t.color+';"':'"'),t.closeButton&&(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),t.progressBar&&(o=t.progressBar.renderHtml()),'<div id="'+t._id+'" class="'+t.classes+'"'+e+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+t.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var e=this;return C.setTimeout(function(){e.$el.addClass(e.classPrefix+"in"),Pt(e,e.state.get("text"))},100),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().firstChild.innerHTML=t.value,Pt(e,t.value)}),e.progressBar&&(e.progressBar.bindStates(),e.progressBar.state.on("change:value",function(t){Pt(e,e.state.get("text"))})),e._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=65534}}),Dt=function(e){var t=function(e){return e.inline?e.getElement():e.getContentAreaContainer()};return{open:function(n,i){var r,o=a.extend(n,{maxWidth:(r=t(e),we.getSize(r).width)}),s=new Wt(o);return s.args=o,o.timeout>0&&(s.timer=setTimeout(function(){s.close(),i()},o.timeout)),s.on("close",function(){i()}),s.renderTo(),s},close:function(e){e.close()},reposition:function(n){var i;i=n,ee.each(i,function(e){e.moveTo(0,0)}),function(n){if(n.length>0){var i=n.slice(0,1)[0],r=t(e);i.moveRel(r,"tc-tc"),ee.each(n,function(e,t){t>0&&e.moveRel(n[t-1].getEl(),"bc-tc")})}}(n)},getArgs:function(e){return e.args}}},Nt=[],At="";function Bt(e){var t,n=ye("meta[name=viewport]")[0];!1!==_.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(t=n.getAttribute("content"))&&void 0!==At&&(At=t),n.setAttribute("content",e?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":At))}function Ot(e,t){(function(){for(var e=0;e<Nt.length;e++)if(Nt[e]._fullscreen)return!0;return!1})()&&!1===t&&ye([document.documentElement,document.body]).removeClass(e+"fullscreen")}var zt=xt.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var t=this;t._super(e),t.isRtl()&&t.classes.add("rtl"),t.classes.add("window"),t.bodyClasses.add("window-body"),t.state.set("fixed",!0),e.buttons&&(t.statusbar=new ft({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:t.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),t.statusbar.classes.add("foot"),t.statusbar.parent(t)),t.on("click",function(e){var n=t.classPrefix+"close";(we.hasClass(e.target,n)||we.hasClass(e.target.parentNode,n))&&t.close()}),t.on("cancel",function(){t.close()}),t.aria("describedby",t.describedBy||t._id+"-none"),t.aria("label",e.title),t._fullscreen=!1},recalc:function(){var e,t,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(we.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),e=r.layoutRect(),r.settings.title&&!r._fullscreen&&(t=e.headerW)>e.w&&(n=e.x-Math.max(0,t/2),r.layoutRect({w:t,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(t=o.layoutRect().minW+e.deltaW)>e.w&&(n=e.x-Math.max(0,t-e.w),r.layoutRect({w:t,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var e,t=this,n=t._super(),i=0;if(t.settings.title&&!t._fullscreen){e=t.getEl("head");var r=we.getSize(e);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}t.statusbar&&(i+=t.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=we.getWindowSize();return n.x=t.settings.x||Math.max(0,o.w/2-n.w/2),n.y=t.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var e=this,t=e._layout,n=e._id,i=e.classPrefix,r=e.settings,o="",s="",a=r.html;return e.preRender(),t.preRender(e),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" class="'+i+'title">'+e.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=t.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(e){var t,n,i=this,r=document.documentElement,o=i.classPrefix;if(e!==i._fullscreen)if(ye(window).on("resize",function(){var e;if(i._fullscreen)if(t)i._timer||(i._timer=C.setTimeout(function(){var e=we.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),i._timer=0},50));else{e=(new Date).getTime();var n=we.getWindowSize();i.moveTo(0,0).resizeTo(n.w,n.h),(new Date).getTime()-e>50&&(t=!0)}}),n=i.layoutRect(),i._fullscreen=e,e){i._initial={x:n.x,y:n.y,w:n.w,h:n.h},i.borderBox=Ee("0"),i.getEl("head").style.display="none",n.deltaH-=n.headerH+2,ye([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=we.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Ee(i.settings.border),i.getEl("head").style.display="",n.deltaH+=n.headerH,ye([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var e,t=this;setTimeout(function(){t.classes.add("in"),t.fire("open")},0),t._super(),t.statusbar&&t.statusbar.postRender(),t.focus(),this.dragHelper=new ct(t._id+"-dragh",{start:function(){e={x:t.layoutRect().x,y:t.layoutRect().y}},drag:function(n){t.moveTo(e.x+n.deltaX,e.y+n.deltaY)}}),t.on("submit",function(e){e.isDefaultPrevented()||t.close()}),Nt.push(t),Bt(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e,t=this;for(t.dragHelper.destroy(),t._super(),t.statusbar&&this.statusbar.remove(),Ot(t.classPrefix,!1),e=Nt.length;e--;)Nt[e]===t&&Nt.splice(e,1);Bt(Nt.length>0)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});!function(){if(!_.desktop){var e={w:window.innerWidth,h:window.innerHeight};C.setInterval(function(){var t=window.innerWidth,n=window.innerHeight;e.w===t&&e.h===n||(e={w:t,h:n},ye(window).trigger("resize"))},100)}ye(window).on("resize",function(){var e,t,n=we.getWindowSize();for(e=0;e<Nt.length;e++)t=Nt[e].layoutRect(),Nt[e].moveTo(Nt[e].settings.x||Math.max(0,n.w/2-t.w/2),Nt[e].settings.y||Math.max(0,n.h/2-t.h/2))})}();var Lt=zt.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(e){var t,n=e.callback||function(){};function i(e,t,i){return{type:"button",text:e,subtype:i?"primary":"",onClick:function(e){e.control.parents()[1].close(),n(t)}}}switch(e.buttons){case Lt.OK_CANCEL:t=[i("Ok",!0,!0),i("Cancel",!1)];break;case Lt.YES_NO:case Lt.YES_NO_CANCEL:t=[i("Yes",1,!0),i("No",0)],e.buttons===Lt.YES_NO_CANCEL&&t.push(i("Cancel",-1));break;default:t=[i("Ok",!0,!0)]}return new zt({padding:20,x:e.x,y:e.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:t,title:e.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:e.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:e.onClose,onCancel:function(){n(!1)}}).renderTo(document.body).reflow()},alert:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,Lt.msgBox(e)},confirm:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,e.buttons=Lt.OK_CANCEL,Lt.msgBox(e)}}}),It=function(e){return{renderUI:function(t){return Ht(e,this,t)},resizeTo:function(t,n){return ue(e,t,n)},resizeBy:function(t,n){return ce(e,t,n)},getNotificationManagerImpl:function(){return Dt(e)},getWindowManagerImpl:function(){return{open:function(e,t,n){var i;return e.title=e.title||" ",e.url=e.url||e.file,e.url&&(e.width=parseInt(e.width||320,10),e.height=parseInt(e.height||240,10)),e.body&&(e.items={defaults:e.defaults,type:e.bodyType||"form",items:e.body,data:e.data,callbacks:e.commands}),e.url||e.buttons||(e.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new zt(e)).on("close",function(){n(i)}),e.data&&i.on("postRender",function(){this.find("*").each(function(t){var n=t.name();n in e.data&&t.value(e.data[n])})}),i.features=e||{},i.params=t||{},i=i.renderTo().reflow()},alert:function(e,t,n){var i;return(i=Lt.alert(e,function(){t()})).on("close",function(){n(i)}),i},confirm:function(e,t,n){var i;return(i=Lt.confirm(e,function(e){t(e)})).on("close",function(){n(i)}),i},close:function(e){e.close()},getParams:function(e){return e.params},setParams:function(e,t){e.params=t}}}}},Ft=Ce.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=a.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t,n,i,r,o=this.settings;t=o.firstControlClass,n=o.lastControlClass,e.each(function(e){e.classes.remove(t).remove(n).add(o.controlClass),e.visible()&&(i||(i=e),r=e)}),i&&i.classes.add(t),r&&r.classes.add(n)},renderHtml:function(e){var t="";return this.applyClasses(e.items()),e.items().each(function(e){t+=e.renderHtml()}),t},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),Vt=Ft.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}}),Ut=Mt.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t,n=this;n._super(e),e=n.settings,t=n.settings.size,n.on("click mousedown",function(e){e.preventDefault()}),n.on("touchstart",function(e){n.fire("click",e),e.preventDefault()}),e.subtype&&n.classes.add(e.subtype),t&&n.classes.add("btn-"+t),e.icon&&n.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e,t=this.getEl().firstChild;t&&((e=t.style).width=e.height="100%"),this._super()},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(e=l.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",t="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex="-1"'+t+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+a+"</button></div>"},bindStates:function(){var e=this,t=e.$,n=e.classPrefix+"txt";function i(i){var r=t("span."+n,e.getEl());i?(r[0]||(t("button:first",e.getEl()).append('<span class="'+n+'"></span>'),r=t("span."+n,e.getEl())),r.html(e.encode(i))):r.remove(),e.classes.toggle("btn-has-text",!!i)}return e.state.on("change:text",function(e){i(e.value)}),e.state.on("change:icon",function(t){var n=t.value,r=e.classPrefix;e.settings.icon=n,n=n?r+"ico "+r+"i-"+e.settings.icon:"";var o=e.getEl().firstChild,s=o.getElementsByTagName("i")[0];n?(s&&s===o.firstChild||(s=document.createElement("i"),o.insertBefore(s,o.firstChild)),s.className=n):s&&o.removeChild(s),i(e.state.get("text"))}),e._super()}}),Yt=Ut.extend({init:function(e){e=a.extend({text:"Browse...",multiple:!1,accept:null},e),this._super(e),this.classes.add("browsebutton"),e.multiple&&this.classes.add("multiple")},postRender:function(){var e=this,t=we.create("input",{type:"file",id:e._id+"-browse",accept:e.settings.accept});e._super(),ye(t).on("change",function(t){var n=t.target.files;e.value=function(){return n.length?e.settings.multiple?n:n[0]:null},t.preventDefault(),n.length&&e.fire("change",t)}),ye(t).on("click",function(e){e.stopPropagation()}),ye(e.getEl("button")).on("click",function(e){e.stopPropagation(),t.click()}),e.getEl().appendChild(t)},remove:function(){ye(this.getEl("button")).off(),ye(this.getEl("input")).off(),this._super()}}),$t=rt.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),jt=Mt.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){var e=this;function t(t){e.classes.toggle("checked",t),e.aria("checked",t)}return e.state.on("change:text",function(t){e.getEl("al").firstChild.data=e.translate(t.value)}),e.state.on("change:checked change:value",function(n){e.fire("change"),t(n.value)}),e.state.on("change:icon",function(t){var n=t.value,i=e.classPrefix;if(void 0===n)return e.settings.icon;e.settings.icon=n,n=n?i+"ico "+i+"i-"+e.settings.icon:"";var r=e.getEl().firstChild,o=r.getElementsByTagName("i")[0];n?(o&&o===r.firstChild||(o=document.createElement("i"),r.insertBefore(o,r.firstChild)),o.className=n):o&&r.removeChild(o)}),e.state.get("checked")&&t(!0),e._super()}}),qt=tinymce.util.Tools.resolve("tinymce.util.VK"),Xt=Mt.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,r=t.getEl();if(ye.contains(r,i)||i===r)for(;i&&i!==r;)i.id&&-1!==i.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){var n;13===e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){if("INPUT"===e.target.nodeName){var n=t.state.get("value"),i=e.target.value;i!==n&&(t.state.set("value",i),t.fire("autocomplete",e))}}),t.on("mouseover",function(e){var n=t.tooltip().moveTo(-65535);if(t.statusLevel()&&-1!==e.target.className.indexOf(t.classPrefix+"status")){var i=t.statusMessage()||"Ok",r=n.text(i).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);n.classes.toggle("tooltip-n","bc-tc"===r),n.classes.toggle("tooltip-nw","bc-tl"===r),n.classes.toggle("tooltip-ne","bc-tr"===r),n.moveRel(e.target,r)}})},statusLevel:function(e){return arguments.length>0&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return arguments.length>0&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e,t=this,n=t.settings;t.menu||((e=n.menu||[]).length?e={type:"menu",items:e}:e.type=e.type||"menu",t.menu=g.create(e).parent(t).renderTo(t.getContainerElm()),t.fire("createmenu"),t.menu.reflow(),t.menu.on("cancel",function(e){e.control===t.menu&&t.focus()}),t.menu.on("show hide",function(e){e.control.items().each(function(e){e.active(e.value()===t.value())})}).fire("show"),t.menu.on("select",function(e){t.value(e.control.value())}),t.on("focusin",function(e){"INPUT"===e.target.tagName.toUpperCase()&&t.menu.hide()}),t.aria("expanded",!0)),t.menu.show(),t.menu.layoutRect({w:t.layoutRect().w}),t.menu.moveRel(t.getEl(),t.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e,t,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(we.getRuntimeStyle(a,"padding-right"),10)-parseInt(we.getRuntimeStyle(a,"padding-left"),10)),e=r?o.w-we.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(t=n.layoutRect().h-2+"px"),ye(a).css({width:e-s,lineHeight:t}),n._super(),n},postRender:function(){var e=this;return ye(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e,t,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(e=o.icon)&&"caret"!==e&&(e=s+"ico "+s+"i-"+o.icon),t=i.state.get("text"),(e||t)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==e?'<i class="'+e+'"></i>':'<i class="'+s+'caret"></i>')+(t?(e?" ":"")+t:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(e,t){var n=this;if(0!==e.length){n.menu?n.menu.items().remove():n.menu=g.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(n).renderTo(),a.each(e,function(e){var i,r;n.menu.add({text:e.title,url:e.previewUrl,match:t,classes:"menu-item-ellipsis",onclick:(i=e.value,r=e.title,function(){n.fire("selectitem",{title:r,value:i})})})}),n.menu.renderNew(),n.hideMenu(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()});var i=n.layoutRect().w;n.menu.layoutRect({w:i,minW:0,maxW:i}),n.menu.repaint(),n.menu.reflow(),n.menu.show(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else n.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var e=this;e.state.on("change:value",function(t){e.getEl("inp").value!==t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e.state.on("change:statusLevel",function(t){var n=e.getEl("status"),i=e.classPrefix,r=t.value;we.css(n,"display","none"===r?"none":""),we.toggleClass(n,i+"i-checkmark","ok"===r),we.toggleClass(n,i+"i-warning","warn"===r),we.toggleClass(n,i+"i-error","error"===r),e.classes.toggle("has-status","none"!==r),e.repaint()}),we.on(e.getEl("status"),"mouseleave",function(){e.tooltip().hide()}),e.on("cancel",function(t){e.menu&&e.menu.visible()&&(t.stopPropagation(),e.hideMenu())});var t=function(e,t){t&&t.items().length>0&&t.items().eq(e)[0].focus()};return e.on("keydown",function(n){var i=n.keyCode;"INPUT"===n.target.nodeName&&(i===qt.DOWN?(n.preventDefault(),e.fire("autocomplete"),t(0,e.menu)):i===qt.UP&&(n.preventDefault(),t(-1,e.menu)))}),e._super()},remove:function(){ye(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),Jt=Xt.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(i){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}}),Gt=Ut.extend({showPanel:function(){var e=this,t=e.settings;if(e.classes.add("opened"),e.panel)e.panel.show();else{var n=t.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,e.panel=new xt(n).on("hide",function(){e.classes.remove("opened")}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}var i=e.panel.testMoveRel(e.getEl(),t.popoverAlign||(e.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl"]));e.panel.classes.toggle("start","bc-tl"===i),e.panel.classes.toggle("end","bc-tr"===i),e.panel.moveRel(e.getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),Kt=m.DOM,Zt=Gt.extend({init:function(e){this._super(e),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,i=e.state.get("text"),r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",s="";return i&&(e.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+e.encode(i)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(n){n.aria&&"down"===n.aria.key||n.control!==e||Kt.getParent(n.target,"."+e.classPrefix+"open")||(n.stopImmediatePropagation(),t.call(e,n))}),delete e.settings.onclick,e._super()}}),Qt=tinymce.util.Tools.resolve("tinymce.util.Color"),en=Mt.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){var e,t,n,i,r,o=this,s=o.color();function a(e,t){var n,i,r=we.getPos(e);return n=t.pageX-r.x,i=t.pageY-r.y,{x:n=Math.max(0,Math.min(n/e.clientWidth,1)),y:i=Math.max(0,Math.min(i/e.clientHeight,1))}}function l(e,t){var s=(360-e.h)/360;we.css(n,{top:100*s+"%"}),t||we.css(r,{left:e.s+"%",top:100-e.v+"%"}),i.style.background=Qt({s:100,v:100,h:e.h}).toHex(),o.color().parse({s:e.s,v:e.v,h:e.h})}function u(t){var n;n=a(i,t),e.s=100*n.x,e.v=100*(1-n.y),l(e),o.fire("change")}function c(n){var i;i=a(t,n),(e=s.toHsv()).h=360*(1-i.y),l(e,!0),o.fire("change")}t=o.getEl("h"),n=o.getEl("hp"),i=o.getEl("sv"),r=o.getEl("svp"),o._repaint=function(){l(e=s.toHsv())},o._super(),o._svdraghelper=new ct(o._id+"-sv",{start:u,drag:u}),o._hdraghelper=new ct(o._id+"-h",{start:c,drag:c}),o._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){if(!arguments.length)return this.color().toHex();this.color().parse(e),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=Qt()),this._color},renderHtml:function(){var e,t=this._id,n=this.classPrefix,i="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return e='<div id="'+t+'-h" class="'+n+'colorpicker-h" style="background: -ms-linear-gradient(top,'+i+");background: linear-gradient(to bottom,"+i+');">'+function(){var e,t,r,o,s="";for(r="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",e=0,t=(o=i.split(",")).length-1;e<t;e++)s+='<div class="'+n+'colorpicker-h-chunk" style="height:'+100/t+"%;"+r+o[e]+",endColorstr="+o[e+1]+");-ms-"+r+o[e]+",endColorstr="+o[e+1]+')"></div>';return s}()+'<div id="'+t+'-hp" class="'+n+'colorpicker-h-marker"></div></div>','<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-sv" class="'+n+'colorpicker-sv"><div class="'+n+'colorpicker-overlay1"><div class="'+n+'colorpicker-overlay2"><div id="'+t+'-svp" class="'+n+'colorpicker-selector1"><div class="'+n+'colorpicker-selector2"></div></div></div></div></div>'+e+"</div>"}}),tn=Mt.extend({init:function(e){e=a.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},e),this._super(e),this.classes.add("dropzone"),e.multiple&&this.classes.add("multiple")},renderHtml:function(){var e,t,n=this.settings;return e={id:this._id,hidefocus:"1"},t=we.create("div",e,"<span>"+this.translate(n.text)+"</span>"),n.height&&we.css(t,"height",n.height+"px"),n.width&&we.css(t,"width",n.width+"px"),t.className=this.classes,t.outerHTML},postRender:function(){var e=this,t=function(t){t.preventDefault(),e.classes.toggle("dragenter"),e.getEl().className=e.classes};e._super(),e.$el.on("dragover",function(e){e.preventDefault()}),e.$el.on("dragenter",t),e.$el.on("dragleave",t),e.$el.on("drop",function(t){if(t.preventDefault(),!e.state.get("disabled")){var n=function(t){var n=e.settings.accept;if("string"!=typeof n)return t;var i=new RegExp("("+n.split(/\s*,\s*/).join("|")+")$","i");return a.grep(t,function(e){return i.test(e.name)})}(t.dataTransfer.files);e.value=function(){return n.length?e.settings.multiple?n:n[0]:null},n.length&&e.fire("change",t)}})},remove:function(){this.$el.off(),this._super()}}),nn=Mt.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n;(n=e.target.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t,n,i=e||[],r="",o=this.classPrefix;for(t=0,n=i.length;t<n;t++)r+=(t>0?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(t===n-1?" "+o+"last":"")+'" data-index="'+t+'" tabindex="-1" id="'+this._id+"-"+t+'" aria-level="'+(t+1)+'">'+i[t].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),rn=nn.extend({postRender:function(){var e=this,t=e.settings.editor;function n(e){if(1===e.nodeType){if("BR"===e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}return!1!==t.settings.elementpath&&(e.on("select",function(e){t.focus(),t.selection.select(this.row()[e.index].element),t.nodeChanged()}),t.on("nodeChange",function(i){for(var r=[],o=i.parents,s=o.length;s--;)if(1===o[s].nodeType&&!n(o[s])){var a=t.fire("ResolveName",{name:o[s].nodeName.toLowerCase(),target:o[s]});if(a.isDefaultPrevented()||r.push({name:a.name,element:o[s]}),a.isPropagationStopped())break}e.row(r)})),e._super()}}),on=rt.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),sn=rt.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,t=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),t.each(function(t){var n,i=t.settings.label;i&&((n=new on(a.extend({items:{type:"label",id:t._id+"-l",text:i,flex:0,forId:t._id,disabled:t.disabled()}},e.settings.formItemDefaults))).type="formitem",t.aria("labelledby",t._id+"-l"),"undefined"==typeof t.settings.flex&&(t.settings.flex=1),e.replace(t,n),n.add(t))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var e=this;function t(){var t,n,i=0,r=[];if(!1!==e.settings.labelGapCalc)for(("children"===e.settings.labelGapCalc?e.find("formitem"):e.items()).filter("formitem").each(function(e){var t=e.items()[0],n=t.getEl().clientWidth;i=n>i?n:i,r.push(t)}),n=e.settings.labelGap||0,t=r.length;t--;)r[t].settings.minWidth=i+n}e._super(),e.on("show",t),t()}}),an=sn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}}),ln=0,un=function(e){var t=(new Date).getTime();return e+"_"+Math.floor(1e9*Math.random())+ ++ln+String(t)},cn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:E.constant(e)}},dn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||n.childNodes.length>1)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return cn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return cn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return cn(n)},fromDom:cn,fromPoint:function(e,t,n){return W.from(e.dom().elementFromPoint(t,n)).map(cn)}},fn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},hn=8,mn=9,gn=1,pn=3,vn=function(e){return e.dom().nodeName.toLowerCase()},bn=function(e){return e.dom().nodeType},yn=function(e){return function(t){return bn(t)===e}},xn=yn(gn),wn=yn(pn),_n=yn(mn),Rn={name:vn,type:bn,value:function(e){return e.dom().nodeValue},isElement:xn,isText:wn,isDocument:_n,isComment:function(e){return bn(e)===hn||"#comment"===vn(e)}},Cn=(fn(function(){return Cn(dn.fromDom(document))}),function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return dn.fromDom(t)}),kn=function(e){return function(t){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(t)===e}},En=(kn("string"),kn("object"),kn("array"),kn("null"),kn("boolean"),kn("undefined"),kn("function"),kn("number"),Object.keys,undefined,function(){var e=arguments;return function(){for(var t=new Array(arguments.length),n=0;n<t.length;n++)t[n]=arguments[n];if(e.length!==t.length)throw new Error('Wrong number of arguments to struct. Expected "['+e.length+']", got '+t.length+" arguments");var i={};return ee.each(e,function(e,n){i[e]=E.constant(t[n])}),i}}),Hn=("undefined"!=typeof window?window:Function("return this;")(),function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(i.test(t))return i}return undefined}(e,t);if(!n)return{major:0,minor:0};var i=function(e){return Number(t.replace(n,"$"+e))};return Mn(i(1),i(2))}),Sn=function(){return Mn(0,0)},Mn=function(e,t){return{major:e,minor:t}},Tn={nu:Mn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?Sn():Hn(e,n)},unknown:Sn},Pn="Firefox",Wn=function(e,t){return function(){return t===e}},Dn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Wn("Edge",t),isChrome:Wn("Chrome",t),isIE:Wn("IE",t),isOpera:Wn("Opera",t),isFirefox:Wn(Pn,t),isSafari:Wn("Safari",t)}},Nn={unknown:function(){return Dn({current:undefined,version:Tn.unknown()})},nu:Dn,edge:E.constant("Edge"),chrome:E.constant("Chrome"),ie:E.constant("IE"),opera:E.constant("Opera"),firefox:E.constant(Pn),safari:E.constant("Safari")},An="Windows",Bn="Android",On="Solaris",zn="FreeBSD",Ln=function(e,t){return function(){return t===e}},In=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Ln(An,t),isiOS:Ln("iOS",t),isAndroid:Ln(Bn,t),isOSX:Ln("OSX",t),isLinux:Ln("Linux",t),isSolaris:Ln(On,t),isFreeBSD:Ln(zn,t)}},Fn={unknown:function(){return In({current:undefined,version:Tn.unknown()})},nu:In,windows:E.constant(An),ios:E.constant("iOS"),android:E.constant(Bn),linux:E.constant("Linux"),osx:E.constant("OSX"),solaris:E.constant(On),freebsd:E.constant(zn)},Vn=function(e,t){var n=String(t).toLowerCase();return ee.find(e,function(e){return e.search(n)})},Un=function(e,t){return Vn(e,t).map(function(e){var n=Tn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Yn=function(e,t){return Vn(e,t).map(function(e){var n=Tn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},$n=function(e,t){return-1!==e.indexOf(t)},jn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,qn=function(e){return function(t){return $n(t,e)}},Xn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return $n(e,"edge/")&&$n(e,"chrome")&&$n(e,"safari")&&$n(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,jn],search:function(e){return $n(e,"chrome")&&!$n(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return $n(e,"msie")||$n(e,"trident")}},{name:"Opera",versionRegexes:[jn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:qn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:qn("firefox")},{name:"Safari",versionRegexes:[jn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return($n(e,"safari")||$n(e,"mobile/"))&&$n(e,"applewebkit")}}],Jn=[{name:"Windows",search:qn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return $n(e,"iphone")||$n(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:qn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:qn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:qn("linux"),versionRegexes:[]},{name:"Solaris",search:qn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:qn("freebsd"),versionRegexes:[]}],Gn={browsers:E.constant(Xn),oses:E.constant(Jn)},Kn=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=Gn.browsers(),h=Gn.oses(),m=Un(f,e).fold(Nn.unknown,Nn.nu),g=Yn(h,e).fold(Fn.unknown,Fn.nu);return{browser:m,os:g,deviceType:(n=m,i=e,r=(t=g).isiOS()&&!0===/ipad/i.test(i),o=t.isiOS()&&!r,s=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=t.isiOS()||t.isAndroid(),c=u&&!l,d=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(i),{isiPad:E.constant(r),isiPhone:E.constant(o),isTablet:E.constant(l),isPhone:E.constant(c),isTouch:E.constant(u),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:E.constant(d)})}},Zn=gn,Qn=mn,ei=function(e){return e.nodeType!==Zn&&e.nodeType!==Qn||0===e.childElementCount},ti={all:function(e,t){var n=t===undefined?document:t.dom();return ei(n)?[]:ee.map(n.querySelectorAll(e),dn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==Zn)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return ei(n)?W.none():W.from(n.querySelector(e)).map(dn.fromDom)}},ni=(fn(function(){var e=navigator.userAgent;return Kn(e)})().browser.isIE(),En("element","offset"),function(e,t){return ti.all(t,e)}),ii=a.trim,ri=function(e){return function(t){if(t&&1===t.nodeType){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}},oi=ri("true"),si=ri("false"),ai=function(e,t,n,i,r){return{type:e,title:t,url:n,level:i,attach:r}},li=function(e){return e.innerText||e.textContent},ui=function(e){return(t=e)&&"A"===t.nodeName&&(t.id||t.name)&&di(e);var t},ci=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},di=function(e){return function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return oi(e)}return!1}(e)&&!si(e)},fi=function(e){return ci(e)&&di(e)},hi=function(e){var t,n,i=(t=e).id?t.id:un("h");return ai("header",li(e),"#"+i,ci(n=e)?parseInt(n.nodeName.substr(1),10):0,function(){e.id=i})},mi=function(e){var t=e.id||e.name,n=li(e);return ai("anchor",n||"#"+t,"#"+t,0,E.noop)},gi=function(e){var t,n;return t="h1,h2,h3,h4,h5,h6,a:not([href])",n=e,ee.map(ni(dn.fromDom(n),t),function(e){return e.dom()})},pi=function(e){return ii(e.title).length>0},vi=function(e){var t,n,i=gi(e);return ee.filter((n=i,ee.map(ee.filter(n,fi),hi)).concat((t=i,ee.map(ee.filter(t,ui),mi))),pi)},bi={},yi=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},xi=function(e,t){return{title:e,value:{title:e,url:t,attach:E.noop}}},wi=function(e,t,n){var i=t in e?e[t]:n;return!1===i?null:i},_i=function(e,t,n,i){var r,o,s,l,u={title:"-"},c=function(e){var i=e.hasOwnProperty(n)?e[n]:[],r=ee.filter(i,function(e){return n=e,i=t,!ee.exists(i,function(e){return e.url===n});var n,i});return a.map(r,function(e){return{title:e,value:{title:e,url:e,attach:E.noop}}})},d=function(e){var n,i=ee.filter(t,function(t){return t.type===e});return n=i,a.map(n,yi)};return!1===i.typeahead_urls?[]:"file"===n?(r=[Ri(e,c(bi)),Ri(e,d("header")),Ri(e,(o=d("anchor"),s=wi(i,"anchor_top","#top"),l=wi(i,"anchor_bottom","#bottom"),null!==s&&o.unshift(xi("<top>",s)),null!==l&&o.push(xi("<bottom>",l)),o))],ee.foldl(r,function(e,t){return 0===e.length||0===t.length?e.concat(t):e.concat(u,t)},[])):Ri(e,c(bi))},Ri=function(e,t){var n=e.toLowerCase(),i=a.grep(t,function(e){return-1!==e.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===e?[]:i},Ci=function(e,t,n,i){var r=function(r){var o=vi(n),s=_i(r,o,i,t);e.showAutoComplete(s,r)};e.on("autocomplete",function(){r(e.value())}),e.on("selectitem",function(t){var n=t.value;e.value(n.url);var r,o=(r=n.title).raw?r.raw:r;"image"===i?e.fire("change",{meta:{alt:o,attach:n.attach}}):e.fire("change",{meta:{text:o,attach:n.attach}}),e.focus()}),e.on("click",function(t){0===e.value().length&&"INPUT"===t.target.nodeName&&r("")}),e.on("PostRender",function(){e.getRoot().on("submit",function(t){var n,r,o;t.isDefaultPrevented()||(n=e.value(),o=bi[r=i],/^https?/.test(n)&&(o?-1===ee.indexOf(o,n)&&(bi[r]=o.slice(0,5).concat(n)):bi[r]=[n]))})})},ki=function(e,t,n){var i=t.filepicker_validator_handler;i&&e.state.on("change:value",function(t){var r;0!==(r=t.value).length?i({url:r,type:n},function(t){var n,i,r,o=(i=(n=t).status,r=n.message,"valid"===i?{status:"ok",message:r}:"unknown"===i?{status:"warn",message:r}:"invalid"===i?{status:"warn",message:r}:{status:"none",message:""});e.statusMessage(o.message),e.statusLevel(o.status)}):e.statusLevel("none")})},Ei=Xt.extend({Statics:{clearHistory:function(){bi={}}},init:function(e){var t,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:s.activeEditor,l=o.settings,u=e.filetype;e.spellcheck=!1,(i=l.file_picker_types||l.file_browser_callback_types)&&(i=a.makeMap(i,/[, ]/)),i&&!i[u]||(!(n=l.file_picker_callback)||i&&!i[u]?!(n=l.file_browser_callback)||i&&!i[u]||(t=function(){n(r.getEl("inp").id,r.value(),u,window)}):t=function(){var e=r.fire("beforecall").meta;e=a.extend({filetype:u},e),n.call(o,function(e,t){r.value(e).fire("change",{meta:t})},r.value(),e)}),t&&(e.icon="browse",e.onaction=t),r._super(e),r.classes.add("filepicker"),Ci(r,l,o.getBody(),u),ki(r,l,u)}}),Hi=Vt.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}}),Si=Vt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M,T,P,W,D,N,A,B,O,z=[],L=Math.max,I=Math.min;for(i=e.items().filter(":visible"),r=e.layoutRect(),o=e.paddingBox,s=e.settings,f=e.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=e.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",k="maxH",H="innerH",E="top",S="deltaH",M="contentH",N="left",W="w",T="x",P="innerW",D="minW",A="right",B="deltaW",O="contentW"):(C="x",_="w",R="minW",k="maxW",H="innerW",E="left",S="deltaW",M="contentW",N="top",W="h",T="y",P="innerH",D="minH",A="bottom",B="deltaH",O="contentH"),d=r[H]-o[E]-o[E],w=c=0,t=0,n=i.length;t<n;t++)m=(h=i[t]).layoutRect(),g=h.settings.flex,d-=t<n-1?u:0,g>0&&(c+=g,m[k]&&z.push(h),m.flex=g),d-=m[R],(p=o[N]+m[D]+o[A])>w&&(w=p);if((y={})[R]=d<0?r[R]-d+r[S]:r[H]-d+r[S],y[D]=w+r[B],y[M]=r[H]-d,y[O]=w,y.minW=I(y.minW,r.maxW),y.minH=I(y.minH,r.maxH),y.minW=L(y.minW,r.startMinWidth),y.minH=L(y.minH,r.startMinHeight),!r.autoResize||y.minW===r.minW&&y.minH===r.minH){for(b=d/c,t=0,n=z.length;t<n;t++)v=(m=(h=z[t]).layoutRect())[k],(p=m[R]+m.flex*b)>v?(d-=m[k]-m[R],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(b=d/c,x=o[E],y={},0===c&&("end"===l?x=d+o[E]:"center"===l?(x=Math.round(r[H]/2-(r[H]-d)/2)+o[E])<0&&(x=o[E]):"justify"===l&&(x=o[E],u=Math.floor(d/(i.length-1)))),y[T]=o[N],t=0,n=i.length;t<n;t++)p=(m=(h=i[t]).layoutRect()).maxFlexSize||m[R],"center"===a?y[T]=Math.round(r[P]/2-m[W]/2):"stretch"===a?(y[W]=L(m[D]||0,r[P]-o[N]-o[A]),y[T]=o[N]):"end"===a&&(y[T]=r[P]-m[W]-o.top),m.flex>0&&(p+=m.flex*b),y[_]=p,y[C]=x,h.layoutRect(y),h.recalc&&h.recalc(),x+=p+u}else if(y.w=y.minW,y.h=y.minH,e.layoutRect(y),this.recalc(e),null===e._lastRect){var F=e.parent();F&&(F._lastRect=null,F.recalc())}}}),Mi=Ft.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}}),Ti=function(e,t){return ti.one(t,e)},Pi=function(e,t){return function(){e.execCommand("mceToggleFormat",!1,t)}},Wi=function(e,t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}},Di=function(e){e.addMenuItem("align",{text:"Align",menu:[{text:"Left",icon:"alignleft",onclick:Pi(e,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Pi(e,"aligncenter")},{text:"Right",icon:"alignright",onclick:Pi(e,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Pi(e,"alignjustify")}]}),a.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{active:!1,tooltip:t[0],cmd:t[1],onPostRender:Wi(e,n)})})},Ni=function(e){return function(t,n){return W.from(n).map(dn.fromDom).filter(Rn.isElement).bind(function(n){return function(e,t,n){for(;n!==t;){if(n.style[e]){var i=n.style[e];return""!==i?W.some(i):W.none()}n=n.parentNode}return W.none()}(e,t,n.dom()).or((i=e,r=n.dom(),W.from(m.DOM.getStyle(r,i,!0))));var i,r}).getOr("")}},Ai={getFontSize:Ni("fontSize"),getFontFamily:E.compose(function(e){return e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")},Ni("fontFamily")),toPt:function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,i=t||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):e;var n,i,r}},Bi=function(e){return e?e.split(",")[0]:""},Oi=function(e,t){return function(){var n=this;e.on("init nodeChange",function(i){var r,o,s,l=Ai.getFontFamily(e.getBody(),i.element),u=(r=t,o=l,a.each(r,function(e){e.value.toLowerCase()===o.toLowerCase()&&(s=e.value)}),a.each(r,function(e){s||Bi(e.value).toLowerCase()!==Bi(o).toLowerCase()||(s=e.value)}),s);n.value(u||null),!u&&l&&n.text(Bi(l))})}},zi=function(e){e.addButton("fontselect",function(){var t,n=(t=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats"),a.map(t,function(e){return{text:{raw:e[0]},value:e[1],textStyle:-1===e[1].indexOf("dings")?"font-family:"+e[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:Oi(e,n),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}})},Li=function(e){zi(e)},Ii=function(e,t,n){var i;return a.each(e,function(e){e.value===n?i=n:e.value===t&&(i=t)}),i},Fi=function(e){e.addButton("fontsizeselect",function(){var t,n,i,r=(t=e.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",a.map(t.split(" "),function(e){var t=e,n=e,i=e.split("=");return i.length>1&&(t=i[0],n=i[1]),{text:t,value:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:r,fixedWidth:!0,onPostRender:(n=e,i=r,function(){var e=this;n.on("init nodeChange",function(t){var r,o,s,a;if(r=Ai.getFontSize(n.getBody(),t.element))for(s=3;!a&&s>=0;s--)o=Ai.toPt(r,s),a=Ii(i,o,r);e.value(a||null),a||e.text(o)})}),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}})},Vi=function(e){Fi(e)},Ui=function(e,t){return function(){var n,i,r,o=[];return a.each(t,function(t){o.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:t[0][0],values:o,fixedWidth:!0,onselect:function(t){if(t.control){var n=t.control.value();Pi(e,n)()}},onPostRender:(n=e,i=o,function(){var e=this;n.on("nodeChange",function(t){var o=n.formatter,s=null;a.each(t.parents,function(e){if(a.each(i,function(t){if(r?o.matchNode(e,r,{value:t.value})&&(s=t.value):o.matchNode(e,t.value)&&(s=t.value),s)return!1}),s)return!1}),e.value(s)})})}}},Yi=function(e){var t,n,i=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");e.addMenuItem("blockformats",{text:"Blocks",menu:(t=e,n=i,a.map(n,function(e){return{text:e[0],onclick:Pi(t,e[1]),textStyle:function(){return t.formatter.getCssText(e[1])}}}))}),e.addButton("formatselect",Ui(e,i))},$i=function(e,t){var n=t.length;return a.each(t,function(t){t.menu&&(t.hidden=0===$i(e,t.menu));var i=t.format;i&&(t.hidden=!e.formatter.canApply(i)),t.hidden&&n--}),n},ji=function(e,t){var n=t.items().length;return t.items().each(function(t){t.menu&&t.visible(ji(e,t.menu)>0),!t.menu&&t.settings.menu&&t.visible($i(e,t.settings.menu)>0);var i=t.settings.format;i&&t.visible(e.formatter.canApply(i)),t.visible()||n--}),n},qi=function(e){var t,n,i,r,o,s,l,u,c=(n=0,i=[],r=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],o=function(e){var t=[];if(e)return a.each(e,function(e){var r={text:e.title,icon:e.icon};if(e.items)r.menu=o(e.items);else{var s=e.format||"custom"+n++;e.format||(e.name=s,i.push(e)),r.format=s,r.cmd=e.cmd}t.push(r)}),t},(t=e).on("init",function(){a.each(i,function(e){t.formatter.register(e.name,e)})}),{type:"menu",items:t.settings.style_formats_merge?t.settings.style_formats?o(r.concat(t.settings.style_formats)):o(r):o(t.settings.style_formats||r),onPostRender:function(e){t.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return t.formatter.getCssText(this.settings.format)},onPostRender:function(){var e=this;e.parent().on("show",function(){var n,i;(n=e.settings.format)&&(e.disabled(!t.formatter.canApply(n)),e.active(t.formatter.match(n))),(i=e.settings.cmd)&&e.active(t.queryCommandState(i))})},onclick:function(){this.settings.format&&Pi(t,this.settings.format)(),this.settings.cmd&&t.execCommand(this.settings.cmd)}}});s=c,e.addMenuItem("formats",{text:"Formats",menu:s}),u=c,(l=e).addButton("styleselect",{type:"menubutton",text:"Formats",menu:u,onShowMenu:function(){l.settings.style_formats_autohide&&ji(l,this.menu)}})},Xi=function(e,t){var n,i;if("string"==typeof t)i=t.split(" ");else if(a.isArray(t))return ee.flatten(a.map(t,function(t){return Xi(e,t)}));return n=a.grep(i,function(t){return"|"===t||t in e.menuItems}),a.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},Ji=function(e){return e&&"-"===e.text},Gi=function(e){var t=ee.filter(e,function(e,t,n){return!Ji(e)||!Ji(n[t-1])});return ee.filter(t,function(e,t,n){return!Ji(e)||t>0&&t<n.length-1})},Ki=function(e){var t,n,i,r,o=e.settings.insert_button_items;return Gi(o?Xi(e,o):(t=e,n="insert",i=[{text:"-"}],r=a.grep(t.menuItems,function(e){return e.context===n}),a.each(r,function(e){"before"===e.separator&&i.push({text:"|"}),e.prependToContext?i.unshift(e):i.push(e),"after"===e.separator&&i.push({text:"|"})}),i))},Zi=function(e){var t;(t=e).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(Ki(t)),this.menu.renderNew()}})},Qi=function(e){var t,n,i;t=e,a.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(e,n){t.addButton(n,{active:!1,tooltip:e,onPostRender:Wi(t,n),onclick:Pi(t,n)})}),n=e,a.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(e,t){n.addButton(t,{tooltip:e[0],cmd:e[1]})}),i=e,a.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(e,t){i.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Wi(i,t)})})},er=function(e){var t;Qi(e),t=e,a.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(e,n){t.addMenuItem(n,{text:e[0],icon:n,shortcut:e[2],cmd:e[1]})}),t.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Pi(t,"code")})},tr=function(e,t){return function(){var n=this,i=function(){var n="redo"===t?"hasRedo":"hasUndo";return!!e.undoManager&&e.undoManager[n]()};n.disabled(!i()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){n.disabled(e.readonly||!i())})}},nr=function(e){var t,n;(t=e).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:tr(t,"undo"),cmd:"undo"}),t.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:tr(t,"redo"),cmd:"redo"}),(n=e).addButton("undo",{tooltip:"Undo",onPostRender:tr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:tr(n,"redo"),cmd:"redo"})},ir=function(e){var t,n;(t=e).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=t,function(){var e=this;n.on("VisualAid",function(t){e.active(t.hasVisual)}),e.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},rr={setup:function(e){var t;e.rtl&&(et.rtl=!0),e.on("mousedown",function(){xt.hideAll()}),(t=e).settings.ui_container&&(_.container=Ti(dn.fromDom(document.body),t.settings.ui_container).fold(E.constant(null),function(e){return e.dom()})),Mt.tooltips=!_.iOS,et.translate=function(e){return s.translate(e)},Yi(e),Di(e),er(e),nr(e),Vi(e),Li(e),qi(e),ir(e),Zi(e)}},or=Vt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M=[],T=[];t=e.settings,r=e.items().filter(":visible"),o=e.layoutRect(),i=t.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),b=t.spacingH||t.spacing||0,y=t.spacingV||t.spacing||0,x=t.alignH||t.align,w=t.alignV||t.align,p=e.paddingBox,S="reverseRows"in t?t.reverseRows:e.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)T.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)C=(u=c.layoutRect()).minW,k=u.minH,M[d]=C>M[d]?C:M[d],T[f]=k>T[f]?k:T[f];for(E=o.innerW-p.left-p.right,_=0,d=0;d<i;d++)_+=M[d]+(d>0?b:0),E-=(d>0?b:0)+M[d];for(H=o.innerH-p.top-p.bottom,R=0,f=0;f<n;f++)R+=T[f]+(f>0?y:0),H-=(f>0?y:0)+T[f];if(_+=p.left+p.right,R+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=R+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var P;o.autoResize&&((l=e.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),P="start"===t.packV?0:H>0?Math.floor(H/n):0;var W=0,D=t.flexWidths;if(D)for(d=0;d<D.length;d++)W+=D[d];else W=i;var N=E/W;for(d=0;d<i;d++)M[d]+=D?D[d]*N:N;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=T[f]+P,d=0;d<i&&(c=r[S?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+b,c.recalc&&c.recalc();m+=a+y}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var A=e.parent();A&&(A._lastRect=null,A.recalc())}}}),sr=Mt.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,t&&t()):C.setTimeout(function(){n.html(e)}),this}}),ar=Mt.extend({init:function(e){this._super(e),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),lr=Mt.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(we.getSize(e.getEl()).width>t.maxW&&(t.minW=t.maxW,e.classes.add("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,we.getSize(e.getEl()).height)),t},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e,t,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(t=n.settings.forName)&&(e=n.getRoot().find("#"+t)[0])&&(i=e._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),ur=rt.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){this._super(e),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(e){e.classes.add("toolbar-item")}),this._super()}}),cr=ur.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),dr=Ut.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(e){var t,n=this;if(n.menu&&n.menu.visible()&&!1!==e)return n.hideMenu();n.menu||(t=n.state.get("menu")||[],n.classes.add("opened"),t.length?t={type:"menu",animate:!0,items:t}:(t.type=t.type||"menu",t.animate=!0),t.renderTo?n.menu=t.parent(n).show().renderTo():n.menu=g.create(t).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){e.control===n.menu&&(n.activeMenu("show"===e.type),n.classes.toggle("opened","show"===e.type)),n.aria("expanded","show"===e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),this.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e,t=this,n=t._id,i=t.classPrefix,r=t.settings.icon,o=t.state.get("text"),s="";return(e=t.settings.image)?(r="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o&&(t.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+t.encode(o)+"</span>"),r=t.settings.icon?i+"ico "+i+"i-"+r:"",t.aria("role",t.parent()instanceof cr?"menuitem":"button"),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+e+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}(t.target,e.getEl())&&(e.focus(),e.showMenu(!t.aria),t.aria&&e.menu.items().filter(":visible")[0].focus())}),e.on("mouseenter",function(t){var n,i=t.control,r=e.parent();i&&r&&i instanceof dr&&i.parent()===r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!==i&&(e.menu&&e.menu.visible()&&(n=!0),e.hideMenu())}),n&&(i.focus(),i.showMenu()))}),e._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}}),fr=xt.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var t=e.items,n=t.length;n--;)t[n]=a.extend({},e.itemDefaults,t[n]);this._super(e),this.classes.add("menu"),e.animate&&11!==_.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var e,t=this;function n(){t.throbber&&(t.throbber.hide(),t.throbber=null)}t.settings.itemsFactory&&(t.throbber||(t.throbber=new kt(t.getEl("body"),!0),0===t.items().length?(t.throbber.show(),t.fire("loading")):t.throbber.show(100,function(){t.items().remove(),t.fire("loading")}),t.on("hide close",n)),t.requestTime=e=(new Date).getTime(),t.settings.itemsFactory(function(i){0!==i.length?t.requestTime===e&&(t.getEl().style.width="",t.getEl("body").style.width="",n(),t.items().remove(),t.getEl("body").innerHTML="",t.add(i),t.renderNew(),t.fire("loaded")):t.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;if(n.icon||n.image||n.selectable)return e._hasIcons=!0,!1}),e.settings.itemsFactory&&e.on("postrender",function(){e.settings.itemsFactory&&e.load()}),e.on("show hide",function(t){t.control===e&&("show"===t.type?C.setTimeout(function(){e.classes.add("in")},0):e.classes.remove("in"))}),e._super()}}),hr=dr.extend({init:function(e){var t,n,i,r,o=this;o._super(e),e=o.settings,o._values=t=e.values,t&&("undefined"!=typeof e.value&&function s(t){for(var r=0;r<t.length;r++){if(n=t[r].selected||e.value===t[r].value)return i=i||t[r].text,o.state.set("value",t[r].value),!0;if(t[r].menu&&s(t[r].menu))return!0}}(t),!n&&t.length>0&&(i=t[0].text,o.state.set("value",t[0].value)),o.state.set("menu",t)),o.state.set("text",e.text||i),o.classes.add("listbox"),o.on("select",function(t){var n=t.control;r&&(t.lastControl=r),e.multiple?n.active(!n.active()):o.value(t.control.value()),r=n})},bindStates:function(){var e=this;return e.on("show",function(t){var n,i;n=t.control,i=e.value(),n instanceof fr&&n.items().each(function(e){e.hasMenus()||e.active(e.value()===i)})}),e.state.on("change:value",function(t){var n=function i(e,t){var n;if(e)for(var r=0;r<e.length;r++){if(e[r].value===t)return e[r];if(e[r].menu&&(n=i(e[r].menu,t)))return n}}(e.state.get("menu"),t.value);n?e.text(n.text):e.text(e.settings.text)}),e._super()}}),mr=Mt.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t,n=this;n._super(e),e=n.settings,n.classes.add("menu-item"),e.menu&&n.classes.add("menu-item-expand"),e.preview&&n.classes.add("menu-item-preview"),"-"!==(t=n.state.get("text"))&&"|"!==t||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),e.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e,t=this,n=t.settings,i=t.parent();if(i.items().each(function(e){e!==t&&e.hideMenu()}),n.menu){(e=t.menu)?e.show():((e=n.menu).length?e={type:"menu",animate:!0,items:e}:(e.type=e.type||"menu",e.animate=!0),i.settings.itemDefaults&&(e.itemDefaults=i.settings.itemDefaults),(e=t.menu=g.create(e).parent(t).renderTo()).reflow(),e.on("cancel",function(n){n.stopPropagation(),t.focus(),e.hide()}),e.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),e.on("hide",function(n){n.control===e&&t.classes.remove("selected")}),e.submenu=!0),e._parentMenu=i,e.classes.add("menu-sub");var r=e.testMoveRel(t.getEl(),t.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);e.moveRel(t.getEl(),r),e.rel=r,r="menu-sub-"+r,e.classes.remove(e._lastRel).add(r),e._lastRel=r,t.classes.add("selected"),t.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e,t=this,n=t._id,i=t.settings,r=t.classPrefix,o=t.state.get("text"),s=t.settings.icon,a="",l=i.shortcut,u=t.encode(i.url);function c(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(e){var t=i.match||"";return t?e.replace(new RegExp(c(t),"gi"),function(e){return"!mce~match["+e+"]mce~match!"}):e}function f(e){return e.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&t.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(e){var t,n,i={};for(i=_.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)(n=i[e[t].toLowerCase()])&&(e[t]=n);return e.join("+")}(l)),s=r+"ico "+r+"i-"+(t.settings.icon||"none"),e="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(t.encode(d(o))),u=f(t.encode(d(u))),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1">'+e+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var i=e.getEl("text");i&&(i.setAttribute("style",n),e._textStyle=n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),C.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){return this.parent().items().each(function(e){e.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(e){return function(e,t){var n=e._textStyle;if(n){var i=e.getEl("text");i.setAttribute("style",n),t&&(i.style.color="",i.style.backgroundColor="")}}(this,e),void 0!==e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),gr=jt.extend({Defaults:{classes:"radio",role:"radio"}}),pr=Mt.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"===e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new ct(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!==e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function vr(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}var br=Mt.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var t=this;t._super(e),t.settings.size&&(t.size=t.settings.size),t.settings.options&&(t._options=t.settings.options),t.on("keydown",function(e){var n;13===e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e,t=this,n="";return e=vr(t._options),t.size&&(n=' size = "'+t.size+'"'),'<select id="'+t._id+'" class="'+t.classes+'"'+n+">"+e+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(t){e.getEl().innerHTML=vr(t.value)}),e._super()}});function yr(e,t,n){return e<t&&(e=t),e>n&&(e=n),e}function xr(e,t,n){e.setAttribute("aria-"+t,n)}function wr(e,t){var n,i,r,o,s;"v"===e.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=e.getEl("handle"),o=((e.layoutRect()[n]||100)-we.getSize(s)[i])*((t-e._minValue)/(e._maxValue-e._minValue))+"px",s.style[r]=o,s.style.height=e.layoutRect().h+"px",xr(s,"valuenow",t),xr(s,"valuetext",""+e.settings.previewFilter(t)),xr(s,"valuemin",e._minValue),xr(s,"valuemax",e._maxValue)}var _r=Mt.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"===e.orientation&&t.classes.add("vertical"),t._minValue=e.minValue||0,t._maxValue=e.maxValue||100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-handle" class="'+t+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var e,t,n,i,r,o,s,a,l,u,c,d,f,h,m=this;e=m._minValue,t=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(e,t){function n(n){var i,r,o;i=yr(i=(((i=m.value())+(o=e))/(t-o)+.05*n)*(t-(r=e))-r,e,t),m.value(i),m.fire("dragstart",{value:i}),m.fire("drag",{value:i}),m.fire("dragend",{value:i})}m.on("keydown",function(e){switch(e.keyCode){case 37:case 38:n(-1);break;case 39:case 40:n(1)}})}(e,t),s=e,a=t,l=m.getEl("handle"),m._dragHelper=new ct(m._id,{handle:m._id+"-handle",start:function(e){u=e[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-we.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(e){var t=e[n]-u;f=yr(c+t,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),wr(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){wr(e,t.value)}),e._super()}}),Rr=Mt.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),Cr=dr.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e,t,n=this.getEl(),i=this.layoutRect();return this._super(),e=n.firstChild,t=n.lastChild,ye(e).css({width:i.w-we.getSize(t).width,height:i.h-2}),ye(t).css({height:i.h-2}),this},activeMenu:function(e){ye(this.getEl().lastChild).toggleClass(this.classPrefix+"active",e)},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(e=a.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),t="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+t+' tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this.settings.onclick;return this.on("click",function(t){var n=t.target;if(t.control===this)for(;n;){if(t.aria&&"down"!==t.aria.key||"BUTTON"===n.nodeName&&-1===n.className.indexOf("open"))return t.stopImmediatePropagation(),void(e&&e.call(this,t));n=n.parentNode}}),delete this.settings.onclick,this._super()}}),kr=Mi.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),Er=ft.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var t;this.activeTabId&&(t=this.getEl(this.activeTabId),ye(t).removeClass(this.classPrefix+"active"),t.setAttribute("aria-selected","false")),this.activeTabId="t"+e,(t=this.getEl("t"+e)).setAttribute("aria-selected","true"),ye(t).addClass(this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!==n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",i=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,r){var o=e._id+"-t"+r;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+i+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+i+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(n&&n.id===e._id+"-head")for(var i=n.childNodes.length;i--;)n.childNodes[i]===t.target&&e.activateTab(i)})},initLayoutRect:function(){var e,t,n,i=this;t=(t=we.getSize(i.getEl("head")).width)<0?0:t,n=0,i.items().each(function(e){t=Math.max(t,e.layoutRect().minW),n=Math.max(n,e.layoutRect().minH)}),i.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=t,e.settings.h=n,e.layoutRect({x:0,y:0,w:t,h:n})});var r=we.getSize(i.getEl("head")).height;return i.settings.minWidth=t,i.settings.minHeight=n+r,(e=i._super()).deltaH+=r,e.innerH=e.h-e.deltaH,e}}),Hr=Mt.extend({init:function(e){var t=this;t._super(e),t.classes.add("textbox"),e.multiline?t.classes.add("multiline"):(t.on("keydown",function(e){var n;13===e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){t.state.set("value",e.target.value)}))},repaint:function(){var e,t,n,i,r,o=this,s=0;e=o.getEl().style,t=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(e.lineHeight=t.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),t.x!==r.x&&(e.left=t.x+"px",r.x=t.x),t.y!==r.y&&(e.top=t.y+"px",r.y=t.y),t.w!==r.w&&(e.width=t.w-i+"px",r.w=t.w),t.h!==r.h&&(e.height=t.h-s+"px",r.h=t.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var e,t,n=this,i=n.settings;return e={id:n._id,hidefocus:"1"},a.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(t){e[t]=i[t]}),n.disabled()&&(e.disabled="disabled"),i.subtype&&(e.type=i.subtype),(t=we.create(i.multiline?"textarea":"input",e)).value=n.state.get("value"),t.className=n.classes,t.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!==t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}}),Sr=function(){return{Selector:Be,Collection:Le,ReflowQueue:qe,Control:et,Factory:g,KeyboardNavigation:nt,Container:rt,DragHelper:ct,Scrollable:dt,Panel:ft,Movable:Re,Resizable:ht,FloatPanel:xt,Window:zt,MessageBox:Lt,Tooltip:St,Widget:Mt,Progress:Tt,Notification:Wt,Layout:Ft,AbsoluteLayout:Vt,Button:Ut,ButtonGroup:$t,Checkbox:jt,ComboBox:Xt,ColorBox:Jt,PanelButton:Gt,ColorButton:Zt,ColorPicker:en,Path:nn,ElementPath:rn,FormItem:on,Form:sn,FieldSet:an,FilePicker:Ei,FitLayout:Hi,FlexLayout:Si,FlowLayout:Mi,FormatControls:rr,GridLayout:or,Iframe:sr,InfoBox:ar,Label:lr,Toolbar:ur,MenuBar:cr,MenuButton:dr,MenuItem:mr,Throbber:kt,Menu:fr,ListBox:hr,Radio:gr,ResizeHandle:pr,SelectBox:br,Slider:_r,Spacer:Rr,SplitButton:Cr,StackLayout:kr,TabPanel:Er,TextBox:Hr,DropZone:tn,BrowseButton:Yt}},Mr=function(e){e.ui?a.each(Sr(),function(t,n){e.ui[n]=t}):e.ui=Sr()};a.each(Sr(),function(e,t){g.add(t,e)}),Mr(window.tinymce?window.tinymce:{}),o.add("modern",function(e){return rr.setup(e),It(e)})}(); diff --git a/project-web/src/App.vue b/project-web/src/App.vue new file mode 100644 index 0000000..0816b2f --- /dev/null +++ b/project-web/src/App.vue @@ -0,0 +1,11 @@ +<template> + <div id="app"> + <router-view /> + </div> +</template> + +<script> +export default { + name: 'App', +}; +</script> diff --git a/project-web/src/api/baseSetting/finsystenant.js b/project-web/src/api/baseSetting/finsystenant.js new file mode 100644 index 0000000..1b85d94 --- /dev/null +++ b/project-web/src/api/baseSetting/finsystenant.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' +import SettingIplatform from '@/utils/settingIplatform'; + +/** + * @Description 鏌ヨ鍖哄垝鏍� + * @Author wh + * @Date 2023/7/13 20:11 + */ +export function getTree(parameter) { + return request.get(SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/tree_fin_tenant', {params: parameter}) +} + +/** + * @Description 鏍规嵁棣栧瓧姣嶆煡璇㈠尯鍒掑垪琛� + * @Author sgp + * @Date 2023/9/7 20:11 + */ +export function allList(parameter) { + return request.get(SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/allList', {params: parameter}) +} +// 鏂板 +export function add(data) { + return request({ + url: '/pc/fin/sys/tenant/add', + method: 'post', + data: data + }) +} + +// 淇敼 +export function edit(data) { + return request({ + url: '/pc/fin/sys/tenant/edit', + method: 'post', + data: data + }) +} + +// 鏌ヨ閮ㄩ棬 +export function getOegs(parameter) { + return request.get(SettingIplatform.apiBaseURL + '/pc/fin/sys/org/select/down/list', {params: parameter}) +} + +// 鍒犻櫎鏈烘瀯淇℃伅 +export function del(data) { + return request({ + url: '/pc/fin/sys/tenant/del', + method: 'post', + data: data + }) +} + +/** + * @Description 鏍规嵁鏈烘瀯id鑾峰彇鐢ㄦ埛 + * @Author wh + * @Date 2023/10/4 16:10 + */ +export function getUserByOrgId(parameter) { + return request.get(SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getUserByOrgId', {params: parameter}) +} diff --git a/project-web/src/api/dashboard/dash.js b/project-web/src/api/dashboard/dash.js new file mode 100644 index 0000000..59877b6 --- /dev/null +++ b/project-web/src/api/dashboard/dash.js @@ -0,0 +1,59 @@ +import request from '@/utils/request' + +// 鑾峰彇浜嬩欢缁熻 +export function getEventInfo() { + return request({ + url: '/pc/fin/dashboard/getEventInfo', + method: 'get' + }); +} + +// 鏍规嵁椤圭洰鏌ュ伐鍗� +export function getNumByProject(params) { + return request({ + url: '/pc/fin/dashboard/getNumByProject', + method: 'get', + params + }); +} + +// 鑾峰彇绛夌骇鏁伴噺 + +export function getEventType() { + return request({ + url: '/pc/fin/dashboard/getEventType', + method: 'get' + }); +} + +export function getLVNum() { + return request({ + url: '/pc/fin/dashboard/getEventLV', + method: 'get' + }); +} + + +// 鑾峰彇娴佺▼鏁版嵁 +export function getProcess() { + return request({ + url: '/pc/fin/dashboard/getProcess', + method: 'get' + }); +} +// 鑾峰彇閫氱煡鍒楄〃 +export function getNotify(params) { + return request({ + url: '/pc/fin/manage/select/list', + method: 'get', + params + }); +} +// 闃呰閫氱煡娑堟伅 +export function readMsg(params) { + return request({ + url: '/pc/fin/manage/readMsg', + method: 'get', + params + }); +} diff --git a/project-web/src/api/dataV.js b/project-web/src/api/dataV.js new file mode 100644 index 0000000..1e88bc4 --- /dev/null +++ b/project-web/src/api/dataV.js @@ -0,0 +1,54 @@ +import request from '@/utils/request'; + +export default { + // 鏌ヨ缁煎悎缁熻鍒嗘瀽 + queryBoardTotalData(params = {}) { + return request({ + url: '/pc/p/dash/board/totalData', + method: 'get', + params, + }); + }, + // 鏌ヨ璁″垝鎶曡祫鏁版嵁鍒嗘瀽 + queryPlanMoney() { + return request({ + url: '/pc/p/dash/board/planMoney', + method: 'get', + }); + }, + // 鏌ヨ璁″垝鎶曡祫鏁版嵁鍒嗘瀽 + queryProjectYear() { + return request({ + url: '/pc/p/dash/board/yearProjectNum', + method: 'get', + }); + }, + // 鏌ヨ椤圭洰绫诲瀷鍗犳瘮鍒嗘瀽 + queryProjectNumByType() { + return request({ + url: '/pc/p/dash/board/projectNumByType', + method: 'get', + }); + }, + // 鏌ヨ鎵规璁″垝鏁版嵁鍒嗘瀽 + queryProjectNumByBatch() { + return request({ + url: '/pc/p/dash/board/projectNumByBatch', + method: 'get', + }); + }, + // 鏌ヨ椤圭洰淇℃伅鍒楄〃 + queryProjectList() { + return request({ + url: '/pc/p/dash/board/projectNodeTime', + method: 'get', + }); + }, + // 鏌ヨ椤圭洰鍦板浘鏁版嵁 + queryProjectMap() { + return request({ + url: '/pc/p/dash/board/totalDataByOrg', + method: 'get', + }); + }, +}; diff --git a/project-web/src/api/projectConfig/buildPlan.js b/project-web/src/api/projectConfig/buildPlan.js new file mode 100644 index 0000000..3b100c6 --- /dev/null +++ b/project-web/src/api/projectConfig/buildPlan.js @@ -0,0 +1,64 @@ +import request from '@/utils/request'; + + +//澧炲姞 +export function add(data) { + return request({ + url: '/pc/p/temp/project/add', + method: 'post', + data + }); +} +//鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/temp/project/del', + method: 'delete', + data + }); +} + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/project/upd', + method: 'post', + data + }); +} + +//璇︽儏 +export function getDetail(params) { + return request({ + url: '/pc/p/temp/project/detail', + method: 'get', + params + }); +} +//淇敼鐘舵�� +export function updStatus(data) { + return request({ + url: '/pc/p/temp/project/updStatus', + method: 'post', + data + }); +} + +//鏌ヨ鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/project/list', + method: 'get', + params + }); +} + +// 鑾峰彇鍒嗙被 +export function getPlanType(params) { + return request({ + url: '/permit/dict/data/type/PLAN_TYPE', + method: 'get', + params + }); +} + diff --git a/project-web/src/api/projectConfig/buildPlanNode.js b/project-web/src/api/projectConfig/buildPlanNode.js new file mode 100644 index 0000000..46d0136 --- /dev/null +++ b/project-web/src/api/projectConfig/buildPlanNode.js @@ -0,0 +1,36 @@ +import request from '@/utils/request'; + + +//璁剧疆椤圭洰妯$増涓嬮樁娈佃妭鐐� +export function updPStageNode(data) { + return request({ + url: '/pc/p/temp/project/stage/node/save', + method: 'post', + data + }); +} +//鏌ヨ椤圭洰妯$増涓嬮樁娈佃妭鐐� +export function getStageNode(params) { + return request({ + url: '/pc/p/temp/project/stage/node', + method: 'get', + params + }); +} +//鏌ヨ椤圭洰妯$増涓嬮樁娈佃妭鐐� +export function getPStageNode(params) { + return request({ + url: '/pc/p/temp/project/stage/node/tree', + method: 'get', + params + }); +} +//鏌ヨ棰勮鏁版嵁 +export function getPreview(data) { + return request({ + url: '/pc/p/temp/project/stage/node/preview', + method: 'post', + data + }); +} + diff --git a/project-web/src/api/projectConfig/kanbanConfig.js b/project-web/src/api/projectConfig/kanbanConfig.js new file mode 100644 index 0000000..bc71c65 --- /dev/null +++ b/project-web/src/api/projectConfig/kanbanConfig.js @@ -0,0 +1,55 @@ +import request from '@/utils/request'; + + +//澧炲姞 +export function add(data) { + return request({ + url: '/pc/p/temp/project/board/add', + method: 'post', + data + }); +} +//鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/temp/project/board/del', + method: 'delete', + data + }); +} + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/project/board/upd', + method: 'post', + data + }); +} + +//闃舵璇︽儏 +export function getDetail(params) { + return request({ + url: '/pc/p/temp/project/board/detail', + method: 'get', + params + }); +} +//淇敼鐘舵�� +export function updStatus(data) { + return request({ + url: '/pc/p/temp/project/board/updStatus', + method: 'post', + data + }); +} + +//鏌ヨ鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/project/board/list', + method: 'get', + params + }); +} + diff --git a/project-web/src/api/projectConfig/kanbanNode.js b/project-web/src/api/projectConfig/kanbanNode.js new file mode 100644 index 0000000..edb190e --- /dev/null +++ b/project-web/src/api/projectConfig/kanbanNode.js @@ -0,0 +1,28 @@ +import request from '@/utils/request'; + +/*鐪嬫澘鑺傜偣*/ + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/project/board/node/upd', + method: 'post', + data + }); +} +//鍒楄〃 +export function getTree(params) { + return request({ + url: '/pc/p/temp/project/board/node/tree', + method: 'get', + params + }); +} +//鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/project/board/node/list', + method: 'get', + params + }); +} diff --git a/project-web/src/api/projectConfig/stageConfig.js b/project-web/src/api/projectConfig/stageConfig.js new file mode 100644 index 0000000..18578dd --- /dev/null +++ b/project-web/src/api/projectConfig/stageConfig.js @@ -0,0 +1,55 @@ +import request from '@/utils/request'; + + +//澧炲姞 +export function add(data) { + return request({ + url: '/pc/p/temp/stage/add', + method: 'post', + data + }); +} +//鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/temp/stage/del', + method: 'delete', + data + }); +} + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/stage/upd', + method: 'post', + data + }); +} + +//璇︽儏 +export function getDetail(params) { + return request({ + url: '/pc/p/temp/stage/detail', + method: 'get', + params + }); +} +//淇敼鐘舵�� +export function updStatus(data) { + return request({ + url: '/pc/p/temp/stage/updStatus', + method: 'post', + data + }); +} + +//鏌ヨ鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/stage/list', + method: 'get', + params + }); +} + diff --git a/project-web/src/api/projectConfig/stageNode.js b/project-web/src/api/projectConfig/stageNode.js new file mode 100644 index 0000000..8fffc03 --- /dev/null +++ b/project-web/src/api/projectConfig/stageNode.js @@ -0,0 +1,68 @@ +import request from '@/utils/request'; + +/*闃舵鑺傜偣*/ + +//澧炲姞 +export function add(data) { + return request({ + url: '/pc/p/temp/stage/node/add', + method: 'post', + data + }); +} + +//鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/temp/stage/node/del', + method: 'delete', + data + }); +} + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/stage/node/upd', + method: 'post', + data + }); +} + +//璇︽儏 +export function getDetail(params) { + return request({ + url: '/pc/p/temp/stage/node/detail', + method: 'get', + params + }); +} + +//淇敼鐘舵�� +export function updStatus(data) { + return request({ + url: '/pc/p/temp/stage/node/updStatus', + method: 'post', + data + }); +} + +//鏌ヨ鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/stage/node/list', + method: 'get', + params + }); +} + + +//鏌ヨ闃舵鑺傜偣鏍� +export function getStageNodeTree(params) { + return request({ + url: '/pc/p/temp/stage/node/tree', + method: 'get', + params + }); +} + diff --git a/project-web/src/api/projectConfig/warningConfig.js b/project-web/src/api/projectConfig/warningConfig.js new file mode 100644 index 0000000..fe43509 --- /dev/null +++ b/project-web/src/api/projectConfig/warningConfig.js @@ -0,0 +1,55 @@ +import request from '@/utils/request'; + + +//澧炲姞 +export function add(data) { + return request({ + url: '/pc/p/temp/expiration/notify/add', + method: 'post', + data + }); +} +//鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/temp/expiration/notify/del', + method: 'delete', + data + }); +} + +//缂栬緫 +export function upd(data) { + return request({ + url: '/pc/p/temp/expiration/notify/upd', + method: 'post', + data + }); +} + +//璇︽儏 +export function getDetail(params) { + return request({ + url: '/pc/p/temp/expiration/notify/detail', + method: 'get', + params + }); +} +//淇敼鐘舵�� +export function updStatus(data) { + return request({ + url: '/pc/p/temp/expiration/notify/updStatus', + method: 'post', + data + }); +} + +//鏌ヨ鍒楄〃 +export function getList(params) { + return request({ + url: '/pc/p/temp/expiration/notify/list', + method: 'get', + params + }); +} + diff --git a/project-web/src/api/projectManage/audit.js b/project-web/src/api/projectManage/audit.js new file mode 100644 index 0000000..ea0133f --- /dev/null +++ b/project-web/src/api/projectManage/audit.js @@ -0,0 +1,10 @@ +import request from '@/utils/request'; +// 椤圭洰瀹℃牳 +export function auditUpd(data) { + return request({ + url: '/pc/p/project/info/audit', + method: 'post', + data: data + }) +} + diff --git a/project-web/src/api/projectManage/cancel.js b/project-web/src/api/projectManage/cancel.js new file mode 100644 index 0000000..658e808 --- /dev/null +++ b/project-web/src/api/projectManage/cancel.js @@ -0,0 +1,10 @@ +import request from '@/utils/request'; +// 椤圭洰鍙栨秷 +export function cancelSave(data) { + return request({ + url: '/pc/p/project/info/cancel/save', + method: 'post', + data: data + }) +} + diff --git a/project-web/src/api/projectManage/classify.js b/project-web/src/api/projectManage/classify.js new file mode 100644 index 0000000..baa30f0 --- /dev/null +++ b/project-web/src/api/projectManage/classify.js @@ -0,0 +1,51 @@ +import request from '@/utils/request'; +// 椤圭洰鍒嗙被 +// 宸︿晶鏍� +export function classifyTree(params) { + return request({ + url: '/pc/p/project/category/tree', + method: 'get', + params + }) +} +// 淇敼鐘舵�� +export function updateStatus(data) { + return request({ + url: '/pc/p/project/category/updateStatus', + method: 'post', + data: data + }) +} +// 鏂板鍒嗙被 +export function add(data) { + return request({ + url: '/pc/p/project/category/add', + method: 'post', + data: data + }) +} +// 鏍规嵁鍒嗙被鑾峰彇璇︽儏 +export function getdetail(params) { + return request({ + url: '/pc/p/project/category/detail', + method: 'get', + params + }) +} +// 淇敼鍒嗙被 +export function edit(data) { + return request({ + url: '/pc/p/project/category/upd', + method: 'post', + data + }) +} +// 鍒犻櫎 +export function del(data) { + return request({ + url: '/pc/p/project/category/del', + method: 'delete', + data: data + }) +} + diff --git a/project-web/src/api/projectManage/info.js b/project-web/src/api/projectManage/info.js new file mode 100644 index 0000000..76c465f --- /dev/null +++ b/project-web/src/api/projectManage/info.js @@ -0,0 +1,20 @@ +import request from '@/utils/request'; + +// 椤圭洰鏂板 +export function add(data) { + return request({ + url: '/pc/p/project/info/add', + method: 'post', + data: data + }) +} + +// 璇︽儏 +export function getInfo(params) { + return request({ + url: '/pc/p/project/info/getInfo', + method: 'get', + params + }) +} + diff --git a/project-web/src/api/projectManage/information.js b/project-web/src/api/projectManage/information.js new file mode 100644 index 0000000..50e3a0a --- /dev/null +++ b/project-web/src/api/projectManage/information.js @@ -0,0 +1,58 @@ +import request from '@/utils/request'; +// 椤堕儴椤圭洰淇℃伅缁熻 +export function getTotal(params) { + return request({ + url: '/pc/p/project/info/total', + method: 'get', + params + }) +} +// 椤圭洰淇℃伅鍒楄〃 +export function getInfolist(params) { + return request({ + url: '/pc/p/project/info/list', + method: 'get', + params + }) +} +// 棰勮璁剧疆 淇敼鍒楄〃涓婇」鐩璀︾姸鎬� +export function updateInfoStatus(data) { + return request({ + url: '/pc/p/project/info/status/update', + method: 'post', + data: data + }) +} +// 棰勮璁剧疆 鑾峰彇棰勮鍒楄〃 +export function getWarnTempletelist(params) { + return request({ + url: '/pc/p/temp/expiration/notify/list', + method: 'get', + params + }) +} +// 棰勮璁剧疆 淇濆瓨 +export function warnTempleteSave(data) { + return request({ + url: '/pc/p/project/info/tempNotify/save', + method: 'post', + data: data + }) +} +// 涓嬭揪鎶曡祫 鑾峰彇宸茬粡涓嬭揪鎶曡祫鐨勯搴� +export function getInvestInfoList(params) { + return request({ + url: '/pc/p/release/invest/info/list', + method: 'get', + params + }) +} +// 涓嬭揪鎶曡祫 淇濆瓨 +export function investInfoSave(data) { + return request({ + url: '/pc/p/project/info/investInfo/save', + method: 'post', + data: data + }) +} + diff --git a/project-web/src/api/projectManage/record.js b/project-web/src/api/projectManage/record.js new file mode 100644 index 0000000..db8ae9f --- /dev/null +++ b/project-web/src/api/projectManage/record.js @@ -0,0 +1,18 @@ +import request from '@/utils/request'; +// 椤圭洰褰掓。 +export function recordSave(data) { + return request({ + url: '/pc/p/project/info/record/save', + method: 'post', + data: data + }) +} +// 椤圭洰杩樺師 +export function recordUpd(data) { + return request({ + url: '/pc/p/project/info/record/upd', + method: 'post', + data: data + }) +} + diff --git a/project-web/src/api/system/dept.js b/project-web/src/api/system/dept.js new file mode 100644 index 0000000..b77dc12 --- /dev/null +++ b/project-web/src/api/system/dept.js @@ -0,0 +1,83 @@ +import request from '@/utils/request' + +// 鏌ヨ閮ㄩ棬鍒楄〃 +export function listDept(query) { + return request({ + url: '/system/dept/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級 +export function listDeptExcludeChild(deptId) { + return request({ + url: '/system/dept/list/exclude/' + deptId, + method: 'get' + }) +} + +// 鏌ヨ閮ㄩ棬璇︾粏 +export function getDept(deptId) { + return request({ + url: '/system/dept/view/' + deptId, + method: 'get' + }) +} + +// 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� +export function treeselect(deptId) { + return request({ + // url: '/system/dept/treeselect', + url: '/system/dept/select/tree_dept/' + deptId, + method: 'get' + }) +} +// 灞曠ず椤剁骇鏈烘瀯鏍戠粨鏋勶紝鍙兘浼氬瓨鍦ㄥ涓《绾ф満鏋勩��2022-12-08 +export function listOrgRootTree() { + return request({ + url: '/system/dept/select/tree_org', + method: 'get' + }) +} +// 鍒楄〃閫夋嫨灞曠ず椤剁骇鏈烘瀯锛屾櫘閫氱敤鎴峰彧鑳界湅鍒版湰鍗曚綅椤剁骇鏈烘瀯銆�2022-12-15 +export function listOrgRoot(){ + return request({ + url: '/system/dept/select/list_root_org', + method: 'get' + }); +} + +// 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� +export function roleDeptTreeselect(roleId) { + return request({ + url: '/system/dept/roleDeptTreeselect/' + roleId, + method: 'get' + }) +} + +// 鏂板閮ㄩ棬 +export function addDept(data) { + return request({ + url: '/system/dept/add', + method: 'post', + data: data + }) +} + +// 淇敼閮ㄩ棬 +export function updateDept(data) { + return request({ + url: '/system/dept/edit', + method: 'post', + data: data + }) +} + +// 鍒犻櫎閮ㄩ棬 +export function delDept(deptId) { + return request({ + url: '/system/dept/remove/' + deptId, + method: 'get' + }) +} diff --git a/project-web/src/api/system/dict/data.js b/project-web/src/api/system/dict/data.js new file mode 100644 index 0000000..8c98e07 --- /dev/null +++ b/project-web/src/api/system/dict/data.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' + +// 鏌ヨ瀛楀吀鏁版嵁鍒楄〃 +export function listData(query) { + return request({ + url: '/system/dict/data/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ瀛楀吀鏁版嵁璇︾粏 +export function getData(dictCode) { + return request({ + url: '/system/dict/data/' + dictCode, + method: 'get' + }) +} + +// 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅 +export function getDicts(dictType) { + return request({ + // url: '/system/dict/data/type/' + dictType, + url: '/permit/dict/data/type/' + dictType, + method: 'get' + }) +} + +// 鏂板瀛楀吀鏁版嵁 +export function addData(data) { + return request({ + // url: '/system/dict/data', + url: '/system/dict/add', + method: 'post', + data: data + }) +} + +// 淇敼瀛楀吀鏁版嵁 +export function updateData(data) { + return request({ + // url: '/system/dict/data', + url: '/system/dict/edit', + method: 'post', + data: data + }) +} + +// 鍒犻櫎瀛楀吀鏁版嵁 +export function delData(dictCode) { + return request({ + // url: '/system/dict/data/' + dictCode, + url: '/system/dict/data/remove/' + dictCode, + method: 'get' + }) +} diff --git a/project-web/src/api/system/dict/type.js b/project-web/src/api/system/dict/type.js new file mode 100644 index 0000000..42bd2d8 --- /dev/null +++ b/project-web/src/api/system/dict/type.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 +export function listType(query) { + return request({ + url: '/system/dict/type/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ瀛楀吀绫诲瀷璇︾粏 +export function getType(dictId) { + return request({ + url: '/system/dict/type/' + dictId, + method: 'get' + }) +} + +// 鏂板瀛楀吀绫诲瀷 +export function addType(data) { + return request({ + url: '/system/dict/type', + method: 'post', + data: data + }) +} + +// 淇敼瀛楀吀绫诲瀷 +export function updateType(data) { + return request({ + url: '/system/dict/type', + method: 'put', + data: data + }) +} + +// 鍒犻櫎瀛楀吀绫诲瀷 +export function delType(dictId) { + return request({ + url: '/system/dict/type/' + dictId, + method: 'delete' + }) +} + +// 鍒锋柊瀛楀吀缂撳瓨 +export function refreshCache() { + return request({ + url: '/system/dict/type/refreshCache', + method: 'delete' + }) +} + +// 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛� +export function optionselect() { + return request({ + url: '/system/dict/data/optionselect', + method: 'get' + }) +} diff --git a/project-web/src/api/system/menu.js b/project-web/src/api/system/menu.js new file mode 100644 index 0000000..605123c --- /dev/null +++ b/project-web/src/api/system/menu.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 鏌ヨ鑿滃崟鍒楄〃 +export function listMenu(query) { + return request({ + url: '/system/menu/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ鑿滃崟璇︾粏 +export function getMenu(menuId) { + return request({ + url: '/system/menu/view/' + menuId, + method: 'get' + }) +} + +// 鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� +export function treeselect() { + return request({ + url: '/system/menu/select/tree', + method: 'get' + }) +} + +// 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� +export function roleMenuTreeselect(roleId) { + return request({ + url: '/system/menu/select/roleMenuTree/' + roleId, + method: 'get' + }) +} + +// 鏂板鑿滃崟 +export function addMenu(data) { + return request({ + url: '/system/menu/add', + method: 'post', + data: data + }) +} + +// 淇敼鑿滃崟 +export function updateMenu(data) { + return request({ + url: '/system/menu/edit', + method: 'post', + data: data + }) +} + +// 鍒犻櫎鑿滃崟 +export function delMenu(menuId) { + return request({ + url: '/system/menu/remove/' + menuId, + method: 'get' + }) +} diff --git a/project-web/src/api/system/role.js b/project-web/src/api/system/role.js new file mode 100644 index 0000000..689b9cc --- /dev/null +++ b/project-web/src/api/system/role.js @@ -0,0 +1,121 @@ +import request from '@/utils/request' + +// 鏌ヨ瑙掕壊鍒楄〃 +export function listRole(query) { + return request({ + url: '/system/role/list', + method: 'get', + params: query + }) +} + +// 鏍规嵁鑼冨洿鏌ヨ瑙掕壊淇℃伅 +export function listRoleByDataScope(query) { + return request({ + url: '/pc/fin/sys/server/selectByDataScope', + method: 'get', + params: query + }) +} + +// 鏌ヨ瑙掕壊璇︾粏 +export function getRole(roleId) { + return request({ + url: '/system/role/view/' + roleId, + method: 'get' + }) +} + +// 鏂板瑙掕壊 +export function addRole(data) { + return request({ + url: '/system/role/add', + method: 'post', + data: data + }) +} + +// 淇敼瑙掕壊 +export function updateRole(data) { + return request({ + url: '/system/role/edit', + method: 'post', + data: data + }) +} + +// 瑙掕壊鏁版嵁鏉冮檺 +export function dataScope(data) { + return request({ + url: '/system/role/dataScope', + method: 'put', + data: data + }) +} + +// 瑙掕壊鐘舵�佷慨鏀� +export function changeRoleStatus(role_id, status) { + const data = { + role_id, + status + } + return request({ + url: '/pc/fin/sys/role/select/changeStatus', + method: 'post', + data: data + }) +} + + +// 鍒犻櫎瑙掕壊 +export function delRole(roleId) { + return request({ + url: '/system/role/remove/' + roleId, + method: 'get' + }) +} + +// 鏌ヨ瑙掕壊宸叉巿鏉冪敤鎴峰垪琛� +export function allocatedUserList(query) { + return request({ + url: '/system/role/select/authUser/allocatedList', + method: 'get', + params: query + }) +} + +// 鏌ヨ瑙掕壊鏈巿鏉冪敤鎴峰垪琛� +export function unallocatedUserList(query) { + return request({ + url: '/system/role/select/authUser/unallocatedList', + method: 'get', + params: query + }) +} + +// 鍙栨秷鐢ㄦ埛鎺堟潈瑙掕壊 +export function authUserCancel(data) { + return request({ + url: '/system/role/select/authUser/cancel', + method: 'post', + data: data + }) +} + +// 鎵归噺鍙栨秷鐢ㄦ埛鎺堟潈瑙掕壊 +export function authUserCancelAll(data) { + return request({ + url: '/system/role/authUser/cancelAll', + method: 'post', + params: data + }) +} + +// 鎺堟潈鐢ㄦ埛閫夋嫨 +export function authUserSelectAll(data) { + return request({ + url: '/system/role/select/authUser/all', + method: 'post', + params: data + }) +} diff --git a/project-web/src/api/system/roleApi.js b/project-web/src/api/system/roleApi.js new file mode 100644 index 0000000..2132445 --- /dev/null +++ b/project-web/src/api/system/roleApi.js @@ -0,0 +1,12 @@ +import request from '@/utils/request'; + +/** + * 鑿滃崟 + * @param pram + */ +export function menuListApi() { + return request({ + url: '/getMenus', + method: 'GET', + }); +} diff --git a/project-web/src/api/system/sms.js b/project-web/src/api/system/sms.js new file mode 100644 index 0000000..e32ae38 --- /dev/null +++ b/project-web/src/api/system/sms.js @@ -0,0 +1,215 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import request from '@/utils/request'; +/** + * @description 鐭俊鍙戦�佽褰� -- 鍒楄〃 + */ +export function smsLstApi(params) { + return request({ + url: '/admin/platform/one/pass/user/record', + method: 'get', + params, + }); +} +/** + * @description 鐭俊璐︽埛 -- 鐧诲綍 + */ +export function configApi(data) { + return request({ + url: '/admin/platform/one/pass/login', + method: 'post', + data, + }); +} +/** + * @description 鐭俊璐︽埛 -- 鑾峰彇楠岃瘉鐮� + */ +export function captchaApi(data) { + return request({ + url: `/admin/platform/one/pass/sendUserCode`, + method: 'post', + data, + }); +} +/** + * @description 鐭俊璐︽埛 -- 娉ㄥ唽 + */ +export function registerApi(data) { + return request({ + url: '/admin/platform/one/pass/register', + method: 'post', + data, + }); +} +/** + * @description 鐭俊璐︽埛 -- 鏄惁鐧诲綍 + */ +export function isLoginApi() { + return request({ + url: '/admin/platform/one/pass/isLogin', + method: 'get', + }); +} +/** + * @description 鐭俊璐︽埛 -- 閫�鍑虹櫥褰� + */ +export function logoutApi() { + return request({ + url: '/admin/platform/one/pass/logout', + method: 'post', + }); +} +/** + * @description 鐭俊璐︽埛 -- 鍓╀綑鏉℃暟 + */ +export function smsNumberApi() { + return request({ + url: '/admin/sms/logout', + method: 'get', + }); +} +/** + * @description 鐭俊妯℃澘 -- 鍒楄〃 + */ +export function smsTempLstApi(params) { + return request({ + url: '/admin/platform/one/pass/sms/temps', + method: 'get', + params, + }); +} +/** + * @description 鐭俊璐拱 -- 鏀粯濂楅 + */ +export function smsPriceApi(params) { + return request({ + url: '/admin/platform/one/pass/meal/list', + method: 'get', + params, + }); +} +/** + * @description 鐭俊璐拱 -- 鏀粯鐮� + */ +export function payCodeApi(data) { + return request({ + url: '/admin/platform/one/pass/meal/code', + method: 'post', + data, + }); +} +/** + * @description 鐭俊妯℃澘 -- 娣诲姞琛ㄥ崟 + */ +export function tempCreateApi(data) { + return request({ + url: '/admin/platform/one/pass/sms/temp/apply', + method: 'post', + data, + }); +} +/** + * @description 鐭俊 -- 鐢ㄦ埛淇℃伅 + */ +export function smsInfoApi() { + return request({ + url: '/admin/platform/one/pass/info', + method: 'get', + }); +} + +/** + * @description 鐭俊 -- 鐭俊鎻愰啋寮�鍏充繚瀛� + */ +export function smsSaveApi(params) { + return request({ + url: '/admin/sms/config/save', + method: 'post', + params, + }); +} + +/** + * @description 鐭俊 -- 淇敼瀵嗙爜 + */ +export function updatePasswordApi(data) { + return request({ + url: '/admin/platform/one/pass/update/password', + method: 'post', + data, + }); +} + +/** + * @description 鐭俊 -- 淇敼鎵嬫満鍙� + */ +export function updateHoneApi(data) { + return request({ + url: '/admin/platform/one/pass/update/phone', + method: 'post', + data, + }); +} + +/** + * @description 涓�鍙烽�� -- 鏈嶅姟寮�閫� + */ +export function serviceOpenApi(data) { + return request({ + url: '/admin/platform/one/pass/service/open', + method: 'post', + data, + }); +} + +/** + * @description 涓�鍙烽�� -- 鐢靛瓙闈㈠崟妯℃澘 + */ +export function exportTempApi(params) { + return request({ + url: '/admin/express/template', + method: 'get', + params, + }); +} + +/** + * @description 鍏ㄩ儴鐗╂祦鍏徃 + */ +export function expressAllApi(params) { + return request({ + url: 'admin/express/all', + method: 'get', + params, + }); +} + +/** + * @description 淇敼绛惧悕 + */ +export function smsSignApi(data) { + return request({ + url: '/admin/platform/one/pass/sms/modify/sign', + method: 'post', + data, + }); +} + +/** + * @description 淇敼鎵嬫満鍙烽獙璇佽处鍙峰瘑鐮� + */ +export function phoneValidatorApi(data) { + return request({ + url: 'admin/platform/one/pass/update/phone/validator', + method: 'post', + data, + }); +} diff --git a/project-web/src/api/system/user.js b/project-web/src/api/system/user.js new file mode 100644 index 0000000..738219e --- /dev/null +++ b/project-web/src/api/system/user.js @@ -0,0 +1,136 @@ +import request from '@/utils/request' +import { isEmptyValue } from "@/utils/StringUtils"; + +// 鏌ヨ鐢ㄦ埛鍒楄〃 +export function listUser(query) { + return request({ + url: '/system/user/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ鐢ㄦ埛璇︾粏 +export function getUser(userId) { + return request({ + url: '/system/user/view/' + userId, + method: 'get' + }) +} + +// 2022-12-12, 娣诲姞鏂扮敤鎴凤紝閫夋嫨瑙掕壊鍒楄〃 +export function getNewUserRoles(deptId){ + return request({ + url: '/system/user/select/role/' + deptId, + method: 'get' + }); +} + +// 鏂板鐢ㄦ埛 +export function addUser(data) { + return request({ + url: '/system/user/add', + method: 'post', + data: data + }) +} + +// 淇敼鐢ㄦ埛 +export function updateUser(data) { + return request({ + url: '/system/user/edit', + method: 'post', + data: data + }) +} + +// 鍒犻櫎鐢ㄦ埛 +export function delUser(userId) { + return request({ + url: '/system/user/remove/' + userId, + method: 'get' + }) +} + +// 鐢ㄦ埛瀵嗙爜閲嶇疆锛� +// 淇敼浜嗙晫闈紝涓嶈鐢ㄦ埛杈撳叆鏂板瘑鐮侊紝鐩存帴鍚庡彴閲嶇疆榛樿銆�2022-12-13 +export function resetUserPwd(id, password) { + const data = { + id, + password + } + return request({ + url: '/system/user/resetPwd', + method: 'post', + data: data + }) +} + +// 鐢ㄦ埛鐘舵�佷慨鏀� +export function changeUserStatus(id, status) { + const data = { + id, + status + } + return request({ + url: '/system/user/select/changeStatus', + method: 'post', + data: data + }) +} + +// 鏌ヨ鐢ㄦ埛涓汉淇℃伅 +export function getUserProfile() { + return request({ + url: '/system/user/profile', + method: 'get' + }) +} + +// 淇敼鐢ㄦ埛涓汉淇℃伅 +export function updateUserProfile(data) { + return request({ + url: '/system/user/profile', + method: 'put', + data: data + }) +} + +// 鐢ㄦ埛瀵嗙爜閲嶇疆 +export function updateUserPwd(oldPassword, newPassword) { + const data = { + oldPassword, + newPassword + } + return request({ + url: '/system/user/profile/updatePwd', + method: 'put', + params: data + }) +} + +// 鐢ㄦ埛澶村儚涓婁紶 +export function uploadAvatar(data) { + return request({ + url: '/system/user/profile/avatar', + method: 'post', + data: data + }) +} + +// 鏌ヨ鎺堟潈瑙掕壊 +export function getAuthRole(userId) { + return request({ + url: '/system/user/select/authRole/' + userId, + method: 'get' + }) +} + +// 淇濆瓨鎺堟潈瑙掕壊 +export function updateAuthRole(data) { + return request({ + url: '/system/user/select/saveAuthRole', + method: 'post', + params: data + }) +} diff --git a/project-web/src/api/system/wxApi.js b/project-web/src/api/system/wxApi.js new file mode 100644 index 0000000..f8e943b --- /dev/null +++ b/project-web/src/api/system/wxApi.js @@ -0,0 +1,386 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import request from '@/utils/request'; + +// TODO 寰俊娌熼�氶毦搴﹀ぇ鏆傛斁 鍛靛懙 + +export function menuCreate(data) { + return request({ + url: '/admin/platform/wechat/menu/public/create', + method: 'post', + params: data, + }); +} + +export function menuDelete(data) { + return request({ + url: '/admin/platform/wechat/menu/public/delete', + method: 'post', + params: data, + }); +} + +/** + * 寰俊妯℃澘娑堟伅 鍒楄〃 + * @param pram + */ +export function wechatTemplateListApi(params) { + return request({ + url: `/admin/wechat/template/list`, + method: 'get', + params, + }); +} + +/** + * 寰俊妯℃澘娑堟伅 鏂板 + * @param pram + */ +export function wechatTemplateSaveApi(data) { + return request({ + url: `/admin/wechat/template/save`, + method: 'post', + data, + }); +} + +/** + * 寰俊妯℃澘娑堟伅 缂栬緫 + * @param pram + */ +export function wechatTemplateUpdateApi(id, data) { + return request({ + url: `/admin/wechat/template/update/${id}`, + method: 'post', + data, + }); +} + +/** + * 寰俊妯℃澘娑堟伅 璇︽儏 + * @param pram + */ +export function wechatTemplateInfoApi(id) { + return request({ + url: `/admin/wechat/template/info/${id}`, + method: 'get', + }); +} + +/** + * 寰俊妯℃澘娑堟伅 淇敼鐘舵�� + * @param pram + */ +export function wechatTemplateStatusApi(id, params) { + return request({ + url: `/admin/wechat/template/update/status/${id}`, + method: 'post', + params, + }); +} + +/** + * 寰俊妯℃澘娑堟伅 鍒犻櫎 + * @param pram + */ +export function wechatTemplateDeleteApi(id) { + return request({ + url: `/admin/wechat/template/delete/${id}`, + method: 'get', + }); +} + +/** + * 鍏抽敭瀛楀洖澶� 鍒楄〃 + * @param pram + */ +export function wechatReplyListApi(params) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/list`, + method: 'get', + params, + }); +} + +/** + * 鍏抽敭瀛楀洖澶� 鏂板 + * @param pram + */ +export function wechatReplySaveApi(data) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/save`, + method: 'post', + data, + }); +} + +/** + * 鍏抽敭瀛楀洖澶� 淇敼鐘舵�� + * @param pram + */ +export function wechatReplyStatusApi(id) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/status/${id}`, + method: 'post', + }); +} +/** + * 鍏抽敭瀛楀洖澶� 缂栬緫 + * @param pram + */ +export function wechatReplyUpdateApi(data) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/update`, + method: 'post', + data, + }); +} + +/** + * 鍏抽敭瀛楀洖澶� 璇︽儏 + * @param pram + */ +export function wechatReplyInfoApi(id) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/info/${id}`, + method: 'get', + }); +} + +/** + * 鍏抽敭瀛楀洖澶� 鍒犻櫎 + * @param pram + */ +export function wechatReplyDeleteApi(id) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/delete/${id}`, + method: 'get', + }); +} + +/** + * 鏍规嵁鍏抽敭瀛楁煡璇㈠井淇″叧閿瓧鍥炲 + * @param pram + */ +export function keywordsInfoApi(params) { + return request({ + url: `/admin/platform/wechat/public/keywords/reply/info/keywords`, + method: 'get', + params, + }); +} + +/** + * 寰俊鑿滃崟 鑾峰彇鏁版嵁 + * @param pram + */ +export function wechatMenuApi() { + return request({ + url: `/admin/platform/wechat/public/customize/menu`, + method: 'get', + }); +} + +/** + * 寰俊鑿滃崟 鏂板 + * @param pram + */ +export function wechatMenuAddApi(data) { + return request({ + url: `/admin/platform/wechat/public/customize/menu/create`, + method: 'post', + data, + }); +} + +/** + * 灏忕▼搴� 鍏叡妯℃澘鍒楄〃 + */ +export function publicTempListApi(params) { + return request({ + url: `/admin/wechat/program/public/temp/list`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 妯$増鎵�灞炵被鐩� + */ +export function categoryApi() { + return request({ + url: `/admin/wechat/program/category`, + method: 'get', + }); +} + +/** + * 灏忕▼搴� 閫氳繃寰俊妯℃澘tid鑾峰彇鍏抽敭瀛楀垪琛� + */ +export function getWeChatKeywordsByTidApi(params) { + return request({ + url: `/admin/wechat/program/getWeChatKeywordsByTid`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 妯℃澘璇︽儏锛屼富瑕佹槸鑾峰彇宸︿晶鏍囬 + */ +export function publicTempInfoApi(params) { + return request({ + url: `/admin/wechat/program/public/temp/info`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 鎴戠殑妯℃澘鍒楄〃 + */ +export function myTempListApi(params) { + return request({ + url: `/admin/wechat/program/my/temp/list`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 鎴戠殑妯℃澘璇︽儏 + */ +export function myTempInfoApi(params) { + return request({ + url: `/admin/wechat/program/my/temp/info`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 妯℃澘鏂板 + */ +export function myTempSaveApi(data) { + return request({ + url: `/admin/wechat/program/my/temp/save`, + method: 'post', + data, + }); +} + +/** + * 灏忕▼搴� 妯℃澘淇敼 + */ +export function myTempUpdateApi(params, data) { + return request({ + url: `/admin/wechat/program/my/temp/update`, + method: 'post', + params, + data, + }); +} + +/** + * 灏忕▼搴� 鎴戠殑妯℃澘淇敼鐘舵�� + */ +export function myTempStatusApi(params) { + return request({ + url: `/admin/wechat/program/my/temp/update/status`, + method: 'get', + params, + }); +} + +/** + * 灏忕▼搴� 鎴戠殑妯℃澘淇敼搴旂敤鍦烘櫙 + */ +export function myTempTypeApi(params) { + return request({ + url: `/admin/wechat/program/my/temp/update/type`, + method: 'get', + params, + }); +} + +/** + * 鑾峰彇寰俊sdk閰嶇疆 + * @returns {*} + */ +export function getWechatConfig() { + return request({ + url: `/admin/platform/wechat/get/public/js/config`, + method: 'get', + params: { url: encodeURIComponent(location.href.split('#')[0]) }, // for Test + }); +} + +/** + * 寰俊鎺堟潈鐧诲綍 + * @returns {*} + */ +export function wechatAuth(code) { + return request({ + url: `/admin/authorize/login`, + method: 'get', + params: { code }, + }); +} + +/** + * 涓庡井淇¤В缁戣处鍙� + */ +export function unbindApi() { + return request({ + url: `/admin/unbind`, + method: 'get', + }); +} + +/** + * 涓�閿悓姝ユ垜鐨勬ā鏉垮埌灏忕▼搴� + */ +export function tempAsyncApi() { + return request({ + url: `/admin/platform/wechat/program/my/temp/async`, + method: 'get', + }); +} + +/** + * 鍏紬鍙锋ā鏉挎秷鎭悓姝� + */ +export function wechatAsyncApi() { + return request({ + url: `/admin/platform/wechat/template/whcbqhn/sync`, + method: 'post', + }); +} + +/** + * 灏忕▼搴忔ā鏉挎秷鎭悓姝� + */ +export function routineAsyncApi() { + return request({ + url: `/admin/platform/wechat/template/routine/sync`, + method: 'post', + }); +} + +/** + * 灏忕▼搴忔簮鐮佷笅杞� + */ +export function wechatCodeDownload() { + return request({ + url: `/admin/platform/wechat/code/download`, + method: 'get', + }); +} diff --git a/project-web/src/api/user.js b/project-web/src/api/user.js new file mode 100644 index 0000000..31a05f7 --- /dev/null +++ b/project-web/src/api/user.js @@ -0,0 +1,160 @@ +import request from '@/utils/request'; + + +// 鐧诲綍鏂规硶锛岄�氱敤鏂规硶銆� Mike锛�2023-05-12 +export function login(username, password, code, uuid, loginType, verifyType) { + const data = { + username, + password, + code, + uuid, + loginType, + verifyType + }; + return request({ + url: '/login', + method: 'post', + data: data + }) +} + +export function getInfo(token) { + return request({ + url: '/getInfo', + method: 'get', + params: { token }, + }); +} +// 淇敼瀵嗙爜 +export function getChangePass(data) { + return request({ + url: '/system/user/profile/force_change_pass', + method: 'post', + params:{...data} + }); +} + +// 閫�鍑烘柟娉� +export function logout() { + return request({ + url: '/logout', + method: 'post' + }) +} + +// 鑾峰彇楠岃瘉鐮� +export function getCodeImg() { + return request({ + // url: '/captchaImage', + url: '/captcha/image', + headers: { + isToken: false + }, + method: 'get', + timeout: 20000 + }) +} +// 鑾峰彇娌℃湁楠岃瘉鐮佹儏鍐碉紝鏃跺厠鑻憋紝2023-03-14 +export function getCodeNone() { + return request({ + // url: '/captchaNone', + url: '/captcha/none', + headers: { + isToken: false + }, + method: 'get', + timeout: 20000 + }) +} + + +/** + * @description 鍒濆鍖栧瘑鐮� + */ +export function updPassWord(data) { + return request({ + url: `/pc/fin/sys/tenant/user/defaultPassword`, + method: 'post', + data, + }); +} + +/** + * @description 鏇存柊 + */ +export function upd(data) { + return request({ + url: `/pc/fin/sys/tenant/user/update`, + method: 'post', + data, + }); +} + +/** + * @description 鏇存柊鐘舵��/閫昏緫鍒犻櫎 + */ +export function updateStatus(data) { + return request({ + url: `/pc/fin/sys/tenant/user/updateStatus`, + method: 'post', + data, + }); +} + +/** + * @description 鑾峰彇鐢ㄦ埛 + */ +export function getUser(params) { + return request({ + url: `/pc/fin/sys/tenant/user/detail`, + method: 'get', + params, + }); +} + +// 鏂板 +export function add(data) { + return request({ + url: '/pc/fin/sys/tenant/user/add', + method: 'post', + data: data + }) +} + + +/** + * @description 鏇存柊瑙掕壊鏉冮檺 + */ +export function updRole(data) { + return request({ + url: `/pc/fin/sys/tenant/user/updRole`, + method: 'post', + data, + }); +} + +// 鏌ヨ鐢ㄦ埛淇℃伅 +export function getCurInfo(data) { + return request({ + url: '/pc/fin/sys/tenant/user/getCurInfo', + method: 'get', + data: data + }) +} +// 淇敼鐢ㄦ埛淇℃伅 +export function updatePerson(data) { + return request({ + url: '/pc/fin/sys/tenant/user/updatePerson', + method: 'post', + data: data + }) +} +// 淇敼鐢ㄦ埛鐧诲綍瀵嗙爜 +export function updatePassword(data) { + return request({ + url: '/pc/fin/sys/tenant/user/updatePassword', + method: 'post', + data: data + }) +} + diff --git a/project-web/src/assets/401_images/401.gif b/project-web/src/assets/401_images/401.gif new file mode 100644 index 0000000..cd6e0d9 --- /dev/null +++ b/project-web/src/assets/401_images/401.gif Binary files differ diff --git a/project-web/src/assets/404_images/404.png b/project-web/src/assets/404_images/404.png new file mode 100644 index 0000000..3d8e230 --- /dev/null +++ b/project-web/src/assets/404_images/404.png Binary files differ diff --git a/project-web/src/assets/404_images/404_cloud.png b/project-web/src/assets/404_images/404_cloud.png new file mode 100644 index 0000000..c6281d0 --- /dev/null +++ b/project-web/src/assets/404_images/404_cloud.png Binary files differ diff --git a/project-web/src/assets/custom-theme/fonts/element-icons.ttf b/project-web/src/assets/custom-theme/fonts/element-icons.ttf new file mode 100644 index 0000000..570a3e1 --- /dev/null +++ b/project-web/src/assets/custom-theme/fonts/element-icons.ttf Binary files differ diff --git a/project-web/src/assets/custom-theme/fonts/element-icons.woff b/project-web/src/assets/custom-theme/fonts/element-icons.woff new file mode 100644 index 0000000..c2bcc00 --- /dev/null +++ b/project-web/src/assets/custom-theme/fonts/element-icons.woff Binary files differ diff --git a/project-web/src/assets/custom-theme/index.css b/project-web/src/assets/custom-theme/index.css new file mode 100644 index 0000000..28e377e --- /dev/null +++ b/project-web/src/assets/custom-theme/index.css @@ -0,0 +1,23148 @@ +@charset "UTF-8"; +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} + +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} + +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} + +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} + +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} + +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; +} + +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; +} + +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} + +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} + +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +@font-face { + font-family: element-icons; + src: url(fonts/element-icons.woff?t=1508751886602) format('woff'), + url(fonts/element-icons.ttf?t=1508751886602) format('truetype'); + font-weight: 400; + font-style: normal; +} + +.custom-theme [class*=' el-icon-'], +.custom-theme [class^='el-icon-'] { + font-family: element-icons !important; + speak: none; + font-style: normal; + font-weight: 400; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: baseline; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.custom-theme .el-icon-upload:before { + content: '\e60d'; +} + +.custom-theme .el-icon-error:before { + content: '\e62c'; +} + +.custom-theme .el-icon-success:before { + content: '\e62d'; +} + +.custom-theme .el-icon-warning:before { + content: '\e62e'; +} + +.custom-theme .el-icon-sort-down:before { + content: '\e630'; +} + +.custom-theme .el-icon-sort-up:before { + content: '\e631'; +} + +.custom-theme .el-icon-arrow-left:before { + content: '\e600'; +} + +.custom-theme .el-icon-circle-plus:before { + content: '\e601'; +} + +.custom-theme .el-icon-circle-plus-outline:before { + content: '\e602'; +} + +.custom-theme .el-icon-arrow-down:before { + content: '\e603'; +} + +.custom-theme .el-icon-arrow-right:before { + content: '\e604'; +} + +.custom-theme .el-icon-arrow-up:before { + content: '\e605'; +} + +.custom-theme .el-icon-back:before { + content: '\e606'; +} + +.custom-theme .el-icon-circle-close:before { + content: '\e607'; +} + +.custom-theme .el-icon-date:before { + content: '\e608'; +} + +.custom-theme .el-icon-circle-close-outline:before { + content: '\e609'; +} + +.custom-theme .el-icon-caret-left:before { + content: '\e60a'; +} + +.custom-theme .el-icon-caret-bottom:before { + content: '\e60b'; +} + +.custom-theme .el-icon-caret-top:before { + content: '\e60c'; +} + +.custom-theme .el-icon-caret-right:before { + content: '\e60e'; +} + +.custom-theme .el-icon-close:before { + content: '\e60f'; +} + +.custom-theme .el-icon-d-arrow-left:before { + content: '\e610'; +} + +.custom-theme .el-icon-check:before { + content: '\e611'; +} + +.custom-theme .el-icon-delete:before { + content: '\e612'; +} + +.custom-theme .el-icon-d-arrow-right:before { + content: '\e613'; +} + +.custom-theme .el-icon-document:before { + content: '\e614'; +} + +.custom-theme .el-icon-d-caret:before { + content: '\e615'; +} + +.custom-theme .el-icon-edit-outline:before { + content: '\e616'; +} + +.custom-theme .el-icon-download:before { + content: '\e617'; +} + +.custom-theme .el-icon-goods:before { + content: '\e618'; +} + +.custom-theme .el-icon-search:before { + content: '\e619'; +} + +.custom-theme .el-icon-info:before { + content: '\e61a'; +} + +.custom-theme .el-icon-message:before { + content: '\e61b'; +} + +.custom-theme .el-icon-edit:before { + content: '\e61c'; +} + +.custom-theme .el-icon-location:before { + content: '\e61d'; +} + +.custom-theme .el-icon-loading:before { + content: '\e61e'; +} + +.custom-theme .el-icon-location-outline:before { + content: '\e61f'; +} + +.custom-theme .el-icon-menu:before { + content: '\e620'; +} + +.custom-theme .el-icon-minus:before { + content: '\e621'; +} + +.custom-theme .el-icon-bell:before { + content: '\e622'; +} + +.custom-theme .el-icon-mobile-phone:before { + content: '\e624'; +} + +.custom-theme .el-icon-news:before { + content: '\e625'; +} + +.custom-theme .el-icon-more:before { + content: '\e646'; +} + +.custom-theme .el-icon-more-outline:before { + content: '\e626'; +} + +.custom-theme .el-icon-phone:before { + content: '\e627'; +} + +.custom-theme .el-icon-phone-outline:before { + content: '\e628'; +} + +.custom-theme .el-icon-picture:before { + content: '\e629'; +} + +.custom-theme .el-icon-picture-outline:before { + content: '\e62a'; +} + +.custom-theme .el-icon-plus:before { + content: '\e62b'; +} + +.custom-theme .el-icon-printer:before { + content: '\e62f'; +} + +.custom-theme .el-icon-rank:before { + content: '\e632'; +} + +.custom-theme .el-icon-refresh:before { + content: '\e633'; +} + +.custom-theme .el-icon-question:before { + content: '\e634'; +} + +.custom-theme .el-icon-remove:before { + content: '\e635'; +} + +.custom-theme .el-icon-share:before { + content: '\e636'; +} + +.custom-theme .el-icon-star-on:before { + content: '\e637'; +} + +.custom-theme .el-icon-setting:before { + content: '\e638'; +} + +.custom-theme .el-icon-circle-check:before { + content: '\e639'; +} + +.custom-theme .el-icon-service:before { + content: '\e63a'; +} + +.custom-theme .el-icon-sold-out:before { + content: '\e63b'; +} + +.custom-theme .el-icon-remove-outline:before { + content: '\e63c'; +} + +.custom-theme .el-icon-star-off:before { + content: '\e63d'; +} + +.custom-theme .el-icon-circle-check-outline:before { + content: '\e63e'; +} + +.custom-theme .el-icon-tickets:before { + content: '\e63f'; +} + +.custom-theme .el-icon-sort:before { + content: '\e640'; +} + +.custom-theme .el-icon-zoom-in:before { + content: '\e641'; +} + +.custom-theme .el-icon-time:before { + content: '\e642'; +} + +.custom-theme .el-icon-view:before { + content: '\e643'; +} + +.custom-theme .el-icon-upload2:before { + content: '\e644'; +} + +.custom-theme .el-icon-zoom-out:before { + content: '\e645'; +} + +.custom-theme .el-icon-loading { + -webkit-animation: rotating 2s linear infinite; + animation: rotating 2s linear infinite; +} + +.custom-theme .el-icon--right { + margin-left: 5px; +} + +.custom-theme .el-icon--left { + margin-right: 5px; +} + +@-webkit-keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} + +@keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-select-dropdown { + position: absolute; + z-index: 1001; + border: solid 1px #dfe4ed; + border-radius: 4px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 5px 0; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected { + color: #262729; + background-color: #fff; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover { + background-color: #f5f7fa; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after { + position: absolute; + right: 20px; + font-family: element-icons; + content: '\E611'; + font-size: 12px; + font-weight: 700; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list { + padding: 0; +} + +.custom-theme .el-select-dropdown .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow { + -webkit-transform: translateX(-200%); + transform: translateX(-200%); +} + +.custom-theme .el-select-dropdown__empty { + padding: 10px 0; + margin: 0; + text-align: center; + color: #999; + font-size: 14px; +} + +.custom-theme .el-select-dropdown__wrap { + max-height: 274px; +} + +.custom-theme .el-select-dropdown__list { + list-style: none; + padding: 6px 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} + +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} + +.custom-theme .el-tag .el-icon-close::before { + display: block; +} + +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} + +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} + +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} + +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} + +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} + +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} + +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} + +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} + +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} + +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} + +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} + +.custom-theme .el-select-dropdown__item { + font-size: 14px; + padding: 0 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 34px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.custom-theme .el-select-dropdown__item.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-select-dropdown__item.is-disabled:hover { + background-color: #fff; +} + +.custom-theme .el-select-dropdown__item.hover, +.custom-theme .el-select-dropdown__item:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-select-dropdown__item.selected { + color: #262729; + font-weight: 700; +} + +.custom-theme .el-select-dropdown__item span { + line-height: 34px !important; +} + +.custom-theme .el-select-group { + margin: 0; + padding: 0; +} + +.custom-theme .el-select-group__wrap { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +.custom-theme .el-select-group__wrap:not(:last-of-type) { + padding-bottom: 24px; +} + +.custom-theme .el-select-group__wrap:not(:last-of-type)::after { + content: ''; + position: absolute; + display: block; + left: 20px; + right: 20px; + bottom: 12px; + height: 1px; + background: #dfe4ed; +} + +.custom-theme .el-select-group__title { + padding-left: 20px; + font-size: 12px; + color: #0a76a4; + line-height: 30px; +} + +.custom-theme .el-select-group .el-select-dropdown__item { + padding-left: 20px; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-select { + display: inline-block; + position: relative; +} + +.custom-theme .el-select:hover .el-input__inner { + border-color: #b4bccc; +} + +.custom-theme .el-select .el-input__inner { + cursor: pointer; + padding-right: 35px; +} + +.custom-theme .el-select .el-input__inner:focus { + border-color: #262729; +} + +.custom-theme .el-select .el-input .el-select__caret { + color: #b4bccc; + font-size: 14px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + line-height: 16px; + cursor: pointer; +} + +.custom-theme .el-select .el-input .el-select__caret.is-reverse { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); +} + +.custom-theme .el-select .el-input .el-select__caret.is-show-close { + font-size: 14px; + text-align: center; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + border-radius: 100%; + color: #b4bccc; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover { + color: #878d99; +} + +.custom-theme .el-select .el-input.is-disabled .el-input__inner { + cursor: not-allowed; +} + +.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover { + border-color: #dfe4ed; +} + +.custom-theme .el-select > .el-input { + display: block; +} + +.custom-theme .el-select__input { + border: none; + outline: 0; + padding: 0; + margin-left: 15px; + color: #666; + font-size: 14px; + vertical-align: baseline; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 28px; + background-color: transparent; +} + +.custom-theme .el-select__input.is-mini { + height: 14px; +} + +.custom-theme .el-select__close { + cursor: pointer; + position: absolute; + top: 8px; + z-index: 1000; + right: 25px; + color: #b4bccc; + line-height: 18px; + font-size: 14px; +} + +.custom-theme .el-select__close:hover { + color: #878d99; +} + +.custom-theme .el-select__tags { + position: absolute; + line-height: normal; + white-space: normal; + z-index: 1; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.custom-theme .el-select .el-tag__close { + margin-top: -2px; +} + +.custom-theme .el-select .el-tag { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-color: transparent; + margin: 3px 0 3px 6px; + background-color: #f0f2f5; +} + +.custom-theme .el-select .el-tag__close.el-icon-close { + background-color: #b4bccc; + right: -7px; + color: #fff; +} + +.custom-theme .el-select .el-tag__close.el-icon-close:hover { + background-color: #878d99; +} + +.custom-theme .el-select .el-tag__close.el-icon-close::before { + display: block; + -webkit-transform: translate(0, 0.5px); + transform: translate(0, 0.5px); +} + +.custom-theme .el-select__tag { + display: inline-block; + height: 24px; + line-height: 24px; + font-size: 14px; + border-radius: 4px; + color: #fff; + background-color: #262729; +} + +.custom-theme .el-select__tag .el-icon-close { + font-size: 14px; +} + +.custom-theme .el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #2d2f33; + font-weight: 700; +} + +.custom-theme .el-pagination::after, +.custom-theme .el-pagination::before { + display: table; + content: ''; +} + +.custom-theme .el-pagination::after { + clear: both; +} + +.custom-theme .el-pagination button, +.custom-theme .el-pagination span:not([class*='suffix']) { + display: inline-block; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + vertical-align: top; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-pagination .el-input__inner { + text-align: center; +} + +.custom-theme .el-pagination .el-input__suffix { + right: 0; + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-pagination .el-select .el-input { + width: 100px; + margin: 0 5px; +} + +.custom-theme .el-pagination .el-select .el-input .el-input__inner { + padding-right: 25px; + border-radius: 3px; + height: 28px; +} + +.custom-theme .el-pagination button { + border: none; + padding: 0 6px; + background: 0 0; +} + +.custom-theme .el-pagination button:focus { + outline: 0; +} + +.custom-theme .el-pagination button:hover { + color: #262729; +} + +.custom-theme .el-pagination button.disabled { + color: #b4bccc; + background-color: #fff; + cursor: not-allowed; +} + +.custom-theme .el-pagination .btn-next, +.custom-theme .el-pagination .btn-prev { + background: center center no-repeat; + background-size: 16px; + background-color: #fff; + cursor: pointer; + margin: 0; + color: #2d2f33; +} + +.custom-theme .el-pagination .btn-next .el-icon, +.custom-theme .el-pagination .btn-prev .el-icon { + display: block; + font-size: 12px; +} + +.custom-theme .el-pagination .btn-prev { + padding-right: 12px; +} + +.custom-theme .el-pagination .btn-next { + padding-left: 12px; +} + +.custom-theme .el-pagination--small .btn-next, +.custom-theme .el-pagination--small .btn-prev, +.custom-theme .el-pagination--small .el-pager li, +.custom-theme .el-pagination--small .el-pager li:last-child { + border-color: transparent; + font-size: 12px; + line-height: 22px; + height: 22px; + min-width: 22px; +} + +.custom-theme .el-pagination--small .arrow.disabled { + visibility: hidden; +} + +.custom-theme .el-pagination__sizes { + margin: 0 10px 0 0; + font-weight: 400; + color: #5a5e66; +} + +.custom-theme .el-pagination__sizes .el-input .el-input__inner { + font-size: 13px; + padding-left: 8px; +} + +.custom-theme .el-pagination__sizes .el-input .el-input__inner:hover { + border-color: #262729; +} + +.custom-theme .el-pagination__total { + margin-right: 10px; + font-weight: 400; + color: #5a5e66; +} + +.custom-theme .el-pagination__jump { + margin-left: 24px; + font-weight: 400; + color: #5a5e66; +} + +.custom-theme .el-pagination__jump .el-input__inner { + padding: 0 3px; +} + +.custom-theme .el-pagination__rightwrapper { + float: right; +} + +.custom-theme .el-pagination__editor { + line-height: 18px; + padding: 0 2px; + height: 28px; + text-align: center; + margin: 0 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 3px; + -moz-appearance: textfield; +} + +.custom-theme .el-pagination__editor.el-input { + width: 50px; +} + +.custom-theme .el-pagination__editor.el-input .el-input__inner { + height: 28px; +} + +.custom-theme .el-pagination__editor .el-input__inner::-webkit-inner-spin-button, +.custom-theme .el-pagination__editor .el-input__inner::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.custom-theme .el-pager { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + list-style: none; + display: inline-block; + vertical-align: top; + font-size: 0; + padding: 0; + margin: 0; +} + +.custom-theme .el-pager .el-icon-more::before { + vertical-align: -4px; +} + +.custom-theme .el-pager li { + padding: 0 4px; + background: #fff; + vertical-align: top; + display: inline-block; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + margin: 0; +} + +.custom-theme .el-pager li.btn-quicknext, +.custom-theme .el-pager li.btn-quickprev { + line-height: 28px; + color: #2d2f33; +} + +.custom-theme .el-pager li.btn-quickprev:hover { + cursor: pointer; +} + +.custom-theme .el-pager li.btn-quicknext:hover { + cursor: pointer; +} + +.custom-theme .el-pager li.active + li { + border-left: 0; +} + +.custom-theme .el-pager li:hover { + color: #262729; +} + +.custom-theme .el-pager li.active { + color: #262729; + cursor: default; +} + +.custom-theme .v-modal-enter { + -webkit-animation: v-modal-in 0.2s ease; + animation: v-modal-in 0.2s ease; +} + +.custom-theme .v-modal-leave { + -webkit-animation: v-modal-out 0.2s ease forwards; + animation: v-modal-out 0.2s ease forwards; +} + +@-webkit-keyframes v-modal-in { + 0% { + opacity: 0; + } +} + +@keyframes v-modal-in { + 0% { + opacity: 0; + } +} + +@-webkit-keyframes v-modal-out { + 100% { + opacity: 0; + } +} + +@keyframes v-modal-out { + 100% { + opacity: 0; + } +} + +.custom-theme .v-modal { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.5; + background: #000; +} + +.custom-theme .el-dialog { + position: relative; + margin: 0 auto 50px; + background: #fff; + border-radius: 2px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 50%; +} + +.custom-theme .el-dialog.is-fullscreen { + width: 100%; + margin-top: 0; + margin-bottom: 0; + height: 100%; + overflow: auto; +} + +.custom-theme .el-dialog__wrapper { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: auto; + margin: 0; +} + +.custom-theme .el-dialog__header { + padding: 15px; + padding-bottom: 10px; +} + +.custom-theme .el-dialog__headerbtn { + position: absolute; + top: 15px; + right: 15px; + padding: 0; + background: 0 0; + border: none; + outline: 0; + cursor: pointer; + font-size: 16px; +} + +.custom-theme .el-dialog__headerbtn .el-dialog__close { + color: #0a76a4; +} + +.custom-theme .el-dialog__headerbtn:focus .el-dialog__close, +.custom-theme .el-dialog__headerbtn:hover .el-dialog__close { + color: #262729; +} + +.custom-theme .el-dialog__title { + line-height: 24px; + font-size: 18px; + color: #2d2f33; +} + +.custom-theme .el-dialog__body { + padding: 30px 20px; + color: #5a5e66; + line-height: 24px; + font-size: 14px; +} + +.custom-theme .el-dialog__footer { + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-dialog--center { + text-align: center; +} + +.custom-theme .el-dialog--center .el-dialog__header { + padding-top: 30px; +} + +.custom-theme .el-dialog--center .el-dialog__body { + text-align: initial; + padding: 25px 27px 30px; +} + +.custom-theme .el-dialog--center .el-dialog__footer { + text-align: inherit; + padding-bottom: 30px; +} + +.custom-theme .dialog-fade-enter-active { + -webkit-animation: dialog-fade-in 0.3s; + animation: dialog-fade-in 0.3s; +} + +.custom-theme .dialog-fade-leave-active { + -webkit-animation: dialog-fade-out 0.3s; + animation: dialog-fade-out 0.3s; +} + +@-webkit-keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@-webkit-keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} + +@keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-autocomplete { + position: relative; + display: inline-block; +} + +.custom-theme .el-autocomplete-suggestion { + margin: 5px 0; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; +} + +.custom-theme .el-autocomplete-suggestion.el-popper .popper__arrow { + left: 24px !important; +} + +.custom-theme .el-autocomplete-suggestion__wrap { + max-height: 280px; + padding: 10px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: auto; + background-color: #fff; + border: 1px solid #dfe4ed; + border-radius: 4px; +} + +.custom-theme .el-autocomplete-suggestion__list { + margin: 0; + padding: 0; +} + +.custom-theme .el-autocomplete-suggestion li { + padding: 0 20px; + margin: 0; + line-height: 34px; + cursor: pointer; + color: #5a5e66; + font-size: 14px; + list-style: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.custom-theme .el-autocomplete-suggestion li:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-autocomplete-suggestion li.highlighted { + background-color: #f5f7fa; +} + +.custom-theme .el-autocomplete-suggestion li.divider { + margin-top: 6px; + border-top: 1px solid #000; +} + +.custom-theme .el-autocomplete-suggestion li.divider:last-child { + margin-bottom: -6px; +} + +.custom-theme .el-autocomplete-suggestion.is-loading li { + text-align: center; + height: 100px; + line-height: 100px; + font-size: 20px; + color: #999; +} + +.custom-theme .el-autocomplete-suggestion.is-loading li::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-autocomplete-suggestion.is-loading li:hover { + background-color: #fff; +} + +.custom-theme .el-autocomplete-suggestion.is-loading .el-icon-loading { + vertical-align: middle; +} + +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button + .el-button { + margin-left: 10px; +} + +.custom-theme .el-button.is-round { + padding: 12px 20px; +} + +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} + +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} + +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} + +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} + +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} + +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} + +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} + +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} + +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} + +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} + +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} + +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} + +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} + +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} + +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} + +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} + +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} + +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} + +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} + +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} + +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} + +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} + +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} + +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} + +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} + +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} + +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} + +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} + +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} + +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} + +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} + +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} + +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} + +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} + +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} + +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} + +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} + +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} + +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} + +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} + +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} + +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} + +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} + +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} + +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} + +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} + +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} + +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} + +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} + +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} + +.custom-theme .el-button-group::after { + clear: both; +} + +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} + +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} + +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} + +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} + +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} + +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-dropdown { + display: inline-block; + position: relative; + color: #5a5e66; + font-size: 14px; +} + +.custom-theme .el-dropdown .el-button-group { + display: block; +} + +.custom-theme .el-dropdown .el-button-group .el-button { + float: none; +} + +.custom-theme .el-dropdown .el-dropdown__caret-button { + padding-left: 5px; + padding-right: 5px; + position: relative; + border-left: none; +} + +.custom-theme .el-dropdown .el-dropdown__caret-button::before { + content: ''; + position: absolute; + display: block; + width: 1px; + top: 5px; + bottom: 5px; + left: 0; + background: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-dropdown .el-dropdown__caret-button:hover::before { + top: 0; + bottom: 0; +} + +.custom-theme .el-dropdown .el-dropdown__caret-button .el-dropdown__icon { + padding-left: 0; +} + +.custom-theme .el-dropdown__icon { + font-size: 12px; + margin: 0 3px; +} + +.custom-theme .el-dropdown-menu { + position: absolute; + top: 0; + left: 0; + z-index: 10; + padding: 10px 0; + margin: 5px 0; + background-color: #fff; + border: 1px solid #e6ebf5; + border-radius: 4px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} + +.custom-theme .el-dropdown-menu__item { + list-style: none; + line-height: 36px; + padding: 0 20px; + margin: 0; + font-size: 14px; + color: #5a5e66; + cursor: pointer; +} + +.custom-theme .el-dropdown-menu__item:not(.is-disabled):hover { + background-color: #e9e9ea; + color: #515254; +} + +.custom-theme .el-dropdown-menu__item--divided { + position: relative; + margin-top: 6px; + border-top: 1px solid #e6ebf5; +} + +.custom-theme .el-dropdown-menu__item--divided:before { + content: ''; + height: 6px; + display: block; + margin: 0 -20px; + background-color: #fff; +} + +.custom-theme .el-dropdown-menu__item.is-disabled { + cursor: default; + color: #bbb; + pointer-events: none; +} + +.custom-theme .el-dropdown-menu--medium { + padding: 6px 0; +} + +.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item { + line-height: 30px; + padding: 0 17px; + font-size: 14px; +} + +.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 6px; +} + +.custom-theme .el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 6px; + margin: 0 -17px; +} + +.custom-theme .el-dropdown-menu--small { + padding: 6px 0; +} + +.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item { + line-height: 27px; + padding: 0 15px; + font-size: 13px; +} + +.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 4px; +} + +.custom-theme .el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 4px; + margin: 0 -15px; +} + +.custom-theme .el-dropdown-menu--mini { + padding: 3px 0; +} + +.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item { + line-height: 24px; + padding: 0 10px; + font-size: 12px; +} + +.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 3px; +} + +.custom-theme .el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 3px; + margin: 0 -10px; +} + +.custom-theme .el-menu { + border-right: solid 1px #e6e6e6; + list-style: none; + position: relative; + margin: 0; + padding-left: 0; + background-color: #fff; +} + +.custom-theme .el-menu::after, +.custom-theme .el-menu::before { + display: table; + content: ''; +} + +.custom-theme .el-menu::after { + clear: both; +} + +.custom-theme .el-menu li { + list-style: none; +} + +.custom-theme .el-menu--horizontal { + border-right: none; + border-bottom: solid 1px #e6e6e6; +} + +.custom-theme .el-menu--horizontal .el-menu-item { + float: left; + height: 60px; + line-height: 60px; + margin: 0; + cursor: pointer; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-bottom: 2px solid transparent; + color: #878d99; +} + +.custom-theme .el-menu--horizontal .el-menu-item a, +.custom-theme .el-menu--horizontal .el-menu-item a:hover { + color: inherit; +} + +.custom-theme .el-menu--horizontal .el-menu-item:focus, +.custom-theme .el-menu--horizontal .el-menu-item:hover { + background-color: #fff; +} + +.custom-theme .el-menu--horizontal .el-submenu { + float: left; + position: relative; +} + +.custom-theme .el-menu--horizontal .el-submenu:focus { + outline: 0; +} + +.custom-theme .el-menu--horizontal .el-submenu:focus > .el-submenu__title { + color: #2d2f33; +} + +.custom-theme .el-menu--horizontal .el-submenu > .el-menu { + position: absolute; + top: 65px; + left: 0; + border: none; + padding: 5px 0; + background-color: #fff; + z-index: 100; + min-width: 100%; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; +} + +.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title { + height: 60px; + line-height: 60px; + border-bottom: 2px solid transparent; + color: #878d99; +} + +.custom-theme .el-menu--horizontal .el-submenu .el-submenu__title:hover { + background-color: #fff; +} + +.custom-theme .el-menu--horizontal .el-submenu .el-menu-item { + background-color: #fff; + float: none; + height: 36px; + line-height: 36px; + padding: 0 10px; +} + +.custom-theme .el-menu--horizontal .el-submenu .el-submenu__icon-arrow { + position: static; + vertical-align: middle; + margin-left: 8px; + margin-top: -3px; +} + +.custom-theme .el-menu--horizontal .el-menu-item:focus, +.custom-theme .el-menu--horizontal .el-menu-item:hover, +.custom-theme .el-menu--horizontal .el-submenu__title:hover { + outline: 0; + color: #2d2f33; +} + +.custom-theme .el-menu--horizontal > .el-menu-item.is-active, +.custom-theme .el-menu--horizontal > .el-submenu.is-active .el-submenu__title { + border-bottom: 2px solid #262729; + color: #2d2f33; +} + +.custom-theme .el-menu--collapse { + width: 64px; +} + +.custom-theme .el-menu--collapse > .el-menu-item [class^='el-icon-'], +.custom-theme .el-menu--collapse > .el-submenu > .el-submenu__title [class^='el-icon-'] { + margin: 0; + vertical-align: middle; + width: 24px; + text-align: center; +} + +.custom-theme .el-menu--collapse > .el-menu-item .el-submenu__icon-arrow, +.custom-theme .el-menu--collapse > .el-submenu > .el-submenu__title .el-submenu__icon-arrow { + display: none; +} + +.custom-theme .el-menu--collapse > .el-menu-item span, +.custom-theme .el-menu--collapse > .el-submenu > .el-submenu__title span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; +} + +.custom-theme .el-menu--collapse > .el-menu-item.is-active i { + color: inherit; +} + +.custom-theme .el-menu--collapse .el-menu .el-submenu { + min-width: 200px; +} + +.custom-theme .el-menu--collapse .el-submenu { + position: relative; +} + +.custom-theme .el-menu--collapse .el-submenu .el-menu { + position: absolute; + margin-left: 5px; + top: 0; + left: 100%; + z-index: 10; + border: 1px solid #dfe4ed; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} + +.custom-theme .el-menu--collapse .el-submenu.is-opened > .el-submenu__title .el-submenu__icon-arrow { + -webkit-transform: none; + transform: none; +} + +.custom-theme .el-menu-item { + height: 56px; + line-height: 56px; + font-size: 14px; + color: #2d2f33; + padding: 0 20px; + cursor: pointer; + position: relative; + -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s; + transition: border-color 0.3s, background-color 0.3s, color 0.3s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; +} + +.custom-theme .el-menu-item [class^='el-icon-'] { + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} + +.custom-theme .el-menu-item * { + vertical-align: middle; +} + +.custom-theme .el-menu-item:first-child { + margin-left: 0; +} + +.custom-theme .el-menu-item:last-child { + margin-right: 0; +} + +.custom-theme .el-menu-item:focus, +.custom-theme .el-menu-item:hover { + outline: 0; + background-color: #e9e9ea; +} + +.custom-theme .el-menu-item i { + color: #878d99; +} + +.custom-theme .el-menu-item.is-active { + color: #262729; +} + +.custom-theme .el-menu-item.is-active i { + color: inherit; +} + +.custom-theme .el-submenu__title { + position: relative; + height: 56px; + line-height: 56px; + font-size: 14px; + color: #2d2f33; + padding: 0 20px; + cursor: pointer; + position: relative; + -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s; + transition: border-color 0.3s, background-color 0.3s, color 0.3s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; +} + +.custom-theme .el-submenu__title * { + vertical-align: middle; +} + +.custom-theme .el-submenu__title i { + color: #878d99; +} + +.custom-theme .el-submenu__title:hover { + background-color: #e9e9ea; +} + +.custom-theme .el-submenu .el-menu { + border: none; +} + +.custom-theme .el-submenu .el-menu-item { + height: 50px; + line-height: 50px; + padding: 0 45px; + min-width: 200px; +} + +.custom-theme .el-submenu__icon-arrow { + position: absolute; + top: 50%; + right: 20px; + margin-top: -7px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + font-size: 12px; +} + +.custom-theme .el-submenu.is-active .el-submenu__title { + border-bottom-color: #262729; +} + +.custom-theme .el-submenu.is-opened > .el-submenu__title .el-submenu__icon-arrow { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} + +.custom-theme .el-submenu [class^='el-icon-'] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} + +.custom-theme .el-menu-item-group > ul { + padding: 0; +} + +.custom-theme .el-menu-item-group__title { + padding: 7px 0 7px 20px; + line-height: normal; + font-size: 12px; + color: #878d99; +} + +.custom-theme .horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow { + -webkit-transition: 0.2s; + transition: 0.2s; + opacity: 0; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input-number { + position: relative; + display: inline-block; + width: 180px; + line-height: 38px; +} + +.custom-theme .el-input-number .el-input { + display: block; +} + +.custom-theme .el-input-number .el-input__inner { + -webkit-appearance: none; + padding-left: 50px; + padding-right: 50px; + text-align: center; +} + +.custom-theme .el-input-number__decrease, +.custom-theme .el-input-number__increase { + position: absolute; + z-index: 1; + top: 1px; + width: 40px; + height: auto; + text-align: center; + background: #f5f7fa; + color: #5a5e66; + cursor: pointer; + font-size: 13px; +} + +.custom-theme .el-input-number__decrease:hover, +.custom-theme .el-input-number__increase:hover { + color: #262729; +} + +.custom-theme .el-input-number__decrease:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled), +.custom-theme .el-input-number__increase:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled) { + border-color: #262729; +} + +.custom-theme .el-input-number__decrease.is-disabled, +.custom-theme .el-input-number__increase.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input-number__increase { + right: 1px; + border-radius: 0 4px 4px 0; + border-left: 1px solid #d8dce5; +} + +.custom-theme .el-input-number__decrease { + left: 1px; + border-radius: 4px 0 0 4px; + border-right: 1px solid #d8dce5; +} + +.custom-theme .el-input-number.is-disabled .el-input-number__decrease, +.custom-theme .el-input-number.is-disabled .el-input-number__increase { + border-color: #dfe4ed; + color: #dfe4ed; +} + +.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover, +.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover { + color: #dfe4ed; + cursor: not-allowed; +} + +.custom-theme .el-input-number--medium { + width: 200px; + line-height: 34px; +} + +.custom-theme .el-input-number--medium .el-input-number__decrease, +.custom-theme .el-input-number--medium .el-input-number__increase { + width: 36px; + font-size: 14px; +} + +.custom-theme .el-input-number--medium .el-input__inner { + padding-left: 43px; + padding-right: 43px; +} + +.custom-theme .el-input-number--small { + width: 130px; + line-height: 30px; +} + +.custom-theme .el-input-number--small .el-input-number__decrease, +.custom-theme .el-input-number--small .el-input-number__increase { + width: 32px; + font-size: 13px; +} + +.custom-theme .el-input-number--small .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number--small .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.9); + transform: scale(0.9); +} + +.custom-theme .el-input-number--small .el-input__inner { + padding-left: 39px; + padding-right: 39px; +} + +.custom-theme .el-input-number--mini { + width: 130px; + line-height: 26px; +} + +.custom-theme .el-input-number--mini .el-input-number__decrease, +.custom-theme .el-input-number--mini .el-input-number__increase { + width: 28px; + font-size: 12px; +} + +.custom-theme .el-input-number--mini .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number--mini .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-input-number--mini .el-input__inner { + padding-left: 35px; + padding-right: 35px; +} + +.custom-theme .el-input-number.is-without-controls .el-input__inner { + padding-left: 15px; + padding-right: 15px; +} + +.custom-theme .el-input-number.is-controls-right .el-input__inner { + padding-left: 15px; + padding-right: 50px; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease, +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + height: auto; + line-height: 19px; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + border-radius: 0 4px 0 0; + border-bottom: 1px solid #d8dce5; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease { + right: 1px; + bottom: 1px; + top: auto; + left: auto; + border-right: none; + border-left: 1px solid #d8dce5; + border-radius: 0 0 4px 0; +} + +.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='increase'] { + line-height: 17px; +} + +.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='increase'] { + line-height: 15px; +} + +.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='increase'] { + line-height: 13px; +} + +.custom-theme .el-radio { + color: #5a5e66; + font-weight: 500; + line-height: 1; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + outline: 0; + font-size: 14px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; +} + +.custom-theme .el-radio.is-bordered { + padding: 10px 20px 10px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} + +.custom-theme .el-radio.is-bordered.is-checked { + border-color: #262729; +} + +.custom-theme .el-radio.is-bordered.is-disabled { + cursor: not-allowed; + border-color: #e6ebf5; +} + +.custom-theme .el-radio.is-bordered + .el-radio.is-bordered { + margin-left: 10px; +} + +.custom-theme .el-radio--medium.is-bordered { + padding: 8px 20px 8px 10px; + border-radius: 4px; +} + +.custom-theme .el-radio--medium.is-bordered .el-radio__label { + font-size: 14px; +} + +.custom-theme .el-radio--medium.is-bordered .el-radio__inner { + height: 14px; + width: 14px; +} + +.custom-theme .el-radio--small.is-bordered { + padding: 6px 15px 6px 10px; + border-radius: 3px; +} + +.custom-theme .el-radio--small.is-bordered .el-radio__label { + font-size: 12px; +} + +.custom-theme .el-radio--small.is-bordered .el-radio__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-radio--mini.is-bordered { + padding: 4px 15px 4px 10px; + border-radius: 3px; +} + +.custom-theme .el-radio--mini.is-bordered .el-radio__label { + font-size: 12px; +} + +.custom-theme .el-radio--mini.is-bordered .el-radio__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-radio + .el-radio { + margin-left: 30px; +} + +.custom-theme .el-radio__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-radio__input.is-disabled .el-radio__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + cursor: not-allowed; +} + +.custom-theme .el-radio__input.is-disabled .el-radio__inner::after { + cursor: not-allowed; + background-color: #f5f7fa; +} + +.custom-theme .el-radio__input.is-disabled .el-radio__inner + .el-radio__label { + cursor: not-allowed; +} + +.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; +} + +.custom-theme .el-radio__input.is-disabled.is-checked .el-radio__inner::after { + background-color: #b4bccc; +} + +.custom-theme .el-radio__input.is-disabled + span.el-radio__label { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-radio__input.is-checked .el-radio__inner { + border-color: #262729; + background: #262729; +} + +.custom-theme .el-radio__input.is-checked .el-radio__inner::after { + -webkit-transform: translate(-50%, -50%) scale(1); + transform: translate(-50%, -50%) scale(1); +} + +.custom-theme .el-radio__input.is-checked + .el-radio__label { + color: #262729; +} + +.custom-theme .el-radio__input.is-focus .el-radio__inner { + border-color: #262729; +} + +.custom-theme .el-radio__inner { + border: 1px solid #d8dce5; + border-radius: 100%; + width: 14px; + height: 14px; + background-color: #fff; + position: relative; + cursor: pointer; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-radio__inner:hover { + border-color: #262729; +} + +.custom-theme .el-radio__inner::after { + width: 4px; + height: 4px; + border-radius: 100%; + background-color: #fff; + content: ''; + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%) scale(0); + transform: translate(-50%, -50%) scale(0); + -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6), + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6); +} + +.custom-theme .el-radio__original { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 0; +} + +.custom-theme .el-radio:focus:not(.is-focus):not(:active) .el-radio__inner { + -webkit-box-shadow: 0 0 2px 2px #262729; + box-shadow: 0 0 2px 2px #262729; +} + +.custom-theme .el-radio__label { + font-size: 14px; + padding-left: 10px; +} + +.custom-theme .el-radio-group { + display: inline-block; + line-height: 1; + vertical-align: middle; + font-size: 0; +} + +.custom-theme .el-radio-button { + position: relative; + display: inline-block; + outline: 0; +} + +.custom-theme .el-radio-button__inner { + display: inline-block; + line-height: 1; + white-space: nowrap; + vertical-align: middle; + background: #fff; + border: 1px solid #d8dce5; + font-weight: 500; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + cursor: pointer; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-radio-button__inner.is-round { + padding: 12px 20px; +} + +.custom-theme .el-radio-button__inner:hover { + color: #262729; +} + +.custom-theme .el-radio-button__inner [class*='el-icon-'] { + line-height: 0.9; +} + +.custom-theme .el-radio-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-radio-button__orig-radio { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1; + left: -999px; +} + +.custom-theme .el-radio-button__orig-radio:checked + .el-radio-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #262729; + box-shadow: -1px 0 0 0 #262729; +} + +.custom-theme .el-radio-button__orig-radio:disabled + .el-radio-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-radio-button__orig-radio:disabled:checked + .el-radio-button__inner { + background-color: #edf2fc; +} + +.custom-theme .el-radio-button:first-child .el-radio-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.custom-theme .el-radio-button:last-child .el-radio-button__inner { + border-radius: 0 4px 4px 0; +} + +.custom-theme .el-radio-button:first-child:last-child .el-radio-button__inner { + border-radius: 4px; +} + +.custom-theme .el-radio-button--medium .el-radio-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-radio-button--medium .el-radio-button__inner.is-round { + padding: 10px 20px; +} + +.custom-theme .el-radio-button--small .el-radio-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-radio-button--small .el-radio-button__inner.is-round { + padding: 9px 15px; +} + +.custom-theme .el-radio-button--mini .el-radio-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-radio-button--mini .el-radio-button__inner.is-round { + padding: 7px 15px; +} + +.custom-theme .el-radio-button:focus:not(.is-focus):not(:active) { + -webkit-box-shadow: 0 0 2px 2px #262729; + box-shadow: 0 0 2px 2px #262729; +} + +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} + +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} + +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner + .el-checkbox__label { + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} + +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} + +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} + +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} + +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} + +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} + +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} + +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} + +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} + +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} + +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} + +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} + +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} + +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} + +.custom-theme .el-checkbox-group { + font-size: 0; +} + +.custom-theme .el-switch { + display: inline-block; + position: relative; + font-size: 14px; + line-height: 20px; + height: 20px; + vertical-align: middle; +} + +.custom-theme .el-switch.is-disabled .el-switch__core, +.custom-theme .el-switch.is-disabled .el-switch__label { + cursor: not-allowed; +} + +.custom-theme .el-switch__label { + -webkit-transition: 0.2s; + transition: 0.2s; + height: 20px; + display: inline-block; + font-size: 14px; + font-weight: 500; + cursor: pointer; + vertical-align: middle; + color: #2d2f33; +} + +.custom-theme .el-switch__label.is-active { + color: #262729; +} + +.custom-theme .el-switch__label--left { + margin-right: 10px; +} + +.custom-theme .el-switch__label--right { + margin-left: 10px; +} + +.custom-theme .el-switch__label * { + line-height: 1; + font-size: 14px; + display: inline-block; +} + +.custom-theme .el-switch__input { + position: absolute; + width: 0; + height: 0; + opacity: 0; + margin: 0; +} + +.custom-theme .el-switch__input:focus ~ .el-switch__core { + outline: 1px solid #262729; +} + +.custom-theme .el-switch__core { + margin: 0; + display: inline-block; + position: relative; + width: 40px; + height: 20px; + border: 1px solid #d8dce5; + outline: 0; + border-radius: 10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #d8dce5; + cursor: pointer; + -webkit-transition: border-color 0.3s, background-color 0.3s; + transition: border-color 0.3s, background-color 0.3s; + vertical-align: middle; +} + +.custom-theme .el-switch__core .el-switch__button { + position: absolute; + top: 1px; + left: 1px; + border-radius: 100%; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + width: 16px; + height: 16px; + background-color: #fff; +} + +.custom-theme .el-switch.is-checked .el-switch__core { + border-color: #262729; + background-color: #262729; +} + +.custom-theme .el-switch.is-disabled { + opacity: 0.6; +} + +.custom-theme .el-switch--wide .el-switch__label.el-switch__label--left span { + left: 10px; +} + +.custom-theme .el-switch--wide .el-switch__label.el-switch__label--right span { + right: 10px; +} + +.custom-theme .el-switch .label-fade-enter, +.custom-theme .el-switch .label-fade-leave-active { + opacity: 0; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-select-dropdown { + position: absolute; + z-index: 1001; + border: solid 1px #dfe4ed; + border-radius: 4px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 5px 0; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected { + color: #262729; + background-color: #fff; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover { + background-color: #f5f7fa; +} + +.custom-theme .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after { + position: absolute; + right: 20px; + font-family: element-icons; + content: '\E611'; + font-size: 12px; + font-weight: 700; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.custom-theme .el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list { + padding: 0; +} + +.custom-theme .el-select-dropdown .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-select-dropdown.is-arrow-fixed .popper__arrow { + -webkit-transform: translateX(-200%); + transform: translateX(-200%); +} + +.custom-theme .el-select-dropdown__empty { + padding: 10px 0; + margin: 0; + text-align: center; + color: #999; + font-size: 14px; +} + +.custom-theme .el-select-dropdown__wrap { + max-height: 274px; +} + +.custom-theme .el-select-dropdown__list { + list-style: none; + padding: 6px 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} + +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} + +.custom-theme .el-tag .el-icon-close::before { + display: block; +} + +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} + +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} + +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} + +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} + +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} + +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} + +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} + +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} + +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} + +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} + +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} + +.custom-theme .el-select-dropdown__item { + font-size: 14px; + padding: 0 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 34px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.custom-theme .el-select-dropdown__item.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-select-dropdown__item.is-disabled:hover { + background-color: #fff; +} + +.custom-theme .el-select-dropdown__item.hover, +.custom-theme .el-select-dropdown__item:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-select-dropdown__item.selected { + color: #262729; + font-weight: 700; +} + +.custom-theme .el-select-dropdown__item span { + line-height: 34px !important; +} + +.custom-theme .el-select-group { + margin: 0; + padding: 0; +} + +.custom-theme .el-select-group__wrap { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +.custom-theme .el-select-group__wrap:not(:last-of-type) { + padding-bottom: 24px; +} + +.custom-theme .el-select-group__wrap:not(:last-of-type)::after { + content: ''; + position: absolute; + display: block; + left: 20px; + right: 20px; + bottom: 12px; + height: 1px; + background: #dfe4ed; +} + +.custom-theme .el-select-group__title { + padding-left: 20px; + font-size: 12px; + color: #0a76a4; + line-height: 30px; +} + +.custom-theme .el-select-group .el-select-dropdown__item { + padding-left: 20px; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-select { + display: inline-block; + position: relative; +} + +.custom-theme .el-select:hover .el-input__inner { + border-color: #b4bccc; +} + +.custom-theme .el-select .el-input__inner { + cursor: pointer; + padding-right: 35px; +} + +.custom-theme .el-select .el-input__inner:focus { + border-color: #262729; +} + +.custom-theme .el-select .el-input .el-select__caret { + color: #b4bccc; + font-size: 14px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + line-height: 16px; + cursor: pointer; +} + +.custom-theme .el-select .el-input .el-select__caret.is-reverse { + -webkit-transform: rotateZ(0); + transform: rotateZ(0); +} + +.custom-theme .el-select .el-input .el-select__caret.is-show-close { + font-size: 14px; + text-align: center; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + border-radius: 100%; + color: #b4bccc; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-select .el-input .el-select__caret.is-show-close:hover { + color: #878d99; +} + +.custom-theme .el-select .el-input.is-disabled .el-input__inner { + cursor: not-allowed; +} + +.custom-theme .el-select .el-input.is-disabled .el-input__inner:hover { + border-color: #dfe4ed; +} + +.custom-theme .el-select > .el-input { + display: block; +} + +.custom-theme .el-select__input { + border: none; + outline: 0; + padding: 0; + margin-left: 15px; + color: #666; + font-size: 14px; + vertical-align: baseline; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 28px; + background-color: transparent; +} + +.custom-theme .el-select__input.is-mini { + height: 14px; +} + +.custom-theme .el-select__close { + cursor: pointer; + position: absolute; + top: 8px; + z-index: 1000; + right: 25px; + color: #b4bccc; + line-height: 18px; + font-size: 14px; +} + +.custom-theme .el-select__close:hover { + color: #878d99; +} + +.custom-theme .el-select__tags { + position: absolute; + line-height: normal; + white-space: normal; + z-index: 1; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.custom-theme .el-select .el-tag__close { + margin-top: -2px; +} + +.custom-theme .el-select .el-tag { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-color: transparent; + margin: 3px 0 3px 6px; + background-color: #f0f2f5; +} + +.custom-theme .el-select .el-tag__close.el-icon-close { + background-color: #b4bccc; + right: -7px; + color: #fff; +} + +.custom-theme .el-select .el-tag__close.el-icon-close:hover { + background-color: #878d99; +} + +.custom-theme .el-select .el-tag__close.el-icon-close::before { + display: block; + -webkit-transform: translate(0, 0.5px); + transform: translate(0, 0.5px); +} + +.custom-theme .el-select__tag { + display: inline-block; + height: 24px; + line-height: 24px; + font-size: 14px; + border-radius: 4px; + color: #fff; + background-color: #262729; +} + +.custom-theme .el-select__tag .el-icon-close { + font-size: 14px; +} + +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button + .el-button { + margin-left: 10px; +} + +.custom-theme .el-button.is-round { + padding: 12px 20px; +} + +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} + +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} + +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} + +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} + +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} + +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} + +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} + +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} + +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} + +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} + +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} + +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} + +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} + +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} + +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} + +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} + +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} + +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} + +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} + +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} + +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} + +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} + +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} + +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} + +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} + +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} + +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} + +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} + +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} + +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} + +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} + +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} + +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} + +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} + +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} + +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} + +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} + +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} + +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} + +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} + +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} + +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} + +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} + +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} + +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} + +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} + +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} + +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} + +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} + +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} + +.custom-theme .el-button-group::after { + clear: both; +} + +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} + +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} + +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} + +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} + +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} + +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} + +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} + +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner + .el-checkbox__label { + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} + +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} + +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} + +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} + +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} + +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} + +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} + +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} + +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} + +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} + +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} + +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} + +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} + +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} + +.custom-theme .el-checkbox-group { + font-size: 0; +} + +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} + +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} + +.custom-theme .el-tag .el-icon-close::before { + display: block; +} + +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} + +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} + +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} + +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} + +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} + +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} + +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} + +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} + +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} + +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} + +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} + +.custom-theme .el-table { + position: relative; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + width: 100%; + max-width: 100%; + background-color: #fff; + font-size: 14px; + color: #5a5e66; +} + +.custom-theme .el-table__empty-block { + position: relative; + min-height: 60px; + text-align: center; + width: 100%; + height: 100%; +} + +.custom-theme .el-table__empty-text { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: color(#262729 s(16%) l(44%)); +} + +.custom-theme .el-table__expand-column .cell { + padding: 0; + text-align: center; +} + +.custom-theme .el-table__expand-icon { + position: relative; + cursor: pointer; + color: #666; + font-size: 12px; + -webkit-transition: -webkit-transform 0.2s ease-in-out; + transition: -webkit-transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out; + height: 20px; +} + +.custom-theme .el-table__expand-icon--expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.custom-theme .el-table__expand-icon > .el-icon { + position: absolute; + left: 50%; + top: 50%; + margin-left: -5px; + margin-top: -5px; +} + +.custom-theme .el-table__expanded-cell { + background-color: #fff; +} + +.custom-theme .el-table__expanded-cell[class*='cell'] { + padding: 20px 50px; +} + +.custom-theme .el-table__expanded-cell:hover { + background-color: #f5f7fa !important; +} + +.custom-theme .el-table--fit { + border-right: 0; + border-bottom: 0; +} + +.custom-theme .el-table--fit td.gutter, +.custom-theme .el-table--fit th.gutter { + border-right-width: 1px; +} + +.custom-theme .el-table thead { + color: #878d99; + font-weight: 500; +} + +.custom-theme .el-table thead.is-group th { + background: #f5f7fa; +} + +.custom-theme .el-table td, +.custom-theme .el-table th { + padding: 12px 0; + min-width: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-overflow: ellipsis; + vertical-align: middle; + position: relative; +} + +.custom-theme .el-table td.is-center, +.custom-theme .el-table th.is-center { + text-align: center; +} + +.custom-theme .el-table td.is-left, +.custom-theme .el-table th.is-left { + text-align: left; +} + +.custom-theme .el-table td.is-right, +.custom-theme .el-table th.is-right { + text-align: right; +} + +.custom-theme .el-table td.gutter, +.custom-theme .el-table th.gutter { + width: 15px; + border-right-width: 0; + border-bottom-width: 0; + padding: 0; +} + +.custom-theme .el-table td.is-hidden > *, +.custom-theme .el-table th.is-hidden > * { + visibility: hidden; +} + +.custom-theme .el-table--medium td, +.custom-theme .el-table--medium th { + padding: 10px 0; +} + +.custom-theme .el-table--small { + font-size: 12px; +} + +.custom-theme .el-table--small td, +.custom-theme .el-table--small th { + padding: 8px 0; +} + +.custom-theme .el-table--mini { + font-size: 12px; +} + +.custom-theme .el-table--mini td, +.custom-theme .el-table--mini th { + padding: 6px 0; +} + +.custom-theme .el-table tr { + background-color: #fff; +} + +.custom-theme .el-table tr input[type='checkbox'] { + margin: 0; +} + +.custom-theme .el-table td, +.custom-theme .el-table th.is-leaf { + border-bottom: 1px solid #e6ebf5; +} + +.custom-theme .el-table th.is-sortable { + cursor: pointer; +} + +.custom-theme .el-table th { + white-space: nowrap; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: left; +} + +.custom-theme .el-table th div { + display: inline-block; + padding-left: 10px; + padding-right: 10px; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.custom-theme .el-table th > .cell { + position: relative; + word-wrap: normal; + text-overflow: ellipsis; + display: inline-block; + vertical-align: middle; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-table th > .cell.highlight { + color: #262729; +} + +.custom-theme .el-table th.required > div::before { + display: inline-block; + content: ''; + width: 8px; + height: 8px; + border-radius: 50%; + background: #ff4d51; + margin-right: 5px; + vertical-align: middle; +} + +.custom-theme .el-table td div { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-table td.gutter { + width: 0; +} + +.custom-theme .el-table .cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; + word-break: break-all; + line-height: 23px; + padding-left: 10px; + padding-right: 10px; +} + +.custom-theme .el-table .cell.el-tooltip { + white-space: nowrap; + min-width: 50px; +} + +.custom-theme .el-table td:first-child .cell, +.custom-theme .el-table th:first-child .cell { + padding-left: 0; +} + +.custom-theme .el-table--border, +.custom-theme .el-table--group { + border: 1px solid #e6ebf5; +} + +.custom-theme .el-table--border::after, +.custom-theme .el-table--group::after, +.custom-theme .el-table::before { + content: ''; + position: absolute; + background-color: #e6ebf5; + z-index: 1; +} + +.custom-theme .el-table--border::after, +.custom-theme .el-table--group::after { + top: 0; + right: 0; + width: 1px; + height: 100%; +} + +.custom-theme .el-table::before { + left: 0; + bottom: 0; + width: 100%; + height: 1px; +} + +.custom-theme .el-table--border { + border-right: none; + border-bottom: none; +} + +.custom-theme .el-table--border td, +.custom-theme .el-table--border th { + border-right: 1px solid #e6ebf5; +} + +.custom-theme .el-table--border td:first-child .cell, +.custom-theme .el-table--border th:first-child .cell { + padding-left: 10px; +} + +.custom-theme .el-table--border .has-gutter td:nth-last-of-type(2), +.custom-theme .el-table--border .has-gutter th:nth-last-of-type(2) { + border-right: none; +} + +.custom-theme .el-table--border th.gutter:last-of-type { + border-bottom: 1px solid #e6ebf5; + border-bottom-width: 1px; +} + +.custom-theme .el-table--border th { + border-bottom: 1px solid #e6ebf5; +} + +.custom-theme .el-table--hidden { + visibility: hidden; +} + +.custom-theme .el-table__fixed, +.custom-theme .el-table__fixed-right { + position: absolute; + top: 0; + left: 0; + overflow-x: hidden; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.12); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.12); +} + +.custom-theme .el-table__fixed-right::before, +.custom-theme .el-table__fixed::before { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 1px; + background-color: #e6ebf5; + z-index: 4; +} + +.custom-theme .el-table__fixed-right-patch { + position: absolute; + top: -1px; + right: 0; + background-color: #fff; + border-bottom: 1px solid #e6ebf5; +} + +.custom-theme .el-table__fixed-right { + top: 0; + left: auto; + right: 0; +} + +.custom-theme .el-table__fixed-right .el-table__fixed-body-wrapper, +.custom-theme .el-table__fixed-right .el-table__fixed-footer-wrapper, +.custom-theme .el-table__fixed-right .el-table__fixed-header-wrapper { + left: auto; + right: 0; +} + +.custom-theme .el-table__fixed-header-wrapper { + position: absolute; + left: 0; + top: 0; + z-index: 3; +} + +.custom-theme .el-table__fixed-footer-wrapper { + position: absolute; + left: 0; + bottom: 0; + z-index: 3; +} + +.custom-theme .el-table__fixed-footer-wrapper tbody td { + border-top: 1px solid #e6ebf5; + background-color: #f5f7fa; + color: #5a5e66; +} + +.custom-theme .el-table__fixed-body-wrapper { + position: absolute; + left: 0; + top: 37px; + overflow: hidden; + z-index: 3; +} + +.custom-theme .el-table__body-wrapper, +.custom-theme .el-table__footer-wrapper, +.custom-theme .el-table__header-wrapper { + width: 100%; +} + +.custom-theme .el-table__footer-wrapper { + margin-top: -1px; +} + +.custom-theme .el-table__footer-wrapper td { + border-top: 1px solid #e6ebf5; +} + +.custom-theme .el-table__body, +.custom-theme .el-table__footer, +.custom-theme .el-table__header { + table-layout: fixed; +} + +.custom-theme .el-table__footer-wrapper, +.custom-theme .el-table__header-wrapper { + overflow: hidden; +} + +.custom-theme .el-table__footer-wrapper tbody td, +.custom-theme .el-table__header-wrapper tbody td { + background-color: #f5f7fa; + color: #5a5e66; +} + +.custom-theme .el-table__body-wrapper { + overflow: auto; + position: relative; +} + +.custom-theme .el-table__body-wrapper.is-scroll-none ~ .el-table__fixed, +.custom-theme .el-table__body-wrapper.is-scroll-none ~ .el-table__fixed-right { + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-table__body-wrapper.is-scroll-left ~ .el-table__fixed { + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-table__body-wrapper.is-scroll-right ~ .el-table__fixed-right { + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-right ~ .el-table__fixed-right { + border-left: 1px solid #e6ebf5; +} + +.custom-theme .el-table__body-wrapper .el-table--border.is-scroll-left ~ .el-table__fixed { + border-right: 1px solid #e6ebf5; +} + +.custom-theme .el-table .caret-wrapper { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 13px; + width: 24px; + cursor: pointer; + overflow: initial; +} + +.custom-theme .el-table .sort-caret { + color: #0a76a4; + width: 14px; + overflow: hidden; + font-size: 13px; +} + +.custom-theme .el-table .ascending .sort-caret.ascending { + color: #262729; +} + +.custom-theme .el-table .descending .sort-caret.descending { + color: #262729; +} + +.custom-theme .el-table .hidden-columns { + visibility: hidden; + position: absolute; + z-index: -1; +} + +.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped td { + background: #fafafa; +} + +.custom-theme .el-table--striped .el-table__body tr.el-table__row--striped.current-row td { + background-color: #e9e9ea; +} + +.custom-theme .el-table__body tr.hover-row.current-row > td, +.custom-theme .el-table__body tr.hover-row.el-table__row--striped.current-row > td, +.custom-theme .el-table__body tr.hover-row.el-table__row--striped > td, +.custom-theme .el-table__body tr.hover-row > td { + background-color: #e9e9ea; +} + +.custom-theme .el-table__body tr.current-row > td { + background-color: #e9e9ea; +} + +.custom-theme .el-table__column-resize-proxy { + position: absolute; + left: 200px; + top: 0; + bottom: 0; + width: 0; + border-left: 1px solid #e6ebf5; + z-index: 10; +} + +.custom-theme .el-table__column-filter-trigger { + display: inline-block; + line-height: 34px; + cursor: pointer; +} + +.custom-theme .el-table__column-filter-trigger i { + color: #0a76a4; + font-size: 12px; + -webkit-transform: scale(0.75); + transform: scale(0.75); +} + +.custom-theme .el-table--enable-row-transition .el-table__body td { + -webkit-transition: background-color 0.25s ease; + transition: background-color 0.25s ease; +} + +.custom-theme .el-table--enable-row-hover .el-table__body tr:hover > td { + background-color: #f5f7fa; +} + +.custom-theme .el-table--fluid-height .el-table__fixed, +.custom-theme .el-table--fluid-height .el-table__fixed-right { + bottom: 0; + overflow: hidden; +} + +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} + +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} + +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner + .el-checkbox__label { + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} + +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} + +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} + +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} + +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} + +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} + +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} + +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} + +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} + +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} + +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} + +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} + +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} + +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} + +.custom-theme .el-checkbox-group { + font-size: 0; +} + +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} + +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} + +.custom-theme .el-tag .el-icon-close::before { + display: block; +} + +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} + +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} + +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} + +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} + +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} + +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} + +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} + +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} + +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} + +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} + +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} + +.custom-theme .el-table-column--selection .cell { + padding-left: 14px; + padding-right: 14px; +} + +.custom-theme .el-table-filter { + border: solid 1px #e6ebf5; + border-radius: 2px; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 2px 0; +} + +.custom-theme .el-table-filter__list { + padding: 5px 0; + margin: 0; + list-style: none; + min-width: 100px; +} + +.custom-theme .el-table-filter__list-item { + line-height: 36px; + padding: 0 10px; + cursor: pointer; + font-size: 14px; +} + +.custom-theme .el-table-filter__list-item:hover { + background-color: #e9e9ea; + color: #515254; +} + +.custom-theme .el-table-filter__list-item.is-active { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-table-filter__content { + min-width: 100px; +} + +.custom-theme .el-table-filter__bottom { + border-top: 1px solid #e6ebf5; + padding: 8px; +} + +.custom-theme .el-table-filter__bottom button { + background: 0 0; + border: none; + color: #5a5e66; + cursor: pointer; + font-size: 13px; + padding: 0 3px; +} + +.custom-theme .el-table-filter__bottom button:hover { + color: #262729; +} + +.custom-theme .el-table-filter__bottom button:focus { + outline: 0; +} + +.custom-theme .el-table-filter__bottom button.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-table-filter__checkbox-group { + padding: 10px; +} + +.custom-theme .el-table-filter__checkbox-group label.el-checkbox { + display: block; + margin-bottom: 8px; + margin-left: 5px; +} + +.custom-theme .el-table-filter__checkbox-group .el-checkbox:last-child { + margin-bottom: 0; +} + +.custom-theme .el-date-table { + font-size: 12px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover div { + background-color: #edf2fc; +} + +.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td.available:hover { + color: #5a5e66; +} + +.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:first-child div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px; +} + +.custom-theme .el-date-table.is-week-mode .el-date-table__row:hover td:last-child div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; +} + +.custom-theme .el-date-table.is-week-mode .el-date-table__row.current div { + background-color: #edf2fc; +} + +.custom-theme .el-date-table td { + width: 32px; + height: 30px; + padding: 4px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + cursor: pointer; + position: relative; +} + +.custom-theme .el-date-table td div { + height: 30px; + padding: 3px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-date-table td span { + width: 24px; + height: 24px; + display: block; + margin: 0 auto; + line-height: 24px; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + border-radius: 50%; +} + +.custom-theme .el-date-table td.next-month, +.custom-theme .el-date-table td.prev-month { + color: #b4bccc; +} + +.custom-theme .el-date-table td.today { + position: relative; +} + +.custom-theme .el-date-table td.today span { + color: #262729; +} + +.custom-theme .el-date-table td.today.end-date span, +.custom-theme .el-date-table td.today.start-date span { + color: #fff; +} + +.custom-theme .el-date-table td.available:hover { + color: #262729; +} + +.custom-theme .el-date-table td.in-range div { + background-color: #edf2fc; +} + +.custom-theme .el-date-table td.in-range div:hover { + background-color: #edf2fc; +} + +.custom-theme .el-date-table td.current:not(.disabled) span { + color: #fff; + background-color: #262729; +} + +.custom-theme .el-date-table td.end-date div, +.custom-theme .el-date-table td.start-date div { + color: #fff; +} + +.custom-theme .el-date-table td.end-date span, +.custom-theme .el-date-table td.start-date span { + background-color: #262729; +} + +.custom-theme .el-date-table td.start-date div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px; +} + +.custom-theme .el-date-table td.end-date div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px; +} + +.custom-theme .el-date-table td.disabled div { + background-color: #f5f7fa; + opacity: 1; + cursor: not-allowed; + color: #b4bccc; +} + +.custom-theme .el-date-table td.week { + font-size: 80%; + color: #5a5e66; +} + +.custom-theme .el-date-table th { + padding: 5px; + color: #5a5e66; + font-weight: 400; + border-bottom: solid 1px #e6ebf5; +} + +.custom-theme .el-month-table { + font-size: 12px; + margin: -1px; + border-collapse: collapse; +} + +.custom-theme .el-month-table td { + text-align: center; + padding: 20px 3px; + cursor: pointer; +} + +.custom-theme .el-month-table td.disabled .cell { + background-color: #f5f7fa; + cursor: not-allowed; + color: #b4bccc; +} + +.custom-theme .el-month-table td.disabled .cell:hover { + color: #b4bccc; +} + +.custom-theme .el-month-table td .cell { + width: 48px; + height: 32px; + display: block; + line-height: 32px; + color: #5a5e66; + margin: 0 auto; +} + +.custom-theme .el-month-table td .cell:hover { + color: #262729; +} + +.custom-theme .el-month-table td.current:not(.disabled) .cell { + color: #262729; +} + +.custom-theme .el-year-table { + font-size: 12px; + margin: -1px; + border-collapse: collapse; +} + +.custom-theme .el-year-table .el-icon { + color: #2d2f33; +} + +.custom-theme .el-year-table td { + text-align: center; + padding: 20px 3px; + cursor: pointer; +} + +.custom-theme .el-year-table td.disabled .cell { + background-color: #f5f7fa; + cursor: not-allowed; + color: #b4bccc; +} + +.custom-theme .el-year-table td.disabled .cell:hover { + color: #b4bccc; +} + +.custom-theme .el-year-table td .cell { + width: 48px; + height: 32px; + display: block; + line-height: 32px; + color: #5a5e66; + margin: 0 auto; +} + +.custom-theme .el-year-table td .cell:hover { + color: #262729; +} + +.custom-theme .el-year-table td.current:not(.disabled) .cell { + color: #262729; +} + +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper { + width: 33.3%; +} + +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2) { + margin-left: 1%; +} + +.custom-theme .el-time-spinner__wrapper { + max-height: 190px; + overflow: auto; + display: inline-block; + width: 50%; + vertical-align: top; + position: relative; +} + +.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 15px; +} + +.custom-theme .el-time-spinner__wrapper.is-arrow { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden; +} + +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list { + -webkit-transform: translateY(-32px); + transform: translateY(-32px); +} + +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #fff; + cursor: default; +} + +.custom-theme .el-time-spinner__arrow { + font-size: 12px; + color: #878d99; + position: absolute; + left: 0; + width: 100%; + z-index: 1; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer; +} + +.custom-theme .el-time-spinner__arrow:hover { + color: #262729; +} + +.custom-theme .el-time-spinner__arrow.el-icon-arrow-up { + top: 10px; +} + +.custom-theme .el-time-spinner__arrow.el-icon-arrow-down { + bottom: 10px; +} + +.custom-theme .el-time-spinner__input.el-input { + width: 70%; +} + +.custom-theme .el-time-spinner__input.el-input .el-input__inner { + padding: 0; + text-align: center; +} + +.custom-theme .el-time-spinner__list { + padding: 0; + margin: 0; + list-style: none; + text-align: center; +} + +.custom-theme .el-time-spinner__list::after, +.custom-theme .el-time-spinner__list::before { + content: ''; + display: block; + width: 100%; + height: 80px; +} + +.custom-theme .el-time-spinner__item { + height: 32px; + line-height: 32px; + font-size: 12px; + color: #5a5e66; +} + +.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #f5f7fa; + cursor: pointer; +} + +.custom-theme .el-time-spinner__item.active:not(.disabled) { + color: #2d2f33; + font-weight: 700; +} + +.custom-theme .el-time-spinner__item.disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} + +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} + +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} + +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} + +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} + +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; +} + +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; +} + +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} + +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} + +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} + +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} + +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} + +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} + +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} + +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} + +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} + +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} + +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} + +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} + +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} + +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} + +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} + +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} + +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} + +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} + +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} + +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} + +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} + +.custom-theme .el-picker-panel { + color: #5a5e66; + border: 1px solid #dfe4ed; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + background: #fff; + border-radius: 4px; + line-height: 30px; + margin: 5px 0; +} + +.custom-theme .el-picker-panel__body-wrapper::after, +.custom-theme .el-picker-panel__body::after { + content: ''; + display: table; + clear: both; +} + +.custom-theme .el-picker-panel__content { + position: relative; + margin: 15px; +} + +.custom-theme .el-picker-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + text-align: right; + background-color: #fff; + position: relative; + font-size: 0; +} + +.custom-theme .el-picker-panel__shortcut { + display: block; + width: 100%; + border: 0; + background-color: transparent; + line-height: 28px; + font-size: 14px; + color: #5a5e66; + padding-left: 12px; + text-align: left; + outline: 0; + cursor: pointer; +} + +.custom-theme .el-picker-panel__shortcut:hover { + color: #262729; +} + +.custom-theme .el-picker-panel__shortcut.active { + background-color: #e6f1fe; + color: #262729; +} + +.custom-theme .el-picker-panel__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} + +.custom-theme .el-picker-panel__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} + +.custom-theme .el-picker-panel__icon-btn { + font-size: 12px; + color: #2d2f33; + border: 0; + background: 0 0; + cursor: pointer; + outline: 0; + margin-top: 8px; +} + +.custom-theme .el-picker-panel__icon-btn:hover { + color: #262729; +} + +.custom-theme .el-picker-panel__icon-btn.is-disabled { + color: #bbb; +} + +.custom-theme .el-picker-panel__icon-btn.is-disabled:hover { + cursor: not-allowed; +} + +.custom-theme .el-picker-panel__link-btn { + vertical-align: middle; +} + +.custom-theme .el-picker-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-picker-panel [slot='sidebar'], +.custom-theme .el-picker-panel__sidebar { + position: absolute; + top: 0; + bottom: 0; + width: 110px; + border-right: 1px solid #e4e4e4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + background-color: #fff; + overflow: auto; +} + +.custom-theme .el-picker-panel [slot='sidebar'] + .el-picker-panel__body, +.custom-theme .el-picker-panel__sidebar + .el-picker-panel__body { + margin-left: 110px; +} + +.custom-theme .el-date-picker { + width: 322px; +} + +.custom-theme .el-date-picker.has-sidebar.has-time { + width: 434px; +} + +.custom-theme .el-date-picker.has-sidebar { + width: 438px; +} + +.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper { + position: relative; +} + +.custom-theme .el-date-picker .el-picker-panel__content { + width: 292px; +} + +.custom-theme .el-date-picker table { + table-layout: fixed; + width: 100%; +} + +.custom-theme .el-date-picker__editor-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} + +.custom-theme .el-date-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-date-picker__header { + margin: 12px; + text-align: center; +} + +.custom-theme .el-date-picker__header--bordered { + margin-bottom: 0; + padding-bottom: 12px; + border-bottom: solid 1px #e6ebf5; +} + +.custom-theme .el-date-picker__header--bordered + .el-picker-panel__content { + margin-top: 0; +} + +.custom-theme .el-date-picker__header-label { + font-size: 16px; + font-weight: 500; + padding: 0 5px; + line-height: 22px; + text-align: center; + cursor: pointer; + color: #5a5e66; +} + +.custom-theme .el-date-picker__header-label:hover { + color: #262729; +} + +.custom-theme .el-date-picker__header-label.active { + color: #262729; +} + +.custom-theme .el-date-picker__prev-btn { + float: left; +} + +.custom-theme .el-date-picker__next-btn { + float: right; +} + +.custom-theme .el-date-picker__time-wrap { + padding: 10px; + text-align: center; +} + +.custom-theme .el-date-picker__time-label { + float: left; + cursor: pointer; + line-height: 30px; + margin-left: 10px; +} + +.custom-theme .el-date-range-picker { + width: 646px; +} + +.custom-theme .el-date-range-picker.has-sidebar { + width: 756px; +} + +.custom-theme .el-date-range-picker table { + table-layout: fixed; + width: 100%; +} + +.custom-theme .el-date-range-picker .el-picker-panel__body { + min-width: 513px; +} + +.custom-theme .el-date-range-picker .el-picker-panel__content { + margin: 0; +} + +.custom-theme .el-date-range-picker__header { + position: relative; + text-align: center; + height: 28px; +} + +.custom-theme .el-date-range-picker__header [class*='arrow-left'] { + float: left; +} + +.custom-theme .el-date-range-picker__header [class*='arrow-right'] { + float: right; +} + +.custom-theme .el-date-range-picker__header div { + font-size: 16px; + font-weight: 500; + margin-right: 50px; +} + +.custom-theme .el-date-range-picker__content { + float: left; + width: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 16px; +} + +.custom-theme .el-date-range-picker__content.is-left { + border-right: 1px solid #e4e4e4; +} + +.custom-theme .el-date-range-picker__content.is-right .el-date-range-picker__header div { + margin-left: 50px; + margin-right: 50px; +} + +.custom-theme .el-date-range-picker__editors-wrap { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: table-cell; +} + +.custom-theme .el-date-range-picker__editors-wrap.is-right { + text-align: right; +} + +.custom-theme .el-date-range-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-date-range-picker__time-header > .el-icon-arrow-right { + font-size: 20px; + vertical-align: middle; + display: table-cell; + color: #2d2f33; +} + +.custom-theme .el-date-range-picker__time-picker-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} + +.custom-theme .el-date-range-picker__time-picker-wrap .el-picker-panel { + position: absolute; + top: 13px; + right: 0; + z-index: 1; + background: #fff; +} + +.custom-theme .el-time-range-picker { + width: 354px; + overflow: visible; +} + +.custom-theme .el-time-range-picker__content { + position: relative; + text-align: center; + padding: 10px; +} + +.custom-theme .el-time-range-picker__cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 4px 7px 7px; + width: 50%; + display: inline-block; +} + +.custom-theme .el-time-range-picker__header { + margin-bottom: 5px; + text-align: center; + font-size: 14px; +} + +.custom-theme .el-time-range-picker__body { + border-radius: 2px; + border: 1px solid #dfe4ed; +} + +.custom-theme .el-time-panel { + margin: 5px 0; + border: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; + position: absolute; + width: 180px; + left: 0; + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-time-panel__content { + font-size: 0; + position: relative; + overflow: hidden; +} + +.custom-theme .el-time-panel__content::after, +.custom-theme .el-time-panel__content::before { + content: ''; + top: 50%; + position: absolute; + margin-top: -15px; + height: 32px; + z-index: -1; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + text-align: left; + border-top: 1px solid #dfe4ed; + border-bottom: 1px solid #dfe4ed; +} + +.custom-theme .el-time-panel__content::after { + left: 50%; + margin-left: 12%; + margin-right: 12%; +} + +.custom-theme .el-time-panel__content::before { + padding-left: 50%; + margin-right: 12%; + margin-left: 12%; +} + +.custom-theme .el-time-panel__content.has-seconds::after { + left: calc(100% / 3 * 2); +} + +.custom-theme .el-time-panel__content.has-seconds::before { + padding-left: calc(100% / 3); +} + +.custom-theme .el-time-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + height: 36px; + line-height: 25px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-time-panel__btn { + border: none; + line-height: 28px; + padding: 0 5px; + margin: 0 5px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; + color: #2d2f33; +} + +.custom-theme .el-time-panel__btn.confirm { + font-weight: 800; + color: #262729; +} + +.custom-theme .el-time-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} + +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} + +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} + +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} + +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} + +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; +} + +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; +} + +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} + +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} + +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} + +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} + +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} + +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} + +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} + +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} + +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} + +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} + +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} + +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} + +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} + +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} + +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} + +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} + +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} + +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} + +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} + +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} + +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} + +.custom-theme .el-picker-panel { + color: #5a5e66; + border: 1px solid #dfe4ed; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + background: #fff; + border-radius: 4px; + line-height: 30px; + margin: 5px 0; +} + +.custom-theme .el-picker-panel__body-wrapper::after, +.custom-theme .el-picker-panel__body::after { + content: ''; + display: table; + clear: both; +} + +.custom-theme .el-picker-panel__content { + position: relative; + margin: 15px; +} + +.custom-theme .el-picker-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + text-align: right; + background-color: #fff; + position: relative; + font-size: 0; +} + +.custom-theme .el-picker-panel__shortcut { + display: block; + width: 100%; + border: 0; + background-color: transparent; + line-height: 28px; + font-size: 14px; + color: #5a5e66; + padding-left: 12px; + text-align: left; + outline: 0; + cursor: pointer; +} + +.custom-theme .el-picker-panel__shortcut:hover { + color: #262729; +} + +.custom-theme .el-picker-panel__shortcut.active { + background-color: #e6f1fe; + color: #262729; +} + +.custom-theme .el-picker-panel__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} + +.custom-theme .el-picker-panel__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} + +.custom-theme .el-picker-panel__icon-btn { + font-size: 12px; + color: #2d2f33; + border: 0; + background: 0 0; + cursor: pointer; + outline: 0; + margin-top: 8px; +} + +.custom-theme .el-picker-panel__icon-btn:hover { + color: #262729; +} + +.custom-theme .el-picker-panel__icon-btn.is-disabled { + color: #bbb; +} + +.custom-theme .el-picker-panel__icon-btn.is-disabled:hover { + cursor: not-allowed; +} + +.custom-theme .el-picker-panel__link-btn { + vertical-align: middle; +} + +.custom-theme .el-picker-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-picker-panel [slot='sidebar'], +.custom-theme .el-picker-panel__sidebar { + position: absolute; + top: 0; + bottom: 0; + width: 110px; + border-right: 1px solid #e4e4e4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + background-color: #fff; + overflow: auto; +} + +.custom-theme .el-picker-panel [slot='sidebar'] + .el-picker-panel__body, +.custom-theme .el-picker-panel__sidebar + .el-picker-panel__body { + margin-left: 110px; +} + +.custom-theme .el-date-picker { + width: 322px; +} + +.custom-theme .el-date-picker.has-sidebar.has-time { + width: 434px; +} + +.custom-theme .el-date-picker.has-sidebar { + width: 438px; +} + +.custom-theme .el-date-picker.has-time .el-picker-panel__body-wrapper { + position: relative; +} + +.custom-theme .el-date-picker .el-picker-panel__content { + width: 292px; +} + +.custom-theme .el-date-picker table { + table-layout: fixed; + width: 100%; +} + +.custom-theme .el-date-picker__editor-wrap { + position: relative; + display: table-cell; + padding: 0 5px; +} + +.custom-theme .el-date-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-date-picker__header { + margin: 12px; + text-align: center; +} + +.custom-theme .el-date-picker__header--bordered { + margin-bottom: 0; + padding-bottom: 12px; + border-bottom: solid 1px #e6ebf5; +} + +.custom-theme .el-date-picker__header--bordered + .el-picker-panel__content { + margin-top: 0; +} + +.custom-theme .el-date-picker__header-label { + font-size: 16px; + font-weight: 500; + padding: 0 5px; + line-height: 22px; + text-align: center; + cursor: pointer; + color: #5a5e66; +} + +.custom-theme .el-date-picker__header-label:hover { + color: #262729; +} + +.custom-theme .el-date-picker__header-label.active { + color: #262729; +} + +.custom-theme .el-date-picker__prev-btn { + float: left; +} + +.custom-theme .el-date-picker__next-btn { + float: right; +} + +.custom-theme .el-date-picker__time-wrap { + padding: 10px; + text-align: center; +} + +.custom-theme .el-date-picker__time-label { + float: left; + cursor: pointer; + line-height: 30px; + margin-left: 10px; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .time-select { + margin: 5px 0; + min-width: 0; +} + +.custom-theme .time-select .el-picker-panel__content { + max-height: 200px; + margin: 0; +} + +.custom-theme .time-select-item { + padding: 8px 10px; + font-size: 14px; + line-height: 20px; +} + +.custom-theme .time-select-item.selected:not(.disabled) { + color: #262729; + font-weight: 700; +} + +.custom-theme .time-select-item.disabled { + color: #dfe4ed; + cursor: not-allowed; +} + +.custom-theme .time-select-item:hover { + background-color: #f5f7fa; + font-weight: 700; + cursor: pointer; +} + +.custom-theme .fade-in-linear-enter-active, +.custom-theme .fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .fade-in-linear-enter, +.custom-theme .fade-in-linear-leave, +.custom-theme .fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-linear-enter-active, +.custom-theme .el-fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.custom-theme .el-fade-in-linear-enter, +.custom-theme .el-fade-in-linear-leave, +.custom-theme .el-fade-in-linear-leave-active { + opacity: 0; +} + +.custom-theme .el-fade-in-enter-active, +.custom-theme .el-fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-fade-in-enter, +.custom-theme .el-fade-in-leave-active { + opacity: 0; +} + +.custom-theme .el-zoom-in-center-enter-active, +.custom-theme .el-zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-zoom-in-center-enter, +.custom-theme .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0); +} + +.custom-theme .el-zoom-in-top-enter-active, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center top; + transform-origin: center top; +} + +.custom-theme .el-zoom-in-top-enter, +.custom-theme .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-bottom-enter-active, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +.custom-theme .el-zoom-in-bottom-enter, +.custom-theme .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); +} + +.custom-theme .el-zoom-in-left-enter-active, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + -webkit-transform-origin: top left; + transform-origin: top left; +} + +.custom-theme .el-zoom-in-left-enter, +.custom-theme .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); +} + +.custom-theme .collapse-transition { + -webkit-transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; + transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; +} + +.custom-theme .horizontal-collapse-transition { + -webkit-transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; + transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; +} + +.custom-theme .el-list-enter-active, +.custom-theme .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s; +} + +.custom-theme .el-list-enter, +.custom-theme .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); +} + +.custom-theme .el-opacity-transition { + -webkit-transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: opacity 0.3s cubic-bezier(0.55, 0, 0.1, 1); +} + +.custom-theme .el-date-editor { + position: relative; + display: inline-block; + text-align: left; +} + +.custom-theme .el-date-editor.el-input, +.custom-theme .el-date-editor.el-input__inner { + width: 220px; +} + +.custom-theme .el-date-editor--daterange.el-input, +.custom-theme .el-date-editor--daterange.el-input__inner, +.custom-theme .el-date-editor--timerange.el-input, +.custom-theme .el-date-editor--timerange.el-input__inner { + width: 350px; +} + +.custom-theme .el-date-editor--datetimerange.el-input, +.custom-theme .el-date-editor--datetimerange.el-input__inner { + width: 400px; +} + +.custom-theme .el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #b4bccc; + float: left; + line-height: 32px; +} + +.custom-theme .el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #5a5e66; +} + +.custom-theme .el-date-editor .el-range-input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #2d2f33; +} + +.custom-theme .el-date-editor .el-range__close-icon { + font-size: 14px; + color: #b4bccc; + width: 25px; + display: inline-block; + float: right; + line-height: 32px; +} + +.custom-theme .el-range-editor.el-input__inner { + padding: 3px 10px; +} + +.custom-theme .el-range-editor.is-active { + border-color: #262729; +} + +.custom-theme .el-range-editor.is-active:hover { + border-color: #262729; +} + +.custom-theme .el-range-editor--medium.el-input__inner { + height: 36px; +} + +.custom-theme .el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range-input { + font-size: 14px; +} + +.custom-theme .el-range-editor--medium .el-range__close-icon, +.custom-theme .el-range-editor--medium .el-range__icon { + line-height: 28px; +} + +.custom-theme .el-range-editor--small.el-input__inner { + height: 32px; +} + +.custom-theme .el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range-input { + font-size: 13px; +} + +.custom-theme .el-range-editor--small .el-range__close-icon, +.custom-theme .el-range-editor--small .el-range__icon { + line-height: 24px; +} + +.custom-theme .el-range-editor--mini.el-input__inner { + height: 28px; +} + +.custom-theme .el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range-input { + font-size: 12px; +} + +.custom-theme .el-range-editor--mini .el-range__close-icon, +.custom-theme .el-range-editor--mini .el-range__icon { + line-height: 20px; +} + +.custom-theme .el-range-editor.is-disabled { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled:focus, +.custom-theme .el-range-editor.is-disabled:hover { + border-color: #dfe4ed; +} + +.custom-theme .el-range-editor.is-disabled input { + background-color: #f5f7fa; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled input::placeholder { + color: #b4bccc; +} + +.custom-theme .el-range-editor.is-disabled .el-range-separator { + color: #b4bccc; +} + +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper { + width: 33.3%; +} + +.custom-theme .el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2) { + margin-left: 1%; +} + +.custom-theme .el-time-spinner__wrapper { + max-height: 190px; + overflow: auto; + display: inline-block; + width: 50%; + vertical-align: top; + position: relative; +} + +.custom-theme .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 15px; +} + +.custom-theme .el-time-spinner__wrapper.is-arrow { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden; +} + +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__list { + -webkit-transform: translateY(-32px); + transform: translateY(-32px); +} + +.custom-theme .el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #fff; + cursor: default; +} + +.custom-theme .el-time-spinner__arrow { + font-size: 12px; + color: #878d99; + position: absolute; + left: 0; + width: 100%; + z-index: 1; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer; +} + +.custom-theme .el-time-spinner__arrow:hover { + color: #262729; +} + +.custom-theme .el-time-spinner__arrow.el-icon-arrow-up { + top: 10px; +} + +.custom-theme .el-time-spinner__arrow.el-icon-arrow-down { + bottom: 10px; +} + +.custom-theme .el-time-spinner__input.el-input { + width: 70%; +} + +.custom-theme .el-time-spinner__input.el-input .el-input__inner { + padding: 0; + text-align: center; +} + +.custom-theme .el-time-spinner__list { + padding: 0; + margin: 0; + list-style: none; + text-align: center; +} + +.custom-theme .el-time-spinner__list::after, +.custom-theme .el-time-spinner__list::before { + content: ''; + display: block; + width: 100%; + height: 80px; +} + +.custom-theme .el-time-spinner__item { + height: 32px; + line-height: 32px; + font-size: 12px; + color: #5a5e66; +} + +.custom-theme .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #f5f7fa; + cursor: pointer; +} + +.custom-theme .el-time-spinner__item.active:not(.disabled) { + color: #2d2f33; + font-weight: 700; +} + +.custom-theme .el-time-spinner__item.disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-time-panel { + margin: 5px 0; + border: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 2px; + position: absolute; + width: 180px; + left: 0; + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-time-panel__content { + font-size: 0; + position: relative; + overflow: hidden; +} + +.custom-theme .el-time-panel__content::after, +.custom-theme .el-time-panel__content::before { + content: ''; + top: 50%; + position: absolute; + margin-top: -15px; + height: 32px; + z-index: -1; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + text-align: left; + border-top: 1px solid #dfe4ed; + border-bottom: 1px solid #dfe4ed; +} + +.custom-theme .el-time-panel__content::after { + left: 50%; + margin-left: 12%; + margin-right: 12%; +} + +.custom-theme .el-time-panel__content::before { + padding-left: 50%; + margin-right: 12%; + margin-left: 12%; +} + +.custom-theme .el-time-panel__content.has-seconds::after { + left: calc(100% / 3 * 2); +} + +.custom-theme .el-time-panel__content.has-seconds::before { + padding-left: calc(100% / 3); +} + +.custom-theme .el-time-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + height: 36px; + line-height: 25px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-time-panel__btn { + border: none; + line-height: 28px; + padding: 0 5px; + margin: 0 5px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; + color: #2d2f33; +} + +.custom-theme .el-time-panel__btn.confirm { + font-weight: 800; + color: #262729; +} + +.custom-theme .el-time-panel .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-popover { + position: absolute; + background: #fff; + min-width: 150px; + border-radius: 4px; + border: 1px solid #e6ebf5; + padding: 12px; + z-index: 2000; + color: #5a5e66; + line-height: 1.4; + text-align: justify; + word-break: break-all; + font-size: 14px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} + +.custom-theme .el-popover--plain { + padding: 18px 20px; +} + +.custom-theme .el-popover__title { + color: #2d2f33; + font-size: 16px; + line-height: 1; + margin-bottom: 12px; +} + +.custom-theme .el-tooltip__popper { + position: absolute; + border-radius: 4px; + padding: 10px; + z-index: 2000; + font-size: 12px; + line-height: 1.2; +} + +.custom-theme .el-tooltip__popper .popper__arrow, +.custom-theme .el-tooltip__popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-tooltip__popper .popper__arrow { + border-width: 6px; +} + +.custom-theme .el-tooltip__popper .popper__arrow::after { + content: ' '; + border-width: 5px; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -5px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -5px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow { + left: -6px; + border-right-color: #2d2f33; + border-left-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after { + bottom: -5px; + left: 1px; + border-right-color: #2d2f33; + border-left-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow { + right: -6px; + border-right-width: 0; + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -5px; + margin-left: -5px; + border-right-width: 0; + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-dark { + background: #2d2f33; + color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light { + background: #fff; + border: 1px solid #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow { + border-top-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow::after { + border-top-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow { + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow::after { + border-bottom-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow { + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow::after { + border-left-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow { + border-right-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow::after { + border-right-color: #fff; +} + +.custom-theme .v-modal-enter { + -webkit-animation: v-modal-in 0.2s ease; + animation: v-modal-in 0.2s ease; +} + +.custom-theme .v-modal-leave { + -webkit-animation: v-modal-out 0.2s ease forwards; + animation: v-modal-out 0.2s ease forwards; +} + +@keyframes v-modal-in { + 0% { + opacity: 0; + } +} + +@keyframes v-modal-out { + 100% { + opacity: 0; + } +} + +.custom-theme .v-modal { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.5; + background: #000; +} + +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button + .el-button { + margin-left: 10px; +} + +.custom-theme .el-button.is-round { + padding: 12px 20px; +} + +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} + +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} + +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} + +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} + +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} + +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} + +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} + +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} + +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} + +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} + +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} + +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} + +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} + +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} + +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} + +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} + +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} + +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} + +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} + +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} + +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} + +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} + +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} + +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} + +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} + +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} + +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} + +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} + +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} + +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} + +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} + +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} + +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} + +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} + +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} + +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} + +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} + +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} + +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} + +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} + +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} + +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} + +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} + +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} + +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} + +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} + +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} + +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} + +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} + +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} + +.custom-theme .el-button-group::after { + clear: both; +} + +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} + +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} + +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} + +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} + +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} + +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-message-box { + display: inline-block; + width: 420px; + padding-bottom: 10px; + vertical-align: middle; + background-color: #fff; + border-radius: 4px; + border: 1px solid #e6ebf5; + font-size: 18px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + text-align: left; + overflow: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.custom-theme .el-message-box__wrapper { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + text-align: center; +} + +.custom-theme .el-message-box__wrapper::after { + content: ''; + display: inline-block; + height: 100%; + width: 0; + vertical-align: middle; +} + +.custom-theme .el-message-box__header { + position: relative; + padding: 15px; + padding-bottom: 10px; +} + +.custom-theme .el-message-box__title { + padding-left: 0; + margin-bottom: 0; + font-size: 18px; + line-height: 1; + color: #2d2f33; +} + +.custom-theme .el-message-box__headerbtn { + position: absolute; + top: 15px; + right: 15px; + padding: 0; + border: none; + outline: 0; + background: 0 0; + font-size: 16px; + cursor: pointer; +} + +.custom-theme .el-message-box__headerbtn .el-message-box__close { + color: #0a76a4; +} + +.custom-theme .el-message-box__headerbtn:focus .el-message-box__close, +.custom-theme .el-message-box__headerbtn:hover .el-message-box__close { + color: #262729; +} + +.custom-theme .el-message-box__content { + position: relative; + padding: 10px 15px; + color: #5a5e66; + font-size: 14px; +} + +.custom-theme .el-message-box__input { + padding-top: 15px; +} + +.custom-theme .el-message-box__input input.invalid { + border-color: #b3450e; +} + +.custom-theme .el-message-box__input input.invalid:focus { + border-color: #b3450e; +} + +.custom-theme .el-message-box__status { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 24px !important; +} + +.custom-theme .el-message-box__status::before { + padding-left: 1px; +} + +.custom-theme .el-message-box__status + .el-message-box__message { + padding-left: 36px; + padding-right: 12px; +} + +.custom-theme .el-message-box__status.el-icon-success { + color: #409167; +} + +.custom-theme .el-message-box__status.el-icon-info { + color: #0a76a4; +} + +.custom-theme .el-message-box__status.el-icon-warning { + color: #9da408; +} + +.custom-theme .el-message-box__status.el-icon-error { + color: #b3450e; +} + +.custom-theme .el-message-box__message { + margin: 0; +} + +.custom-theme .el-message-box__message p { + margin: 0; + line-height: 24px; +} + +.custom-theme .el-message-box__errormsg { + color: #b3450e; + font-size: 12px; + min-height: 18px; + margin-top: 2px; +} + +.custom-theme .el-message-box__btns { + padding: 5px 15px 0; + text-align: right; +} + +.custom-theme .el-message-box__btns button:nth-child(2) { + margin-left: 10px; +} + +.custom-theme .el-message-box__btns-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} + +.custom-theme .el-message-box--center { + padding-bottom: 30px; +} + +.custom-theme .el-message-box--center .el-message-box__header { + padding-top: 30px; +} + +.custom-theme .el-message-box--center .el-message-box__title { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.custom-theme .el-message-box--center .el-message-box__status { + position: relative; + top: auto; + padding-right: 5px; + text-align: center; + -webkit-transform: translateY(-1px); + transform: translateY(-1px); +} + +.custom-theme .el-message-box--center .el-message-box__message { + margin-left: 0; +} + +.custom-theme .el-message-box--center .el-message-box__btns, +.custom-theme .el-message-box--center .el-message-box__content { + text-align: center; +} + +.custom-theme .el-message-box--center .el-message-box__content { + padding-left: 27px; + padding-right: 27px; +} + +.custom-theme .msgbox-fade-enter-active { + -webkit-animation: msgbox-fade-in 0.3s; + animation: msgbox-fade-in 0.3s; +} + +.custom-theme .msgbox-fade-leave-active { + -webkit-animation: msgbox-fade-out 0.3s; + animation: msgbox-fade-out 0.3s; +} + +@-webkit-keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@-webkit-keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} + +@keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0; + } +} + +.custom-theme .el-breadcrumb { + font-size: 14px; + line-height: 1; +} + +.custom-theme .el-breadcrumb::after, +.custom-theme .el-breadcrumb::before { + display: table; + content: ''; +} + +.custom-theme .el-breadcrumb::after { + clear: both; +} + +.custom-theme .el-breadcrumb__separator { + margin: 0 9px; + font-weight: 700; + color: #b4bccc; +} + +.custom-theme .el-breadcrumb__separator[class*='icon'] { + margin: 0 6px; + font-weight: 400; +} + +.custom-theme .el-breadcrumb__item { + float: left; +} + +.custom-theme .el-breadcrumb__inner, +.custom-theme .el-breadcrumb__inner a { + font-weight: 700; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + color: #2d2f33; +} + +.custom-theme .el-breadcrumb__inner a:hover, +.custom-theme .el-breadcrumb__inner:hover { + color: #262729; + cursor: pointer; +} + +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover, +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover { + font-weight: 400; + color: #5a5e66; + cursor: text; +} + +.custom-theme .el-breadcrumb__item:last-child .el-breadcrumb__separator { + display: none; +} + +.custom-theme .el-form--label-left .el-form-item__label { + text-align: left; +} + +.custom-theme .el-form--label-top .el-form-item__label { + float: none; + display: inline-block; + text-align: left; + padding: 0 0 10px 0; +} + +.custom-theme .el-form--inline .el-form-item { + display: inline-block; + margin-right: 10px; + vertical-align: top; +} + +.custom-theme .el-form--inline .el-form-item__label { + float: none; + display: inline-block; +} + +.custom-theme .el-form--inline .el-form-item__content { + display: inline-block; + vertical-align: top; +} + +.custom-theme .el-form--inline.el-form--label-top .el-form-item__content { + display: block; +} + +.custom-theme .el-form-item { + margin-bottom: 22px; +} + +.custom-theme .el-form-item::after, +.custom-theme .el-form-item::before { + display: table; + content: ''; +} + +.custom-theme .el-form-item::after { + clear: both; +} + +.custom-theme .el-form-item .el-form-item { + margin-bottom: 0; +} + +.custom-theme .el-form-item .el-input__validateIcon { + display: none; +} + +.custom-theme .el-form-item--medium .el-form-item__label { + line-height: 36px; +} + +.custom-theme .el-form-item--medium .el-form-item__content { + line-height: 36px; +} + +.custom-theme .el-form-item--small .el-form-item__label { + line-height: 32px; +} + +.custom-theme .el-form-item--small .el-form-item__content { + line-height: 32px; +} + +.custom-theme .el-form-item--small.el-form-item { + margin-bottom: 18px; +} + +.custom-theme .el-form-item--small .el-form-item__error { + padding-top: 2px; +} + +.custom-theme .el-form-item--mini .el-form-item__label { + line-height: 28px; +} + +.custom-theme .el-form-item--mini .el-form-item__content { + line-height: 28px; +} + +.custom-theme .el-form-item--mini.el-form-item { + margin-bottom: 18px; +} + +.custom-theme .el-form-item--mini .el-form-item__error { + padding-top: 1px; +} + +.custom-theme .el-form-item__label { + text-align: right; + vertical-align: middle; + float: left; + font-size: 14px; + color: #5a5e66; + line-height: 40px; + padding: 0 12px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-form-item__content { + line-height: 40px; + position: relative; + font-size: 14px; +} + +.custom-theme .el-form-item__content::after, +.custom-theme .el-form-item__content::before { + display: table; + content: ''; +} + +.custom-theme .el-form-item__content::after { + clear: both; +} + +.custom-theme .el-form-item__error { + color: #b3450e; + font-size: 12px; + line-height: 1; + padding-top: 4px; + position: absolute; + top: 100%; + left: 0; +} + +.custom-theme .el-form-item__error--inline { + position: relative; + top: auto; + left: auto; + display: inline-block; + margin-left: 10px; +} + +.custom-theme .el-form-item.is-required .el-form-item__label:before { + content: '*'; + color: #b3450e; + margin-right: 4px; +} + +.custom-theme .el-form-item.is-error .el-input__inner, +.custom-theme .el-form-item.is-error .el-input__inner:focus, +.custom-theme .el-form-item.is-error .el-textarea__inner, +.custom-theme .el-form-item.is-error .el-textarea__inner:focus { + border-color: #b3450e; +} + +.custom-theme .el-form-item.is-error .el-input-group__append .el-input__inner, +.custom-theme .el-form-item.is-error .el-input-group__prepend .el-input__inner { + border-color: transparent; +} + +.custom-theme .el-form-item.is-error .el-input__validateIcon { + color: #b3450e; +} + +.custom-theme .el-form-item.is-success .el-input__inner, +.custom-theme .el-form-item.is-success .el-input__inner:focus, +.custom-theme .el-form-item.is-success .el-textarea__inner, +.custom-theme .el-form-item.is-success .el-textarea__inner:focus { + border-color: #409167; +} + +.custom-theme .el-form-item.is-success .el-input-group__append .el-input__inner, +.custom-theme .el-form-item.is-success .el-input-group__prepend .el-input__inner { + border-color: transparent; +} + +.custom-theme .el-form-item.is-success .el-input__validateIcon { + color: #409167; +} + +.custom-theme .el-form-item--feedback .el-input__validateIcon { + display: inline-block; +} + +.custom-theme .el-tabs__header { + padding: 0; + position: relative; + margin: 0 0 15px; +} + +.custom-theme .el-tabs__active-bar { + position: absolute; + bottom: 0; + left: 0; + height: 2px; + background-color: #262729; + z-index: 1; + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), + -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + list-style: none; +} + +.custom-theme .el-tabs__new-tab { + float: right; + border: 1px solid #d3dce6; + height: 18px; + width: 18px; + line-height: 18px; + margin: 12px 0 9px 10px; + border-radius: 3px; + text-align: center; + font-size: 12px; + color: #d3dce6; + cursor: pointer; + -webkit-transition: all 0.15s; + transition: all 0.15s; +} + +.custom-theme .el-tabs__new-tab .el-icon-plus { + -webkit-transform: scale(0.8, 0.8); + transform: scale(0.8, 0.8); +} + +.custom-theme .el-tabs__new-tab:hover { + color: #262729; +} + +.custom-theme .el-tabs__nav-wrap { + overflow: hidden; + margin-bottom: -1px; + position: relative; +} + +.custom-theme .el-tabs__nav-wrap::after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background-color: #dfe4ed; + z-index: 1; +} + +.custom-theme .el-tabs__nav-wrap.is-scrollable { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-tabs__nav-scroll { + overflow: hidden; +} + +.custom-theme .el-tabs__nav-next, +.custom-theme .el-tabs__nav-prev { + position: absolute; + cursor: pointer; + line-height: 44px; + font-size: 12px; + color: #878d99; +} + +.custom-theme .el-tabs__nav-next { + right: 0; +} + +.custom-theme .el-tabs__nav-prev { + left: 0; +} + +.custom-theme .el-tabs__nav { + white-space: nowrap; + position: relative; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + float: left; + z-index: 2; +} + +.custom-theme .el-tabs__item { + padding: 0 20px; + height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #2d2f33; + position: relative; +} + +.custom-theme .el-tabs__item:focus, +.custom-theme .el-tabs__item:focus:active { + outline: 0; +} + +.custom-theme .el-tabs__item .el-icon-close { + border-radius: 50%; + text-align: center; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + margin-left: 5px; +} + +.custom-theme .el-tabs__item .el-icon-close:before { + -webkit-transform: scale(0.9); + transform: scale(0.9); + display: inline-block; +} + +.custom-theme .el-tabs__item .el-icon-close:hover { + background-color: #b4bccc; + color: #fff; +} + +.custom-theme .el-tabs__item.is-active { + color: #262729; +} + +.custom-theme .el-tabs__item:hover { + color: #262729; + cursor: pointer; +} + +.custom-theme .el-tabs__item.is-disabled { + color: #b4bccc; + cursor: default; +} + +.custom-theme .el-tabs__content { + overflow: hidden; + position: relative; +} + +.custom-theme .el-tabs--card > .el-tabs__header { + border-bottom: 1px solid #dfe4ed; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__nav-wrap::after { + content: none; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__nav { + border: 1px solid #dfe4ed; + border-bottom: none; + border-radius: 4px 4px 0 0; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__active-bar { + display: none; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item .el-icon-close { + position: relative; + font-size: 12px; + width: 0; + height: 14px; + vertical-align: middle; + line-height: 15px; + overflow: hidden; + top: -1px; + right: -2px; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item { + border-bottom: 1px solid transparent; + border-left: 1px solid #dfe4ed; + -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item:first-child { + border-left: none; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-closable:hover { + padding-left: 13px; + padding-right: 13px; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close { + width: 14px; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-active { + border-bottom-color: #fff; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable { + padding-left: 20px; + padding-right: 20px; +} + +.custom-theme .el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close { + width: 14px; +} + +.custom-theme .el-tabs--border-card { + background: #fff; + border: 1px solid #d8dce5; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); +} + +.custom-theme .el-tabs--border-card > .el-tabs__content { + padding: 15px; +} + +.custom-theme .el-tabs--border-card > .el-tabs__header { + background-color: #f5f7fa; + border-bottom: 1px solid #dfe4ed; + margin: 0; +} + +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__nav-wrap::after { + content: none; +} + +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__item { + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + border: 1px solid transparent; + margin: -1px -1px 0; + color: #878d99; +} + +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { + color: #262729; + background-color: #fff; + border-right-color: #d8dce5; + border-left-color: #d8dce5; +} + +.custom-theme .el-tabs--border-card > .el-tabs__header .el-tabs__item:hover { + color: #262729; +} + +.custom-theme .el-tabs--bottom:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2), +.custom-theme .el-tabs--top:not(.el-tabs--border-card):not(.el-tabs--card) .el-tabs__item:nth-child(2) { + padding-left: 0; +} + +.custom-theme .el-tabs--bottom .el-tabs__header { + margin-bottom: 0; + margin-top: 10px; +} + +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__header { + border-bottom: 0; + border-top: 1px solid #d8dce5; +} + +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap { + margin-top: -1px; + margin-bottom: 0; +} + +.custom-theme .el-tabs--bottom.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: 0 -1px -1px -1px; +} + +.custom-theme .el-tabs--left, +.custom-theme .el-tabs--right { + overflow: hidden; +} + +.custom-theme .el-tabs--left .el-tabs__header, +.custom-theme .el-tabs--left .el-tabs__nav-scroll, +.custom-theme .el-tabs--left .el-tabs__nav-wrap, +.custom-theme .el-tabs--right .el-tabs__header, +.custom-theme .el-tabs--right .el-tabs__nav-scroll, +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + height: 100%; +} + +.custom-theme .el-tabs--left .el-tabs__active-bar, +.custom-theme .el-tabs--right .el-tabs__active-bar { + top: 0; + bottom: auto; + width: 2px; + height: auto; +} + +.custom-theme .el-tabs--left .el-tabs__nav-wrap, +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + margin-bottom: 0; +} + +.custom-theme .el-tabs--left .el-tabs__nav-wrap.is-scrollable, +.custom-theme .el-tabs--right .el-tabs__nav-wrap.is-scrollable { + padding: 30px 0; +} + +.custom-theme .el-tabs--left .el-tabs__nav-wrap::after, +.custom-theme .el-tabs--right .el-tabs__nav-wrap::after { + height: 100%; + width: 2px; + bottom: auto; + top: 0; +} + +.custom-theme .el-tabs--left .el-tabs__nav, +.custom-theme .el-tabs--right .el-tabs__nav { + float: none; +} + +.custom-theme .el-tabs--left .el-tabs__item, +.custom-theme .el-tabs--right .el-tabs__item { + display: block; +} + +.custom-theme .el-tabs--left .el-tabs__nav-next, +.custom-theme .el-tabs--left .el-tabs__nav-prev, +.custom-theme .el-tabs--right .el-tabs__nav-next, +.custom-theme .el-tabs--right .el-tabs__nav-prev { + height: 30px; + line-height: 30px; + width: 100%; + text-align: center; + cursor: pointer; +} + +.custom-theme .el-tabs--left .el-tabs__nav-next i, +.custom-theme .el-tabs--left .el-tabs__nav-prev i, +.custom-theme .el-tabs--right .el-tabs__nav-next i, +.custom-theme .el-tabs--right .el-tabs__nav-prev i { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); +} + +.custom-theme .el-tabs--left .el-tabs__nav-prev, +.custom-theme .el-tabs--right .el-tabs__nav-prev { + left: auto; + top: 0; +} + +.custom-theme .el-tabs--left .el-tabs__nav-next, +.custom-theme .el-tabs--right .el-tabs__nav-next { + right: auto; + bottom: 0; +} + +.custom-theme .el-tabs--left .el-tabs__header { + float: left; + margin-bottom: 0; + margin-right: 10px; +} + +.custom-theme .el-tabs--left .el-tabs__nav-wrap { + margin-right: -1px; +} + +.custom-theme .el-tabs--left .el-tabs__nav-wrap::after { + left: auto; + right: 0; +} + +.custom-theme .el-tabs--left .el-tabs__active-bar { + right: 0; + left: auto; +} + +.custom-theme .el-tabs--left .el-tabs__item { + text-align: right; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__active-bar { + display: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item { + border-left: none; + border-right: 1px solid #dfe4ed; + border-bottom: none; + border-top: 1px solid #dfe4ed; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item:first-child { + border-right: 1px solid #dfe4ed; + border-top: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active { + border: 1px solid #dfe4ed; + border-right-color: #fff; + border-left: none; + border-bottom: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:first-child { + border-top: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__item.is-active:last-child { + border-bottom: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__nav { + border-radius: 4px 0 0 4px; + border-bottom: 1px solid #dfe4ed; + border-right: none; +} + +.custom-theme .el-tabs--left.el-tabs--card .el-tabs__new-tab { + float: none; +} + +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__header { + border-right: 1px solid #dfe4ed; +} + +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: -1px 0 -1px -1px; +} + +.custom-theme .el-tabs--left.el-tabs--border-card .el-tabs__item.is-active { + border-color: transparent; + border-top-color: #d1dbe5; + border-bottom-color: #d1dbe5; +} + +.custom-theme .el-tabs--right .el-tabs__header { + float: right; + margin-bottom: 0; + margin-left: 10px; +} + +.custom-theme .el-tabs--right .el-tabs__nav-wrap { + margin-left: -1px; +} + +.custom-theme .el-tabs--right .el-tabs__nav-wrap::after { + left: 0; + right: auto; +} + +.custom-theme .el-tabs--right .el-tabs__active-bar { + left: 0; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__active-bar { + display: none; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item { + border-bottom: none; + border-top: 1px solid #dfe4ed; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item:first-child { + border-left: 1px solid #dfe4ed; + border-top: none; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active { + border: 1px solid #dfe4ed; + border-left-color: #fff; + border-right: none; + border-bottom: none; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:first-child { + border-top: none; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__item.is-active:last-child { + border-bottom: none; +} + +.custom-theme .el-tabs--right.el-tabs--card .el-tabs__nav { + border-radius: 0 4px 4px 0; + border-bottom: 1px solid #dfe4ed; + border-left: none; +} + +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__header { + border-left: 1px solid #dfe4ed; +} + +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item { + border: 1px solid transparent; + margin: -1px -1px -1px 0; +} + +.custom-theme .el-tabs--right.el-tabs--border-card .el-tabs__item.is-active { + border-color: transparent; + border-top-color: #d1dbe5; + border-bottom-color: #d1dbe5; +} + +.custom-theme .slideInLeft-transition, +.custom-theme .slideInRight-transition { + display: inline-block; +} + +.custom-theme .slideInRight-enter { + -webkit-animation: slideInRight-enter 0.3s; + animation: slideInRight-enter 0.3s; +} + +.custom-theme .slideInRight-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInRight-leave 0.3s; + animation: slideInRight-leave 0.3s; +} + +.custom-theme .slideInLeft-enter { + -webkit-animation: slideInLeft-enter 0.3s; + animation: slideInLeft-enter 0.3s; +} + +.custom-theme .slideInLeft-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInLeft-leave 0.3s; + animation: slideInLeft-leave 0.3s; +} + +@-webkit-keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@-webkit-keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; + } +} + +@keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; + } +} + +@-webkit-keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@-webkit-keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; + } +} + +@keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; + } +} + +.custom-theme .el-tag { + background-color: rgba(38, 39, 41, 0.1); + display: inline-block; + padding: 0 10px; + height: 32px; + line-height: 30px; + font-size: 12px; + color: #262729; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid rgba(38, 39, 41, 0.2); + white-space: nowrap; +} + +.custom-theme .el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 18px; + width: 18px; + line-height: 18px; + vertical-align: middle; + top: -1px; + right: -5px; + color: #262729; +} + +.custom-theme .el-tag .el-icon-close::before { + display: block; +} + +.custom-theme .el-tag .el-icon-close:hover { + background-color: #262729; + color: #fff; +} + +.custom-theme .el-tag--info { + background-color: rgba(10, 118, 164, 0.1); + border-color: rgba(10, 118, 164, 0.2); + color: #0a76a4; +} + +.custom-theme .el-tag--info.is-hit { + border-color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close { + color: #0a76a4; +} + +.custom-theme .el-tag--info .el-tag__close:hover { + background-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-tag--success { + background-color: rgba(64, 145, 103, 0.1); + border-color: rgba(64, 145, 103, 0.2); + color: #409167; +} + +.custom-theme .el-tag--success.is-hit { + border-color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close { + color: #409167; +} + +.custom-theme .el-tag--success .el-tag__close:hover { + background-color: #409167; + color: #fff; +} + +.custom-theme .el-tag--warning { + background-color: rgba(157, 164, 8, 0.1); + border-color: rgba(157, 164, 8, 0.2); + color: #9da408; +} + +.custom-theme .el-tag--warning.is-hit { + border-color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close { + color: #9da408; +} + +.custom-theme .el-tag--warning .el-tag__close:hover { + background-color: #9da408; + color: #fff; +} + +.custom-theme .el-tag--danger { + background-color: rgba(179, 69, 14, 0.1); + border-color: rgba(179, 69, 14, 0.2); + color: #b3450e; +} + +.custom-theme .el-tag--danger.is-hit { + border-color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close { + color: #b3450e; +} + +.custom-theme .el-tag--danger .el-tag__close:hover { + background-color: #b3450e; + color: #fff; +} + +.custom-theme .el-tag--medium { + height: 28px; + line-height: 26px; +} + +.custom-theme .el-tag--medium .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px; +} + +.custom-theme .el-tag--small .el-icon-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px; +} + +.custom-theme .el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(0.7); + transform: scale(0.7); +} + +.custom-theme .el-tree { + cursor: default; + background: #fff; + color: #5a5e66; +} + +.custom-theme .el-tree__empty-block { + position: relative; + min-height: 60px; + text-align: center; + width: 100%; + height: 100%; +} + +.custom-theme .el-tree__empty-text { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: #623615; +} + +.custom-theme .el-tree-node { + white-space: nowrap; +} + +.custom-theme .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 26px; + cursor: pointer; +} + +.custom-theme .el-tree-node__content > .el-tree-node__expand-icon { + padding: 6px; +} + +.custom-theme .el-tree-node__content > .el-checkbox { + margin-right: 8px; +} + +.custom-theme .el-tree-node__content:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-tree-node__expand-icon { + cursor: pointer; + color: #b4bccc; + font-size: 12px; + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: -webkit-transform 0.3s ease-in-out; + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; +} + +.custom-theme .el-tree-node__expand-icon.expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.custom-theme .el-tree-node__expand-icon.is-leaf { + color: transparent; + cursor: default; +} + +.custom-theme .el-tree-node__label { + font-size: 14px; +} + +.custom-theme .el-tree-node__loading-icon { + margin-right: 8px; + font-size: 14px; + color: #b4bccc; +} + +.custom-theme .el-tree-node > .el-tree-node__children { + overflow: hidden; + background-color: transparent; +} + +.custom-theme .el-tree-node.is-expanded > .el-tree-node__children { + display: block; +} + +.custom-theme .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { + background-color: #eee; +} + +.custom-theme .el-alert { + width: 100%; + padding: 8px 16px; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + position: relative; + background-color: #fff; + overflow: hidden; + opacity: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transition: opacity 0.2s; + transition: opacity 0.2s; +} + +.custom-theme .el-alert.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.custom-theme .el-alert--success { + background-color: #ecf4f0; + color: #409167; +} + +.custom-theme .el-alert--success .el-alert__description { + color: #409167; +} + +.custom-theme .el-alert--info { + background-color: #e7f1f6; + color: #0a76a4; +} + +.custom-theme .el-alert--info .el-alert__description { + color: #0a76a4; +} + +.custom-theme .el-alert--warning { + background-color: #f5f6e6; + color: #9da408; +} + +.custom-theme .el-alert--warning .el-alert__description { + color: #9da408; +} + +.custom-theme .el-alert--error { + background-color: #f7ece7; + color: #b3450e; +} + +.custom-theme .el-alert--error .el-alert__description { + color: #b3450e; +} + +.custom-theme .el-alert__content { + display: table-cell; + padding: 0 8px; +} + +.custom-theme .el-alert__icon { + font-size: 16px; + width: 16px; +} + +.custom-theme .el-alert__icon.is-big { + font-size: 28px; + width: 28px; +} + +.custom-theme .el-alert__title { + font-size: 13px; + line-height: 18px; +} + +.custom-theme .el-alert__title.is-bold { + font-weight: 700; +} + +.custom-theme .el-alert .el-alert__description { + font-size: 12px; + margin: 5px 0 0 0; +} + +.custom-theme .el-alert__closebtn { + font-size: 12px; + color: #b4bccc; + opacity: 1; + position: absolute; + top: 12px; + right: 15px; + cursor: pointer; +} + +.custom-theme .el-alert__closebtn.is-customed { + font-style: normal; + font-size: 13px; + top: 9px; +} + +.custom-theme .el-alert-fade-enter, +.custom-theme .el-alert-fade-leave-active { + opacity: 0; +} + +.custom-theme .el-notification { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 330px; + padding: 14px 26px 14px 13px; + border-radius: 8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #e6ebf5; + position: fixed; + background-color: #fff; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + -webkit-transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s, -webkit-transform 0.3s; + transition: opacity 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s, -webkit-transform 0.3s; + transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s; + transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s, -webkit-transform 0.3s; + overflow: hidden; +} + +.custom-theme .el-notification.right { + right: 16px; +} + +.custom-theme .el-notification.left { + left: 16px; +} + +.custom-theme .el-notification__group { + margin-left: 13px; +} + +.custom-theme .el-notification__title { + font-weight: 700; + font-size: 16px; + color: #2d2f33; + margin: 0; +} + +.custom-theme .el-notification__content { + font-size: 14px; + line-height: 21px; + margin: 6px 0 0 0; + color: #5a5e66; + text-align: justify; +} + +.custom-theme .el-notification__content p { + margin: 0; +} + +.custom-theme .el-notification__icon { + height: 24px; + width: 24px; + font-size: 24px; + -webkit-transform: translateY(4px); + transform: translateY(4px); +} + +.custom-theme .el-notification__closeBtn { + position: absolute; + top: 15px; + right: 15px; + cursor: pointer; + color: #878d99; + font-size: 16px; +} + +.custom-theme .el-notification__closeBtn:hover { + color: #5a5e66; +} + +.custom-theme .el-notification .el-icon-success { + color: #409167; +} + +.custom-theme .el-notification .el-icon-error { + color: #b3450e; +} + +.custom-theme .el-notification .el-icon-info { + color: #0a76a4; +} + +.custom-theme .el-notification .el-icon-warning { + color: #9da408; +} + +.custom-theme .el-notification-fade-enter.right { + right: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.custom-theme .el-notification-fade-enter.left { + left: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.custom-theme .el-notification-fade-leave-active { + opacity: 0; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input-number { + position: relative; + display: inline-block; + width: 180px; + line-height: 38px; +} + +.custom-theme .el-input-number .el-input { + display: block; +} + +.custom-theme .el-input-number .el-input__inner { + -webkit-appearance: none; + padding-left: 50px; + padding-right: 50px; + text-align: center; +} + +.custom-theme .el-input-number__decrease, +.custom-theme .el-input-number__increase { + position: absolute; + z-index: 1; + top: 1px; + width: 40px; + height: auto; + text-align: center; + background: #f5f7fa; + color: #5a5e66; + cursor: pointer; + font-size: 13px; +} + +.custom-theme .el-input-number__decrease:hover, +.custom-theme .el-input-number__increase:hover { + color: #262729; +} + +.custom-theme .el-input-number__decrease:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled), +.custom-theme .el-input-number__increase:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled) { + border-color: #262729; +} + +.custom-theme .el-input-number__decrease.is-disabled, +.custom-theme .el-input-number__increase.is-disabled { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input-number__increase { + right: 1px; + border-radius: 0 4px 4px 0; + border-left: 1px solid #d8dce5; +} + +.custom-theme .el-input-number__decrease { + left: 1px; + border-radius: 4px 0 0 4px; + border-right: 1px solid #d8dce5; +} + +.custom-theme .el-input-number.is-disabled .el-input-number__decrease, +.custom-theme .el-input-number.is-disabled .el-input-number__increase { + border-color: #dfe4ed; + color: #dfe4ed; +} + +.custom-theme .el-input-number.is-disabled .el-input-number__decrease:hover, +.custom-theme .el-input-number.is-disabled .el-input-number__increase:hover { + color: #dfe4ed; + cursor: not-allowed; +} + +.custom-theme .el-input-number--medium { + width: 200px; + line-height: 34px; +} + +.custom-theme .el-input-number--medium .el-input-number__decrease, +.custom-theme .el-input-number--medium .el-input-number__increase { + width: 36px; + font-size: 14px; +} + +.custom-theme .el-input-number--medium .el-input__inner { + padding-left: 43px; + padding-right: 43px; +} + +.custom-theme .el-input-number--small { + width: 130px; + line-height: 30px; +} + +.custom-theme .el-input-number--small .el-input-number__decrease, +.custom-theme .el-input-number--small .el-input-number__increase { + width: 32px; + font-size: 13px; +} + +.custom-theme .el-input-number--small .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number--small .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.9); + transform: scale(0.9); +} + +.custom-theme .el-input-number--small .el-input__inner { + padding-left: 39px; + padding-right: 39px; +} + +.custom-theme .el-input-number--mini { + width: 130px; + line-height: 26px; +} + +.custom-theme .el-input-number--mini .el-input-number__decrease, +.custom-theme .el-input-number--mini .el-input-number__increase { + width: 28px; + font-size: 12px; +} + +.custom-theme .el-input-number--mini .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number--mini .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-input-number--mini .el-input__inner { + padding-left: 35px; + padding-right: 35px; +} + +.custom-theme .el-input-number.is-without-controls .el-input__inner { + padding-left: 15px; + padding-right: 15px; +} + +.custom-theme .el-input-number.is-controls-right .el-input__inner { + padding-left: 15px; + padding-right: 50px; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease, +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + height: auto; + line-height: 19px; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease [class*='el-icon'], +.custom-theme .el-input-number.is-controls-right .el-input-number__increase [class*='el-icon'] { + -webkit-transform: scale(0.8); + transform: scale(0.8); +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__increase { + border-radius: 0 4px 0 0; + border-bottom: 1px solid #d8dce5; +} + +.custom-theme .el-input-number.is-controls-right .el-input-number__decrease { + right: 1px; + bottom: 1px; + top: auto; + left: auto; + border-right: none; + border-left: 1px solid #d8dce5; + border-radius: 0 0 4px 0; +} + +.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='medium'] [class*='increase'] { + line-height: 17px; +} + +.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='small'] [class*='increase'] { + line-height: 15px; +} + +.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='decrease'], +.custom-theme .el-input-number.is-controls-right[class*='mini'] [class*='increase'] { + line-height: 13px; +} + +.custom-theme .el-tooltip__popper { + position: absolute; + border-radius: 4px; + padding: 10px; + z-index: 2000; + font-size: 12px; + line-height: 1.2; +} + +.custom-theme .el-tooltip__popper .popper__arrow, +.custom-theme .el-tooltip__popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-tooltip__popper .popper__arrow { + border-width: 6px; +} + +.custom-theme .el-tooltip__popper .popper__arrow::after { + content: ' '; + border-width: 5px; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -5px; + border-top-color: #2d2f33; + border-bottom-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -5px; + border-top-width: 0; + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow { + left: -6px; + border-right-color: #2d2f33; + border-left-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='right'] .popper__arrow::after { + bottom: -5px; + left: 1px; + border-right-color: #2d2f33; + border-left-width: 0; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow { + right: -6px; + border-right-width: 0; + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -5px; + margin-left: -5px; + border-right-width: 0; + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-dark { + background: #2d2f33; + color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light { + background: #fff; + border: 1px solid #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow { + border-top-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='top'] .popper__arrow::after { + border-top-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow { + border-bottom-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='bottom'] .popper__arrow::after { + border-bottom-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow { + border-left-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='left'] .popper__arrow::after { + border-left-color: #fff; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow { + border-right-color: #2d2f33; +} + +.custom-theme .el-tooltip__popper.is-light[x-placement^='right'] .popper__arrow::after { + border-right-color: #fff; +} + +.custom-theme .el-slider::after, +.custom-theme .el-slider::before { + display: table; + content: ''; +} + +.custom-theme .el-slider::after { + clear: both; +} + +.custom-theme .el-slider__runway { + width: 100%; + height: 6px; + margin: 16px 0; + background-color: #dfe4ed; + border-radius: 3px; + position: relative; + cursor: pointer; + vertical-align: middle; +} + +.custom-theme .el-slider__runway.show-input { + margin-right: 160px; + width: auto; +} + +.custom-theme .el-slider__runway.disabled { + cursor: default; +} + +.custom-theme .el-slider__runway.disabled .el-slider__bar { + background-color: #b4bccc; +} + +.custom-theme .el-slider__runway.disabled .el-slider__button { + border-color: #b4bccc; +} + +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper:hover { + cursor: not-allowed; +} + +.custom-theme .el-slider__runway.disabled .el-slider__button-wrapper.dragging { + cursor: not-allowed; +} + +.custom-theme .el-slider__runway.disabled .el-slider__button.dragging, +.custom-theme .el-slider__runway.disabled .el-slider__button.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button:hover { + -webkit-transform: scale(1); + transform: scale(1); +} + +.custom-theme .el-slider__runway.disabled .el-slider__button.hover, +.custom-theme .el-slider__runway.disabled .el-slider__button:hover { + cursor: not-allowed; +} + +.custom-theme .el-slider__runway.disabled .el-slider__button.dragging { + cursor: not-allowed; +} + +.custom-theme .el-slider__input { + float: right; + margin-top: 3px; +} + +.custom-theme .el-slider__bar { + height: 6px; + background-color: #262729; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + position: absolute; +} + +.custom-theme .el-slider__button-wrapper { + height: 36px; + width: 36px; + position: absolute; + z-index: 1001; + top: -15px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + background-color: transparent; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-slider__button-wrapper::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-slider__button-wrapper .el-tooltip { + vertical-align: middle; + display: inline-block; +} + +.custom-theme .el-slider__button-wrapper.hover, +.custom-theme .el-slider__button-wrapper:hover { + cursor: -webkit-grab; + cursor: grab; +} + +.custom-theme .el-slider__button-wrapper.dragging { + cursor: -webkit-grabbing; + cursor: grabbing; +} + +.custom-theme .el-slider__button { + width: 16px; + height: 16px; + border: solid 2px #262729; + background-color: #fff; + border-radius: 50%; + -webkit-transition: 0.2s; + transition: 0.2s; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-slider__button.dragging, +.custom-theme .el-slider__button.hover, +.custom-theme .el-slider__button:hover { + -webkit-transform: scale(1.2); + transform: scale(1.2); +} + +.custom-theme .el-slider__button.hover, +.custom-theme .el-slider__button:hover { + cursor: -webkit-grab; + cursor: grab; +} + +.custom-theme .el-slider__button.dragging { + cursor: -webkit-grabbing; + cursor: grabbing; +} + +.custom-theme .el-slider__stop { + position: absolute; + height: 6px; + width: 6px; + border-radius: 100%; + background-color: #fff; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +.custom-theme .el-slider.is-vertical { + position: relative; +} + +.custom-theme .el-slider.is-vertical .el-slider__runway { + width: 4px; + height: 100%; + margin: 0 16px; +} + +.custom-theme .el-slider.is-vertical .el-slider__bar { + width: 4px; + height: auto; + border-radius: 0 0 3px 3px; +} + +.custom-theme .el-slider.is-vertical .el-slider__button-wrapper { + top: auto; + left: -15px; + -webkit-transform: translateY(50%); + transform: translateY(50%); +} + +.custom-theme .el-slider.is-vertical .el-slider__stop { + -webkit-transform: translateY(50%); + transform: translateY(50%); +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input { + padding-bottom: 58px; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input { + overflow: visible; + float: none; + position: absolute; + bottom: 22px; + width: 36px; + margin-top: 15px; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner { + text-align: center; + padding-left: 5px; + padding-right: 5px; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease, +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase { + top: 32px; + margin-top: -1px; + border: 1px solid #d8dce5; + line-height: 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease { + width: 18px; + right: 18px; + border-bottom-left-radius: 4px; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase { + width: 19px; + border-bottom-right-radius: 4px; +} + +.custom-theme +.el-slider.is-vertical.el-slider--with-input +.el-slider__input +.el-input-number__increase +~ .el-input +.el-input__inner { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease, +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase { + border-color: #b4bccc; +} + +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease, +.custom-theme .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase { + border-color: #262729; +} + +.custom-theme .el-loading-parent--relative { + position: relative !important; +} + +.custom-theme .el-loading-parent--hidden { + overflow: hidden !important; +} + +.custom-theme .el-loading-mask { + position: absolute; + z-index: 10000; + background-color: rgba(255, 255, 255, 0.9); + margin: 0; + top: 0; + right: 0; + bottom: 0; + left: 0; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} + +.custom-theme .el-loading-mask.is-fullscreen { + position: fixed; +} + +.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner { + margin-top: -25px; +} + +.custom-theme .el-loading-mask.is-fullscreen .el-loading-spinner .circular { + height: 50px; + width: 50px; +} + +.custom-theme .el-loading-spinner { + top: 50%; + margin-top: -21px; + width: 100%; + text-align: center; + position: absolute; +} + +.custom-theme .el-loading-spinner .el-loading-text { + color: #262729; + margin: 3px 0; + font-size: 14px; +} + +.custom-theme .el-loading-spinner .circular { + height: 42px; + width: 42px; + -webkit-animation: loading-rotate 2s linear infinite; + animation: loading-rotate 2s linear infinite; +} + +.custom-theme .el-loading-spinner .path { + -webkit-animation: loading-dash 1.5s ease-in-out infinite; + animation: loading-dash 1.5s ease-in-out infinite; + stroke-dasharray: 90, 150; + stroke-dashoffset: 0; + stroke-width: 2; + stroke: #262729; + stroke-linecap: round; +} + +.custom-theme .el-loading-spinner i { + color: #262729; +} + +.custom-theme .el-loading-fade-enter, +.custom-theme .el-loading-fade-leave-active { + opacity: 0; +} + +@-webkit-keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px; + } +} + +@keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px; + } +} + +.custom-theme .el-row { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-row::after, +.custom-theme .el-row::before { + display: table; + content: ''; +} + +.custom-theme .el-row::after { + clear: both; +} + +.custom-theme .el-row--flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.custom-theme .el-row--flex:after, +.custom-theme .el-row--flex:before { + display: none; +} + +.custom-theme .el-row--flex.is-justify-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.custom-theme .el-row--flex.is-justify-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.custom-theme .el-row--flex.is-justify-space-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.custom-theme .el-row--flex.is-justify-space-around { + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.custom-theme .el-row--flex.is-align-middle { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.custom-theme .el-row--flex.is-align-bottom { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} + +.custom-theme [class*='el-col-'] { + float: left; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-col-0 { + display: none; +} + +.custom-theme .el-col-1 { + width: 4.16667%; +} + +.custom-theme .el-col-offset-1 { + margin-left: 4.16667%; +} + +.custom-theme .el-col-pull-1 { + position: relative; + right: 4.16667%; +} + +.custom-theme .el-col-push-1 { + position: relative; + left: 4.16667%; +} + +.custom-theme .el-col-2 { + width: 8.33333%; +} + +.custom-theme .el-col-offset-2 { + margin-left: 8.33333%; +} + +.custom-theme .el-col-pull-2 { + position: relative; + right: 8.33333%; +} + +.custom-theme .el-col-push-2 { + position: relative; + left: 8.33333%; +} + +.custom-theme .el-col-3 { + width: 12.5%; +} + +.custom-theme .el-col-offset-3 { + margin-left: 12.5%; +} + +.custom-theme .el-col-pull-3 { + position: relative; + right: 12.5%; +} + +.custom-theme .el-col-push-3 { + position: relative; + left: 12.5%; +} + +.custom-theme .el-col-4 { + width: 16.66667%; +} + +.custom-theme .el-col-offset-4 { + margin-left: 16.66667%; +} + +.custom-theme .el-col-pull-4 { + position: relative; + right: 16.66667%; +} + +.custom-theme .el-col-push-4 { + position: relative; + left: 16.66667%; +} + +.custom-theme .el-col-5 { + width: 20.83333%; +} + +.custom-theme .el-col-offset-5 { + margin-left: 20.83333%; +} + +.custom-theme .el-col-pull-5 { + position: relative; + right: 20.83333%; +} + +.custom-theme .el-col-push-5 { + position: relative; + left: 20.83333%; +} + +.custom-theme .el-col-6 { + width: 25%; +} + +.custom-theme .el-col-offset-6 { + margin-left: 25%; +} + +.custom-theme .el-col-pull-6 { + position: relative; + right: 25%; +} + +.custom-theme .el-col-push-6 { + position: relative; + left: 25%; +} + +.custom-theme .el-col-7 { + width: 29.16667%; +} + +.custom-theme .el-col-offset-7 { + margin-left: 29.16667%; +} + +.custom-theme .el-col-pull-7 { + position: relative; + right: 29.16667%; +} + +.custom-theme .el-col-push-7 { + position: relative; + left: 29.16667%; +} + +.custom-theme .el-col-8 { + width: 33.33333%; +} + +.custom-theme .el-col-offset-8 { + margin-left: 33.33333%; +} + +.custom-theme .el-col-pull-8 { + position: relative; + right: 33.33333%; +} + +.custom-theme .el-col-push-8 { + position: relative; + left: 33.33333%; +} + +.custom-theme .el-col-9 { + width: 37.5%; +} + +.custom-theme .el-col-offset-9 { + margin-left: 37.5%; +} + +.custom-theme .el-col-pull-9 { + position: relative; + right: 37.5%; +} + +.custom-theme .el-col-push-9 { + position: relative; + left: 37.5%; +} + +.custom-theme .el-col-10 { + width: 41.66667%; +} + +.custom-theme .el-col-offset-10 { + margin-left: 41.66667%; +} + +.custom-theme .el-col-pull-10 { + position: relative; + right: 41.66667%; +} + +.custom-theme .el-col-push-10 { + position: relative; + left: 41.66667%; +} + +.custom-theme .el-col-11 { + width: 45.83333%; +} + +.custom-theme .el-col-offset-11 { + margin-left: 45.83333%; +} + +.custom-theme .el-col-pull-11 { + position: relative; + right: 45.83333%; +} + +.custom-theme .el-col-push-11 { + position: relative; + left: 45.83333%; +} + +.custom-theme .el-col-12 { + width: 50%; +} + +.custom-theme .el-col-offset-12 { + margin-left: 50%; +} + +.custom-theme .el-col-pull-12 { + position: relative; + right: 50%; +} + +.custom-theme .el-col-push-12 { + position: relative; + left: 50%; +} + +.custom-theme .el-col-13 { + width: 54.16667%; +} + +.custom-theme .el-col-offset-13 { + margin-left: 54.16667%; +} + +.custom-theme .el-col-pull-13 { + position: relative; + right: 54.16667%; +} + +.custom-theme .el-col-push-13 { + position: relative; + left: 54.16667%; +} + +.custom-theme .el-col-14 { + width: 58.33333%; +} + +.custom-theme .el-col-offset-14 { + margin-left: 58.33333%; +} + +.custom-theme .el-col-pull-14 { + position: relative; + right: 58.33333%; +} + +.custom-theme .el-col-push-14 { + position: relative; + left: 58.33333%; +} + +.custom-theme .el-col-15 { + width: 62.5%; +} + +.custom-theme .el-col-offset-15 { + margin-left: 62.5%; +} + +.custom-theme .el-col-pull-15 { + position: relative; + right: 62.5%; +} + +.custom-theme .el-col-push-15 { + position: relative; + left: 62.5%; +} + +.custom-theme .el-col-16 { + width: 66.66667%; +} + +.custom-theme .el-col-offset-16 { + margin-left: 66.66667%; +} + +.custom-theme .el-col-pull-16 { + position: relative; + right: 66.66667%; +} + +.custom-theme .el-col-push-16 { + position: relative; + left: 66.66667%; +} + +.custom-theme .el-col-17 { + width: 70.83333%; +} + +.custom-theme .el-col-offset-17 { + margin-left: 70.83333%; +} + +.custom-theme .el-col-pull-17 { + position: relative; + right: 70.83333%; +} + +.custom-theme .el-col-push-17 { + position: relative; + left: 70.83333%; +} + +.custom-theme .el-col-18 { + width: 75%; +} + +.custom-theme .el-col-offset-18 { + margin-left: 75%; +} + +.custom-theme .el-col-pull-18 { + position: relative; + right: 75%; +} + +.custom-theme .el-col-push-18 { + position: relative; + left: 75%; +} + +.custom-theme .el-col-19 { + width: 79.16667%; +} + +.custom-theme .el-col-offset-19 { + margin-left: 79.16667%; +} + +.custom-theme .el-col-pull-19 { + position: relative; + right: 79.16667%; +} + +.custom-theme .el-col-push-19 { + position: relative; + left: 79.16667%; +} + +.custom-theme .el-col-20 { + width: 83.33333%; +} + +.custom-theme .el-col-offset-20 { + margin-left: 83.33333%; +} + +.custom-theme .el-col-pull-20 { + position: relative; + right: 83.33333%; +} + +.custom-theme .el-col-push-20 { + position: relative; + left: 83.33333%; +} + +.custom-theme .el-col-21 { + width: 87.5%; +} + +.custom-theme .el-col-offset-21 { + margin-left: 87.5%; +} + +.custom-theme .el-col-pull-21 { + position: relative; + right: 87.5%; +} + +.custom-theme .el-col-push-21 { + position: relative; + left: 87.5%; +} + +.custom-theme .el-col-22 { + width: 91.66667%; +} + +.custom-theme .el-col-offset-22 { + margin-left: 91.66667%; +} + +.custom-theme .el-col-pull-22 { + position: relative; + right: 91.66667%; +} + +.custom-theme .el-col-push-22 { + position: relative; + left: 91.66667%; +} + +.custom-theme .el-col-23 { + width: 95.83333%; +} + +.custom-theme .el-col-offset-23 { + margin-left: 95.83333%; +} + +.custom-theme .el-col-pull-23 { + position: relative; + right: 95.83333%; +} + +.custom-theme .el-col-push-23 { + position: relative; + left: 95.83333%; +} + +.custom-theme .el-col-24 { + width: 100%; +} + +.custom-theme .el-col-offset-24 { + margin-left: 100%; +} + +.custom-theme .el-col-pull-24 { + position: relative; + right: 100%; +} + +.custom-theme .el-col-push-24 { + position: relative; + left: 100%; +} + +@media only screen and (max-width: 768px) { + .custom-theme .el-col-xs-0 { + display: none; + } + + .custom-theme .el-col-xs-1 { + width: 4.16667%; + } + + .custom-theme .el-col-xs-offset-1 { + margin-left: 4.16667%; + } + + .custom-theme .el-col-xs-pull-1 { + position: relative; + right: 4.16667%; + } + + .custom-theme .el-col-xs-push-1 { + position: relative; + left: 4.16667%; + } + + .custom-theme .el-col-xs-2 { + width: 8.33333%; + } + + .custom-theme .el-col-xs-offset-2 { + margin-left: 8.33333%; + } + + .custom-theme .el-col-xs-pull-2 { + position: relative; + right: 8.33333%; + } + + .custom-theme .el-col-xs-push-2 { + position: relative; + left: 8.33333%; + } + + .custom-theme .el-col-xs-3 { + width: 12.5%; + } + + .custom-theme .el-col-xs-offset-3 { + margin-left: 12.5%; + } + + .custom-theme .el-col-xs-pull-3 { + position: relative; + right: 12.5%; + } + + .custom-theme .el-col-xs-push-3 { + position: relative; + left: 12.5%; + } + + .custom-theme .el-col-xs-4 { + width: 16.66667%; + } + + .custom-theme .el-col-xs-offset-4 { + margin-left: 16.66667%; + } + + .custom-theme .el-col-xs-pull-4 { + position: relative; + right: 16.66667%; + } + + .custom-theme .el-col-xs-push-4 { + position: relative; + left: 16.66667%; + } + + .custom-theme .el-col-xs-5 { + width: 20.83333%; + } + + .custom-theme .el-col-xs-offset-5 { + margin-left: 20.83333%; + } + + .custom-theme .el-col-xs-pull-5 { + position: relative; + right: 20.83333%; + } + + .custom-theme .el-col-xs-push-5 { + position: relative; + left: 20.83333%; + } + + .custom-theme .el-col-xs-6 { + width: 25%; + } + + .custom-theme .el-col-xs-offset-6 { + margin-left: 25%; + } + + .custom-theme .el-col-xs-pull-6 { + position: relative; + right: 25%; + } + + .custom-theme .el-col-xs-push-6 { + position: relative; + left: 25%; + } + + .custom-theme .el-col-xs-7 { + width: 29.16667%; + } + + .custom-theme .el-col-xs-offset-7 { + margin-left: 29.16667%; + } + + .custom-theme .el-col-xs-pull-7 { + position: relative; + right: 29.16667%; + } + + .custom-theme .el-col-xs-push-7 { + position: relative; + left: 29.16667%; + } + + .custom-theme .el-col-xs-8 { + width: 33.33333%; + } + + .custom-theme .el-col-xs-offset-8 { + margin-left: 33.33333%; + } + + .custom-theme .el-col-xs-pull-8 { + position: relative; + right: 33.33333%; + } + + .custom-theme .el-col-xs-push-8 { + position: relative; + left: 33.33333%; + } + + .custom-theme .el-col-xs-9 { + width: 37.5%; + } + + .custom-theme .el-col-xs-offset-9 { + margin-left: 37.5%; + } + + .custom-theme .el-col-xs-pull-9 { + position: relative; + right: 37.5%; + } + + .custom-theme .el-col-xs-push-9 { + position: relative; + left: 37.5%; + } + + .custom-theme .el-col-xs-10 { + width: 41.66667%; + } + + .custom-theme .el-col-xs-offset-10 { + margin-left: 41.66667%; + } + + .custom-theme .el-col-xs-pull-10 { + position: relative; + right: 41.66667%; + } + + .custom-theme .el-col-xs-push-10 { + position: relative; + left: 41.66667%; + } + + .custom-theme .el-col-xs-11 { + width: 45.83333%; + } + + .custom-theme .el-col-xs-offset-11 { + margin-left: 45.83333%; + } + + .custom-theme .el-col-xs-pull-11 { + position: relative; + right: 45.83333%; + } + + .custom-theme .el-col-xs-push-11 { + position: relative; + left: 45.83333%; + } + + .custom-theme .el-col-xs-12 { + width: 50%; + } + + .custom-theme .el-col-xs-offset-12 { + margin-left: 50%; + } + + .custom-theme .el-col-xs-pull-12 { + position: relative; + right: 50%; + } + + .custom-theme .el-col-xs-push-12 { + position: relative; + left: 50%; + } + + .custom-theme .el-col-xs-13 { + width: 54.16667%; + } + + .custom-theme .el-col-xs-offset-13 { + margin-left: 54.16667%; + } + + .custom-theme .el-col-xs-pull-13 { + position: relative; + right: 54.16667%; + } + + .custom-theme .el-col-xs-push-13 { + position: relative; + left: 54.16667%; + } + + .custom-theme .el-col-xs-14 { + width: 58.33333%; + } + + .custom-theme .el-col-xs-offset-14 { + margin-left: 58.33333%; + } + + .custom-theme .el-col-xs-pull-14 { + position: relative; + right: 58.33333%; + } + + .custom-theme .el-col-xs-push-14 { + position: relative; + left: 58.33333%; + } + + .custom-theme .el-col-xs-15 { + width: 62.5%; + } + + .custom-theme .el-col-xs-offset-15 { + margin-left: 62.5%; + } + + .custom-theme .el-col-xs-pull-15 { + position: relative; + right: 62.5%; + } + + .custom-theme .el-col-xs-push-15 { + position: relative; + left: 62.5%; + } + + .custom-theme .el-col-xs-16 { + width: 66.66667%; + } + + .custom-theme .el-col-xs-offset-16 { + margin-left: 66.66667%; + } + + .custom-theme .el-col-xs-pull-16 { + position: relative; + right: 66.66667%; + } + + .custom-theme .el-col-xs-push-16 { + position: relative; + left: 66.66667%; + } + + .custom-theme .el-col-xs-17 { + width: 70.83333%; + } + + .custom-theme .el-col-xs-offset-17 { + margin-left: 70.83333%; + } + + .custom-theme .el-col-xs-pull-17 { + position: relative; + right: 70.83333%; + } + + .custom-theme .el-col-xs-push-17 { + position: relative; + left: 70.83333%; + } + + .custom-theme .el-col-xs-18 { + width: 75%; + } + + .custom-theme .el-col-xs-offset-18 { + margin-left: 75%; + } + + .custom-theme .el-col-xs-pull-18 { + position: relative; + right: 75%; + } + + .custom-theme .el-col-xs-push-18 { + position: relative; + left: 75%; + } + + .custom-theme .el-col-xs-19 { + width: 79.16667%; + } + + .custom-theme .el-col-xs-offset-19 { + margin-left: 79.16667%; + } + + .custom-theme .el-col-xs-pull-19 { + position: relative; + right: 79.16667%; + } + + .custom-theme .el-col-xs-push-19 { + position: relative; + left: 79.16667%; + } + + .custom-theme .el-col-xs-20 { + width: 83.33333%; + } + + .custom-theme .el-col-xs-offset-20 { + margin-left: 83.33333%; + } + + .custom-theme .el-col-xs-pull-20 { + position: relative; + right: 83.33333%; + } + + .custom-theme .el-col-xs-push-20 { + position: relative; + left: 83.33333%; + } + + .custom-theme .el-col-xs-21 { + width: 87.5%; + } + + .custom-theme .el-col-xs-offset-21 { + margin-left: 87.5%; + } + + .custom-theme .el-col-xs-pull-21 { + position: relative; + right: 87.5%; + } + + .custom-theme .el-col-xs-push-21 { + position: relative; + left: 87.5%; + } + + .custom-theme .el-col-xs-22 { + width: 91.66667%; + } + + .custom-theme .el-col-xs-offset-22 { + margin-left: 91.66667%; + } + + .custom-theme .el-col-xs-pull-22 { + position: relative; + right: 91.66667%; + } + + .custom-theme .el-col-xs-push-22 { + position: relative; + left: 91.66667%; + } + + .custom-theme .el-col-xs-23 { + width: 95.83333%; + } + + .custom-theme .el-col-xs-offset-23 { + margin-left: 95.83333%; + } + + .custom-theme .el-col-xs-pull-23 { + position: relative; + right: 95.83333%; + } + + .custom-theme .el-col-xs-push-23 { + position: relative; + left: 95.83333%; + } + + .custom-theme .el-col-xs-24 { + width: 100%; + } + + .custom-theme .el-col-xs-offset-24 { + margin-left: 100%; + } + + .custom-theme .el-col-xs-pull-24 { + position: relative; + right: 100%; + } + + .custom-theme .el-col-xs-push-24 { + position: relative; + left: 100%; + } +} + +@media only screen and (min-width: 768px) { + .custom-theme .el-col-sm-0 { + display: none; + } + + .custom-theme .el-col-sm-1 { + width: 4.16667%; + } + + .custom-theme .el-col-sm-offset-1 { + margin-left: 4.16667%; + } + + .custom-theme .el-col-sm-pull-1 { + position: relative; + right: 4.16667%; + } + + .custom-theme .el-col-sm-push-1 { + position: relative; + left: 4.16667%; + } + + .custom-theme .el-col-sm-2 { + width: 8.33333%; + } + + .custom-theme .el-col-sm-offset-2 { + margin-left: 8.33333%; + } + + .custom-theme .el-col-sm-pull-2 { + position: relative; + right: 8.33333%; + } + + .custom-theme .el-col-sm-push-2 { + position: relative; + left: 8.33333%; + } + + .custom-theme .el-col-sm-3 { + width: 12.5%; + } + + .custom-theme .el-col-sm-offset-3 { + margin-left: 12.5%; + } + + .custom-theme .el-col-sm-pull-3 { + position: relative; + right: 12.5%; + } + + .custom-theme .el-col-sm-push-3 { + position: relative; + left: 12.5%; + } + + .custom-theme .el-col-sm-4 { + width: 16.66667%; + } + + .custom-theme .el-col-sm-offset-4 { + margin-left: 16.66667%; + } + + .custom-theme .el-col-sm-pull-4 { + position: relative; + right: 16.66667%; + } + + .custom-theme .el-col-sm-push-4 { + position: relative; + left: 16.66667%; + } + + .custom-theme .el-col-sm-5 { + width: 20.83333%; + } + + .custom-theme .el-col-sm-offset-5 { + margin-left: 20.83333%; + } + + .custom-theme .el-col-sm-pull-5 { + position: relative; + right: 20.83333%; + } + + .custom-theme .el-col-sm-push-5 { + position: relative; + left: 20.83333%; + } + + .custom-theme .el-col-sm-6 { + width: 25%; + } + + .custom-theme .el-col-sm-offset-6 { + margin-left: 25%; + } + + .custom-theme .el-col-sm-pull-6 { + position: relative; + right: 25%; + } + + .custom-theme .el-col-sm-push-6 { + position: relative; + left: 25%; + } + + .custom-theme .el-col-sm-7 { + width: 29.16667%; + } + + .custom-theme .el-col-sm-offset-7 { + margin-left: 29.16667%; + } + + .custom-theme .el-col-sm-pull-7 { + position: relative; + right: 29.16667%; + } + + .custom-theme .el-col-sm-push-7 { + position: relative; + left: 29.16667%; + } + + .custom-theme .el-col-sm-8 { + width: 33.33333%; + } + + .custom-theme .el-col-sm-offset-8 { + margin-left: 33.33333%; + } + + .custom-theme .el-col-sm-pull-8 { + position: relative; + right: 33.33333%; + } + + .custom-theme .el-col-sm-push-8 { + position: relative; + left: 33.33333%; + } + + .custom-theme .el-col-sm-9 { + width: 37.5%; + } + + .custom-theme .el-col-sm-offset-9 { + margin-left: 37.5%; + } + + .custom-theme .el-col-sm-pull-9 { + position: relative; + right: 37.5%; + } + + .custom-theme .el-col-sm-push-9 { + position: relative; + left: 37.5%; + } + + .custom-theme .el-col-sm-10 { + width: 41.66667%; + } + + .custom-theme .el-col-sm-offset-10 { + margin-left: 41.66667%; + } + + .custom-theme .el-col-sm-pull-10 { + position: relative; + right: 41.66667%; + } + + .custom-theme .el-col-sm-push-10 { + position: relative; + left: 41.66667%; + } + + .custom-theme .el-col-sm-11 { + width: 45.83333%; + } + + .custom-theme .el-col-sm-offset-11 { + margin-left: 45.83333%; + } + + .custom-theme .el-col-sm-pull-11 { + position: relative; + right: 45.83333%; + } + + .custom-theme .el-col-sm-push-11 { + position: relative; + left: 45.83333%; + } + + .custom-theme .el-col-sm-12 { + width: 50%; + } + + .custom-theme .el-col-sm-offset-12 { + margin-left: 50%; + } + + .custom-theme .el-col-sm-pull-12 { + position: relative; + right: 50%; + } + + .custom-theme .el-col-sm-push-12 { + position: relative; + left: 50%; + } + + .custom-theme .el-col-sm-13 { + width: 54.16667%; + } + + .custom-theme .el-col-sm-offset-13 { + margin-left: 54.16667%; + } + + .custom-theme .el-col-sm-pull-13 { + position: relative; + right: 54.16667%; + } + + .custom-theme .el-col-sm-push-13 { + position: relative; + left: 54.16667%; + } + + .custom-theme .el-col-sm-14 { + width: 58.33333%; + } + + .custom-theme .el-col-sm-offset-14 { + margin-left: 58.33333%; + } + + .custom-theme .el-col-sm-pull-14 { + position: relative; + right: 58.33333%; + } + + .custom-theme .el-col-sm-push-14 { + position: relative; + left: 58.33333%; + } + + .custom-theme .el-col-sm-15 { + width: 62.5%; + } + + .custom-theme .el-col-sm-offset-15 { + margin-left: 62.5%; + } + + .custom-theme .el-col-sm-pull-15 { + position: relative; + right: 62.5%; + } + + .custom-theme .el-col-sm-push-15 { + position: relative; + left: 62.5%; + } + + .custom-theme .el-col-sm-16 { + width: 66.66667%; + } + + .custom-theme .el-col-sm-offset-16 { + margin-left: 66.66667%; + } + + .custom-theme .el-col-sm-pull-16 { + position: relative; + right: 66.66667%; + } + + .custom-theme .el-col-sm-push-16 { + position: relative; + left: 66.66667%; + } + + .custom-theme .el-col-sm-17 { + width: 70.83333%; + } + + .custom-theme .el-col-sm-offset-17 { + margin-left: 70.83333%; + } + + .custom-theme .el-col-sm-pull-17 { + position: relative; + right: 70.83333%; + } + + .custom-theme .el-col-sm-push-17 { + position: relative; + left: 70.83333%; + } + + .custom-theme .el-col-sm-18 { + width: 75%; + } + + .custom-theme .el-col-sm-offset-18 { + margin-left: 75%; + } + + .custom-theme .el-col-sm-pull-18 { + position: relative; + right: 75%; + } + + .custom-theme .el-col-sm-push-18 { + position: relative; + left: 75%; + } + + .custom-theme .el-col-sm-19 { + width: 79.16667%; + } + + .custom-theme .el-col-sm-offset-19 { + margin-left: 79.16667%; + } + + .custom-theme .el-col-sm-pull-19 { + position: relative; + right: 79.16667%; + } + + .custom-theme .el-col-sm-push-19 { + position: relative; + left: 79.16667%; + } + + .custom-theme .el-col-sm-20 { + width: 83.33333%; + } + + .custom-theme .el-col-sm-offset-20 { + margin-left: 83.33333%; + } + + .custom-theme .el-col-sm-pull-20 { + position: relative; + right: 83.33333%; + } + + .custom-theme .el-col-sm-push-20 { + position: relative; + left: 83.33333%; + } + + .custom-theme .el-col-sm-21 { + width: 87.5%; + } + + .custom-theme .el-col-sm-offset-21 { + margin-left: 87.5%; + } + + .custom-theme .el-col-sm-pull-21 { + position: relative; + right: 87.5%; + } + + .custom-theme .el-col-sm-push-21 { + position: relative; + left: 87.5%; + } + + .custom-theme .el-col-sm-22 { + width: 91.66667%; + } + + .custom-theme .el-col-sm-offset-22 { + margin-left: 91.66667%; + } + + .custom-theme .el-col-sm-pull-22 { + position: relative; + right: 91.66667%; + } + + .custom-theme .el-col-sm-push-22 { + position: relative; + left: 91.66667%; + } + + .custom-theme .el-col-sm-23 { + width: 95.83333%; + } + + .custom-theme .el-col-sm-offset-23 { + margin-left: 95.83333%; + } + + .custom-theme .el-col-sm-pull-23 { + position: relative; + right: 95.83333%; + } + + .custom-theme .el-col-sm-push-23 { + position: relative; + left: 95.83333%; + } + + .custom-theme .el-col-sm-24 { + width: 100%; + } + + .custom-theme .el-col-sm-offset-24 { + margin-left: 100%; + } + + .custom-theme .el-col-sm-pull-24 { + position: relative; + right: 100%; + } + + .custom-theme .el-col-sm-push-24 { + position: relative; + left: 100%; + } +} + +@media only screen and (min-width: 992px) { + .custom-theme .el-col-md-0 { + display: none; + } + + .custom-theme .el-col-md-1 { + width: 4.16667%; + } + + .custom-theme .el-col-md-offset-1 { + margin-left: 4.16667%; + } + + .custom-theme .el-col-md-pull-1 { + position: relative; + right: 4.16667%; + } + + .custom-theme .el-col-md-push-1 { + position: relative; + left: 4.16667%; + } + + .custom-theme .el-col-md-2 { + width: 8.33333%; + } + + .custom-theme .el-col-md-offset-2 { + margin-left: 8.33333%; + } + + .custom-theme .el-col-md-pull-2 { + position: relative; + right: 8.33333%; + } + + .custom-theme .el-col-md-push-2 { + position: relative; + left: 8.33333%; + } + + .custom-theme .el-col-md-3 { + width: 12.5%; + } + + .custom-theme .el-col-md-offset-3 { + margin-left: 12.5%; + } + + .custom-theme .el-col-md-pull-3 { + position: relative; + right: 12.5%; + } + + .custom-theme .el-col-md-push-3 { + position: relative; + left: 12.5%; + } + + .custom-theme .el-col-md-4 { + width: 16.66667%; + } + + .custom-theme .el-col-md-offset-4 { + margin-left: 16.66667%; + } + + .custom-theme .el-col-md-pull-4 { + position: relative; + right: 16.66667%; + } + + .custom-theme .el-col-md-push-4 { + position: relative; + left: 16.66667%; + } + + .custom-theme .el-col-md-5 { + width: 20.83333%; + } + + .custom-theme .el-col-md-offset-5 { + margin-left: 20.83333%; + } + + .custom-theme .el-col-md-pull-5 { + position: relative; + right: 20.83333%; + } + + .custom-theme .el-col-md-push-5 { + position: relative; + left: 20.83333%; + } + + .custom-theme .el-col-md-6 { + width: 25%; + } + + .custom-theme .el-col-md-offset-6 { + margin-left: 25%; + } + + .custom-theme .el-col-md-pull-6 { + position: relative; + right: 25%; + } + + .custom-theme .el-col-md-push-6 { + position: relative; + left: 25%; + } + + .custom-theme .el-col-md-7 { + width: 29.16667%; + } + + .custom-theme .el-col-md-offset-7 { + margin-left: 29.16667%; + } + + .custom-theme .el-col-md-pull-7 { + position: relative; + right: 29.16667%; + } + + .custom-theme .el-col-md-push-7 { + position: relative; + left: 29.16667%; + } + + .custom-theme .el-col-md-8 { + width: 33.33333%; + } + + .custom-theme .el-col-md-offset-8 { + margin-left: 33.33333%; + } + + .custom-theme .el-col-md-pull-8 { + position: relative; + right: 33.33333%; + } + + .custom-theme .el-col-md-push-8 { + position: relative; + left: 33.33333%; + } + + .custom-theme .el-col-md-9 { + width: 37.5%; + } + + .custom-theme .el-col-md-offset-9 { + margin-left: 37.5%; + } + + .custom-theme .el-col-md-pull-9 { + position: relative; + right: 37.5%; + } + + .custom-theme .el-col-md-push-9 { + position: relative; + left: 37.5%; + } + + .custom-theme .el-col-md-10 { + width: 41.66667%; + } + + .custom-theme .el-col-md-offset-10 { + margin-left: 41.66667%; + } + + .custom-theme .el-col-md-pull-10 { + position: relative; + right: 41.66667%; + } + + .custom-theme .el-col-md-push-10 { + position: relative; + left: 41.66667%; + } + + .custom-theme .el-col-md-11 { + width: 45.83333%; + } + + .custom-theme .el-col-md-offset-11 { + margin-left: 45.83333%; + } + + .custom-theme .el-col-md-pull-11 { + position: relative; + right: 45.83333%; + } + + .custom-theme .el-col-md-push-11 { + position: relative; + left: 45.83333%; + } + + .custom-theme .el-col-md-12 { + width: 50%; + } + + .custom-theme .el-col-md-offset-12 { + margin-left: 50%; + } + + .custom-theme .el-col-md-pull-12 { + position: relative; + right: 50%; + } + + .custom-theme .el-col-md-push-12 { + position: relative; + left: 50%; + } + + .custom-theme .el-col-md-13 { + width: 54.16667%; + } + + .custom-theme .el-col-md-offset-13 { + margin-left: 54.16667%; + } + + .custom-theme .el-col-md-pull-13 { + position: relative; + right: 54.16667%; + } + + .custom-theme .el-col-md-push-13 { + position: relative; + left: 54.16667%; + } + + .custom-theme .el-col-md-14 { + width: 58.33333%; + } + + .custom-theme .el-col-md-offset-14 { + margin-left: 58.33333%; + } + + .custom-theme .el-col-md-pull-14 { + position: relative; + right: 58.33333%; + } + + .custom-theme .el-col-md-push-14 { + position: relative; + left: 58.33333%; + } + + .custom-theme .el-col-md-15 { + width: 62.5%; + } + + .custom-theme .el-col-md-offset-15 { + margin-left: 62.5%; + } + + .custom-theme .el-col-md-pull-15 { + position: relative; + right: 62.5%; + } + + .custom-theme .el-col-md-push-15 { + position: relative; + left: 62.5%; + } + + .custom-theme .el-col-md-16 { + width: 66.66667%; + } + + .custom-theme .el-col-md-offset-16 { + margin-left: 66.66667%; + } + + .custom-theme .el-col-md-pull-16 { + position: relative; + right: 66.66667%; + } + + .custom-theme .el-col-md-push-16 { + position: relative; + left: 66.66667%; + } + + .custom-theme .el-col-md-17 { + width: 70.83333%; + } + + .custom-theme .el-col-md-offset-17 { + margin-left: 70.83333%; + } + + .custom-theme .el-col-md-pull-17 { + position: relative; + right: 70.83333%; + } + + .custom-theme .el-col-md-push-17 { + position: relative; + left: 70.83333%; + } + + .custom-theme .el-col-md-18 { + width: 75%; + } + + .custom-theme .el-col-md-offset-18 { + margin-left: 75%; + } + + .custom-theme .el-col-md-pull-18 { + position: relative; + right: 75%; + } + + .custom-theme .el-col-md-push-18 { + position: relative; + left: 75%; + } + + .custom-theme .el-col-md-19 { + width: 79.16667%; + } + + .custom-theme .el-col-md-offset-19 { + margin-left: 79.16667%; + } + + .custom-theme .el-col-md-pull-19 { + position: relative; + right: 79.16667%; + } + + .custom-theme .el-col-md-push-19 { + position: relative; + left: 79.16667%; + } + + .custom-theme .el-col-md-20 { + width: 83.33333%; + } + + .custom-theme .el-col-md-offset-20 { + margin-left: 83.33333%; + } + + .custom-theme .el-col-md-pull-20 { + position: relative; + right: 83.33333%; + } + + .custom-theme .el-col-md-push-20 { + position: relative; + left: 83.33333%; + } + + .custom-theme .el-col-md-21 { + width: 87.5%; + } + + .custom-theme .el-col-md-offset-21 { + margin-left: 87.5%; + } + + .custom-theme .el-col-md-pull-21 { + position: relative; + right: 87.5%; + } + + .custom-theme .el-col-md-push-21 { + position: relative; + left: 87.5%; + } + + .custom-theme .el-col-md-22 { + width: 91.66667%; + } + + .custom-theme .el-col-md-offset-22 { + margin-left: 91.66667%; + } + + .custom-theme .el-col-md-pull-22 { + position: relative; + right: 91.66667%; + } + + .custom-theme .el-col-md-push-22 { + position: relative; + left: 91.66667%; + } + + .custom-theme .el-col-md-23 { + width: 95.83333%; + } + + .custom-theme .el-col-md-offset-23 { + margin-left: 95.83333%; + } + + .custom-theme .el-col-md-pull-23 { + position: relative; + right: 95.83333%; + } + + .custom-theme .el-col-md-push-23 { + position: relative; + left: 95.83333%; + } + + .custom-theme .el-col-md-24 { + width: 100%; + } + + .custom-theme .el-col-md-offset-24 { + margin-left: 100%; + } + + .custom-theme .el-col-md-pull-24 { + position: relative; + right: 100%; + } + + .custom-theme .el-col-md-push-24 { + position: relative; + left: 100%; + } +} + +@media only screen and (min-width: 1200px) { + .custom-theme .el-col-lg-0 { + display: none; + } + + .custom-theme .el-col-lg-1 { + width: 4.16667%; + } + + .custom-theme .el-col-lg-offset-1 { + margin-left: 4.16667%; + } + + .custom-theme .el-col-lg-pull-1 { + position: relative; + right: 4.16667%; + } + + .custom-theme .el-col-lg-push-1 { + position: relative; + left: 4.16667%; + } + + .custom-theme .el-col-lg-2 { + width: 8.33333%; + } + + .custom-theme .el-col-lg-offset-2 { + margin-left: 8.33333%; + } + + .custom-theme .el-col-lg-pull-2 { + position: relative; + right: 8.33333%; + } + + .custom-theme .el-col-lg-push-2 { + position: relative; + left: 8.33333%; + } + + .custom-theme .el-col-lg-3 { + width: 12.5%; + } + + .custom-theme .el-col-lg-offset-3 { + margin-left: 12.5%; + } + + .custom-theme .el-col-lg-pull-3 { + position: relative; + right: 12.5%; + } + + .custom-theme .el-col-lg-push-3 { + position: relative; + left: 12.5%; + } + + .custom-theme .el-col-lg-4 { + width: 16.66667%; + } + + .custom-theme .el-col-lg-offset-4 { + margin-left: 16.66667%; + } + + .custom-theme .el-col-lg-pull-4 { + position: relative; + right: 16.66667%; + } + + .custom-theme .el-col-lg-push-4 { + position: relative; + left: 16.66667%; + } + + .custom-theme .el-col-lg-5 { + width: 20.83333%; + } + + .custom-theme .el-col-lg-offset-5 { + margin-left: 20.83333%; + } + + .custom-theme .el-col-lg-pull-5 { + position: relative; + right: 20.83333%; + } + + .custom-theme .el-col-lg-push-5 { + position: relative; + left: 20.83333%; + } + + .custom-theme .el-col-lg-6 { + width: 25%; + } + + .custom-theme .el-col-lg-offset-6 { + margin-left: 25%; + } + + .custom-theme .el-col-lg-pull-6 { + position: relative; + right: 25%; + } + + .custom-theme .el-col-lg-push-6 { + position: relative; + left: 25%; + } + + .custom-theme .el-col-lg-7 { + width: 29.16667%; + } + + .custom-theme .el-col-lg-offset-7 { + margin-left: 29.16667%; + } + + .custom-theme .el-col-lg-pull-7 { + position: relative; + right: 29.16667%; + } + + .custom-theme .el-col-lg-push-7 { + position: relative; + left: 29.16667%; + } + + .custom-theme .el-col-lg-8 { + width: 33.33333%; + } + + .custom-theme .el-col-lg-offset-8 { + margin-left: 33.33333%; + } + + .custom-theme .el-col-lg-pull-8 { + position: relative; + right: 33.33333%; + } + + .custom-theme .el-col-lg-push-8 { + position: relative; + left: 33.33333%; + } + + .custom-theme .el-col-lg-9 { + width: 37.5%; + } + + .custom-theme .el-col-lg-offset-9 { + margin-left: 37.5%; + } + + .custom-theme .el-col-lg-pull-9 { + position: relative; + right: 37.5%; + } + + .custom-theme .el-col-lg-push-9 { + position: relative; + left: 37.5%; + } + + .custom-theme .el-col-lg-10 { + width: 41.66667%; + } + + .custom-theme .el-col-lg-offset-10 { + margin-left: 41.66667%; + } + + .custom-theme .el-col-lg-pull-10 { + position: relative; + right: 41.66667%; + } + + .custom-theme .el-col-lg-push-10 { + position: relative; + left: 41.66667%; + } + + .custom-theme .el-col-lg-11 { + width: 45.83333%; + } + + .custom-theme .el-col-lg-offset-11 { + margin-left: 45.83333%; + } + + .custom-theme .el-col-lg-pull-11 { + position: relative; + right: 45.83333%; + } + + .custom-theme .el-col-lg-push-11 { + position: relative; + left: 45.83333%; + } + + .custom-theme .el-col-lg-12 { + width: 50%; + } + + .custom-theme .el-col-lg-offset-12 { + margin-left: 50%; + } + + .custom-theme .el-col-lg-pull-12 { + position: relative; + right: 50%; + } + + .custom-theme .el-col-lg-push-12 { + position: relative; + left: 50%; + } + + .custom-theme .el-col-lg-13 { + width: 54.16667%; + } + + .custom-theme .el-col-lg-offset-13 { + margin-left: 54.16667%; + } + + .custom-theme .el-col-lg-pull-13 { + position: relative; + right: 54.16667%; + } + + .custom-theme .el-col-lg-push-13 { + position: relative; + left: 54.16667%; + } + + .custom-theme .el-col-lg-14 { + width: 58.33333%; + } + + .custom-theme .el-col-lg-offset-14 { + margin-left: 58.33333%; + } + + .custom-theme .el-col-lg-pull-14 { + position: relative; + right: 58.33333%; + } + + .custom-theme .el-col-lg-push-14 { + position: relative; + left: 58.33333%; + } + + .custom-theme .el-col-lg-15 { + width: 62.5%; + } + + .custom-theme .el-col-lg-offset-15 { + margin-left: 62.5%; + } + + .custom-theme .el-col-lg-pull-15 { + position: relative; + right: 62.5%; + } + + .custom-theme .el-col-lg-push-15 { + position: relative; + left: 62.5%; + } + + .custom-theme .el-col-lg-16 { + width: 66.66667%; + } + + .custom-theme .el-col-lg-offset-16 { + margin-left: 66.66667%; + } + + .custom-theme .el-col-lg-pull-16 { + position: relative; + right: 66.66667%; + } + + .custom-theme .el-col-lg-push-16 { + position: relative; + left: 66.66667%; + } + + .custom-theme .el-col-lg-17 { + width: 70.83333%; + } + + .custom-theme .el-col-lg-offset-17 { + margin-left: 70.83333%; + } + + .custom-theme .el-col-lg-pull-17 { + position: relative; + right: 70.83333%; + } + + .custom-theme .el-col-lg-push-17 { + position: relative; + left: 70.83333%; + } + + .custom-theme .el-col-lg-18 { + width: 75%; + } + + .custom-theme .el-col-lg-offset-18 { + margin-left: 75%; + } + + .custom-theme .el-col-lg-pull-18 { + position: relative; + right: 75%; + } + + .custom-theme .el-col-lg-push-18 { + position: relative; + left: 75%; + } + + .custom-theme .el-col-lg-19 { + width: 79.16667%; + } + + .custom-theme .el-col-lg-offset-19 { + margin-left: 79.16667%; + } + + .custom-theme .el-col-lg-pull-19 { + position: relative; + right: 79.16667%; + } + + .custom-theme .el-col-lg-push-19 { + position: relative; + left: 79.16667%; + } + + .custom-theme .el-col-lg-20 { + width: 83.33333%; + } + + .custom-theme .el-col-lg-offset-20 { + margin-left: 83.33333%; + } + + .custom-theme .el-col-lg-pull-20 { + position: relative; + right: 83.33333%; + } + + .custom-theme .el-col-lg-push-20 { + position: relative; + left: 83.33333%; + } + + .custom-theme .el-col-lg-21 { + width: 87.5%; + } + + .custom-theme .el-col-lg-offset-21 { + margin-left: 87.5%; + } + + .custom-theme .el-col-lg-pull-21 { + position: relative; + right: 87.5%; + } + + .custom-theme .el-col-lg-push-21 { + position: relative; + left: 87.5%; + } + + .custom-theme .el-col-lg-22 { + width: 91.66667%; + } + + .custom-theme .el-col-lg-offset-22 { + margin-left: 91.66667%; + } + + .custom-theme .el-col-lg-pull-22 { + position: relative; + right: 91.66667%; + } + + .custom-theme .el-col-lg-push-22 { + position: relative; + left: 91.66667%; + } + + .custom-theme .el-col-lg-23 { + width: 95.83333%; + } + + .custom-theme .el-col-lg-offset-23 { + margin-left: 95.83333%; + } + + .custom-theme .el-col-lg-pull-23 { + position: relative; + right: 95.83333%; + } + + .custom-theme .el-col-lg-push-23 { + position: relative; + left: 95.83333%; + } + + .custom-theme .el-col-lg-24 { + width: 100%; + } + + .custom-theme .el-col-lg-offset-24 { + margin-left: 100%; + } + + .custom-theme .el-col-lg-pull-24 { + position: relative; + right: 100%; + } + + .custom-theme .el-col-lg-push-24 { + position: relative; + left: 100%; + } +} + +@media only screen and (min-width: 1920px) { + .custom-theme .el-col-xl-0 { + display: none; + } + + .custom-theme .el-col-xl-1 { + width: 4.16667%; + } + + .custom-theme .el-col-xl-offset-1 { + margin-left: 4.16667%; + } + + .custom-theme .el-col-xl-pull-1 { + position: relative; + right: 4.16667%; + } + + .custom-theme .el-col-xl-push-1 { + position: relative; + left: 4.16667%; + } + + .custom-theme .el-col-xl-2 { + width: 8.33333%; + } + + .custom-theme .el-col-xl-offset-2 { + margin-left: 8.33333%; + } + + .custom-theme .el-col-xl-pull-2 { + position: relative; + right: 8.33333%; + } + + .custom-theme .el-col-xl-push-2 { + position: relative; + left: 8.33333%; + } + + .custom-theme .el-col-xl-3 { + width: 12.5%; + } + + .custom-theme .el-col-xl-offset-3 { + margin-left: 12.5%; + } + + .custom-theme .el-col-xl-pull-3 { + position: relative; + right: 12.5%; + } + + .custom-theme .el-col-xl-push-3 { + position: relative; + left: 12.5%; + } + + .custom-theme .el-col-xl-4 { + width: 16.66667%; + } + + .custom-theme .el-col-xl-offset-4 { + margin-left: 16.66667%; + } + + .custom-theme .el-col-xl-pull-4 { + position: relative; + right: 16.66667%; + } + + .custom-theme .el-col-xl-push-4 { + position: relative; + left: 16.66667%; + } + + .custom-theme .el-col-xl-5 { + width: 20.83333%; + } + + .custom-theme .el-col-xl-offset-5 { + margin-left: 20.83333%; + } + + .custom-theme .el-col-xl-pull-5 { + position: relative; + right: 20.83333%; + } + + .custom-theme .el-col-xl-push-5 { + position: relative; + left: 20.83333%; + } + + .custom-theme .el-col-xl-6 { + width: 25%; + } + + .custom-theme .el-col-xl-offset-6 { + margin-left: 25%; + } + + .custom-theme .el-col-xl-pull-6 { + position: relative; + right: 25%; + } + + .custom-theme .el-col-xl-push-6 { + position: relative; + left: 25%; + } + + .custom-theme .el-col-xl-7 { + width: 29.16667%; + } + + .custom-theme .el-col-xl-offset-7 { + margin-left: 29.16667%; + } + + .custom-theme .el-col-xl-pull-7 { + position: relative; + right: 29.16667%; + } + + .custom-theme .el-col-xl-push-7 { + position: relative; + left: 29.16667%; + } + + .custom-theme .el-col-xl-8 { + width: 33.33333%; + } + + .custom-theme .el-col-xl-offset-8 { + margin-left: 33.33333%; + } + + .custom-theme .el-col-xl-pull-8 { + position: relative; + right: 33.33333%; + } + + .custom-theme .el-col-xl-push-8 { + position: relative; + left: 33.33333%; + } + + .custom-theme .el-col-xl-9 { + width: 37.5%; + } + + .custom-theme .el-col-xl-offset-9 { + margin-left: 37.5%; + } + + .custom-theme .el-col-xl-pull-9 { + position: relative; + right: 37.5%; + } + + .custom-theme .el-col-xl-push-9 { + position: relative; + left: 37.5%; + } + + .custom-theme .el-col-xl-10 { + width: 41.66667%; + } + + .custom-theme .el-col-xl-offset-10 { + margin-left: 41.66667%; + } + + .custom-theme .el-col-xl-pull-10 { + position: relative; + right: 41.66667%; + } + + .custom-theme .el-col-xl-push-10 { + position: relative; + left: 41.66667%; + } + + .custom-theme .el-col-xl-11 { + width: 45.83333%; + } + + .custom-theme .el-col-xl-offset-11 { + margin-left: 45.83333%; + } + + .custom-theme .el-col-xl-pull-11 { + position: relative; + right: 45.83333%; + } + + .custom-theme .el-col-xl-push-11 { + position: relative; + left: 45.83333%; + } + + .custom-theme .el-col-xl-12 { + width: 50%; + } + + .custom-theme .el-col-xl-offset-12 { + margin-left: 50%; + } + + .custom-theme .el-col-xl-pull-12 { + position: relative; + right: 50%; + } + + .custom-theme .el-col-xl-push-12 { + position: relative; + left: 50%; + } + + .custom-theme .el-col-xl-13 { + width: 54.16667%; + } + + .custom-theme .el-col-xl-offset-13 { + margin-left: 54.16667%; + } + + .custom-theme .el-col-xl-pull-13 { + position: relative; + right: 54.16667%; + } + + .custom-theme .el-col-xl-push-13 { + position: relative; + left: 54.16667%; + } + + .custom-theme .el-col-xl-14 { + width: 58.33333%; + } + + .custom-theme .el-col-xl-offset-14 { + margin-left: 58.33333%; + } + + .custom-theme .el-col-xl-pull-14 { + position: relative; + right: 58.33333%; + } + + .custom-theme .el-col-xl-push-14 { + position: relative; + left: 58.33333%; + } + + .custom-theme .el-col-xl-15 { + width: 62.5%; + } + + .custom-theme .el-col-xl-offset-15 { + margin-left: 62.5%; + } + + .custom-theme .el-col-xl-pull-15 { + position: relative; + right: 62.5%; + } + + .custom-theme .el-col-xl-push-15 { + position: relative; + left: 62.5%; + } + + .custom-theme .el-col-xl-16 { + width: 66.66667%; + } + + .custom-theme .el-col-xl-offset-16 { + margin-left: 66.66667%; + } + + .custom-theme .el-col-xl-pull-16 { + position: relative; + right: 66.66667%; + } + + .custom-theme .el-col-xl-push-16 { + position: relative; + left: 66.66667%; + } + + .custom-theme .el-col-xl-17 { + width: 70.83333%; + } + + .custom-theme .el-col-xl-offset-17 { + margin-left: 70.83333%; + } + + .custom-theme .el-col-xl-pull-17 { + position: relative; + right: 70.83333%; + } + + .custom-theme .el-col-xl-push-17 { + position: relative; + left: 70.83333%; + } + + .custom-theme .el-col-xl-18 { + width: 75%; + } + + .custom-theme .el-col-xl-offset-18 { + margin-left: 75%; + } + + .custom-theme .el-col-xl-pull-18 { + position: relative; + right: 75%; + } + + .custom-theme .el-col-xl-push-18 { + position: relative; + left: 75%; + } + + .custom-theme .el-col-xl-19 { + width: 79.16667%; + } + + .custom-theme .el-col-xl-offset-19 { + margin-left: 79.16667%; + } + + .custom-theme .el-col-xl-pull-19 { + position: relative; + right: 79.16667%; + } + + .custom-theme .el-col-xl-push-19 { + position: relative; + left: 79.16667%; + } + + .custom-theme .el-col-xl-20 { + width: 83.33333%; + } + + .custom-theme .el-col-xl-offset-20 { + margin-left: 83.33333%; + } + + .custom-theme .el-col-xl-pull-20 { + position: relative; + right: 83.33333%; + } + + .custom-theme .el-col-xl-push-20 { + position: relative; + left: 83.33333%; + } + + .custom-theme .el-col-xl-21 { + width: 87.5%; + } + + .custom-theme .el-col-xl-offset-21 { + margin-left: 87.5%; + } + + .custom-theme .el-col-xl-pull-21 { + position: relative; + right: 87.5%; + } + + .custom-theme .el-col-xl-push-21 { + position: relative; + left: 87.5%; + } + + .custom-theme .el-col-xl-22 { + width: 91.66667%; + } + + .custom-theme .el-col-xl-offset-22 { + margin-left: 91.66667%; + } + + .custom-theme .el-col-xl-pull-22 { + position: relative; + right: 91.66667%; + } + + .custom-theme .el-col-xl-push-22 { + position: relative; + left: 91.66667%; + } + + .custom-theme .el-col-xl-23 { + width: 95.83333%; + } + + .custom-theme .el-col-xl-offset-23 { + margin-left: 95.83333%; + } + + .custom-theme .el-col-xl-pull-23 { + position: relative; + right: 95.83333%; + } + + .custom-theme .el-col-xl-push-23 { + position: relative; + left: 95.83333%; + } + + .custom-theme .el-col-xl-24 { + width: 100%; + } + + .custom-theme .el-col-xl-offset-24 { + margin-left: 100%; + } + + .custom-theme .el-col-xl-pull-24 { + position: relative; + right: 100%; + } + + .custom-theme .el-col-xl-push-24 { + position: relative; + left: 100%; + } +} + +.custom-theme .el-progress { + position: relative; + line-height: 1; +} + +.custom-theme .el-progress__text { + font-size: 14px; + color: #5a5e66; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + line-height: 1; +} + +.custom-theme .el-progress__text i { + vertical-align: middle; + display: block; +} + +.custom-theme .el-progress--circle { + display: inline-block; +} + +.custom-theme .el-progress--circle .el-progress__text { + position: absolute; + top: 50%; + left: 0; + width: 100%; + text-align: center; + margin: 0; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); +} + +.custom-theme .el-progress--circle .el-progress__text i { + vertical-align: middle; + display: inline-block; +} + +.custom-theme .el-progress--without-text .el-progress__text { + display: none; +} + +.custom-theme .el-progress--without-text .el-progress-bar { + padding-right: 0; + margin-right: 0; + display: block; +} + +.custom-theme .el-progress--text-inside .el-progress-bar { + padding-right: 0; + margin-right: 0; +} + +.custom-theme .el-progress.is-success .el-progress-bar__inner { + background-color: #409167; +} + +.custom-theme .el-progress.is-success .el-progress__text { + color: #409167; +} + +.custom-theme .el-progress.is-exception .el-progress-bar__inner { + background-color: #b3450e; +} + +.custom-theme .el-progress.is-exception .el-progress__text { + color: #b3450e; +} + +.custom-theme .el-progress-bar { + padding-right: 50px; + display: inline-block; + vertical-align: middle; + width: 100%; + margin-right: -55px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-progress-bar__outer { + height: 6px; + border-radius: 100px; + background-color: #e6ebf5; + overflow: hidden; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-progress-bar__inner { + position: absolute; + left: 0; + top: 0; + height: 100%; + background-color: #262729; + text-align: right; + border-radius: 100px; + line-height: 1; + white-space: nowrap; +} + +.custom-theme .el-progress-bar__inner::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-progress-bar__innerText { + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 12px; + margin: 0 5px; +} + +@-webkit-keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} + +@keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} + +.custom-theme .el-upload { + display: inline-block; + text-align: center; + cursor: pointer; +} + +.custom-theme .el-upload__input { + display: none; +} + +.custom-theme .el-upload__tip { + font-size: 12px; + color: #5a5e66; + margin-top: 7px; +} + +.custom-theme .el-upload iframe { + position: absolute; + z-index: -1; + top: 0; + left: 0; + opacity: 0; +} + +.custom-theme .el-upload--picture-card { + background-color: #fbfdff; + border: 1px dashed #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + cursor: pointer; + line-height: 146px; + vertical-align: top; +} + +.custom-theme .el-upload--picture-card i { + font-size: 28px; + color: #8c939d; +} + +.custom-theme .el-upload--picture-card:hover { + border-color: #262729; + color: #262729; +} + +.custom-theme .el-upload-dragger { + background-color: #fff; + border: 1px dashed #d9d9d9; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 360px; + height: 180px; + text-align: center; + cursor: pointer; + position: relative; + overflow: hidden; +} + +.custom-theme .el-upload-dragger .el-icon-upload { + font-size: 67px; + color: #b4bccc; + margin: 40px 0 16px; + line-height: 50px; +} + +.custom-theme .el-upload-dragger + .el-upload__tip { + text-align: center; +} + +.custom-theme .el-upload-dragger ~ .el-upload__files { + border-top: 1px solid #d8dce5; + margin-top: 7px; + padding-top: 5px; +} + +.custom-theme .el-upload-dragger .el-upload__text { + color: #5a5e66; + font-size: 14px; + text-align: center; +} + +.custom-theme .el-upload-dragger .el-upload__text em { + color: #262729; + font-style: normal; +} + +.custom-theme .el-upload-dragger:hover { + border-color: #262729; +} + +.custom-theme .el-upload-dragger.is-dragover { + background-color: rgba(32, 159, 255, 0.06); + border: 2px dashed #262729; +} + +.custom-theme .el-upload-list { + margin: 0; + padding: 0; + list-style: none; +} + +.custom-theme .el-upload-list__item { + -webkit-transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1); + font-size: 14px; + color: #5a5e66; + line-height: 1.8; + margin-top: 5px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + width: 100%; +} + +.custom-theme .el-upload-list__item .el-progress { + position: absolute; + top: 20px; + width: 100%; +} + +.custom-theme .el-upload-list__item .el-progress__text { + position: absolute; + right: 0; + top: -13px; +} + +.custom-theme .el-upload-list__item .el-progress-bar { + margin-right: 0; + padding-right: 0; +} + +.custom-theme .el-upload-list__item:first-child { + margin-top: 10px; +} + +.custom-theme .el-upload-list__item .el-icon-upload-success { + color: #409167; +} + +.custom-theme .el-upload-list__item .el-icon-close { + display: none; + position: absolute; + top: 5px; + right: 5px; + cursor: pointer; + opacity: 0.75; + color: #5a5e66; +} + +.custom-theme .el-upload-list__item .el-icon-close:hover { + opacity: 1; +} + +.custom-theme .el-upload-list__item .el-icon-close-tip { + display: none; + position: absolute; + top: 5px; + right: 0; + cursor: pointer; + opacity: 1; + color: #262729; + -webkit-transform: translate(15%, 0); + transform: translate(15%, 0); +} + +.custom-theme .el-upload-list__item:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-upload-list__item:hover .el-icon-close { + display: inline-block; +} + +.custom-theme .el-upload-list__item:hover .el-progress__text { + display: none; +} + +.custom-theme .el-upload-list__item.is-success .el-upload-list__item-status-label { + display: block; +} + +.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:focus, +.custom-theme .el-upload-list__item.is-success .el-upload-list__item-name:hover { + color: #262729; + cursor: pointer; +} + +.custom-theme .el-upload-list__item.is-success:focus .el-icon-close-tip { + display: inline-block; +} + +.custom-theme .el-upload-list__item.is-success:active, +.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) { + outline-width: 0; +} + +.custom-theme .el-upload-list__item.is-success:active .el-icon-close-tip, +.custom-theme .el-upload-list__item.is-success:focus:not(.focusing) .el-icon-close-tip { + display: none; +} + +.custom-theme .el-upload-list__item.is-success:focus .el-upload-list__item-status-label, +.custom-theme .el-upload-list__item.is-success:hover .el-upload-list__item-status-label { + display: none; +} + +.custom-theme .el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label { + display: block; +} + +.custom-theme .el-upload-list__item-name { + color: #5a5e66; + display: block; + margin-right: 40px; + overflow: hidden; + padding-left: 4px; + text-overflow: ellipsis; + -webkit-transition: color 0.3s; + transition: color 0.3s; + white-space: nowrap; +} + +.custom-theme .el-upload-list__item-name [class^='el-icon'] { + height: 100%; + margin-right: 7px; + color: #878d99; + line-height: inherit; +} + +.custom-theme .el-upload-list__item-status-label { + position: absolute; + right: 5px; + top: 0; + line-height: inherit; + display: none; +} + +.custom-theme .el-upload-list__item-delete { + position: absolute; + right: 10px; + top: 0; + font-size: 12px; + color: #5a5e66; + display: none; +} + +.custom-theme .el-upload-list__item-delete:hover { + color: #262729; +} + +.custom-theme .el-upload-list--picture-card { + margin: 0; + display: inline; + vertical-align: top; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item { + overflow: hidden; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + margin: 0 8px 8px 0; + display: inline-block; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-check, +.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check { + color: #fff; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item .el-icon-close { + display: none; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label { + display: none; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text { + display: block; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-name { + display: none; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-thumbnail { + width: 100%; + height: 100%; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-status-label i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + cursor: default; + text-align: center; + color: #fff; + opacity: 0; + font-size: 20px; + background-color: rgba(0, 0, 0, 0.5); + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span { + display: none; + cursor: pointer; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions span + span { + margin-left: 15px; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete { + position: static; + font-size: inherit; + color: inherit; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover { + opacity: 1; +} + +.custom-theme .el-upload-list--picture-card .el-upload-list__item-actions:hover span { + display: inline-block; +} + +.custom-theme .el-upload-list--picture-card .el-progress { + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + bottom: auto; + width: 126px; +} + +.custom-theme .el-upload-list--picture-card .el-progress .el-progress__text { + top: 50%; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item { + overflow: hidden; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; + padding: 10px 10px 10px 90px; + height: 92px; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-check, +.custom-theme .el-upload-list--picture .el-upload-list__item .el-icon-circle-check { + color: #fff; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label { + background: 0 0; + -webkit-box-shadow: none; + box-shadow: none; + top: -2px; + right: -12px; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item:hover .el-progress__text { + display: block; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name { + line-height: 70px; + margin-top: 0; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i { + display: none; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item-thumbnail { + vertical-align: middle; + display: inline-block; + width: 70px; + height: 70px; + float: left; + position: relative; + z-index: 1; + margin-left: -80px; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item-name { + display: block; + margin-top: 20px; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item-name i { + font-size: 70px; + line-height: 1; + position: absolute; + left: 9px; + top: 10px; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item-status-label { + position: absolute; + right: -17px; + top: -7px; + width: 46px; + height: 26px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 1px 1px #ccc; + box-shadow: 0 1px 1px #ccc; +} + +.custom-theme .el-upload-list--picture .el-upload-list__item-status-label i { + font-size: 12px; + margin-top: 12px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.custom-theme .el-upload-list--picture .el-progress { + position: relative; + top: -7px; +} + +.custom-theme .el-upload-cover { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 10; + cursor: default; +} + +.custom-theme .el-upload-cover::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-upload-cover img { + display: block; + width: 100%; + height: 100%; +} + +.custom-theme .el-upload-cover__label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2); +} + +.custom-theme .el-upload-cover__label i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + color: #fff; +} + +.custom-theme .el-upload-cover__progress { + display: inline-block; + vertical-align: middle; + position: static; + width: 243px; +} + +.custom-theme .el-upload-cover__progress + .el-upload__inner { + opacity: 0; +} + +.custom-theme .el-upload-cover__content { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.custom-theme .el-upload-cover__interact { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.72); + text-align: center; +} + +.custom-theme .el-upload-cover__interact .btn { + display: inline-block; + color: #fff; + font-size: 14px; + cursor: pointer; + vertical-align: middle; + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) 0.1s; + margin-top: 60px; +} + +.custom-theme .el-upload-cover__interact .btn i { + margin-top: 0; +} + +.custom-theme .el-upload-cover__interact .btn span { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.custom-theme .el-upload-cover__interact .btn:not(:first-child) { + margin-left: 35px; +} + +.custom-theme .el-upload-cover__interact .btn:hover { + -webkit-transform: translateY(-13px); + transform: translateY(-13px); +} + +.custom-theme .el-upload-cover__interact .btn:hover span { + opacity: 1; +} + +.custom-theme .el-upload-cover__interact .btn i { + color: #fff; + display: block; + font-size: 24px; + line-height: inherit; + margin: 0 auto 5px; +} + +.custom-theme .el-upload-cover__title { + position: absolute; + bottom: 0; + left: 0; + background-color: #fff; + height: 36px; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 400; + text-align: left; + padding: 0 10px; + margin: 0; + line-height: 36px; + font-size: 14px; + color: #2d2f33; +} + +.custom-theme .el-upload-cover + .el-upload__inner { + opacity: 0; + position: relative; + z-index: 1; +} + +.custom-theme .el-progress { + position: relative; + line-height: 1; +} + +.custom-theme .el-progress__text { + font-size: 14px; + color: #5a5e66; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + line-height: 1; +} + +.custom-theme .el-progress__text i { + vertical-align: middle; + display: block; +} + +.custom-theme .el-progress--circle { + display: inline-block; +} + +.custom-theme .el-progress--circle .el-progress__text { + position: absolute; + top: 50%; + left: 0; + width: 100%; + text-align: center; + margin: 0; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); +} + +.custom-theme .el-progress--circle .el-progress__text i { + vertical-align: middle; + display: inline-block; +} + +.custom-theme .el-progress--without-text .el-progress__text { + display: none; +} + +.custom-theme .el-progress--without-text .el-progress-bar { + padding-right: 0; + margin-right: 0; + display: block; +} + +.custom-theme .el-progress--text-inside .el-progress-bar { + padding-right: 0; + margin-right: 0; +} + +.custom-theme .el-progress.is-success .el-progress-bar__inner { + background-color: #409167; +} + +.custom-theme .el-progress.is-success .el-progress__text { + color: #409167; +} + +.custom-theme .el-progress.is-exception .el-progress-bar__inner { + background-color: #b3450e; +} + +.custom-theme .el-progress.is-exception .el-progress__text { + color: #b3450e; +} + +.custom-theme .el-progress-bar { + padding-right: 50px; + display: inline-block; + vertical-align: middle; + width: 100%; + margin-right: -55px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-progress-bar__outer { + height: 6px; + border-radius: 100px; + background-color: #e6ebf5; + overflow: hidden; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-progress-bar__inner { + position: absolute; + left: 0; + top: 0; + height: 100%; + background-color: #262729; + text-align: right; + border-radius: 100px; + line-height: 1; + white-space: nowrap; +} + +.custom-theme .el-progress-bar__inner::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-progress-bar__innerText { + display: inline-block; + vertical-align: middle; + color: #fff; + font-size: 12px; + margin: 0 5px; +} + +@keyframes progress { + 0% { + background-position: 0 0; + } + 100% { + background-position: 32px 0; + } +} + +.custom-theme .el-time-spinner { + width: 100%; + white-space: nowrap; +} + +.custom-theme .el-spinner { + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-spinner-inner { + -webkit-animation: rotate 2s linear infinite; + animation: rotate 2s linear infinite; + width: 50px; + height: 50px; +} + +.custom-theme .el-spinner-inner .path { + stroke: #ececec; + stroke-linecap: round; + -webkit-animation: dash 1.5s ease-in-out infinite; + animation: dash 1.5s ease-in-out infinite; +} + +@-webkit-keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124; + } +} + +@keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35; + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124; + } +} + +.custom-theme .el-message { + min-width: 380px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + border-width: 1px; + border-style: solid; + border-color: #e6ebf5; + position: fixed; + left: 50%; + top: 20px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + background-color: #edf2fc; + -webkit-transition: opacity 0.3s, -webkit-transform 0.4s; + transition: opacity 0.3s, -webkit-transform 0.4s; + transition: opacity 0.3s, transform 0.4s; + transition: opacity 0.3s, transform 0.4s, -webkit-transform 0.4s; + overflow: hidden; + padding: 15px 15px 15px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.custom-theme .el-message.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.custom-theme .el-message p { + margin: 0; +} + +.custom-theme .el-message--info .el-message__content { + color: #0a76a4; +} + +.custom-theme .el-message--success { + background-color: #ecf4f0; + border-color: #d9e9e1; +} + +.custom-theme .el-message--success .el-message__content { + color: #409167; +} + +.custom-theme .el-message--warning { + background-color: #f5f6e6; + border-color: #ebedce; +} + +.custom-theme .el-message--warning .el-message__content { + color: #9da408; +} + +.custom-theme .el-message--error { + background-color: #f7ece7; + border-color: #f0dacf; +} + +.custom-theme .el-message--error .el-message__content { + color: #b3450e; +} + +.custom-theme .el-message__icon { + margin-right: 10px; +} + +.custom-theme .el-message__content { + padding: 0; + font-size: 14px; + line-height: 1; +} + +.custom-theme .el-message__content:focus { + outline-width: 0; +} + +.custom-theme .el-message__closeBtn { + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + cursor: pointer; + color: #b4bccc; + font-size: 16px; +} + +.custom-theme .el-message__closeBtn:focus { + outline-width: 0; +} + +.custom-theme .el-message__closeBtn:hover { + color: #878d99; +} + +.custom-theme .el-message .el-icon-success { + color: #409167; +} + +.custom-theme .el-message .el-icon-error { + color: #b3450e; +} + +.custom-theme .el-message .el-icon-info { + color: #0a76a4; +} + +.custom-theme .el-message .el-icon-warning { + color: #9da408; +} + +.custom-theme .el-message-fade-enter, +.custom-theme .el-message-fade-leave-active { + opacity: 0; + -webkit-transform: translate(-50%, -100%); + transform: translate(-50%, -100%); +} + +.custom-theme .el-badge { + position: relative; + vertical-align: middle; + display: inline-block; +} + +.custom-theme .el-badge__content { + background-color: #b3450e; + border-radius: 10px; + color: #fff; + display: inline-block; + font-size: 12px; + height: 18px; + line-height: 18px; + padding: 0 6px; + text-align: center; + white-space: nowrap; + border: 1px solid #fff; +} + +.custom-theme .el-badge__content.is-fixed { + position: absolute; + top: 0; + right: 10px; + -webkit-transform: translateY(-50%) translateX(100%); + transform: translateY(-50%) translateX(100%); +} + +.custom-theme .el-badge__content.is-fixed.is-dot { + right: 5px; +} + +.custom-theme .el-badge__content.is-dot { + height: 8px; + width: 8px; + padding: 0; + right: 0; + border-radius: 50%; +} + +.custom-theme .el-card { + border-radius: 4px; + border: 1px solid #e6ebf5; + background-color: #fff; + overflow: hidden; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + color: #2d2f33; +} + +.custom-theme .el-card__header { + padding: 18px 20px; + border-bottom: 1px solid #e6ebf5; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-card__body { + padding: 20px; +} + +.custom-theme .el-rate { + height: 20px; + line-height: 1; +} + +.custom-theme .el-rate:active, +.custom-theme .el-rate:focus { + outline-width: 0; +} + +.custom-theme .el-rate__item { + display: inline-block; + position: relative; + font-size: 0; + vertical-align: middle; +} + +.custom-theme .el-rate__icon { + position: relative; + display: inline-block; + font-size: 18px; + margin-right: 6px; + color: #b4bccc; + -webkit-transition: 0.3s; + transition: 0.3s; +} + +.custom-theme .el-rate__icon.hover { + -webkit-transform: scale(1.15); + transform: scale(1.15); +} + +.custom-theme .el-rate__icon .path2 { + position: absolute; + left: 0; + top: 0; +} + +.custom-theme .el-rate__decimal { + position: absolute; + top: 0; + left: 0; + display: inline-block; + overflow: hidden; +} + +.custom-theme .el-rate__text { + font-size: 14px; + vertical-align: middle; +} + +.custom-theme .el-steps { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.custom-theme .el-steps--simple { + padding: 13px 8%; + border-radius: 4px; + background: #f5f7fa; +} + +.custom-theme .el-steps--horizontal { + white-space: nowrap; +} + +.custom-theme .el-steps--vertical { + height: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column; +} + +.custom-theme .el-step { + position: relative; + -ms-flex-negative: 1; + flex-shrink: 1; +} + +.custom-theme .el-step:last-of-type .el-step__line { + display: none; +} + +.custom-theme .el-step:last-of-type.is-flex { + -ms-flex-preferred-size: auto !important; + flex-basis: auto !important; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; +} + +.custom-theme .el-step:last-of-type .el-step__description, +.custom-theme .el-step:last-of-type .el-step__main { + padding-right: 0; +} + +.custom-theme .el-step__head { + position: relative; + width: 100%; +} + +.custom-theme .el-step__head.is-process { + color: #2d2f33; + border-color: #2d2f33; +} + +.custom-theme .el-step__head.is-wait { + color: #b4bccc; + border-color: #b4bccc; +} + +.custom-theme .el-step__head.is-success { + color: #409167; + border-color: #409167; +} + +.custom-theme .el-step__head.is-error { + color: #b3450e; + border-color: #b3450e; +} + +.custom-theme .el-step__head.is-finish { + color: #262729; + border-color: #262729; +} + +.custom-theme .el-step__icon { + position: relative; + z-index: 1; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 24px; + height: 24px; + font-size: 14px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #fff; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; +} + +.custom-theme .el-step__icon.is-text { + border-radius: 50%; + border: 2px solid; + border-color: inherit; +} + +.custom-theme .el-step__icon.is-icon { + width: 40px; +} + +.custom-theme .el-step__icon-inner { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: center; + font-weight: 700; + line-height: 1; + color: inherit; +} + +.custom-theme .el-step__icon-inner[class*='el-icon']:not(.is-status) { + font-size: 25px; + font-weight: 400; +} + +.custom-theme .el-step__icon-inner.is-status { + -webkit-transform: translateY(1px); + transform: translateY(1px); +} + +.custom-theme .el-step__line { + position: absolute; + border-color: inherit; + background-color: #b4bccc; +} + +.custom-theme .el-step__line-inner { + display: block; + border-width: 1px; + border-style: solid; + border-color: inherit; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 0; + height: 0; +} + +.custom-theme .el-step__main { + white-space: normal; + text-align: left; +} + +.custom-theme .el-step__title { + font-size: 16px; + line-height: 38px; +} + +.custom-theme .el-step__title.is-process { + font-weight: 700; + color: #2d2f33; +} + +.custom-theme .el-step__title.is-wait { + color: #b4bccc; +} + +.custom-theme .el-step__title.is-success { + color: #409167; +} + +.custom-theme .el-step__title.is-error { + color: #b3450e; +} + +.custom-theme .el-step__title.is-finish { + color: #262729; +} + +.custom-theme .el-step__description { + padding-right: 10%; + margin-top: -5px; + font-size: 12px; + line-height: 20px; + font-weight: 400; +} + +.custom-theme .el-step__description.is-process { + color: #2d2f33; +} + +.custom-theme .el-step__description.is-wait { + color: #b4bccc; +} + +.custom-theme .el-step__description.is-success { + color: #409167; +} + +.custom-theme .el-step__description.is-error { + color: #b3450e; +} + +.custom-theme .el-step__description.is-finish { + color: #262729; +} + +.custom-theme .el-step.is-horizontal { + display: inline-block; +} + +.custom-theme .el-step.is-horizontal .el-step__line { + height: 2px; + top: 11px; + left: 0; + right: 0; +} + +.custom-theme .el-step.is-vertical { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.custom-theme .el-step.is-vertical .el-step__head { + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + width: 24px; +} + +.custom-theme .el-step.is-vertical .el-step__main { + padding-left: 10px; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} + +.custom-theme .el-step.is-vertical .el-step__title { + line-height: 24px; + padding-bottom: 8px; +} + +.custom-theme .el-step.is-vertical .el-step__line { + width: 2px; + top: 0; + bottom: 0; + left: 11px; +} + +.custom-theme .el-step.is-vertical .el-step__icon.is-icon { + width: 24px; +} + +.custom-theme .el-step.is-center .el-step__head { + text-align: center; +} + +.custom-theme .el-step.is-center .el-step__main { + text-align: center; +} + +.custom-theme .el-step.is-center .el-step__description { + padding-left: 20%; + padding-right: 20%; +} + +.custom-theme .el-step.is-center .el-step__line { + left: 50%; + right: -50%; +} + +.custom-theme .el-step.is-simple { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.custom-theme .el-step.is-simple .el-step__head { + width: auto; + font-size: 0; + padding-right: 10px; +} + +.custom-theme .el-step.is-simple .el-step__icon { + background: 0 0; + width: 16px; + height: 16px; + font-size: 12px; +} + +.custom-theme .el-step.is-simple .el-step__icon-inner[class*='el-icon']:not(.is-status) { + font-size: 18px; +} + +.custom-theme .el-step.is-simple .el-step__icon-inner.is-status { + -webkit-transform: scale(0.8) translateY(1px); + transform: scale(0.8) translateY(1px); +} + +.custom-theme .el-step.is-simple .el-step__main { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} + +.custom-theme .el-step.is-simple .el-step__title { + font-size: 16px; + line-height: 20px; +} + +.custom-theme .el-step.is-simple:not(:last-of-type) .el-step__title { + max-width: 50%; + word-break: break-all; +} + +.custom-theme .el-step.is-simple .el-step__arrow { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.custom-theme .el-step.is-simple .el-step__arrow::after, +.custom-theme .el-step.is-simple .el-step__arrow::before { + content: ''; + display: inline-block; + position: absolute; + height: 15px; + width: 1px; + background: #b4bccc; +} + +.custom-theme .el-step.is-simple .el-step__arrow::before { + -webkit-transform: rotate(-45deg) translateY(-4px); + transform: rotate(-45deg) translateY(-4px); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} + +.custom-theme .el-step.is-simple .el-step__arrow::after { + -webkit-transform: rotate(45deg) translateY(4px); + transform: rotate(45deg) translateY(4px); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; +} + +.custom-theme .el-step.is-simple:last-of-type .el-step__arrow { + display: none; +} + +.custom-theme .el-carousel { + overflow-x: hidden; + position: relative; +} + +.custom-theme .el-carousel__container { + position: relative; + height: 300px; +} + +.custom-theme .el-carousel__arrow { + border: none; + outline: 0; + padding: 0; + margin: 0; + height: 36px; + width: 36px; + cursor: pointer; + -webkit-transition: 0.3s; + transition: 0.3s; + border-radius: 50%; + background-color: rgba(31, 45, 61, 0.11); + color: #fff; + position: absolute; + top: 50%; + z-index: 10; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-align: center; + font-size: 12px; +} + +.custom-theme .el-carousel__arrow--left { + left: 16px; +} + +.custom-theme .el-carousel__arrow--right { + right: 16px; +} + +.custom-theme .el-carousel__arrow:hover { + background-color: rgba(31, 45, 61, 0.23); +} + +.custom-theme .el-carousel__arrow i { + cursor: pointer; +} + +.custom-theme .el-carousel__indicators { + position: absolute; + list-style: none; + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + margin: 0; + padding: 0; + z-index: 2; +} + +.custom-theme .el-carousel__indicators--outside { + bottom: 26px; + text-align: center; + position: static; + -webkit-transform: none; + transform: none; +} + +.custom-theme .el-carousel__indicators--outside .el-carousel__indicator:hover button { + opacity: 0.64; +} + +.custom-theme .el-carousel__indicators--outside button { + background-color: #b4bccc; + opacity: 0.24; +} + +.custom-theme .el-carousel__indicators--labels { + left: 0; + right: 0; + -webkit-transform: none; + transform: none; + text-align: center; +} + +.custom-theme .el-carousel__indicators--labels .el-carousel__button { + height: auto; + width: auto; + padding: 2px 18px; + font-size: 12px; +} + +.custom-theme .el-carousel__indicators--labels .el-carousel__indicator { + padding: 6px 4px; +} + +.custom-theme .el-carousel__indicator { + display: inline-block; + background-color: transparent; + padding: 12px 4px; + cursor: pointer; +} + +.custom-theme .el-carousel__indicator:hover button { + opacity: 0.72; +} + +.custom-theme .el-carousel__indicator.is-active button { + opacity: 1; +} + +.custom-theme .el-carousel__button { + display: block; + opacity: 0.48; + width: 30px; + height: 2px; + background-color: #fff; + border: none; + outline: 0; + padding: 0; + margin: 0; + cursor: pointer; + -webkit-transition: 0.3s; + transition: 0.3s; +} + +.custom-theme .carousel-arrow-left-enter, +.custom-theme .carousel-arrow-left-leave-active { + -webkit-transform: translateY(-50%) translateX(-10px); + transform: translateY(-50%) translateX(-10px); + opacity: 0; +} + +.custom-theme .carousel-arrow-right-enter, +.custom-theme .carousel-arrow-right-leave-active { + -webkit-transform: translateY(-50%) translateX(10px); + transform: translateY(-50%) translateX(10px); + opacity: 0; +} + +.custom-theme .el-scrollbar { + overflow: hidden; + position: relative; +} + +.custom-theme .el-scrollbar:active > .el-scrollbar__bar, +.custom-theme .el-scrollbar:focus > .el-scrollbar__bar, +.custom-theme .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out; +} + +.custom-theme .el-scrollbar__wrap { + overflow: scroll; + height: 100%; +} + +.custom-theme .el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0; +} + +.custom-theme .el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(135, 141, 153, 0.3); + -webkit-transition: 0.3s background-color; + transition: 0.3s background-color; +} + +.custom-theme .el-scrollbar__thumb:hover { + background-color: rgba(135, 141, 153, 0.5); +} + +.custom-theme .el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out; +} + +.custom-theme .el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px; +} + +.custom-theme .el-scrollbar__bar.is-vertical > div { + width: 100%; +} + +.custom-theme .el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px; +} + +.custom-theme .el-scrollbar__bar.is-horizontal > div { + height: 100%; +} + +.custom-theme .el-carousel__item { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: inline-block; + overflow: hidden; + z-index: 0; +} + +.custom-theme .el-carousel__item.is-active { + z-index: 2; +} + +.custom-theme .el-carousel__item.is-animating { + -webkit-transition: -webkit-transform 0.4s ease-in-out; + transition: -webkit-transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out; +} + +.custom-theme .el-carousel__item--card { + width: 50%; + -webkit-transition: -webkit-transform 0.4s ease-in-out; + transition: -webkit-transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out; +} + +.custom-theme .el-carousel__item--card.is-in-stage { + cursor: pointer; + z-index: 1; +} + +.custom-theme .el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask, +.custom-theme .el-carousel__item--card.is-in-stage:hover .el-carousel__mask { + opacity: 0.12; +} + +.custom-theme .el-carousel__item--card.is-active { + z-index: 2; +} + +.custom-theme .el-carousel__mask { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + background-color: #fff; + opacity: 0.24; + -webkit-transition: 0.2s; + transition: 0.2s; +} + +.custom-theme .el-collapse { + border-top: 1px solid #e6ebf5; + border-bottom: 1px solid #e6ebf5; +} + +.custom-theme .el-collapse-item__header { + height: 48px; + line-height: 48px; + background-color: #fff; + color: #2d2f33; + cursor: pointer; + border-bottom: 1px solid #e6ebf5; + font-size: 13px; + font-weight: 500; + -webkit-transition: border-bottom-color 0.3s; + transition: border-bottom-color 0.3s; +} + +.custom-theme .el-collapse-item__header:active, +.custom-theme .el-collapse-item__header:focus:not(.focusing) { + outline-width: 0; +} + +.custom-theme .el-collapse-item__arrow { + margin-right: 8px; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + float: right; + line-height: 48px; + font-weight: 300; +} + +.custom-theme .el-collapse-item__wrap { + will-change: height; + background-color: #fff; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-bottom: 1px solid #e6ebf5; +} + +.custom-theme .el-collapse-item__content { + padding-bottom: 25px; + font-size: 13px; + color: #2d2f33; + line-height: 1.769230769230769; +} + +.custom-theme .el-collapse-item.is-active .el-collapse-item__header { + border-bottom-color: transparent; +} + +.custom-theme .el-collapse-item.is-active .el-collapse-item__header .el-collapse-item__arrow { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.custom-theme .el-collapse-item:last-child { + margin-bottom: -1px; +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-popper .popper__arrow, +.custom-theme .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.custom-theme .el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03)); +} + +.custom-theme .el-popper .popper__arrow::after { + content: ' '; + border-width: 6px; +} + +.custom-theme .el-popper[x-placement^='top'] { + margin-bottom: 12px; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #e6ebf5; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #fff; + border-bottom-width: 0; +} + +.custom-theme .el-popper[x-placement^='bottom'] { + margin-top: 12px; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.custom-theme .el-popper[x-placement^='right'] { + margin-left: 12px; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #e6ebf5; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='right'] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #fff; + border-left-width: 0; +} + +.custom-theme .el-popper[x-placement^='left'] { + margin-right: 12px; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #e6ebf5; +} + +.custom-theme .el-popper[x-placement^='left'] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #fff; +} + +.custom-theme .el-cascader { + display: inline-block; + position: relative; + font-size: 14px; + line-height: 40px; +} + +.custom-theme .el-cascader .el-input, +.custom-theme .el-cascader .el-input__inner { + cursor: pointer; +} + +.custom-theme .el-cascader .el-input__icon { + -webkit-transition: none; + transition: none; +} + +.custom-theme .el-cascader .el-icon-arrow-down { + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + font-size: 14px; +} + +.custom-theme .el-cascader .el-icon-arrow-down.is-reverse { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} + +.custom-theme .el-cascader .el-icon-circle-close { + z-index: 2; + -webkit-transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-cascader .el-icon-circle-close:hover { + color: #878d99; +} + +.custom-theme .el-cascader__clearIcon { + z-index: 2; + position: relative; +} + +.custom-theme .el-cascader__label { + position: absolute; + left: 0; + top: 0; + height: 100%; + padding: 0 25px 0 15px; + color: #5a5e66; + width: 100%; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + text-align: left; + font-size: inherit; +} + +.custom-theme .el-cascader__label span { + color: #000; +} + +.custom-theme .el-cascader--medium { + font-size: 14px; + line-height: 36px; +} + +.custom-theme .el-cascader--small { + font-size: 13px; + line-height: 32px; +} + +.custom-theme .el-cascader--mini { + font-size: 12px; + line-height: 28px; +} + +.custom-theme .el-cascader.is-disabled .el-cascader__label { + z-index: 2; + color: #b4bccc; +} + +.custom-theme .el-cascader-menus { + white-space: nowrap; + background: #fff; + position: absolute; + margin: 5px 0; + z-index: 2; + border: solid 1px #dfe4ed; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} + +.custom-theme .el-cascader-menus .popper__arrow { + -webkit-transform: translateX(-400%); + transform: translateX(-400%); +} + +.custom-theme .el-cascader-menu { + display: inline-block; + vertical-align: top; + height: 204px; + overflow: auto; + border-right: solid 1px #dfe4ed; + background-color: #fff; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 6px 0; + min-width: 160px; +} + +.custom-theme .el-cascader-menu:last-child { + border-right: 0; +} + +.custom-theme .el-cascader-menu__item { + font-size: 14px; + padding: 8px 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #5a5e66; + height: 34px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.custom-theme .el-cascader-menu__item--extensible:after { + font-family: element-icons; + content: '\e604'; + font-size: 14px; + color: #bfcbd9; + position: absolute; + right: 15px; +} + +.custom-theme .el-cascader-menu__item.is-disabled { + color: #b4bccc; + background-color: #fff; + cursor: not-allowed; +} + +.custom-theme .el-cascader-menu__item.is-disabled:hover { + background-color: #fff; +} + +.custom-theme .el-cascader-menu__item.is-active { + color: #262729; +} + +.custom-theme .el-cascader-menu__item:hover { + background-color: #f5f7fa; +} + +.custom-theme .el-cascader-menu__item.selected { + color: #fff; + background-color: #f5f7fa; +} + +.custom-theme .el-cascader-menu__item__keyword { + font-weight: 700; +} + +.custom-theme .el-cascader-menu--flexible { + height: auto; + max-height: 180px; + overflow: auto; +} + +.custom-theme .el-cascader-menu--flexible .el-cascader-menu__item { + overflow: visible; +} + +.custom-theme .el-color-hue-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background-color: red; + padding: 0 2px; +} + +.custom-theme .el-color-hue-slider__bar { + position: relative; + background: -webkit-gradient( + linear, + left top, + right top, + from(red), + color-stop(17%, #ff0), + color-stop(33%, #0f0), + color-stop(50%, #0ff), + color-stop(67%, #00f), + color-stop(83%, #f0f), + to(red) + ); + background: linear-gradient(to right, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red 100%); + height: 100%; +} + +.custom-theme .el-color-hue-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + z-index: 1; +} + +.custom-theme .el-color-hue-slider.is-vertical { + width: 12px; + height: 180px; + padding: 2px 0; +} + +.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__bar { + background: -webkit-gradient( + linear, + left top, + left bottom, + from(red), + color-stop(17%, #ff0), + color-stop(33%, #0f0), + color-stop(50%, #0ff), + color-stop(67%, #00f), + color-stop(83%, #f0f), + to(red) + ); + background: linear-gradient(to bottom, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red 100%); +} + +.custom-theme .el-color-hue-slider.is-vertical .el-color-hue-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px; +} + +.custom-theme .el-color-svpanel { + position: relative; + width: 280px; + height: 180px; +} + +.custom-theme .el-color-svpanel__black, +.custom-theme .el-color-svpanel__white { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.custom-theme .el-color-svpanel__white { + background: -webkit-gradient(linear, left top, right top, from(#fff), to(rgba(255, 255, 255, 0))); + background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); +} + +.custom-theme .el-color-svpanel__black { + background: -webkit-gradient(linear, left bottom, left top, from(#000), to(transparent)); + background: linear-gradient(to top, #000, transparent); +} + +.custom-theme .el-color-svpanel__cursor { + position: absolute; +} + +.custom-theme .el-color-svpanel__cursor > div { + cursor: head; + width: 4px; + height: 4px; + -webkit-box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); + box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); + border-radius: 50%; + -webkit-transform: translate(-2px, -2px); + transform: translate(-2px, -2px); +} + +.custom-theme .el-color-alpha-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); +} + +.custom-theme .el-color-alpha-slider__bar { + position: relative; + background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white)); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, #fff 100%); + height: 100%; +} + +.custom-theme .el-color-alpha-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + z-index: 1; +} + +.custom-theme .el-color-alpha-slider.is-vertical { + width: 20px; + height: 180px; +} + +.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(white)); + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 100%); +} + +.custom-theme .el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px; +} + +.custom-theme .el-color-dropdown { + width: 300px; +} + +.custom-theme .el-color-dropdown__main-wrapper { + margin-bottom: 6px; +} + +.custom-theme .el-color-dropdown__main-wrapper::after { + content: ''; + display: table; + clear: both; +} + +.custom-theme .el-color-dropdown__btns { + margin-top: 6px; + text-align: right; +} + +.custom-theme .el-color-dropdown__value { + float: left; + line-height: 26px; + font-size: 12px; + color: #000; + width: 160px; +} + +.custom-theme .el-color-dropdown__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; +} + +.custom-theme .el-color-dropdown__btn[disabled] { + color: #ccc; + cursor: not-allowed; +} + +.custom-theme .el-color-dropdown__btn:hover { + color: #262729; + border-color: #262729; +} + +.custom-theme .el-color-dropdown__link-btn { + cursor: pointer; + color: #262729; + text-decoration: none; + padding: 15px; + font-size: 12px; +} + +.custom-theme .el-color-dropdown__link-btn:hover { + color: tint(#262729, 20%); +} + +.custom-theme .el-color-picker { + display: inline-block; + position: relative; + line-height: normal; + height: 40px; +} + +.custom-theme .el-color-picker.is-disabled .el-color-picker__trigger { + cursor: not-allowed; +} + +.custom-theme .el-color-picker--medium { + height: 36px; +} + +.custom-theme .el-color-picker--medium .el-color-picker__trigger { + height: 36px; + width: 36px; +} + +.custom-theme .el-color-picker--medium .el-color-picker__mask { + height: 34px; + width: 34px; +} + +.custom-theme .el-color-picker--small { + height: 32px; +} + +.custom-theme .el-color-picker--small .el-color-picker__trigger { + height: 32px; + width: 32px; +} + +.custom-theme .el-color-picker--small .el-color-picker__mask { + height: 30px; + width: 30px; +} + +.custom-theme .el-color-picker--small .el-color-picker__empty, +.custom-theme .el-color-picker--small .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8); + transform: translate3d(-50%, -50%, 0) scale(0.8); +} + +.custom-theme .el-color-picker--mini { + height: 28px; +} + +.custom-theme .el-color-picker--mini .el-color-picker__trigger { + height: 28px; + width: 28px; +} + +.custom-theme .el-color-picker--mini .el-color-picker__mask { + height: 26px; + width: 26px; +} + +.custom-theme .el-color-picker--mini .el-color-picker__empty, +.custom-theme .el-color-picker--mini .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(0.8); + transform: translate3d(-50%, -50%, 0) scale(0.8); +} + +.custom-theme .el-color-picker__mask { + height: 38px; + width: 38px; + border-radius: 4px; + position: absolute; + top: 1px; + left: 1px; + z-index: 1; + cursor: not-allowed; + background-color: rgba(255, 255, 255, 0.7); +} + +.custom-theme .el-color-picker__trigger { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 40px; + width: 40px; + padding: 4px; + border: 1px solid #e6e6e6; + border-radius: 4px; + font-size: 0; + position: relative; + cursor: pointer; +} + +.custom-theme .el-color-picker__color { + position: relative; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #999; + border-radius: 2px; + width: 100%; + height: 100%; + text-align: center; +} + +.custom-theme .el-color-picker__color.is-alpha { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); +} + +.custom-theme .el-color-picker__color-inner { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; +} + +.custom-theme .el-color-picker__empty { + font-size: 12px; + color: #999; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +.custom-theme .el-color-picker__icon { + display: inline-block; + position: absolute; + width: 100%; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + color: #fff; + text-align: center; + font-size: 12px; +} + +.custom-theme .el-color-picker__panel { + position: absolute; + z-index: 10; + padding: 6px; + background-color: #fff; + border: 1px solid #e6ebf5; + border-radius: 4px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} + +.custom-theme .el-input { + position: relative; + font-size: 14px; + display: inline-block; + width: 100%; +} + +.custom-theme .el-input::-webkit-scrollbar { + z-index: 11; + width: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar:horizontal { + height: 6px; +} + +.custom-theme .el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc; +} + +.custom-theme .el-input::-webkit-scrollbar-corner { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track { + background: #fff; +} + +.custom-theme .el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px; +} + +.custom-theme .el-input__inner { + -webkit-appearance: none; + background-color: #fff; + background-image: none; + border-radius: 4px; + border: 1px solid #d8dce5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #5a5e66; + display: inline-block; + font-size: inherit; + height: 40px; + line-height: 1; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + width: 100%; +} + +.custom-theme .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-input__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input__suffix { + position: absolute; + height: 100%; + right: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; + pointer-events: none; +} + +.custom-theme .el-input__suffix-inner { + pointer-events: all; +} + +.custom-theme .el-input__prefix { + position: absolute; + height: 100%; + left: 5px; + top: 0; + text-align: center; + color: #b4bccc; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.custom-theme .el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + line-height: 40px; +} + +.custom-theme .el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-input__validateIcon { + pointer-events: none; +} + +.custom-theme .el-input.is-active .el-input__inner { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-input.is-disabled .el-input__icon { + cursor: not-allowed; +} + +.custom-theme .el-input--suffix .el-input__inner { + padding-right: 30px; +} + +.custom-theme .el-input--prefix .el-input__inner { + padding-left: 30px; +} + +.custom-theme .el-input--medium { + font-size: 14px; +} + +.custom-theme .el-input--medium .el-input__inner { + height: 36px; +} + +.custom-theme .el-input--medium .el-input__icon { + line-height: 36px; +} + +.custom-theme .el-input--small { + font-size: 13px; +} + +.custom-theme .el-input--small .el-input__inner { + height: 32px; +} + +.custom-theme .el-input--small .el-input__icon { + line-height: 32px; +} + +.custom-theme .el-input--mini { + font-size: 12px; +} + +.custom-theme .el-input--mini .el-input__inner { + height: 28px; +} + +.custom-theme .el-input--mini .el-input__icon { + line-height: 28px; +} + +.custom-theme .el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; +} + +.custom-theme .el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell; +} + +.custom-theme .el-input-group__append, +.custom-theme .el-input-group__prepend { + background-color: #f5f7fa; + color: #0a76a4; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #d8dce5; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap; +} + +.custom-theme .el-input-group__append:focus, +.custom-theme .el-input-group__prepend:focus { + outline: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-select, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-select { + display: inline-block; + margin: -20px; +} + +.custom-theme .el-input-group__append button.el-button, +.custom-theme .el-input-group__append div.el-select .el-input__inner, +.custom-theme .el-input-group__append div.el-select:hover .el-input__inner, +.custom-theme .el-input-group__prepend button.el-button, +.custom-theme .el-input-group__prepend div.el-select .el-input__inner, +.custom-theme .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0; +} + +.custom-theme .el-input-group__append .el-button, +.custom-theme .el-input-group__append .el-input, +.custom-theme .el-input-group__prepend .el-button, +.custom-theme .el-input-group__prepend .el-input { + font-size: inherit; +} + +.custom-theme .el-input-group__prepend { + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-input-group--append .el-input__inner { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-textarea { + display: inline-block; + width: 100%; + vertical-align: bottom; +} + +.custom-theme .el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + font-size: 14px; + color: #5a5e66; + background-color: #fff; + background-image: none; + border: 1px solid #d8dce5; + border-radius: 4px; + -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.custom-theme .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea__inner:hover { + border-color: #b4bccc; +} + +.custom-theme .el-textarea__inner:focus { + outline: 0; + border-color: #262729; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #b4bccc; +} + +.custom-theme .el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #b4bccc; +} + +.custom-theme .el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-color: #d8dce5; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: 0.1s; + transition: 0.1s; + font-weight: 500; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button + .el-button { + margin-left: 10px; +} + +.custom-theme .el-button.is-round { + padding: 12px 20px; +} + +.custom-theme .el-button:focus, +.custom-theme .el-button:hover { + color: #262729; + border-color: #bebebf; + background-color: #e9e9ea; +} + +.custom-theme .el-button:active { + color: #222325; + border-color: #222325; + outline: 0; +} + +.custom-theme .el-button::-moz-focus-inner { + border: 0; +} + +.custom-theme .el-button [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-button.is-plain:focus, +.custom-theme .el-button.is-plain:hover { + background: #fff; + border-color: #262729; + color: #262729; +} + +.custom-theme .el-button.is-plain:active { + background: #fff; + border-color: #222325; + color: #222325; + outline: 0; +} + +.custom-theme .el-button.is-active { + color: #222325; + border-color: #222325; +} + +.custom-theme .el-button.is-disabled, +.custom-theme .el-button.is-disabled:focus, +.custom-theme .el-button.is-disabled:hover { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; +} + +.custom-theme .el-button.is-disabled.el-button--text { + background-color: transparent; +} + +.custom-theme .el-button.is-disabled.is-plain, +.custom-theme .el-button.is-disabled.is-plain:focus, +.custom-theme .el-button.is-disabled.is-plain:hover { + background-color: #fff; + border-color: #e6ebf5; + color: #b4bccc; +} + +.custom-theme .el-button.is-loading { + position: relative; + pointer-events: none; +} + +.custom-theme .el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, 0.35); +} + +.custom-theme .el-button.is-round { + border-radius: 20px; + padding: 12px 23px; +} + +.custom-theme .el-button--primary { + color: #fff; + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-button--primary:focus, +.custom-theme .el-button--primary:hover { + background: #515254; + border-color: #515254; + color: #fff; +} + +.custom-theme .el-button--primary:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-active { + background: #222325; + border-color: #222325; + color: #fff; +} + +.custom-theme .el-button--primary.is-disabled, +.custom-theme .el-button--primary.is-disabled:active, +.custom-theme .el-button--primary.is-disabled:focus, +.custom-theme .el-button--primary.is-disabled:hover { + color: #fff; + background-color: #939394; + border-color: #939394; +} + +.custom-theme .el-button--primary.is-plain { + color: #262729; + background: #e9e9ea; + border-color: #a8a9a9; +} + +.custom-theme .el-button--primary.is-plain:focus, +.custom-theme .el-button--primary.is-plain:hover { + background: #262729; + border-color: #262729; + color: #fff; +} + +.custom-theme .el-button--primary.is-plain:active { + background: #222325; + border-color: #222325; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--primary.is-plain.is-disabled, +.custom-theme .el-button--primary.is-plain.is-disabled:active, +.custom-theme .el-button--primary.is-plain.is-disabled:focus, +.custom-theme .el-button--primary.is-plain.is-disabled:hover { + color: #7d7d7f; + background-color: #e9e9ea; + border-color: #d4d4d4; +} + +.custom-theme .el-button--success { + color: #fff; + background-color: #409167; + border-color: #409167; +} + +.custom-theme .el-button--success:focus, +.custom-theme .el-button--success:hover { + background: #66a785; + border-color: #66a785; + color: #fff; +} + +.custom-theme .el-button--success:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-active { + background: #3a835d; + border-color: #3a835d; + color: #fff; +} + +.custom-theme .el-button--success.is-disabled, +.custom-theme .el-button--success.is-disabled:active, +.custom-theme .el-button--success.is-disabled:focus, +.custom-theme .el-button--success.is-disabled:hover { + color: #fff; + background-color: #a0c8b3; + border-color: #a0c8b3; +} + +.custom-theme .el-button--success.is-plain { + color: #409167; + background: #ecf4f0; + border-color: #b3d3c2; +} + +.custom-theme .el-button--success.is-plain:focus, +.custom-theme .el-button--success.is-plain:hover { + background: #409167; + border-color: #409167; + color: #fff; +} + +.custom-theme .el-button--success.is-plain:active { + background: #3a835d; + border-color: #3a835d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--success.is-plain.is-disabled, +.custom-theme .el-button--success.is-plain.is-disabled:active, +.custom-theme .el-button--success.is-plain.is-disabled:focus, +.custom-theme .el-button--success.is-plain.is-disabled:hover { + color: #8cbda4; + background-color: #ecf4f0; + border-color: #d9e9e1; +} + +.custom-theme .el-button--warning { + color: #fff; + background-color: #9da408; + border-color: #9da408; +} + +.custom-theme .el-button--warning:focus, +.custom-theme .el-button--warning:hover { + background: #b1b639; + border-color: #b1b639; + color: #fff; +} + +.custom-theme .el-button--warning:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-active { + background: #8d9407; + border-color: #8d9407; + color: #fff; +} + +.custom-theme .el-button--warning.is-disabled, +.custom-theme .el-button--warning.is-disabled:active, +.custom-theme .el-button--warning.is-disabled:focus, +.custom-theme .el-button--warning.is-disabled:hover { + color: #fff; + background-color: #ced284; + border-color: #ced284; +} + +.custom-theme .el-button--warning.is-plain { + color: #9da408; + background: #f5f6e6; + border-color: #d8db9c; +} + +.custom-theme .el-button--warning.is-plain:focus, +.custom-theme .el-button--warning.is-plain:hover { + background: #9da408; + border-color: #9da408; + color: #fff; +} + +.custom-theme .el-button--warning.is-plain:active { + background: #8d9407; + border-color: #8d9407; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--warning.is-plain.is-disabled, +.custom-theme .el-button--warning.is-plain.is-disabled:active, +.custom-theme .el-button--warning.is-plain.is-disabled:focus, +.custom-theme .el-button--warning.is-plain.is-disabled:hover { + color: #c4c86b; + background-color: #f5f6e6; + border-color: #ebedce; +} + +.custom-theme .el-button--danger { + color: #fff; + background-color: #b3450e; + border-color: #b3450e; +} + +.custom-theme .el-button--danger:focus, +.custom-theme .el-button--danger:hover { + background: #c26a3e; + border-color: #c26a3e; + color: #fff; +} + +.custom-theme .el-button--danger:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; +} + +.custom-theme .el-button--danger.is-disabled, +.custom-theme .el-button--danger.is-disabled:active, +.custom-theme .el-button--danger.is-disabled:focus, +.custom-theme .el-button--danger.is-disabled:hover { + color: #fff; + background-color: #d9a287; + border-color: #d9a287; +} + +.custom-theme .el-button--danger.is-plain { + color: #b3450e; + background: #f7ece7; + border-color: #e1b59f; +} + +.custom-theme .el-button--danger.is-plain:focus, +.custom-theme .el-button--danger.is-plain:hover { + background: #b3450e; + border-color: #b3450e; + color: #fff; +} + +.custom-theme .el-button--danger.is-plain:active { + background: #a13e0d; + border-color: #a13e0d; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--danger.is-plain.is-disabled, +.custom-theme .el-button--danger.is-plain.is-disabled:active, +.custom-theme .el-button--danger.is-plain.is-disabled:focus, +.custom-theme .el-button--danger.is-plain.is-disabled:hover { + color: #d18f6e; + background-color: #f7ece7; + border-color: #f0dacf; +} + +.custom-theme .el-button--info { + color: #fff; + background-color: #0a76a4; + border-color: #0a76a4; +} + +.custom-theme .el-button--info:focus, +.custom-theme .el-button--info:hover { + background: #3b91b6; + border-color: #3b91b6; + color: #fff; +} + +.custom-theme .el-button--info:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-active { + background: #096a94; + border-color: #096a94; + color: #fff; +} + +.custom-theme .el-button--info.is-disabled, +.custom-theme .el-button--info.is-disabled:active, +.custom-theme .el-button--info.is-disabled:focus, +.custom-theme .el-button--info.is-disabled:hover { + color: #fff; + background-color: #85bbd2; + border-color: #85bbd2; +} + +.custom-theme .el-button--info.is-plain { + color: #0a76a4; + background: #e7f1f6; + border-color: #9dc8db; +} + +.custom-theme .el-button--info.is-plain:focus, +.custom-theme .el-button--info.is-plain:hover { + background: #0a76a4; + border-color: #0a76a4; + color: #fff; +} + +.custom-theme .el-button--info.is-plain:active { + background: #096a94; + border-color: #096a94; + color: #fff; + outline: 0; +} + +.custom-theme .el-button--info.is-plain.is-disabled, +.custom-theme .el-button--info.is-plain.is-disabled:active, +.custom-theme .el-button--info.is-plain.is-disabled:focus, +.custom-theme .el-button--info.is-plain.is-disabled:hover { + color: #6cadc8; + background-color: #e7f1f6; + border-color: #cee4ed; +} + +.custom-theme .el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px; +} + +.custom-theme .el-button--medium.is-round { + padding: 10px 20px; +} + +.custom-theme .el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--small.is-round { + padding: 9px 15px; +} + +.custom-theme .el-button--mini { + padding: 7px 15px; + font-size: 12px; + border-radius: 3px; +} + +.custom-theme .el-button--mini.is-round { + padding: 7px 15px; +} + +.custom-theme .el-button--text { + border: none; + color: #262729; + background: 0 0; + padding-left: 0; + padding-right: 0; +} + +.custom-theme .el-button--text:focus, +.custom-theme .el-button--text:hover { + color: #515254; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button--text:active { + color: #222325; + border-color: transparent; + background-color: transparent; +} + +.custom-theme .el-button-group { + display: inline-block; + vertical-align: middle; +} + +.custom-theme .el-button-group::after, +.custom-theme .el-button-group::before { + display: table; + content: ''; +} + +.custom-theme .el-button-group::after { + clear: both; +} + +.custom-theme .el-button-group .el-button { + float: left; + position: relative; +} + +.custom-theme .el-button-group .el-button + .el-button { + margin-left: 0; +} + +.custom-theme .el-button-group .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.custom-theme .el-button-group .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.custom-theme .el-button-group .el-button:not(:last-child) { + margin-right: -1px; +} + +.custom-theme .el-button-group .el-button:active, +.custom-theme .el-button-group .el-button:focus, +.custom-theme .el-button-group .el-button:hover { + z-index: 1; +} + +.custom-theme .el-button-group .el-button.is-active { + z-index: 1; +} + +.custom-theme .el-button-group .el-button--primary:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--primary:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--success:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--warning:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--danger:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:first-child { + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:last-child { + border-left-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-button-group .el-button--info:not(:first-child):not(:last-child) { + border-left-color: rgba(255, 255, 255, 0.5); + border-right-color: rgba(255, 255, 255, 0.5); +} + +.custom-theme .el-checkbox { + color: #5a5e66; + font-weight: 500; + font-size: 14px; + position: relative; + cursor: pointer; + display: inline-block; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.custom-theme .el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #d8dce5; +} + +.custom-theme .el-checkbox.is-bordered.is-checked { + border-color: #262729; +} + +.custom-theme .el-checkbox.is-bordered.is-disabled { + border-color: #e6ebf5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small { + padding: 3px 15px 7px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini { + padding: 1px 15px 5px 10px; + border-radius: 3px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px; +} + +.custom-theme .el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after { + height: 6px; + width: 2px; +} + +.custom-theme .el-checkbox__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + display: inline-block; + line-height: 1; + position: relative; + vertical-align: middle; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled .el-checkbox__inner + .el-checkbox__label { + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner { + background-color: #edf2fc; + border-color: #d8dce5; +} + +.custom-theme .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before { + background-color: #b4bccc; + border-color: #b4bccc; +} + +.custom-theme .el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #b4bccc; + cursor: not-allowed; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1); +} + +.custom-theme .el-checkbox__input.is-checked + .el-checkbox__label { + color: #262729; +} + +.custom-theme .el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #262729; + border-color: #262729; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #fff; + height: 2px; + -webkit-transform: scale(0.5); + transform: scale(0.5); + left: 0; + right: 0; + top: 5px; +} + +.custom-theme .el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none; +} + +.custom-theme .el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #d8dce5; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #fff; + z-index: 1; + -webkit-transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); + transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); +} + +.custom-theme .el-checkbox__inner:hover { + border-color: #262729; +} + +.custom-theme .el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ''; + border: 1px solid #fff; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + transition: transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms, + -webkit-transform 0.15s cubic-bezier(0.71, -0.46, 0.88, 0.6) 50ms; + -webkit-transform-origin: center; + transform-origin: center; +} + +.custom-theme .el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + left: -999px; +} + +.custom-theme .el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px; +} + +.custom-theme .el-checkbox + .el-checkbox { + margin-left: 30px; +} + +.custom-theme .el-checkbox-button { + position: relative; + display: inline-block; +} + +.custom-theme .el-checkbox-button__inner { + display: inline-block; + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #fff; + border: 1px solid #d8dce5; + border-left: 0; + color: #5a5e66; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + position: relative; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + padding: 12px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button__inner.is-round { + padding: 12px 20px; +} + +.custom-theme .el-checkbox-button__inner:hover { + color: #262729; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] { + line-height: 0.9; +} + +.custom-theme .el-checkbox-button__inner [class*='el-icon-'] + span { + margin-left: 5px; +} + +.custom-theme .el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + left: -999px; +} + +.custom-theme .el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #fff; + background-color: #262729; + border-color: #262729; + -webkit-box-shadow: -1px 0 0 0 #7d7d7f; + box-shadow: -1px 0 0 0 #7d7d7f; +} + +.custom-theme .el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #b4bccc; + cursor: not-allowed; + background-image: none; + background-color: #fff; + border-color: #e6ebf5; + -webkit-box-shadow: none; + box-shadow: none; +} + +.custom-theme .el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #d8dce5; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.custom-theme .el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #262729; +} + +.custom-theme .el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0; +} + +.custom-theme .el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px; +} + +.custom-theme .el-checkbox-group { + font-size: 0; +} + +.custom-theme .el-transfer { + font-size: 14px; +} + +.custom-theme .el-transfer__buttons { + display: inline-block; + vertical-align: middle; + padding: 0 30px; +} + +.custom-theme .el-transfer__button { + display: block; + margin: 0 auto; + padding: 10px; + border-radius: 50%; + color: #fff; + background-color: #262729; + font-size: 0; +} + +.custom-theme .el-transfer__button.is-with-texts { + border-radius: 4px; +} + +.custom-theme .el-transfer__button.is-disabled { + border: 1px solid #d8dce5; + background-color: #f5f7fa; + color: #b4bccc; +} + +.custom-theme .el-transfer__button.is-disabled:hover { + border: 1px solid #d8dce5; + background-color: #f5f7fa; + color: #b4bccc; +} + +.custom-theme .el-transfer__button:first-child { + margin-bottom: 10px; +} + +.custom-theme .el-transfer__button:nth-child(2) { + margin: 0; +} + +.custom-theme .el-transfer__button i, +.custom-theme .el-transfer__button span { + font-size: 14px; +} + +.custom-theme .el-transfer__button [class*='el-icon-'] + span { + margin-left: 0; +} + +.custom-theme .el-transfer-panel { + border: 1px solid #e6ebf5; + border-radius: 4px; + overflow: hidden; + background: #fff; + display: inline-block; + vertical-align: middle; + width: 200px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; +} + +.custom-theme .el-transfer-panel__body { + height: 246px; +} + +.custom-theme .el-transfer-panel__body.is-with-footer { + padding-bottom: 40px; +} + +.custom-theme .el-transfer-panel__list { + margin: 0; + padding: 6px 0; + list-style: none; + height: 246px; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-transfer-panel__list.is-filterable { + height: 194px; + padding-top: 0; +} + +.custom-theme .el-transfer-panel__item { + height: 30px; + line-height: 30px; + padding-left: 15px; + display: block; +} + +.custom-theme .el-transfer-panel__item + .el-transfer-panel__item { + margin-left: 0; +} + +.custom-theme .el-transfer-panel__item.el-checkbox { + color: #5a5e66; +} + +.custom-theme .el-transfer-panel__item:hover { + color: #262729; +} + +.custom-theme .el-transfer-panel__item.el-checkbox .el-checkbox__label { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-left: 24px; + line-height: 30px; +} + +.custom-theme .el-transfer-panel__item .el-checkbox__input { + position: absolute; + top: 8px; +} + +.custom-theme .el-transfer-panel__filter { + text-align: center; + margin: 15px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + width: auto; +} + +.custom-theme .el-transfer-panel__filter .el-input__inner { + height: 32px; + width: 100%; + font-size: 12px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 16px; + padding-right: 10px; + padding-left: 30px; +} + +.custom-theme .el-transfer-panel__filter .el-input__icon { + margin-left: 5px; +} + +.custom-theme .el-transfer-panel__filter .el-icon-circle-close { + cursor: pointer; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__header { + height: 40px; + line-height: 40px; + background: #f5f7fa; + margin: 0; + padding-left: 15px; + border-bottom: 1px solid #e6ebf5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #000; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox { + display: block; + line-height: 40px; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label { + font-size: 16px; + color: #2d2f33; + font-weight: 400; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span { + position: absolute; + right: 15px; + color: #878d99; + font-size: 12px; + font-weight: 400; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__footer { + height: 40px; + background: #fff; + margin: 0; + padding: 0; + border-top: 1px solid #e6ebf5; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + z-index: 1; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__footer::after { + display: inline-block; + content: ''; + height: 100%; + vertical-align: middle; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__footer .el-checkbox { + padding-left: 20px; + color: #5a5e66; +} + +.custom-theme .el-transfer-panel .el-transfer-panel__empty { + margin: 0; + height: 30px; + line-height: 30px; + padding: 6px 15px 0; + color: #878d99; +} + +.custom-theme .el-transfer-panel .el-checkbox__label { + padding-left: 8px; +} + +.custom-theme .el-transfer-panel .el-checkbox__inner { + height: 14px; + width: 14px; + border-radius: 3px; +} + +.custom-theme .el-transfer-panel .el-checkbox__inner::after { + height: 6px; + width: 3px; + left: 4px; +} + +.custom-theme .el-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-container.is-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.custom-theme .el-header { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-aside { + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.custom-theme .el-main { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; + /*padding: 20px;*/ +} + +.custom-theme .el-footer { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} diff --git a/project-web/src/assets/dataV/1.png b/project-web/src/assets/dataV/1.png new file mode 100644 index 0000000..55f54ce --- /dev/null +++ b/project-web/src/assets/dataV/1.png Binary files differ diff --git a/project-web/src/assets/dataV/2.png b/project-web/src/assets/dataV/2.png new file mode 100644 index 0000000..d956b3f --- /dev/null +++ b/project-web/src/assets/dataV/2.png Binary files differ diff --git a/project-web/src/assets/dataV/3.png b/project-web/src/assets/dataV/3.png new file mode 100644 index 0000000..df6f7ae --- /dev/null +++ b/project-web/src/assets/dataV/3.png Binary files differ diff --git a/project-web/src/assets/dataV/EX.png b/project-web/src/assets/dataV/EX.png new file mode 100644 index 0000000..af029fe --- /dev/null +++ b/project-web/src/assets/dataV/EX.png Binary files differ diff --git a/project-web/src/assets/dataV/Ellipse 1954.png b/project-web/src/assets/dataV/Ellipse 1954.png new file mode 100644 index 0000000..6cc8260 --- /dev/null +++ b/project-web/src/assets/dataV/Ellipse 1954.png Binary files differ diff --git a/project-web/src/assets/dataV/Group 3649.png b/project-web/src/assets/dataV/Group 3649.png new file mode 100644 index 0000000..5af025a --- /dev/null +++ b/project-web/src/assets/dataV/Group 3649.png Binary files differ diff --git a/project-web/src/assets/dataV/Group 88.png b/project-web/src/assets/dataV/Group 88.png new file mode 100644 index 0000000..7d7a7e3 --- /dev/null +++ b/project-web/src/assets/dataV/Group 88.png Binary files differ diff --git a/project-web/src/assets/dataV/MYD.png b/project-web/src/assets/dataV/MYD.png new file mode 100644 index 0000000..4d1057d --- /dev/null +++ b/project-web/src/assets/dataV/MYD.png Binary files differ diff --git a/project-web/src/assets/dataV/SLABG.png b/project-web/src/assets/dataV/SLABG.png new file mode 100644 index 0000000..6bed2e2 --- /dev/null +++ b/project-web/src/assets/dataV/SLABG.png Binary files differ diff --git a/project-web/src/assets/dataV/ST.png b/project-web/src/assets/dataV/ST.png new file mode 100644 index 0000000..4f2507e --- /dev/null +++ b/project-web/src/assets/dataV/ST.png Binary files differ diff --git a/project-web/src/assets/dataV/SX.png b/project-web/src/assets/dataV/SX.png new file mode 100644 index 0000000..0be8389 --- /dev/null +++ b/project-web/src/assets/dataV/SX.png Binary files differ diff --git a/project-web/src/assets/dataV/TSLX.png b/project-web/src/assets/dataV/TSLX.png new file mode 100644 index 0000000..9ff7f02 --- /dev/null +++ b/project-web/src/assets/dataV/TSLX.png Binary files differ diff --git a/project-web/src/assets/dataV/YX.png b/project-web/src/assets/dataV/YX.png new file mode 100644 index 0000000..7b46c1d --- /dev/null +++ b/project-web/src/assets/dataV/YX.png Binary files differ diff --git a/project-web/src/assets/dataV/bg.png b/project-web/src/assets/dataV/bg.png new file mode 100644 index 0000000..d9e02a4 --- /dev/null +++ b/project-web/src/assets/dataV/bg.png Binary files differ diff --git a/project-web/src/assets/dataV/boxBG.png b/project-web/src/assets/dataV/boxBG.png new file mode 100644 index 0000000..f09788f --- /dev/null +++ b/project-web/src/assets/dataV/boxBG.png Binary files differ diff --git a/project-web/src/assets/dataV/cityBox.png b/project-web/src/assets/dataV/cityBox.png new file mode 100644 index 0000000..74aa3fd --- /dev/null +++ b/project-web/src/assets/dataV/cityBox.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico1.png b/project-web/src/assets/dataV/comprehensive-ico1.png new file mode 100644 index 0000000..9022b54 --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico1.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico2.png b/project-web/src/assets/dataV/comprehensive-ico2.png new file mode 100644 index 0000000..18bdb5e --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico2.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico3.png b/project-web/src/assets/dataV/comprehensive-ico3.png new file mode 100644 index 0000000..b9192c9 --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico3.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico4.png b/project-web/src/assets/dataV/comprehensive-ico4.png new file mode 100644 index 0000000..49e00f6 --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico4.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico5.png b/project-web/src/assets/dataV/comprehensive-ico5.png new file mode 100644 index 0000000..1bf4050 --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico5.png Binary files differ diff --git a/project-web/src/assets/dataV/comprehensive-ico6.png b/project-web/src/assets/dataV/comprehensive-ico6.png new file mode 100644 index 0000000..7ebf333 --- /dev/null +++ b/project-web/src/assets/dataV/comprehensive-ico6.png Binary files differ diff --git a/project-web/src/assets/dataV/fwt.png b/project-web/src/assets/dataV/fwt.png new file mode 100644 index 0000000..ef5d0c2 --- /dev/null +++ b/project-web/src/assets/dataV/fwt.png Binary files differ diff --git a/project-web/src/assets/dataV/g1.png b/project-web/src/assets/dataV/g1.png new file mode 100644 index 0000000..a081a41 --- /dev/null +++ b/project-web/src/assets/dataV/g1.png Binary files differ diff --git a/project-web/src/assets/dataV/g2.png b/project-web/src/assets/dataV/g2.png new file mode 100644 index 0000000..7a5e2d8 --- /dev/null +++ b/project-web/src/assets/dataV/g2.png Binary files differ diff --git a/project-web/src/assets/dataV/g3.png b/project-web/src/assets/dataV/g3.png new file mode 100644 index 0000000..333db22 --- /dev/null +++ b/project-web/src/assets/dataV/g3.png Binary files differ diff --git a/project-web/src/assets/dataV/gdzs.png b/project-web/src/assets/dataV/gdzs.png new file mode 100644 index 0000000..8c940aa --- /dev/null +++ b/project-web/src/assets/dataV/gdzs.png Binary files differ diff --git a/project-web/src/assets/dataV/header.png b/project-web/src/assets/dataV/header.png new file mode 100644 index 0000000..a641299 --- /dev/null +++ b/project-web/src/assets/dataV/header.png Binary files differ diff --git a/project-web/src/assets/dataV/jxzdgd.png b/project-web/src/assets/dataV/jxzdgd.png new file mode 100644 index 0000000..25f4809 --- /dev/null +++ b/project-web/src/assets/dataV/jxzdgd.png Binary files differ diff --git a/project-web/src/assets/dataV/kfpjl.png b/project-web/src/assets/dataV/kfpjl.png new file mode 100644 index 0000000..54ea219 --- /dev/null +++ b/project-web/src/assets/dataV/kfpjl.png Binary files differ diff --git a/project-web/src/assets/dataV/little-box.png b/project-web/src/assets/dataV/little-box.png new file mode 100644 index 0000000..b7c0a35 --- /dev/null +++ b/project-web/src/assets/dataV/little-box.png Binary files differ diff --git a/project-web/src/assets/dataV/sla.png b/project-web/src/assets/dataV/sla.png new file mode 100644 index 0000000..fae7243 --- /dev/null +++ b/project-web/src/assets/dataV/sla.png Binary files differ diff --git a/project-web/src/assets/dataV/wjdcl.png b/project-web/src/assets/dataV/wjdcl.png new file mode 100644 index 0000000..36a14a6 --- /dev/null +++ b/project-web/src/assets/dataV/wjdcl.png Binary files differ diff --git a/project-web/src/assets/dataV/ywtdry.png b/project-web/src/assets/dataV/ywtdry.png new file mode 100644 index 0000000..093edce --- /dev/null +++ b/project-web/src/assets/dataV/ywtdry.png Binary files differ diff --git a/project-web/src/assets/dataV/zsk.png b/project-web/src/assets/dataV/zsk.png new file mode 100644 index 0000000..868efab --- /dev/null +++ b/project-web/src/assets/dataV/zsk.png Binary files differ diff --git a/project-web/src/assets/iconfont/can.ttf b/project-web/src/assets/iconfont/can.ttf new file mode 100644 index 0000000..9add37d --- /dev/null +++ b/project-web/src/assets/iconfont/can.ttf Binary files differ diff --git a/project-web/src/assets/iconfont/can.woff b/project-web/src/assets/iconfont/can.woff new file mode 100644 index 0000000..ddb90b8 --- /dev/null +++ b/project-web/src/assets/iconfont/can.woff Binary files differ diff --git a/project-web/src/assets/iconfont/can.woff2 b/project-web/src/assets/iconfont/can.woff2 new file mode 100644 index 0000000..c8168f5 --- /dev/null +++ b/project-web/src/assets/iconfont/can.woff2 Binary files differ diff --git a/project-web/src/assets/iconfont/iconfont.css b/project-web/src/assets/iconfont/iconfont.css new file mode 100644 index 0000000..d76c1c0 --- /dev/null +++ b/project-web/src/assets/iconfont/iconfont.css @@ -0,0 +1,430 @@ +@font-face { + font-family: 'iconfont'; /* Project id 3139466 */ + src: url('./can.woff2'), + url('./can.woff'), + url('./can.ttf'); +} + +.iconfont { + font-family: 'iconfont' !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-drag2:before { + content: '\e61e'; +} + +.icon-miaosha:before { + content: '\e619'; +} + +.icon-shipinhao2:before { + content: '\e61b'; +} + +.icon-youhuiquan:before { + content: '\e63c'; +} + +.icon-a-dingdanguanli1:before { + content: '\e617'; +} + +.icon-daihexiao:before { + content: '\e618'; +} + +.icon-caiwuguanli:before { + content: '\e60b'; +} + +.icon-yonghuguanli:before { + content: '\e60c'; +} + +.icon-xitongshezhi:before { + content: '\e60d'; +} + +.icon-qiandaopeizhi:before { + content: '\e60e'; +} + +.icon-daituikuan:before { + content: '\e60f'; +} + +.icon-yihaotong:before { + content: '\e610'; +} + +.icon-shangpinguanli:before { + content: '\e611'; +} + +.icon-shanghuguanli:before { + content: '\e612'; +} + +.icon-daishenheshangpin:before { + content: '\e613'; +} + +.icon-fenxiaoshezhi:before { + content: '\e614'; +} + +.icon-zaishoushangpin:before { + content: '\e615'; +} + +.icon-daifahuo2:before { + content: '\e616'; +} + +.icon-shipinhao:before { + content: '\e60a'; +} + +.icon-yingyeshijian2:before { + content: '\e801'; +} + +.icon-tianjia:before { + content: '\e672'; +} + +.icon-shoucang3:before { + content: '\e79d'; +} + +.icon-shouye8:before { + content: '\e79e'; +} + +.icon-pinzhong:before { + content: '\e6a2'; +} + +.icon-hanghuo:before { + content: '\e6a3'; +} + +.icon-zhifa:before { + content: '\e6b6'; +} + +.icon-dijia:before { + content: '\e6b7'; +} + +.icon-yuyanqiehuan:before { + content: '\e608'; +} + +.icon-gouwuche1:before { + content: '\e609'; +} + +.icon-xuanzhong4:before { + content: '\e6af'; +} + +.icon-a-bianzu2:before { + content: '\e607'; +} + +.icon-daifukuan1:before { + content: '\e603'; +} + +.icon-daifahuo1:before { + content: '\e604'; +} + +.icon-wancheng:before { + content: '\e605'; +} + +.icon-daishouhuo1:before { + content: '\e606'; +} + +.icon-complete:before { + content: '\e646'; +} + +.icon-gou:before { + content: '\e602'; +} + +.icon-duoshanghupc-shuomingdanchuang:before { + content: '\e79a'; +} + +.icon-zizhi:before { + content: '\e601'; +} + +.icon-baozhang:before { + content: '\e6b4'; +} + +.icon-xiangxia:before { + content: '\e8ca'; +} + +.icon-xiangshang:before { + content: '\ebbb'; +} + +.icon-shaixuan:before { + content: '\e651'; +} + +.icon-xuanzhong11:before { + content: '\e6a5'; +} + +.icon-weixuan:before { + content: '\e6a6'; +} + +.icon-kefu_o:before { + content: '\eb63'; +} + +.icon-yingyongAPP_o:before { + content: '\eb88'; +} + +.icon-huobiliu_o:before { + content: '\eb9f'; +} + +.icon-yizhan_o:before { + content: '\ebc6'; +} + +.icon-guanzhu:before { + content: '\e645'; +} + +.icon-shangjiadingdan:before { + content: '\e64a'; +} + +.icon-jiantou:before { + content: '\e600'; +} + +.icon-jiazai:before { + content: '\e799'; +} + +.icon-shouye1:before { + content: '\e798'; +} + +.icon-wuliu:before { + content: '\e797'; +} + +.icon-zhuangshixian:before { + content: '\e796'; +} + +.icon-xihuan1:before { + content: '\e794'; +} + +.icon-shezhi:before { + content: '\e795'; +} + +.icon-pingfen:before { + content: '\e792'; +} + +.icon-pingweifen:before { + content: '\e793'; +} + +.icon-more:before { + content: '\e791'; +} + +.icon-yituikuan:before { + content: '\e78f'; +} + +.icon-tuikuanzhong:before { + content: '\e790'; +} + +.icon-sousuo2:before { + content: '\e78e'; +} + +.icon-guanbi:before { + content: '\e78d'; +} + +.icon-fenlei:before { + content: '\e788'; +} + +.icon-yuyan:before { + content: '\e78c'; +} + +.icon-gouwuche:before { + content: '\e789'; +} + +.icon-xihuan:before { + content: '\e78a'; +} + +.icon-gerenzhongxin:before { + content: '\e78b'; +} + +.icon-zhifushibai:before { + content: '\e785'; +} + +.icon-zhifuchenggong:before { + content: '\e786'; +} + +.icon-shouji:before { + content: '\e784'; +} + +.icon-mima:before { + content: '\e781'; +} + +.icon-youxiang:before { + content: '\e782'; +} + +.icon-yanzhengma:before { + content: '\e783'; +} + +.icon-fenxiang:before { + content: '\e77f'; +} + +.icon-yangshi1:before { + content: '\e780'; +} + +.icon-gengduo:before { + content: '\e776'; +} + +.icon-qingkong:before { + content: '\e777'; +} + +.icon-dingbufanhui:before { + content: '\e778'; +} + +.icon-xiala:before { + content: '\e779'; +} + +.icon-kefu:before { + content: '\e77a'; +} + +.icon-sousuo:before { + content: '\e77b'; +} + +.icon-paizhao:before { + content: '\e77c'; +} + +.icon-sousuo1:before { + content: '\e77d'; +} + +.icon-yangshi2:before { + content: '\e77e'; +} + +.icon-facebook:before { + content: '\e773'; +} + +.icon-guge:before { + content: '\e774'; +} + +.icon-twitter:before { + content: '\e775'; +} + +.icon-suozi:before { + content: '\e772'; +} + +.icon-dizhi:before { + content: '\e76c'; +} + +.icon-a-411ditu:before { + content: '\e76d'; +} + +.icon-shuoming:before { + content: '\e76e'; +} + +.icon-shanchu:before { + content: '\e76f'; +} + +.icon-yonghu:before { + content: '\e770'; +} + +.icon-bianji:before { + content: '\e771'; +} + +.icon-daifahuo:before { + content: '\e76b'; +} + +.icon-daipingjia-2:before { + content: '\e767'; +} + +.icon-daifukuan:before { + content: '\e768'; +} + +.icon-shouhou_tuikuan-2:before { + content: '\e769'; +} + +.icon-daishouhuo:before { + content: '\e76a'; +} + +.icon-jia:before { + content: '\e766'; +} + +.icon-jian:before { + content: '\e765'; +} diff --git a/project-web/src/assets/images/40b2.jpeg b/project-web/src/assets/images/40b2.jpeg new file mode 100644 index 0000000..9890f7b --- /dev/null +++ b/project-web/src/assets/images/40b2.jpeg Binary files differ diff --git a/project-web/src/assets/images/acttch-icon.png b/project-web/src/assets/images/acttch-icon.png new file mode 100644 index 0000000..d84097e --- /dev/null +++ b/project-web/src/assets/images/acttch-icon.png Binary files differ diff --git a/project-web/src/assets/images/app.png b/project-web/src/assets/images/app.png new file mode 100644 index 0000000..d7eb40d --- /dev/null +++ b/project-web/src/assets/images/app.png Binary files differ diff --git a/project-web/src/assets/images/avatar-kefu.png b/project-web/src/assets/images/avatar-kefu.png new file mode 100644 index 0000000..dc25f4d --- /dev/null +++ b/project-web/src/assets/images/avatar-kefu.png Binary files differ diff --git a/project-web/src/assets/images/cloud-bg.png b/project-web/src/assets/images/cloud-bg.png new file mode 100644 index 0000000..69f39e4 --- /dev/null +++ b/project-web/src/assets/images/cloud-bg.png Binary files differ diff --git a/project-web/src/assets/images/dataV.png b/project-web/src/assets/images/dataV.png new file mode 100644 index 0000000..15e9109 --- /dev/null +++ b/project-web/src/assets/images/dataV.png Binary files differ diff --git a/project-web/src/assets/images/doc.png b/project-web/src/assets/images/doc.png new file mode 100644 index 0000000..1d16e74 --- /dev/null +++ b/project-web/src/assets/images/doc.png Binary files differ diff --git a/project-web/src/assets/images/examine-icon.png b/project-web/src/assets/images/examine-icon.png new file mode 100644 index 0000000..565aabf --- /dev/null +++ b/project-web/src/assets/images/examine-icon.png Binary files differ diff --git a/project-web/src/assets/images/exel.png b/project-web/src/assets/images/exel.png new file mode 100644 index 0000000..ea536fb --- /dev/null +++ b/project-web/src/assets/images/exel.png Binary files differ diff --git a/project-web/src/assets/images/form-lf.png b/project-web/src/assets/images/form-lf.png new file mode 100644 index 0000000..dafdf66 --- /dev/null +++ b/project-web/src/assets/images/form-lf.png Binary files differ diff --git a/project-web/src/assets/images/head-one.png b/project-web/src/assets/images/head-one.png new file mode 100644 index 0000000..72abb07 --- /dev/null +++ b/project-web/src/assets/images/head-one.png Binary files differ diff --git a/project-web/src/assets/images/head-two.png b/project-web/src/assets/images/head-two.png new file mode 100644 index 0000000..55d14d4 --- /dev/null +++ b/project-web/src/assets/images/head-two.png Binary files differ diff --git a/project-web/src/assets/images/icon-connect.png b/project-web/src/assets/images/icon-connect.png new file mode 100644 index 0000000..bfd3a24 --- /dev/null +++ b/project-web/src/assets/images/icon-connect.png Binary files differ diff --git a/project-web/src/assets/images/icon-datav.png b/project-web/src/assets/images/icon-datav.png new file mode 100644 index 0000000..2c7aad6 --- /dev/null +++ b/project-web/src/assets/images/icon-datav.png Binary files differ diff --git a/project-web/src/assets/images/icon-line-up.png b/project-web/src/assets/images/icon-line-up.png new file mode 100644 index 0000000..da44bf8 --- /dev/null +++ b/project-web/src/assets/images/icon-line-up.png Binary files differ diff --git a/project-web/src/assets/images/icon-notice.png b/project-web/src/assets/images/icon-notice.png new file mode 100644 index 0000000..dcba1f1 --- /dev/null +++ b/project-web/src/assets/images/icon-notice.png Binary files differ diff --git a/project-web/src/assets/images/icon-phone.png b/project-web/src/assets/images/icon-phone.png new file mode 100644 index 0000000..17fdab5 --- /dev/null +++ b/project-web/src/assets/images/icon-phone.png Binary files differ diff --git a/project-web/src/assets/images/img.png b/project-web/src/assets/images/img.png new file mode 100644 index 0000000..285c2ea --- /dev/null +++ b/project-web/src/assets/images/img.png Binary files differ diff --git a/project-web/src/assets/images/index-icon.png b/project-web/src/assets/images/index-icon.png new file mode 100644 index 0000000..e4ab947 --- /dev/null +++ b/project-web/src/assets/images/index-icon.png Binary files differ diff --git a/project-web/src/assets/images/index/down.png b/project-web/src/assets/images/index/down.png new file mode 100644 index 0000000..a90f816 --- /dev/null +++ b/project-web/src/assets/images/index/down.png Binary files differ diff --git a/project-web/src/assets/images/index/dxy.png b/project-web/src/assets/images/index/dxy.png new file mode 100644 index 0000000..9e3ab55 --- /dev/null +++ b/project-web/src/assets/images/index/dxy.png Binary files differ diff --git a/project-web/src/assets/images/index/fbgd.png b/project-web/src/assets/images/index/fbgd.png new file mode 100644 index 0000000..a95a643 --- /dev/null +++ b/project-web/src/assets/images/index/fbgd.png Binary files differ diff --git a/project-web/src/assets/images/index/gdc.png b/project-web/src/assets/images/index/gdc.png new file mode 100644 index 0000000..3f9066f --- /dev/null +++ b/project-web/src/assets/images/index/gdc.png Binary files differ diff --git a/project-web/src/assets/images/index/jxzgd.png b/project-web/src/assets/images/index/jxzgd.png new file mode 100644 index 0000000..79949bd --- /dev/null +++ b/project-web/src/assets/images/index/jxzgd.png Binary files differ diff --git a/project-web/src/assets/images/index/qbgd.png b/project-web/src/assets/images/index/qbgd.png new file mode 100644 index 0000000..95da117 --- /dev/null +++ b/project-web/src/assets/images/index/qbgd.png Binary files differ diff --git a/project-web/src/assets/images/index/top.png b/project-web/src/assets/images/index/top.png new file mode 100644 index 0000000..7368085 --- /dev/null +++ b/project-web/src/assets/images/index/top.png Binary files differ diff --git a/project-web/src/assets/images/index/wtc.png b/project-web/src/assets/images/index/wtc.png new file mode 100644 index 0000000..9a3d211 --- /dev/null +++ b/project-web/src/assets/images/index/wtc.png Binary files differ diff --git a/project-web/src/assets/images/jpg.png b/project-web/src/assets/images/jpg.png new file mode 100644 index 0000000..b4d35ec --- /dev/null +++ b/project-web/src/assets/images/jpg.png Binary files differ diff --git a/project-web/src/assets/images/left-nav-bg.png b/project-web/src/assets/images/left-nav-bg.png new file mode 100644 index 0000000..d1da853 --- /dev/null +++ b/project-web/src/assets/images/left-nav-bg.png Binary files differ diff --git a/project-web/src/assets/images/line-current-icon.png b/project-web/src/assets/images/line-current-icon.png new file mode 100644 index 0000000..924e889 --- /dev/null +++ b/project-web/src/assets/images/line-current-icon.png Binary files differ diff --git a/project-web/src/assets/images/line-current.png b/project-web/src/assets/images/line-current.png new file mode 100644 index 0000000..cd4002e --- /dev/null +++ b/project-web/src/assets/images/line-current.png Binary files differ diff --git a/project-web/src/assets/images/line-nopass.png b/project-web/src/assets/images/line-nopass.png new file mode 100644 index 0000000..430ebe9 --- /dev/null +++ b/project-web/src/assets/images/line-nopass.png Binary files differ diff --git a/project-web/src/assets/images/line-pass-icon.png b/project-web/src/assets/images/line-pass-icon.png new file mode 100644 index 0000000..8209fa7 --- /dev/null +++ b/project-web/src/assets/images/line-pass-icon.png Binary files differ diff --git a/project-web/src/assets/images/line-pass.png b/project-web/src/assets/images/line-pass.png new file mode 100644 index 0000000..8106756 --- /dev/null +++ b/project-web/src/assets/images/line-pass.png Binary files differ diff --git a/project-web/src/assets/images/login-name.png b/project-web/src/assets/images/login-name.png new file mode 100644 index 0000000..b4b33b2 --- /dev/null +++ b/project-web/src/assets/images/login-name.png Binary files differ diff --git a/project-web/src/assets/images/login_img.png b/project-web/src/assets/images/login_img.png new file mode 100644 index 0000000..4178bfc --- /dev/null +++ b/project-web/src/assets/images/login_img.png Binary files differ diff --git a/project-web/src/assets/images/logo.png b/project-web/src/assets/images/logo.png new file mode 100644 index 0000000..aa8d961 --- /dev/null +++ b/project-web/src/assets/images/logo.png Binary files differ diff --git a/project-web/src/assets/images/map/cancel.png b/project-web/src/assets/images/map/cancel.png new file mode 100644 index 0000000..4b46b51 --- /dev/null +++ b/project-web/src/assets/images/map/cancel.png Binary files differ diff --git a/project-web/src/assets/images/map/close-total.png b/project-web/src/assets/images/map/close-total.png new file mode 100644 index 0000000..8792025 --- /dev/null +++ b/project-web/src/assets/images/map/close-total.png Binary files differ diff --git a/project-web/src/assets/images/map/end.png b/project-web/src/assets/images/map/end.png new file mode 100644 index 0000000..aac56b7 --- /dev/null +++ b/project-web/src/assets/images/map/end.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-gj.png b/project-web/src/assets/images/map/icon-gj.png new file mode 100644 index 0000000..d10c416 --- /dev/null +++ b/project-web/src/assets/images/map/icon-gj.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-gygz.png b/project-web/src/assets/images/map/icon-gygz.png new file mode 100644 index 0000000..34d9a28 --- /dev/null +++ b/project-web/src/assets/images/map/icon-gygz.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-gz.png b/project-web/src/assets/images/map/icon-gz.png new file mode 100644 index 0000000..f24f156 --- /dev/null +++ b/project-web/src/assets/images/map/icon-gz.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-other.png b/project-web/src/assets/images/map/icon-other.png new file mode 100644 index 0000000..86f4d28 --- /dev/null +++ b/project-web/src/assets/images/map/icon-other.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-qt.png b/project-web/src/assets/images/map/icon-qt.png new file mode 100644 index 0000000..0f6c8c5 --- /dev/null +++ b/project-web/src/assets/images/map/icon-qt.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-sclzx.png b/project-web/src/assets/images/map/icon-sclzx.png new file mode 100644 index 0000000..6997602 --- /dev/null +++ b/project-web/src/assets/images/map/icon-sclzx.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-sjzx.png b/project-web/src/assets/images/map/icon-sjzx.png new file mode 100644 index 0000000..0607222 --- /dev/null +++ b/project-web/src/assets/images/map/icon-sjzx.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-sn.png b/project-web/src/assets/images/map/icon-sn.png new file mode 100644 index 0000000..a6f7f63 --- /dev/null +++ b/project-web/src/assets/images/map/icon-sn.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-xcpzx.png b/project-web/src/assets/images/map/icon-xcpzx.png new file mode 100644 index 0000000..a5e263e --- /dev/null +++ b/project-web/src/assets/images/map/icon-xcpzx.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-xxh.png b/project-web/src/assets/images/map/icon-xxh.png new file mode 100644 index 0000000..5d0169c --- /dev/null +++ b/project-web/src/assets/images/map/icon-xxh.png Binary files differ diff --git a/project-web/src/assets/images/map/icon-zhywl.png b/project-web/src/assets/images/map/icon-zhywl.png new file mode 100644 index 0000000..c1e0917 --- /dev/null +++ b/project-web/src/assets/images/map/icon-zhywl.png Binary files differ diff --git a/project-web/src/assets/images/map/ing.png b/project-web/src/assets/images/map/ing.png new file mode 100644 index 0000000..2106009 --- /dev/null +++ b/project-web/src/assets/images/map/ing.png Binary files differ diff --git a/project-web/src/assets/images/map/open-total.png b/project-web/src/assets/images/map/open-total.png new file mode 100644 index 0000000..bc24d0b --- /dev/null +++ b/project-web/src/assets/images/map/open-total.png Binary files differ diff --git a/project-web/src/assets/images/map/wait.png b/project-web/src/assets/images/map/wait.png new file mode 100644 index 0000000..5d23e05 --- /dev/null +++ b/project-web/src/assets/images/map/wait.png Binary files differ diff --git a/project-web/src/assets/images/obg-icon.png b/project-web/src/assets/images/obg-icon.png new file mode 100644 index 0000000..873a673 --- /dev/null +++ b/project-web/src/assets/images/obg-icon.png Binary files differ diff --git a/project-web/src/assets/images/pdf.png b/project-web/src/assets/images/pdf.png new file mode 100644 index 0000000..130ece4 --- /dev/null +++ b/project-web/src/assets/images/pdf.png Binary files differ diff --git a/project-web/src/assets/images/phone.png b/project-web/src/assets/images/phone.png new file mode 100644 index 0000000..c810329 --- /dev/null +++ b/project-web/src/assets/images/phone.png Binary files differ diff --git a/project-web/src/assets/images/png.png b/project-web/src/assets/images/png.png new file mode 100644 index 0000000..b4d35ec --- /dev/null +++ b/project-web/src/assets/images/png.png Binary files differ diff --git a/project-web/src/assets/images/project/del.png b/project-web/src/assets/images/project/del.png new file mode 100644 index 0000000..79b0263 --- /dev/null +++ b/project-web/src/assets/images/project/del.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-gj-lv.png b/project-web/src/assets/images/project/icon-gj-lv.png new file mode 100644 index 0000000..893006e --- /dev/null +++ b/project-web/src/assets/images/project/icon-gj-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-gygz-lv.png b/project-web/src/assets/images/project/icon-gygz-lv.png new file mode 100644 index 0000000..7c8e69b --- /dev/null +++ b/project-web/src/assets/images/project/icon-gygz-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-gz-lv.png b/project-web/src/assets/images/project/icon-gz-lv.png new file mode 100644 index 0000000..a598446 --- /dev/null +++ b/project-web/src/assets/images/project/icon-gz-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-other-lv.png b/project-web/src/assets/images/project/icon-other-lv.png new file mode 100644 index 0000000..276897e --- /dev/null +++ b/project-web/src/assets/images/project/icon-other-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-qt-lv.png b/project-web/src/assets/images/project/icon-qt-lv.png new file mode 100644 index 0000000..c82d079 --- /dev/null +++ b/project-web/src/assets/images/project/icon-qt-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-return.png b/project-web/src/assets/images/project/icon-return.png new file mode 100644 index 0000000..baeeb20 --- /dev/null +++ b/project-web/src/assets/images/project/icon-return.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-sclzx-lv.png b/project-web/src/assets/images/project/icon-sclzx-lv.png new file mode 100644 index 0000000..2f73a29 --- /dev/null +++ b/project-web/src/assets/images/project/icon-sclzx-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-sjzx-lv.png b/project-web/src/assets/images/project/icon-sjzx-lv.png new file mode 100644 index 0000000..c23e267 --- /dev/null +++ b/project-web/src/assets/images/project/icon-sjzx-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-sn-lv.png b/project-web/src/assets/images/project/icon-sn-lv.png new file mode 100644 index 0000000..8e14d92 --- /dev/null +++ b/project-web/src/assets/images/project/icon-sn-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-xcpzx-lv.png b/project-web/src/assets/images/project/icon-xcpzx-lv.png new file mode 100644 index 0000000..a5e263e --- /dev/null +++ b/project-web/src/assets/images/project/icon-xcpzx-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-xxh-lv.png b/project-web/src/assets/images/project/icon-xxh-lv.png new file mode 100644 index 0000000..e12a61f --- /dev/null +++ b/project-web/src/assets/images/project/icon-xxh-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/icon-zhywl-lv.png b/project-web/src/assets/images/project/icon-zhywl-lv.png new file mode 100644 index 0000000..0148580 --- /dev/null +++ b/project-web/src/assets/images/project/icon-zhywl-lv.png Binary files differ diff --git a/project-web/src/assets/images/project/no-file.png b/project-web/src/assets/images/project/no-file.png new file mode 100644 index 0000000..9cd99b5 --- /dev/null +++ b/project-web/src/assets/images/project/no-file.png Binary files differ diff --git a/project-web/src/assets/images/project/pdf.png b/project-web/src/assets/images/project/pdf.png new file mode 100644 index 0000000..d6dde7d --- /dev/null +++ b/project-web/src/assets/images/project/pdf.png Binary files differ diff --git a/project-web/src/assets/images/project/pic-add.png b/project-web/src/assets/images/project/pic-add.png new file mode 100644 index 0000000..dc5f7e5 --- /dev/null +++ b/project-web/src/assets/images/project/pic-add.png Binary files differ diff --git a/project-web/src/assets/images/project/ppt.png b/project-web/src/assets/images/project/ppt.png new file mode 100644 index 0000000..c3dd307 --- /dev/null +++ b/project-web/src/assets/images/project/ppt.png Binary files differ diff --git a/project-web/src/assets/images/project/txt.png b/project-web/src/assets/images/project/txt.png new file mode 100644 index 0000000..c499137 --- /dev/null +++ b/project-web/src/assets/images/project/txt.png Binary files differ diff --git a/project-web/src/assets/images/project/word.png b/project-web/src/assets/images/project/word.png new file mode 100644 index 0000000..788dd89 --- /dev/null +++ b/project-web/src/assets/images/project/word.png Binary files differ diff --git a/project-web/src/assets/images/project/xls.png b/project-web/src/assets/images/project/xls.png new file mode 100644 index 0000000..59d8a43 --- /dev/null +++ b/project-web/src/assets/images/project/xls.png Binary files differ diff --git a/project-web/src/assets/images/staff-female.jpg b/project-web/src/assets/images/staff-female.jpg new file mode 100644 index 0000000..a419bb8 --- /dev/null +++ b/project-web/src/assets/images/staff-female.jpg Binary files differ diff --git a/project-web/src/assets/images/staff-male.jpg b/project-web/src/assets/images/staff-male.jpg new file mode 100644 index 0000000..13df560 --- /dev/null +++ b/project-web/src/assets/images/staff-male.jpg Binary files differ diff --git a/project-web/src/assets/images/talk/dataV-1.png b/project-web/src/assets/images/talk/dataV-1.png new file mode 100644 index 0000000..e8e550f --- /dev/null +++ b/project-web/src/assets/images/talk/dataV-1.png Binary files differ diff --git a/project-web/src/assets/images/talk/dataV-2.png b/project-web/src/assets/images/talk/dataV-2.png new file mode 100644 index 0000000..3895870 --- /dev/null +++ b/project-web/src/assets/images/talk/dataV-2.png Binary files differ diff --git a/project-web/src/assets/images/talk/head-kf.png b/project-web/src/assets/images/talk/head-kf.png new file mode 100644 index 0000000..bf4103e --- /dev/null +++ b/project-web/src/assets/images/talk/head-kf.png Binary files differ diff --git a/project-web/src/assets/images/talk/head-my.png b/project-web/src/assets/images/talk/head-my.png new file mode 100644 index 0000000..aa962a0 --- /dev/null +++ b/project-web/src/assets/images/talk/head-my.png Binary files differ diff --git a/project-web/src/assets/images/talk/icon-doc.png b/project-web/src/assets/images/talk/icon-doc.png new file mode 100644 index 0000000..bfb78e5 --- /dev/null +++ b/project-web/src/assets/images/talk/icon-doc.png Binary files differ diff --git a/project-web/src/assets/images/talk/icon-pdf.png b/project-web/src/assets/images/talk/icon-pdf.png new file mode 100644 index 0000000..910ad20 --- /dev/null +++ b/project-web/src/assets/images/talk/icon-pdf.png Binary files differ diff --git a/project-web/src/assets/images/talk/icon-ppt.png b/project-web/src/assets/images/talk/icon-ppt.png new file mode 100644 index 0000000..26424a5 --- /dev/null +++ b/project-web/src/assets/images/talk/icon-ppt.png Binary files differ diff --git a/project-web/src/assets/images/talk/icon-unknown.png b/project-web/src/assets/images/talk/icon-unknown.png new file mode 100644 index 0000000..02d7f6e --- /dev/null +++ b/project-web/src/assets/images/talk/icon-unknown.png Binary files differ diff --git a/project-web/src/assets/images/talk/icon-xls.png b/project-web/src/assets/images/talk/icon-xls.png new file mode 100644 index 0000000..3407076 --- /dev/null +++ b/project-web/src/assets/images/talk/icon-xls.png Binary files differ diff --git a/project-web/src/assets/images/text.png b/project-web/src/assets/images/text.png new file mode 100644 index 0000000..55079da --- /dev/null +++ b/project-web/src/assets/images/text.png Binary files differ diff --git a/project-web/src/assets/images/top-bg.png b/project-web/src/assets/images/top-bg.png new file mode 100644 index 0000000..88b300a --- /dev/null +++ b/project-web/src/assets/images/top-bg.png Binary files differ diff --git a/project-web/src/assets/images/top-title.png b/project-web/src/assets/images/top-title.png new file mode 100644 index 0000000..96527a2 --- /dev/null +++ b/project-web/src/assets/images/top-title.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg1.png b/project-web/src/assets/images/visualization/bg1.png new file mode 100644 index 0000000..b241948 --- /dev/null +++ b/project-web/src/assets/images/visualization/bg1.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg2.png b/project-web/src/assets/images/visualization/bg2.png new file mode 100644 index 0000000..71d749e --- /dev/null +++ b/project-web/src/assets/images/visualization/bg2.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg3.png b/project-web/src/assets/images/visualization/bg3.png new file mode 100644 index 0000000..d7303c7 --- /dev/null +++ b/project-web/src/assets/images/visualization/bg3.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg4.png b/project-web/src/assets/images/visualization/bg4.png new file mode 100644 index 0000000..497946f --- /dev/null +++ b/project-web/src/assets/images/visualization/bg4.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg5.png b/project-web/src/assets/images/visualization/bg5.png new file mode 100644 index 0000000..8472402 --- /dev/null +++ b/project-web/src/assets/images/visualization/bg5.png Binary files differ diff --git a/project-web/src/assets/images/visualization/bg6.png b/project-web/src/assets/images/visualization/bg6.png new file mode 100644 index 0000000..000a469 --- /dev/null +++ b/project-web/src/assets/images/visualization/bg6.png Binary files differ diff --git a/project-web/src/assets/images/visualization/col.png b/project-web/src/assets/images/visualization/col.png new file mode 100644 index 0000000..69699ef --- /dev/null +++ b/project-web/src/assets/images/visualization/col.png Binary files differ diff --git a/project-web/src/assets/images/visualization/left.png b/project-web/src/assets/images/visualization/left.png new file mode 100644 index 0000000..a7f12e3 --- /dev/null +++ b/project-web/src/assets/images/visualization/left.png Binary files differ diff --git a/project-web/src/assets/images/visualization/line.png b/project-web/src/assets/images/visualization/line.png new file mode 100644 index 0000000..b6e0785 --- /dev/null +++ b/project-web/src/assets/images/visualization/line.png Binary files differ diff --git a/project-web/src/assets/images/visualization/right.png b/project-web/src/assets/images/visualization/right.png new file mode 100644 index 0000000..79030a8 --- /dev/null +++ b/project-web/src/assets/images/visualization/right.png Binary files differ diff --git a/project-web/src/assets/images/visualization/v-bg.png b/project-web/src/assets/images/visualization/v-bg.png new file mode 100644 index 0000000..4853a48 --- /dev/null +++ b/project-web/src/assets/images/visualization/v-bg.png Binary files differ diff --git a/project-web/src/assets/images/visualization/v-top-bg.png b/project-web/src/assets/images/visualization/v-top-bg.png new file mode 100644 index 0000000..d527ec0 --- /dev/null +++ b/project-web/src/assets/images/visualization/v-top-bg.png Binary files differ diff --git a/project-web/src/assets/images/visualization/v-top-title.png b/project-web/src/assets/images/visualization/v-top-title.png new file mode 100644 index 0000000..2019d9e --- /dev/null +++ b/project-web/src/assets/images/visualization/v-top-title.png Binary files differ diff --git a/project-web/src/assets/images/word.png b/project-web/src/assets/images/word.png new file mode 100644 index 0000000..1d16e74 --- /dev/null +++ b/project-web/src/assets/images/word.png Binary files differ diff --git a/project-web/src/assets/images/xls.png b/project-web/src/assets/images/xls.png new file mode 100644 index 0000000..ea536fb --- /dev/null +++ b/project-web/src/assets/images/xls.png Binary files differ diff --git a/project-web/src/assets/images/zip.png b/project-web/src/assets/images/zip.png new file mode 100644 index 0000000..ce90851 --- /dev/null +++ b/project-web/src/assets/images/zip.png Binary files differ diff --git a/project-web/src/assets/imgs/app.png b/project-web/src/assets/imgs/app.png new file mode 100644 index 0000000..8c0138c --- /dev/null +++ b/project-web/src/assets/imgs/app.png Binary files differ diff --git a/project-web/src/assets/imgs/dark.svg b/project-web/src/assets/imgs/dark.svg new file mode 100644 index 0000000..f646bd7 --- /dev/null +++ b/project-web/src/assets/imgs/dark.svg @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1"> + <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> + <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> + <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix> + <feMerge> + <feMergeNode in="shadowMatrixOuter1"></feMergeNode> + <feMergeNode in="SourceGraphic"></feMergeNode> + </feMerge> + </filter> + <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect> + <filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4"> + <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> + <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> + <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix> + </filter> + </defs> + <g id="閰嶇疆闈㈡澘" width="48" height="40" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="setting-copy-2" width="48" height="40" transform="translate(-1190.000000, -136.000000)"> + <g id="Group-8" width="48" height="40" transform="translate(1167.000000, 0.000000)"> + <g id="Group-5-Copy-5" filter="url(#filter-1)" transform="translate(25.000000, 137.000000)"> + <mask id="mask-3" fill="white"> + <use xlink:href="#path-2"></use> + </mask> + <g id="Rectangle-18"> + <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use> + <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use> + </g> + <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect> + <rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect> + </g> + </g> + </g> + </g> +</svg> \ No newline at end of file diff --git a/project-web/src/assets/imgs/default.jpg b/project-web/src/assets/imgs/default.jpg new file mode 100644 index 0000000..aa0237b --- /dev/null +++ b/project-web/src/assets/imgs/default.jpg Binary files differ diff --git a/project-web/src/assets/imgs/default_avatar.png b/project-web/src/assets/imgs/default_avatar.png new file mode 100644 index 0000000..9198d1a --- /dev/null +++ b/project-web/src/assets/imgs/default_avatar.png Binary files differ diff --git a/project-web/src/assets/imgs/expressi.jpg b/project-web/src/assets/imgs/expressi.jpg new file mode 100644 index 0000000..d3fbe46 --- /dev/null +++ b/project-web/src/assets/imgs/expressi.jpg Binary files differ diff --git a/project-web/src/assets/imgs/fahuo.png b/project-web/src/assets/imgs/fahuo.png new file mode 100644 index 0000000..0d3e2dc --- /dev/null +++ b/project-web/src/assets/imgs/fahuo.png Binary files differ diff --git a/project-web/src/assets/imgs/fukuan.png b/project-web/src/assets/imgs/fukuan.png new file mode 100644 index 0000000..e7ac27e --- /dev/null +++ b/project-web/src/assets/imgs/fukuan.png Binary files differ diff --git a/project-web/src/assets/imgs/haowu.png b/project-web/src/assets/imgs/haowu.png new file mode 100644 index 0000000..10c55a9 --- /dev/null +++ b/project-web/src/assets/imgs/haowu.png Binary files differ diff --git a/project-web/src/assets/imgs/head.gif b/project-web/src/assets/imgs/head.gif new file mode 100644 index 0000000..e33fb4a --- /dev/null +++ b/project-web/src/assets/imgs/head.gif Binary files differ diff --git a/project-web/src/assets/imgs/index_logo.png b/project-web/src/assets/imgs/index_logo.png new file mode 100644 index 0000000..9023cc3 --- /dev/null +++ b/project-web/src/assets/imgs/index_logo.png Binary files differ diff --git a/project-web/src/assets/imgs/kefuImg.jpg b/project-web/src/assets/imgs/kefuImg.jpg new file mode 100644 index 0000000..e609d03 --- /dev/null +++ b/project-web/src/assets/imgs/kefuImg.jpg Binary files differ diff --git a/project-web/src/assets/imgs/laber.png b/project-web/src/assets/imgs/laber.png new file mode 100644 index 0000000..bda12a7 --- /dev/null +++ b/project-web/src/assets/imgs/laber.png Binary files differ diff --git a/project-web/src/assets/imgs/light.svg b/project-web/src/assets/imgs/light.svg new file mode 100644 index 0000000..4ca4d3e --- /dev/null +++ b/project-web/src/assets/imgs/light.svg @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="48px" height="40px" viewBox="0 0 48 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <title>light</title> + <defs> + <rect id="path-1" x="0" y="0" width="48" height="40" rx="4"></rect> + <rect id="path-3" x="0" y="0" width="48" height="40" rx="4"></rect> + </defs> + <g id="鍚庡彴" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="light"> + <g id="Rectangle-18"> + <g id="path-2-link" fill="#000000" fill-rule="nonzero"> + <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect> + </g> + <g id="path-2-link" fill="#F0F2F5"> + <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect> + </g> + </g> + <g id="Rectangle-11-Clipped"> + <mask id="mask-2" fill="white"> + <use xlink:href="#path-1"></use> + </mask> + <g id="path-2"></g> + <rect id="Rectangle-11" fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" x="0" y="0" width="48" height="10"></rect> + </g> + <g id="Rectangle-18-Clipped"> + <mask id="mask-4" fill="white"> + <use xlink:href="#path-3"></use> + </mask> + <g id="path-2"></g> + <rect id="Rectangle-18" fill="#2B68C9" fill-rule="nonzero" mask="url(#mask-4)" x="0" y="0" width="16" height="40"></rect> + </g> + </g> + </g> +</svg> \ No newline at end of file diff --git a/project-web/src/assets/imgs/line.jpg b/project-web/src/assets/imgs/line.jpg new file mode 100644 index 0000000..1640f55 --- /dev/null +++ b/project-web/src/assets/imgs/line.jpg Binary files differ diff --git a/project-web/src/assets/imgs/live-logo.gif b/project-web/src/assets/imgs/live-logo.gif new file mode 100644 index 0000000..1dfef3a --- /dev/null +++ b/project-web/src/assets/imgs/live-logo.gif Binary files differ diff --git a/project-web/src/assets/imgs/login-bg.png b/project-web/src/assets/imgs/login-bg.png new file mode 100644 index 0000000..f4b4444 --- /dev/null +++ b/project-web/src/assets/imgs/login-bg.png Binary files differ diff --git a/project-web/src/assets/imgs/login-name.png b/project-web/src/assets/imgs/login-name.png new file mode 100644 index 0000000..2fe9a27 --- /dev/null +++ b/project-web/src/assets/imgs/login-name.png Binary files differ diff --git a/project-web/src/assets/imgs/logo.png b/project-web/src/assets/imgs/logo.png new file mode 100644 index 0000000..b06c554 --- /dev/null +++ b/project-web/src/assets/imgs/logo.png Binary files differ diff --git a/project-web/src/assets/imgs/mobilefoot.png b/project-web/src/assets/imgs/mobilefoot.png new file mode 100644 index 0000000..4a89d4b --- /dev/null +++ b/project-web/src/assets/imgs/mobilefoot.png Binary files differ diff --git a/project-web/src/assets/imgs/mobilehead.png b/project-web/src/assets/imgs/mobilehead.png new file mode 100644 index 0000000..248cfb7 --- /dev/null +++ b/project-web/src/assets/imgs/mobilehead.png Binary files differ diff --git a/project-web/src/assets/imgs/moren.jpg b/project-web/src/assets/imgs/moren.jpg new file mode 100644 index 0000000..98725f1 --- /dev/null +++ b/project-web/src/assets/imgs/moren.jpg Binary files differ diff --git a/project-web/src/assets/imgs/moren.png b/project-web/src/assets/imgs/moren.png new file mode 100644 index 0000000..02d2c8d --- /dev/null +++ b/project-web/src/assets/imgs/moren.png Binary files differ diff --git a/project-web/src/assets/imgs/new_header1.png b/project-web/src/assets/imgs/new_header1.png new file mode 100644 index 0000000..04fa8f8 --- /dev/null +++ b/project-web/src/assets/imgs/new_header1.png Binary files differ diff --git a/project-web/src/assets/imgs/no.png b/project-web/src/assets/imgs/no.png new file mode 100644 index 0000000..e4ade86 --- /dev/null +++ b/project-web/src/assets/imgs/no.png Binary files differ diff --git a/project-web/src/assets/imgs/orderIndex.png b/project-web/src/assets/imgs/orderIndex.png new file mode 100644 index 0000000..74d6ffb --- /dev/null +++ b/project-web/src/assets/imgs/orderIndex.png Binary files differ diff --git a/project-web/src/assets/imgs/pc.png b/project-web/src/assets/imgs/pc.png new file mode 100644 index 0000000..7055ca1 --- /dev/null +++ b/project-web/src/assets/imgs/pc.png Binary files differ diff --git a/project-web/src/assets/imgs/phoneBox.png b/project-web/src/assets/imgs/phoneBox.png new file mode 100644 index 0000000..41e0d27 --- /dev/null +++ b/project-web/src/assets/imgs/phoneBox.png Binary files differ diff --git a/project-web/src/assets/imgs/pingjia.png b/project-web/src/assets/imgs/pingjia.png new file mode 100644 index 0000000..cecfdcf --- /dev/null +++ b/project-web/src/assets/imgs/pingjia.png Binary files differ diff --git a/project-web/src/assets/imgs/pricetitle.jpg b/project-web/src/assets/imgs/pricetitle.jpg new file mode 100644 index 0000000..1451364 --- /dev/null +++ b/project-web/src/assets/imgs/pricetitle.jpg Binary files differ diff --git a/project-web/src/assets/imgs/routine.png b/project-web/src/assets/imgs/routine.png new file mode 100644 index 0000000..83379ed --- /dev/null +++ b/project-web/src/assets/imgs/routine.png Binary files differ diff --git a/project-web/src/assets/imgs/scan.gif b/project-web/src/assets/imgs/scan.gif new file mode 100644 index 0000000..95ed7fa --- /dev/null +++ b/project-web/src/assets/imgs/scan.gif Binary files differ diff --git a/project-web/src/assets/imgs/shengxian.png b/project-web/src/assets/imgs/shengxian.png new file mode 100644 index 0000000..57fd8da --- /dev/null +++ b/project-web/src/assets/imgs/shengxian.png Binary files differ diff --git a/project-web/src/assets/imgs/shouhuo.png b/project-web/src/assets/imgs/shouhuo.png new file mode 100644 index 0000000..5be7e9a --- /dev/null +++ b/project-web/src/assets/imgs/shouhuo.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/cart.png b/project-web/src/assets/imgs/tabBar/cart.png new file mode 100644 index 0000000..b55ee31 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/cart.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/cartd.png b/project-web/src/assets/imgs/tabBar/cartd.png new file mode 100644 index 0000000..4a0ca41 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/cartd.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/cate.png b/project-web/src/assets/imgs/tabBar/cate.png new file mode 100644 index 0000000..a25cf93 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/cate.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/cated.png b/project-web/src/assets/imgs/tabBar/cated.png new file mode 100644 index 0000000..76aa0d2 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/cated.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/index.png b/project-web/src/assets/imgs/tabBar/index.png new file mode 100644 index 0000000..c2d7fae --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/index.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/indexd.png b/project-web/src/assets/imgs/tabBar/indexd.png new file mode 100644 index 0000000..c6bd228 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/indexd.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/user.png b/project-web/src/assets/imgs/tabBar/user.png new file mode 100644 index 0000000..26d7fbe --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/user.png Binary files differ diff --git a/project-web/src/assets/imgs/tabBar/userd.png b/project-web/src/assets/imgs/tabBar/userd.png new file mode 100644 index 0000000..f3304d7 --- /dev/null +++ b/project-web/src/assets/imgs/tabBar/userd.png Binary files differ diff --git a/project-web/src/assets/imgs/tuikuan.png b/project-web/src/assets/imgs/tuikuan.png new file mode 100644 index 0000000..1811c61 --- /dev/null +++ b/project-web/src/assets/imgs/tuikuan.png Binary files differ diff --git a/project-web/src/assets/imgs/user_bg.png b/project-web/src/assets/imgs/user_bg.png new file mode 100644 index 0000000..2e2d706 --- /dev/null +++ b/project-web/src/assets/imgs/user_bg.png Binary files differ diff --git a/project-web/src/assets/imgs/wechat_h5.png b/project-web/src/assets/imgs/wechat_h5.png new file mode 100644 index 0000000..3fcc224 --- /dev/null +++ b/project-web/src/assets/imgs/wechat_h5.png Binary files differ diff --git a/project-web/src/assets/imgs/weixin.png b/project-web/src/assets/imgs/weixin.png new file mode 100644 index 0000000..c4dcfe1 --- /dev/null +++ b/project-web/src/assets/imgs/weixin.png Binary files differ diff --git a/project-web/src/assets/imgs/writeOffBg.jpg b/project-web/src/assets/imgs/writeOffBg.jpg new file mode 100644 index 0000000..935de84 --- /dev/null +++ b/project-web/src/assets/imgs/writeOffBg.jpg Binary files differ diff --git a/project-web/src/assets/imgs/wutu.png b/project-web/src/assets/imgs/wutu.png new file mode 100644 index 0000000..42c67aa --- /dev/null +++ b/project-web/src/assets/imgs/wutu.png Binary files differ diff --git a/project-web/src/assets/imgs/youxuan.png b/project-web/src/assets/imgs/youxuan.png new file mode 100644 index 0000000..01ad375 --- /dev/null +++ b/project-web/src/assets/imgs/youxuan.png Binary files differ diff --git a/project-web/src/assets/js/canvas-nest.min.js b/project-web/src/assets/js/canvas-nest.min.js new file mode 100644 index 0000000..62dca45 --- /dev/null +++ b/project-web/src/assets/js/canvas-nest.min.js @@ -0,0 +1,113 @@ +// JavaScript Document +!(function () { + function o(w, v, i) { + return w.getAttribute(v) || i; + } + + function j(i) { + return document.getElementsByTagName(i); + } + + function l() { + var i = j('script'), + w = i.length, + v = i[w - 1]; + return { + l: w, + z: o(v, 'zIndex', -2), + o: o(v, 'opacity', 0.8), + c: o(v, 'color', '255,255,255'), + n: o(v, 'count', 240), + }; + } + + function k() { + (r = u.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth), + (n = u.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight); + } + + function b() { + delay = delay + 1; + if (delay < 5) { + m(b); + } else { + delay = 0; + e.clearRect(0, 0, r, n); + var w = [f].concat(t); + var x, v, A, B, z, y; + t.forEach(function (i) { + (i.x += i.xa), + (i.y += i.ya), + (i.xa *= i.x > r || i.x < 0 ? -1 : 1), + (i.ya *= i.y > n || i.y < 0 ? -1 : 1), + e.fillRect(i.x - 0.5, i.y - 0.5, 2, 2); + e.fillStyle = '#FFFFFF'; + for (v = 0; v < w.length; v++) { + x = w[v]; + if (i !== x && null !== x.x && null !== x.y) { + (B = i.x - x.x), (z = i.y - x.y), (y = B * B + z * z); + y < x.max && + (x === f && y >= x.max / 2 && ((i.x -= 0.03 * B), (i.y -= 0.03 * z)), + (A = (x.max - y) / x.max), + e.beginPath(), + (e.lineWidth = A / 2), + (e.strokeStyle = 'rgba(' + s.c + ',' + (A + 0.2) + ')'), + e.moveTo(i.x, i.y), + e.lineTo(x.x, x.y), + e.stroke()); + } + } + w.splice(w.indexOf(i), 1); + }), + m(b); + } + } + var u = document.createElement('canvas'), + s = l(), + c = 'c_n' + s.l, + e = u.getContext('2d'), + delay = 0, + r, + n, + m = + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (i) { + window.setTimeout(i, 1000 / 45); + }, + a = Math.random, + f = { + x: null, + y: null, + max: 20000, + }; + u.id = c; + u.style.cssText = 'position:fixed;top:0;left:0;z-index:' + s.z + ';opacity:' + s.o; + j('body')[0].appendChild(u); + k(), (window.onresize = k); + (window.onmousemove = function (i) { + (i = i || window.event), (f.x = i.clientX), (f.y = i.clientY); + }), + (window.onmouseout = function () { + (f.x = null), (f.y = null); + }); + for (var t = [], p = 0; s.n > p; p++) { + var h = a() * r, + g = a() * n, + q = 2 * a() - 1, + d = 2 * a() - 1; + t.push({ + x: h, + y: g, + xa: q, + ya: d, + max: 6000, + }); + } + setTimeout(function () { + b(); + }, 100); +})(); diff --git a/project-web/src/assets/js/emo.js b/project-web/src/assets/js/emo.js new file mode 100644 index 0000000..337b0a7 --- /dev/null +++ b/project-web/src/assets/js/emo.js @@ -0,0 +1,488 @@ +const emoList = [ + [{ + url: '100.gif', + alt: '[寰瑧]' + }, + { + url: '101.gif', + alt: '[浼ゅ績]' + }, + { + url: '102.gif', + alt: '[缇庡コ]' + }, + { + url: '103.gif', + alt: '[鍙戝憜]' + }, + { + url: '104.gif', + alt: '[澧ㄩ暅]' + }, + { + url: '105.gif', + alt: '[鍝璢' + }, + { + url: '106.gif', + alt: '[缇瀅' + }, + { + url: '107.gif', + alt: '[鍝慮' + }, + { + url: '108.gif', + alt: '[鐫' + }, + { + url: '109.gif', + alt: '[鍝璢' + }, + { + url: '110.gif', + alt: '[鍥' + }, + { + url: '111.gif', + alt: '[鎬抅' + }, + { + url: '112.gif', + alt: '[璋冪毊]' + }, + { + url: '113.gif', + alt: '[绗慮' + }, + { + url: '114.gif', + alt: '[鎯婅]' + }, + { + url: '115.gif', + alt: '[闅捐繃]' + }, + { + url: '116.gif', + alt: '[閰穄' + }, + { + url: '117.gif', + alt: '[姹梋' + }, + { + url: '118.gif', + alt: '[鎶撶媯]' + }, + { + url: '119.gif', + alt: '[鍚怾' + }, + { + url: '120.gif', + alt: '[绗慮' + }, + { + url: '121.gif', + alt: '[蹇箰]' + }, + { + url: '122.gif', + alt: '[濂嘳' + }, + { + url: '123.gif', + alt: '[鍌瞉' + } + ], + [{ + url: '124.gif', + alt: '[楗縘' + }, + { + url: '125.gif', + alt: '[绱痌' + }, + { + url: '126.gif', + alt: '[鍚揮' + }, + { + url: '127.gif', + alt: '[姹梋' + }, + { + url: '128.gif', + alt: '[楂樺叴]' + }, + { + url: '129.gif', + alt: '[闂瞉' + }, + { + url: '130.gif', + alt: '[鍔姏]' + }, + { + url: '131.gif', + alt: '[楠俔' + }, + { + url: '132.gif', + alt: '[鐤戦棶]' + }, + { + url: '133.gif', + alt: '[绉樺瘑]' + }, + { + url: '134.gif', + alt: '[涔盷' + }, + { + url: '135.gif', + alt: '[鐤痌' + }, + { + url: '136.gif', + alt: '[鍝�]' + }, + { + url: '137.gif', + alt: '[楝糫' + }, + { + url: '138.gif', + alt: '[鎵撳嚮]' + }, + { + url: '139.gif', + alt: '[bye]' + }, + { + url: '140.gif', + alt: '[姹梋' + }, + { + url: '141.gif', + alt: '[鎶燷' + }, + { + url: '142.gif', + alt: '[榧撴帉]' + }, + { + url: '143.gif', + alt: '[绯熺硶]' + }, + { + url: '144.gif', + alt: '[鎭舵悶]' + }, + { + url: '145.gif', + alt: '[浠�涔圿' + }, + { + url: '146.gif', + alt: '[浠�涔圿' + }, + { + url: '147.gif', + alt: '[绱痌' + } + ], + [{ + url: '148.gif', + alt: '[鐪媇' + }, + { + url: '149.gif', + alt: '[闅捐繃]' + }, + { + url: '150.gif', + alt: '[闅捐繃]' + }, + { + url: '151.gif', + alt: '[鍧廬' + }, + { + url: '152.gif', + alt: '[浜瞉' + }, + { + url: '153.gif', + alt: '[鍚揮' + }, + { + url: '154.gif', + alt: '[鍙�淽' + }, + { + url: '155.gif', + alt: '[鍒�]' + }, + { + url: '156.gif', + alt: '[姘存灉]' + }, + { + url: '157.gif', + alt: '[閰抅' + }, + { + url: '158.gif', + alt: '[绡悆]' + }, + { + url: '159.gif', + alt: '[涔掍箵]' + }, + { + url: '160.gif', + alt: '[鍜栧暋]' + }, + { + url: '161.gif', + alt: '[缇庨]' + }, + { + url: '162.gif', + alt: '[鍔ㄧ墿]' + }, + { + url: '163.gif', + alt: '[椴滆姳]' + }, + { + url: '164.gif', + alt: '[鏋痌' + }, + { + url: '165.gif', + alt: '[鍞嘳' + }, + { + url: '166.gif', + alt: '[鐖盷' + }, + { + url: '167.gif', + alt: '[鍒嗘墜]' + }, + { + url: '168.gif', + alt: '[鐢熸棩]' + }, + { + url: '169.gif', + alt: '[鐢礭' + }, + { + url: '170.gif', + alt: '[鐐稿脊]' + }, + { + url: '171.gif', + alt: '[鍒�瀛怾' + } + ], + [{ + url: '172.gif', + alt: '[瓒崇悆]' + }, + { + url: '173.gif', + alt: '[鐡㈣櫕]' + }, + { + url: '174.gif', + alt: '[缈擼' + }, + { + url: '175.gif', + alt: '[鏈堜寒]' + }, + { + url: '176.gif', + alt: '[澶槼]' + }, + { + url: '177.gif', + alt: '[绀肩墿]' + }, + { + url: '178.gif', + alt: '[鎶辨姳]' + }, + { + url: '179.gif', + alt: '[鎷囨寚]' + }, + { + url: '180.gif', + alt: '[璐綆]' + }, + { + url: '181.gif', + alt: '[鎻℃墜]' + }, + { + url: '182.gif', + alt: '[鍓垁鎵媇' + }, + { + url: '183.gif', + alt: '[鎶辨嫵]' + }, + { + url: '184.gif', + alt: '[鍕惧紩]' + }, + { + url: '185.gif', + alt: '[鎷冲ご]' + }, + { + url: '186.gif', + alt: '[灏忔媷鎸嘳' + }, + { + url: '187.gif', + alt: '[鎷囨寚鍏玗' + }, + { + url: '188.gif', + alt: '[椋熸寚]' + }, + { + url: '189.gif', + alt: '[ok]' + }, + { + url: '190.gif', + alt: '[鎯呬荆]' + }, + { + url: '191.gif', + alt: '[鐖卞績]' + }, + { + url: '192.gif', + alt: '[韫﹀搾]' + }, + { + url: '193.gif', + alt: '[棰ゆ姈]' + }, + { + url: '194.gif', + alt: '[鎬勬皵]' + }, + { + url: '195.gif', + alt: '[璺宠垶]' + } + ], + [{ + url: '196.gif', + alt: '[鍙戝憜]' + }, + { + url: '197.gif', + alt: '[鑳岀潃]' + }, + { + url: '198.gif', + alt: '[浼告墜]' + }, + { + url: '199.gif', + alt: '[鑰嶅竻]' + }, + { + url: '200.png', + alt: '[寰瑧]' + }, + { + url: '201.png', + alt: '[鐢熺梾]' + }, + { + url: '202.png', + alt: '[鍝常]' + }, + { + url: '203.png', + alt: '[鍚愯垖]' + }, + { + url: '204.png', + alt: '[杩风硦]' + }, + { + url: '205.png', + alt: '[鐬溂]' + }, + { + url: '206.png', + alt: '[鎭愭�朷' + }, + { + url: '207.png', + alt: '[蹇ф剚]' + }, + { + url: '208.png', + alt: '[鐪ㄧ湁]' + }, + { + url: '209.png', + alt: '[闂溂]' + }, + { + url: '210.png', + alt: '[閯欒]' + }, + { + url: '211.png', + alt: '[闃存殫]' + }, + { + url: '212.png', + alt: '[灏忛]' + }, + { + url: '213.png', + alt: '[绀肩墿]' + }, + { + url: '214.png', + alt: '[鎷滀經]' + }, + { + url: '215.png', + alt: '[鍔涢噺]' + }, + { + url: '216.png', + alt: '[閲戦挶]' + }, + { + url: '217.png', + alt: '[铔嬬硶]' + }, + { + url: '218.png', + alt: '[褰╁甫]' + }, + { + url: '219.png', + alt: '[绀肩墿]' + } + ] +] +export default emoList diff --git a/project-web/src/assets/js/media_750.js b/project-web/src/assets/js/media_750.js new file mode 100644 index 0000000..84c7949 --- /dev/null +++ b/project-web/src/assets/js/media_750.js @@ -0,0 +1,61 @@ +(function flexible(window, document) { + var docEl = document.documentElement || document.body; + var dpr = window.devicePixelRatio || 1; + + // adjust body font size + function setBodyFontSize() { + if (document.body) { + } else { + document.addEventListener('DOMContentLoaded', setBodyFontSize); + } + } + setBodyFontSize(); + + // set 1rem = viewWidth / 10 + function setRemUnit() { + var rem = docEl.clientWidth / 7.5; + docEl.style.fontSize = rem + 'px'; + } + + setRemUnit(); + + // reset rem unit on page resize + window.addEventListener('resize', setRemUnit); + window.addEventListener('pageshow', function (e) { + if (e.persisted) { + setRemUnit(); + } + }); + + // detect 0.5px supports + if (dpr >= 2) { + var fakeBody = document.createElement('body'); + var testElement = document.createElement('div'); + testElement.style.border = '.5px solid transparent'; + fakeBody.appendChild(testElement); + docEl.appendChild(fakeBody); + if (testElement.offsetHeight === 1) { + docEl.classList.add('hairlines'); + } + docEl.removeChild(fakeBody); + } + + if (typeof WeixinJSBridge == 'object' && typeof WeixinJSBridge.invoke == 'function') { + handleFontSize(); + } else { + if (document.addEventListener) { + document.addEventListener('WeixinJSBridgeReady', handleFontSize, false); + } else if (document.attachEvent) { + document.attachEvent('WeixinJSBridgeReady', handleFontSize); + document.attachEvent('onWeixinJSBridgeReady', handleFontSize); + } + } + function handleFontSize() { + // 璁剧疆缃戦〉瀛椾綋涓洪粯璁ゅぇ灏� + WeixinJSBridge.invoke('setFontSizeCallback', { fontSize: 0 }); + // 閲嶅啓璁剧疆缃戦〉瀛椾綋澶у皬鐨勪簨浠� + WeixinJSBridge.on('menu:setfont', function () { + WeixinJSBridge.invoke('setFontSizeCallback', { fontSize: 0 }); + }); + } +})(window, document); diff --git a/project-web/src/assets/logo/logo.png b/project-web/src/assets/logo/logo.png new file mode 100644 index 0000000..8c0138c --- /dev/null +++ b/project-web/src/assets/logo/logo.png Binary files differ diff --git a/project-web/src/assets/theme/goodsList1.png b/project-web/src/assets/theme/goodsList1.png new file mode 100644 index 0000000..8cf7082 --- /dev/null +++ b/project-web/src/assets/theme/goodsList1.png Binary files differ diff --git a/project-web/src/assets/theme/goodsList2.png b/project-web/src/assets/theme/goodsList2.png new file mode 100644 index 0000000..c9965fb --- /dev/null +++ b/project-web/src/assets/theme/goodsList2.png Binary files differ diff --git a/project-web/src/assets/theme/goodsList3.png b/project-web/src/assets/theme/goodsList3.png new file mode 100644 index 0000000..7a373a4 --- /dev/null +++ b/project-web/src/assets/theme/goodsList3.png Binary files differ diff --git a/project-web/src/assets/theme/theme1.png b/project-web/src/assets/theme/theme1.png new file mode 100644 index 0000000..e8c3c88 --- /dev/null +++ b/project-web/src/assets/theme/theme1.png Binary files differ diff --git a/project-web/src/assets/theme/theme2.png b/project-web/src/assets/theme/theme2.png new file mode 100644 index 0000000..fb523bb --- /dev/null +++ b/project-web/src/assets/theme/theme2.png Binary files differ diff --git a/project-web/src/assets/theme/theme3.png b/project-web/src/assets/theme/theme3.png new file mode 100644 index 0000000..898a5b9 --- /dev/null +++ b/project-web/src/assets/theme/theme3.png Binary files differ diff --git a/project-web/src/assets/theme/theme4.png b/project-web/src/assets/theme/theme4.png new file mode 100644 index 0000000..0ed72de --- /dev/null +++ b/project-web/src/assets/theme/theme4.png Binary files differ diff --git a/project-web/src/assets/theme/theme5.png b/project-web/src/assets/theme/theme5.png new file mode 100644 index 0000000..3fba5cf --- /dev/null +++ b/project-web/src/assets/theme/theme5.png Binary files differ diff --git a/project-web/src/components/Breadcrumb/index.vue b/project-web/src/components/Breadcrumb/index.vue new file mode 100644 index 0000000..a9ec539 --- /dev/null +++ b/project-web/src/components/Breadcrumb/index.vue @@ -0,0 +1,93 @@ +<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> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import pathToRegexp from 'path-to-regexp'; + +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: '/dashboard', 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().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase(); + }, + pathCompile(path) { + // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 + const { params } = this.$route; + var toPath = pathToRegexp.compile(path); + return toPath(params); + }, + handleLink(item) { + const { redirect, path } = item; + if (redirect) { + this.$router.push(redirect); + return; + } + this.$router.push(this.pathCompile(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/project-web/src/components/Hamburger/index.vue b/project-web/src/components/Hamburger/index.vue new file mode 100644 index 0000000..2465c28 --- /dev/null +++ b/project-web/src/components/Hamburger/index.vue @@ -0,0 +1,57 @@ +<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" + color="#fff" + > + <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> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +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; + color: #fff; +} + +.hamburger.is-active { + transform: rotate(180deg); +} +</style> diff --git a/project-web/src/components/HeaderSearch/index.vue b/project-web/src/components/HeaderSearch/index.vue new file mode 100644 index 0000000..9ac6577 --- /dev/null +++ b/project-web/src/components/HeaderSearch/index.vue @@ -0,0 +1,187 @@ +<template> + <div :class="{ show: show }" class="header-search"> + <i class="iconfont iconios-search" style="font-size: 20px" @click.stop="click"></i> + <el-select + ref="headerSearchSelect" + v-model="search" + :remote-method="querySearch" + filterable + default-first-option + remote + placeholder="鎼滅储鑿滃崟" + class="header-search-select" + @change="change" + > + <el-option v-for="item in options" :key="item.url" :value="item" :label="item.name.join(' > ')" /> + </el-select> + </div> +</template> + +<script> +import Fuse from 'fuse.js'; +import path from 'path'; +import { mapGetters } from 'vuex'; +export default { + name: 'HeaderSearch', + data() { + return { + search: '', + options: [], + searchPool: [], + show: false, + fuse: undefined, + }; + }, + computed: { + ...mapGetters(['permission_routes']), + // routes() { + // return this.$store.getters.permission_routes + // } + }, + watch: { + routes(n) { + this.searchPool = this.generateRoutes(this.permission_routes); + }, + searchPool(list) { + this.initFuse(list); + }, + show(value) { + if (value) { + document.body.addEventListener('click', this.close); + } else { + document.body.removeEventListener('click', this.close); + } + }, + }, + mounted() { + // this.searchPool = this.generateRoutes(this.permission_routes); + }, + methods: { + click() { + this.show = !this.show; + if (this.show) { + this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.focus(); + } + }, + close() { + this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.blur(); + this.options = []; + this.show = false; + }, + change(val) { + this.$router.push(val.path); + this.search = ''; + this.options = []; + this.$nextTick(() => { + this.show = false; + }); + }, + initFuse(list) { + this.fuse = new Fuse(list, { + shouldSort: true, + threshold: 0.4, + location: 0, + distance: 100, + maxPatternLength: 32, + minMatchCharLength: 1, + keys: [ + { + name: 'name', + weight: 0.7, + }, + { + name: 'url', + weight: 0.3, + }, + ], + }); + }, + // Filter out the routes that can be displayed in the sidebar + // And generate the internationalized title + generateRoutes(routes, basePath = '/', prefixTitle = []) { + let res = []; + for (const router of routes) { + // console.log("..........."); + // console.log(router); + // skip hidden router + if (router.hidden) { + continue; + } + + const data = { + path: path.resolve(basePath, router.url), + name: [...prefixTitle], + children: router.child || [], + }; + + if (router.name) { + data.name = [...data.name, router.name]; + + if (router.redirect !== 'noRedirect') { + // only push the routes with title + // special case: need to exclude parent router without redirect + res.push(data); + } + } + + // recursive child routes + if (router.child) { + const tempRoutes = this.generateRoutes(router.child, data.url, data.name); + if (tempRoutes.length >= 1) { + res = [...res, ...tempRoutes]; + } + } + } + return res; + }, + querySearch(query) { + if (query !== '') { + this.options = this.fuse.search(query); + } else { + this.options = []; + } + }, + }, +}; +</script> + +<style lang="scss" scoped> +.header-search { + font-size: 0 !important; + display: inline-flex !important; + cursor: pointer; + .search-icon { + cursor: pointer; + font-size: 18px; + vertical-align: middle; + } + + .header-search-select { + font-size: 18px; + transition: width 0.2s; + width: 0; + overflow: hidden; + background: transparent; + border-radius: 0; + display: inline-block; + /*vertical-align: middle;*/ + line-height: 50px; + ::v-deep .el-input__inner { + border-radius: 0; + border: 0; + padding-left: 0; + padding-right: 0; + box-shadow: none !important; + /*border-bottom: 1px solid #d9d9d9;*/ + vertical-align: middle; + } + } + + &.show { + .header-search-select { + width: 210px; + margin-left: 10px; + } + } +} +</style> diff --git a/project-web/src/components/Screenfull/index.vue b/project-web/src/components/Screenfull/index.vue new file mode 100644 index 0000000..48246ec --- /dev/null +++ b/project-web/src/components/Screenfull/index.vue @@ -0,0 +1,69 @@ +<template> + <div> + <i class="iconfont iconios-qr-scanner" style="font-size: 20px" @click="click"></i> + </div> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import screenfull from 'screenfull'; + +export default { + name: 'Screenfull', + data() { + return { + isFullscreen: false, + }; + }, + mounted() { + this.init(); + }, + beforeDestroy() { + this.destroy(); + }, + methods: { + click() { + if (!screenfull.enabled) { + this.$message({ + message: 'you browser can not work', + type: 'warning', + }); + return false; + } + screenfull.toggle(); + }, + change() { + this.isFullscreen = screenfull.isFullscreen; + }, + init() { + if (screenfull.enabled) { + screenfull.on('change', this.change); + } + }, + destroy() { + if (screenfull.enabled) { + 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/project-web/src/components/SvgIcon/index.vue b/project-web/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..a8e75b7 --- /dev/null +++ b/project-web/src/components/SvgIcon/index.vue @@ -0,0 +1,71 @@ +<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> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage +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/project-web/src/components/ThemePicker/index.vue b/project-web/src/components/ThemePicker/index.vue new file mode 100644 index 0000000..1180787 --- /dev/null +++ b/project-web/src/components/ThemePicker/index.vue @@ -0,0 +1,183 @@ +<template> + <el-color-picker + v-model="theme" + :predefine="['#409EFF', '#1890ff', '#304156', '#212121', '#11a983', '#13c2c2', '#6959CD', '#f5222d']" + class="theme-picker" + popper-class="theme-picker-dropdown" + /> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +const version = require('element-ui/package.json').version; // element-ui version from node_modules +const ORIGINAL_THEME = '#409EFF'; // default color + +export default { + data() { + return { + chalk: '', // content of theme-chalk css + theme: '', + }; + }, + computed: { + defaultTheme() { + return this.$store.state.settings.theme; + }, + }, + watch: { + defaultTheme: { + handler: function (val, oldVal) { + this.theme = val; + }, + immediate: true, + }, + async theme(val) { + const oldVal = this.chalk ? this.theme : ORIGINAL_THEME; + if (typeof val !== 'string') return; + const themeCluster = this.getThemeCluster(val.replace('#', '')); + const originalCluster = this.getThemeCluster(oldVal.replace('#', '')); + + const $message = this.$message({ + message: ' Compiling the theme', + customClass: 'theme-message', + type: 'success', + duration: 0, + iconClass: 'el-icon-loading', + }); + + const getHandler = (variable, id) => { + return () => { + const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', '')); + const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster); + + let styleTag = document.getElementById(id); + if (!styleTag) { + styleTag = document.createElement('style'); + styleTag.setAttribute('id', id); + document.head.appendChild(styleTag); + } + styleTag.innerText = newStyle; + }; + }; + + if (!this.chalk) { + const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`; + await this.getCSSString(url, 'chalk'); + } + + const chalkHandler = getHandler('chalk', 'chalk-style'); + + chalkHandler(); + + const styles = [].slice.call(document.querySelectorAll('style')).filter((style) => { + const text = style.innerText; + return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text); + }); + styles.forEach((style) => { + const { innerText } = style; + if (typeof innerText !== 'string') return; + style.innerText = this.updateStyle(innerText, originalCluster, themeCluster); + }); + + this.$emit('change', val); + + $message.close(); + }, + }, + + methods: { + updateStyle(style, oldCluster, newCluster) { + let newStyle = style; + oldCluster.forEach((color, index) => { + newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index]); + }); + return newStyle; + }, + + getCSSString(url, variable) { + return new Promise((resolve) => { + const xhr = new XMLHttpRequest(); + xhr.onreadystatechange = () => { + if (xhr.readyState === 4 && xhr.status === 200) { + this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, ''); + resolve(); + } + }; + xhr.open('GET', url); + xhr.send(); + }); + }, + + getThemeCluster(theme) { + const tintColor = (color, tint) => { + let red = parseInt(color.slice(0, 2), 16); + let green = parseInt(color.slice(2, 4), 16); + let blue = parseInt(color.slice(4, 6), 16); + + if (tint === 0) { + // when primary color is in its rgb space + return [red, green, blue].join(','); + } else { + red += Math.round(tint * (255 - red)); + green += Math.round(tint * (255 - green)); + blue += Math.round(tint * (255 - blue)); + + red = red.toString(16); + green = green.toString(16); + blue = blue.toString(16); + + return `#${red}${green}${blue}`; + } + }; + + const shadeColor = (color, shade) => { + let red = parseInt(color.slice(0, 2), 16); + let green = parseInt(color.slice(2, 4), 16); + let blue = parseInt(color.slice(4, 6), 16); + + red = Math.round((1 - shade) * red); + green = Math.round((1 - shade) * green); + blue = Math.round((1 - shade) * blue); + + red = red.toString(16); + green = green.toString(16); + blue = blue.toString(16); + + return `#${red}${green}${blue}`; + }; + + const clusters = [theme]; + for (let i = 0; i <= 9; i++) { + clusters.push(tintColor(theme, Number((i / 10).toFixed(2)))); + } + clusters.push(shadeColor(theme, 0.1)); + return clusters; + }, + }, +}; +</script> + +<style> +.theme-message, +.theme-picker-dropdown { + z-index: 99999 !important; +} + +.theme-picker .el-color-picker__trigger { + height: 26px !important; + width: 26px !important; + padding: 2px; +} + +.theme-picker-dropdown .el-color-dropdown__link-btn { + display: none; +} +</style> diff --git a/project-web/src/components/Tinymce/components/EditorImage.vue b/project-web/src/components/Tinymce/components/EditorImage.vue new file mode 100644 index 0000000..dd47cfc --- /dev/null +++ b/project-web/src/components/Tinymce/components/EditorImage.vue @@ -0,0 +1,58 @@ +<template> + <div class="upload-container"> + <el-button + :style="{ background: color, borderColor: color }" + icon="el-icon-upload" + size="mini" + type="primary" + @click="modalPicTap('2')" + > + 涓婁紶鍥剧墖</el-button + > + </div> +</template> + +<script> +export default { + name: 'EditorSlideUpload', + props: { + color: { + type: String, + default: '#1890ff', + }, + }, + data() { + return { + dialogVisible: false, + listObj: {}, + fileList: [], + }; + }, + methods: { + modalPicTap(tit) { + const _this = this; + this.$modalUpload( + function (img) { + let arr = []; + if (img.length > 10) return this.$message.warning('鏈�澶氶�夋嫨10寮犲浘鐗囷紒'); + img.map((item) => { + arr.push(item.sattDir); + }); + _this.$emit('successCBK', arr); + }, + tit, + 'content', + ); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.editor-slide-upload { + margin-bottom: 20px; + ::v-deep .el-upload--picture-card { + width: 100%; + } +} +</style> diff --git a/project-web/src/components/Tinymce/dynamicLoadScript.js b/project-web/src/components/Tinymce/dynamicLoadScript.js new file mode 100644 index 0000000..e5fb26c --- /dev/null +++ b/project-web/src/components/Tinymce/dynamicLoadScript.js @@ -0,0 +1,59 @@ +let callbacks = []; + +function loadedTinymce() { + // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144 + // check is successfully downloaded script + return window.tinymce; +} + +const dynamicLoadScript = (src, callback) => { + const existingScript = document.getElementById(src); + const cb = callback || function () {}; + + if (!existingScript) { + const script = document.createElement('script'); + script.src = src; // src url for the third-party library being loaded. + script.id = src; + document.body.appendChild(script); + callbacks.push(cb); + const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd; + onEnd(script); + } + + if (existingScript && cb) { + if (loadedTinymce()) { + cb(null, existingScript); + } else { + callbacks.push(cb); + } + } + + function stdOnEnd(script) { + script.onload = function () { + // this.onload = null here is necessary + // because even IE9 works not like others + this.onerror = this.onload = null; + for (const cb of callbacks) { + cb(null, script); + } + callbacks = null; + }; + script.onerror = function () { + this.onerror = this.onload = null; + cb(new Error('Failed to load ' + src), script); + }; + } + + function ieOnEnd(script) { + script.onreadystatechange = function () { + if (this.readyState !== 'complete' && this.readyState !== 'loaded') return; + this.onreadystatechange = null; + for (const cb of callbacks) { + cb(null, script); // there is no way to catch loading errors in IE8 + } + callbacks = null; + }; + } +}; + +export default dynamicLoadScript; diff --git a/project-web/src/components/Tinymce/index.vue b/project-web/src/components/Tinymce/index.vue new file mode 100644 index 0000000..b7a8cb0 --- /dev/null +++ b/project-web/src/components/Tinymce/index.vue @@ -0,0 +1,279 @@ +<template> + <div :class="{ fullscreen: fullscreen }" class="tinymce-container editor-container"> + <textarea :id="tinymceId" class="tinymce-textarea"/> + <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 plugins from './plugins'; +import toolbar from './toolbar'; +import {getDownUrl, getUploadUrl, upLoadFile} from '@/utils/base' +// import config from '@' +export default { + name: 'Tinymce', + // components: { editorImage }, + props: { + id: { + type: String, + default: function () { + return 'vue-tinymce-' + +new Date() + ((Math.random() * 1000).toFixed(0) + ''); + }, + }, + value: { + type: String, + default: '', + }, + toolbar: { + type: Array, + required: false, + default() { + return []; + }, + }, + // 椤堕儴閰嶇疆灞炴�� 鍒嗗埆鏄� 缂栬緫 鏂囨。 琛ㄦ牸 鎻掑叆 鏍煎紡 濯掍綋 + menubar: { + type: String, + default: '', // edit file table insert view format + }, + height: { + type: Number, + required: false, + default: 300, + }, + }, + data() { + return { + hasChange: false, + hasInit: false, + tinymceId: this.id, + fullscreen: false, + languageTypeList: { + en: 'en', + zh: 'zh_CN', + }, + }; + }, + computed: { + language() { + // return this.languageTypeList[this.$store.getters.language] + return this.languageTypeList['zh']; + }, + }, + watch: { + value(val) { + if (!this.hasChange && this.hasInit) { + this.$nextTick(() => window.tinymce.get(this.tinymceId).setContent(val || '')); + } + }, + language() { + this.destroyTinymce(); + this.$nextTick(() => this.initTinymce()); + }, + }, + mounted() { + this.initTinymce(); + }, + activated() { + this.initTinymce(); + }, + deactivated() { + this.destroyTinymce(); + }, + destroyed() { + this.destroyTinymce(); + }, + methods: { + initTinymce() { + const _this = this; + window.tinymce.init({ + branding: false, + language: this.language, + selector: `#${this.tinymceId}`, + height: this.height, + body_class: 'panel-body ', + object_resizing: false, + toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar, + menubar: this.menubar, + fontsize_formats: '10px 11px 12px 13px 14px 15px 16px 18px 20px 22px 24px 26px 28px 30px 32px 34px 36px', + fontsize_input_default_unit: "px", + plugins: plugins, + file_picker_types: 'image media', + content_style: "img {max-width:100%;height:auto}", + paste_data_images: true, // 榛樿鏄痜alse鐨勶紝璁板緱瑕佹敼涓簍rue鎵嶈兘绮樿创 + // 鎴浘 绮樿创鐨勫浘鐗� 闇�瑕佽蛋涓婁紶鏂规硶涓嶇劧灏辨槸涓枃浠舵祦 锛堣鏂规硶宸ュ叿鏍忛噷鐨勫浘鐗囦笂浼� 鏄袱涓柟娉曘�� 鍒嗗紑鍐欙紝姝ゆ柟娉曚负绮樿创鍥剧墖鏃朵娇鐢級 + urlconverter_callback: function (url, node, on_save, name) { + if (node === 'img' && url.startsWith('blob:') || url.startsWith('data:')) { + console.log('urlConverter:', url, 'node', node, on_save, name) + tinymce.activeEditor && tinymce.activeEditor.uploadImages() + } + return url; + }, + images_upload_handler: (blobInfo, success, failure) => { + const xhr = new XMLHttpRequest() + xhr.withCredentials = false + xhr.open('POST', getUploadUrl()) + const formData = new FormData() + formData.append('multipartFile', 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].url != 'string') { + failure('Invalid JSON: ' + xhr.responseText) + return + } + success(getDownUrl() + json.data[0].url) + } + xhr.send(formData) + }, + file_picker_callback: function (cb, value, meta) { + //褰撶偣鍑籱edia鍥炬爣涓婁紶鏃�,鍒ゆ柇meta.filetype == 'media'鏈夊繀瑕侊紝鍥犱负file_picker_callback鏄痬edia(濯掍綋)銆乮mage(鍥剧墖)銆乫ile(鏂囦欢)鐨勫叡鍚屽叆鍙� + if (meta.filetype == 'media') { + //鍒涘缓涓�涓殣钘忕殑type=file鐨勬枃浠堕�夋嫨input + let input = document.createElement('input'); + input.setAttribute('type', 'file'); + input.onchange = function () { + let file = this.files[0]; //鍙�夊彇绗竴涓枃浠躲�傚鏋滆閫夊彇鍏ㄩ儴锛屽悗闈㈡敞鎰忓仛淇敼 + let formData; + formData = new FormData(); + formData.append('multipartFile', file); + upLoadFile(formData).then(res => { + //鎺ュ彛杩斿洖鐨勬枃浠朵繚瀛樺湴鍧� + let mediaLocation = getDownUrl() + res[0].url; + cb(mediaLocation, { + title: file.filename + }); + }).catch(err => { + console.log('鍑虹幇鏈煡闂锛屽埛鏂伴〉闈紝鎴栬�呰仈绯荤▼搴忓憳: ' + err); + }) + } + //瑙﹀彂鐐瑰嚮 + input.click(); + } + }, + end_container_on_empty_block: true, + powerpaste_word_import: 'clean', + code_dialog_height: 450, + code_dialog_width: 1000, + advlist_bullet_styles: 'square', + advlist_number_styles: 'default', + default_link_target: '_blank', + link_title: false, + convert_urls: false, //闃叉璺緞琚浆鍖栦负鐩稿璺緞 + nonbreaking_force_tab: true, // inserting nonbreaking space need Nonbreaking Space Plugin + 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()); + }); + }, + setup(editor) { + editor.on('FullscreenStateChanged', (e) => { + _this.fullscreen = e.state; + }); + }, + }); + }, + destroyTinymce() { + const tinymce = window.tinymce.get(this.tinymceId); + if (this.fullscreen) { + tinymce.execCommand('mceFullScreen'); + } + + if (tinymce) { + tinymce.destroy(); + } + }, + setContent(value) { + window.tinymce.get(this.tinymceId).setContent(value); + }, + getContent() { + window.tinymce.get(this.tinymceId).getContent(); + }, + imageSuccessCBK(arr) { + const _this = this; + arr.forEach((v) => { + if (this.getFileType(v) == 'video') { + window.tinymce.get(_this.tinymceId).insertContent(`<video class="wscnph" src="${v}" controls muted></video>`); + } else { + window.tinymce.get(_this.tinymceId).insertContent(`<img class="wscnph" src="${v}" style="width:30%;height: 30%"/>`); + } + }); + }, + getFileType(fileName) { + // 鍚庣紑鑾峰彇 + let suffix = ''; + // 鑾峰彇绫诲瀷缁撴灉 + let result = ''; + try { + const flieArr = fileName.split('.'); + suffix = flieArr[flieArr.length - 1]; + } catch (err) { + suffix = ''; + } + // fileName鏃犲悗缂�杩斿洖 false + if (!suffix) { + return false; + } + suffix = suffix.toLocaleLowerCase(); + // 鍥剧墖鏍煎紡 + const imglist = ['png', 'jpg', 'jpeg', 'bmp', 'gif']; + // 杩涜鍥剧墖鍖归厤 + result = imglist.find((item) => item === suffix); + if (result) { + return 'image'; + } + // 鍖归厤 瑙嗛 + const videolist = ['mp4', 'm2v', 'mkv', 'rmvb', 'wmv', 'avi', 'flv', 'mov', 'm4v']; + result = videolist.find((item) => item === suffix); + if (result) { + return 'video'; + } + // 鍏朵粬 鏂囦欢绫诲瀷 + return 'other'; + }, + }, +}; +</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/project-web/src/components/Tinymce/plugins.js b/project-web/src/components/Tinymce/plugins.js new file mode 100644 index 0000000..34a8e39 --- /dev/null +++ b/project-web/src/components/Tinymce/plugins.js @@ -0,0 +1,9 @@ +// Any plugins you want to use has to be imported +// Detail plugins list see https://www.tinymce.com/docs/plugins/ +// Custom builds see https://www.tinymce.com/download/custom-builds/ + +const plugins = [ + 'advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount', +]; + +export default plugins; diff --git a/project-web/src/components/Tinymce/toolbar.js b/project-web/src/components/Tinymce/toolbar.js new file mode 100644 index 0000000..b517e0f --- /dev/null +++ b/project-web/src/components/Tinymce/toolbar.js @@ -0,0 +1,9 @@ +// Here is a list of the toolbar +// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols + +const toolbar = [ + 'fontsizeselect forecolor bold italic underline strikethrough alignleft aligncenter alignright outdent indent link image media preview ', +]; +// searchreplace removeformat subscript superscript code codesample fontsizeselect fontselect blockquote undo redo', +// hr bullist numlist anchor pagebreak insertdatetime table emoticons backcolor fullscreen +export default toolbar; diff --git a/project-web/src/components/UploadExcel/index.vue b/project-web/src/components/UploadExcel/index.vue new file mode 100644 index 0000000..8142582 --- /dev/null +++ b/project-web/src/components/UploadExcel/index.vue @@ -0,0 +1,148 @@ +<template> + <div> + <input ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick" /> + <div class="drop" @drop="handleDrop" @dragover="handleDragover" @dragenter="handleDragover"> + Drop excel file here or + <el-button :loading="loading" style="margin-left: 16px" size="mini" type="primary" @click="handleUpload"> + Browse + </el-button> + </div> + </div> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import XLSX from 'xlsx'; + +export default { + props: { + beforeUpload: Function, // eslint-disable-line + onSuccess: Function, // eslint-disable-line + }, + data() { + return { + loading: false, + excelData: { + header: null, + results: null, + }, + }; + }, + methods: { + generateData({ header, results }) { + this.excelData.header = header; + this.excelData.results = results; + this.onSuccess && this.onSuccess(this.excelData); + }, + handleDrop(e) { + e.stopPropagation(); + e.preventDefault(); + if (this.loading) return; + const files = e.dataTransfer.files; + if (files.length !== 1) { + this.$message.error('Only support uploading one file!'); + return; + } + const rawFile = files[0]; // only use files[0] + + if (!this.isExcel(rawFile)) { + this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files'); + return false; + } + this.upload(rawFile); + e.stopPropagation(); + e.preventDefault(); + }, + handleDragover(e) { + e.stopPropagation(); + e.preventDefault(); + e.dataTransfer.dropEffect = 'copy'; + }, + handleUpload() { + this.$refs['excel-upload-input'].click(); + }, + handleClick(e) { + const files = e.target.files; + const rawFile = files[0]; // only use files[0] + if (!rawFile) return; + this.upload(rawFile); + }, + upload(rawFile) { + this.$refs['excel-upload-input'].value = null; // fix can't select the same excel + + if (!this.beforeUpload) { + this.readerData(rawFile); + return; + } + const before = this.beforeUpload(rawFile); + if (before) { + this.readerData(rawFile); + } + }, + readerData(rawFile) { + this.loading = true; + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = (e) => { + const data = e.target.result; + const workbook = XLSX.read(data, { type: 'array' }); + const firstSheetName = workbook.SheetNames[0]; + const worksheet = workbook.Sheets[firstSheetName]; + const header = this.getHeaderRow(worksheet); + const results = XLSX.utils.sheet_to_json(worksheet); + this.generateData({ header, results }); + this.loading = false; + resolve(); + }; + reader.readAsArrayBuffer(rawFile); + }); + }, + getHeaderRow(sheet) { + const headers = []; + const range = XLSX.utils.decode_range(sheet['!ref']); + let C; + const R = range.s.r; + /* start in the first row */ + for (C = range.s.c; C <= range.e.c; ++C) { + /* walk every column in the range */ + const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]; + /* find the cell in the first row */ + let hdr = 'UNKNOWN ' + C; // <-- replace with your desired default + if (cell && cell.t) hdr = XLSX.utils.format_cell(cell); + headers.push(hdr); + } + return headers; + }, + isExcel(file) { + return /\.(xlsx|xls|csv)$/.test(file.name); + }, + }, +}; +</script> + +<style scoped> +.excel-upload-input { + display: none; + z-index: -9999; +} +.drop { + border: 2px dashed #bbb; + width: 600px; + height: 160px; + line-height: 160px; + margin: 0 auto; + font-size: 24px; + border-radius: 5px; + text-align: center; + color: #bbb; + position: relative; +} +</style> diff --git a/project-web/src/components/base/iconFrom.vue b/project-web/src/components/base/iconFrom.vue new file mode 100644 index 0000000..9e7b88b --- /dev/null +++ b/project-web/src/components/base/iconFrom.vue @@ -0,0 +1,112 @@ +<template> + <div class="iconBox"> + <el-input + ref="search" + v-model.trim="iconVal" + placeholder="杈撳叆鍏抽敭璇嶆悳绱�,娉ㄦ剰鍏ㄦ槸鑻辨枃" + clearable + style="width: 300px" + @input="upIcon(iconVal)" + /> + <div class="icons-container"> + <div class="grid"> + <div v-for="item of list" :key="item" @click="handleClipboard(generateElementIconCode(item), $event, item)"> + <el-tooltip placement="top"> + <div slot="content"> + {{ generateElementIconCode(item) }} + </div> + <div class="icon-item"> + <i :class="'el-icon-' + item" /> + <span>{{ item }}</span> + </div> + </el-tooltip> + </div> + </div> + </div> + </div> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import elementIcons from '../js/element-icons'; + +export default { + name: 'iconFrom', + data() { + return { + elementIcons, + iconVal: '', + modals2: false, + list: [], + }; + }, + mounted() { + this.list = this.elementIcons; + }, + methods: { + generateElementIconCode(symbol) { + return `<i class="el-icon-${symbol}" />`; + }, + handleClipboard(text, event, n) { + this.iconChange(n); + // clipboard(text, event) + }, + // 鎼滅储 + upIcon(n) { + const arrs = []; + for (var i = 0; i < this.elementIcons.length; i++) { + if (this.elementIcons[i].indexOf(n) !== -1) { + arrs.push(this.elementIcons[i]); + this.list = arrs; + } + } + }, + iconChange(n) { + this.$emit('getIcon', n); + this.$msgbox.close(); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.icons-container { + margin: 10px 20px 0; + overflow: hidden; + + .grid { + position: relative; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); + } + + .icon-item { + margin: 10px 20px; + text-align: center; + width: 100px; + float: left; + font-size: 30px; + color: #24292e; + cursor: pointer; + } + + span { + display: block; + font-size: 16px; + margin-top: 10px; + } + + .disabled { + pointer-events: none; + } +} +</style> diff --git a/project-web/src/components/base/index.js b/project-web/src/components/base/index.js new file mode 100644 index 0000000..d95cbbf --- /dev/null +++ b/project-web/src/components/base/index.js @@ -0,0 +1,16 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +const components = require.context('./', false, /\.vue$/u); +export default (Vue) => { + components.keys().map((item) => { + Vue.component(components(item).default.name, components(item).default); + }); +}; diff --git a/project-web/src/components/echartsNew/index.vue b/project-web/src/components/echartsNew/index.vue new file mode 100644 index 0000000..7a60da7 --- /dev/null +++ b/project-web/src/components/echartsNew/index.vue @@ -0,0 +1,78 @@ +<template> + <div> + <div :id="echarts" :style="styles" /> + </div> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import echarts from 'echarts'; +export default { + name: 'Index', + props: { + styles: { + type: Object, + default: null, + }, + optionData: { + type: Object, + default: null, + }, + }, + data() { + return { + myChart: null, + }; + }, + computed: { + echarts() { + return 'echarts' + Math.ceil(Math.random() * 100); + }, + }, + watch: { + optionData: { + handler(newVal, oldVal) { + this.handleSetVisitChart(); + }, + deep: true, // 瀵硅薄鍐呴儴灞炴�х殑鐩戝惉锛屽叧閿�� + }, + }, + mounted: function () { + const vm = this; + vm.$nextTick(() => { + vm.handleSetVisitChart(); + window.addEventListener('resize', this.wsFunc); + }); + }, + beforeDestroy() { + window.removeEventListener('resize', this.wsFunc); + if (!this.myChart) { + return; + } + this.myChart.dispose(); + this.myChart = null; + }, + methods: { + wsFunc() { + this.myChart.resize(); + }, + handleSetVisitChart() { + this.myChart = echarts.init(document.getElementById(this.echarts)); + let option = null; + option = this.optionData; + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + this.myChart.setOption(option, true); + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/components/js/element-icons.js b/project-web/src/components/js/element-icons.js new file mode 100644 index 0000000..e297d51 --- /dev/null +++ b/project-web/src/components/js/element-icons.js @@ -0,0 +1,294 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +const elementIcons = [ + 'platform-eleme', + 'eleme', + 'delete-solid', + 'delete', + 's-tools', + 'setting', + 'user-solid', + 'user', + 'phone', + 'phone-outline', + 'more', + 'more-outline', + 'star-on', + 'star-off', + 's-goods', + 'goods', + 'warning', + 'warning-outline', + 'question', + 'info', + 'remove', + 'circle-plus', + 'success', + 'error', + 'zoom-in', + 'zoom-out', + 'remove-outline', + 'circle-plus-outline', + 'circle-check', + 'circle-close', + 's-help', + 'help', + 'minus', + 'plus', + 'check', + 'close', + 'picture', + 'picture-outline', + 'picture-outline-round', + 'upload', + 'upload2', + 'download', + 'camera-solid', + 'camera', + 'video-camera-solid', + 'video-camera', + 'message-solid', + 'bell', + 's-cooperation', + 's-order', + 's-platform', + 's-fold', + 's-unfold', + 's-operation', + 's-promotion', + 's-home', + 's-release', + 's-ticket', + 's-management', + 's-open', + 's-shop', + 's-marketing', + 's-flag', + 's-comment', + 's-finance', + 's-claim', + 's-custom', + 's-opportunity', + 's-data', + 's-check', + 's-grid', + 'menu', + 'share', + 'd-caret', + 'caret-left', + 'caret-right', + 'caret-bottom', + 'caret-top', + 'bottom-left', + 'bottom-right', + 'back', + 'right', + 'bottom', + 'top', + 'top-left', + 'top-right', + 'arrow-left', + 'arrow-right', + 'arrow-down', + 'arrow-up', + 'd-arrow-left', + 'd-arrow-right', + 'video-pause', + 'video-play', + 'refresh', + 'refresh-right', + 'refresh-left', + 'finished', + 'sort', + 'category-up', + 'category-down', + 'rank', + 'loading', + 'view', + 'c-scale-to-original', + 'date', + 'edit', + 'edit-outline', + 'folder', + 'folder-opened', + 'folder-add', + 'folder-remove', + 'folder-delete', + 'folder-checked', + 'tickets', + 'document-remove', + 'document-delete', + 'document-copy', + 'document-checked', + 'document', + 'document-add', + 'printer', + 'paperclip', + 'takeaway-box', + 'search', + 'monitor', + 'attract', + 'mobile', + 'scissors', + 'umbrella', + 'headset', + 'brush', + 'mouse', + 'coordinate', + 'magic-stick', + 'reading', + 'data-line', + 'data-board', + 'pie-chart', + 'data-analysis', + 'collection-tag', + 'film', + 'suitcase', + 'suitcase-1', + 'receiving', + 'collection', + 'files', + 'notebook-1', + 'notebook-2', + 'toilet-paper', + 'office-building', + 'school', + 'table-lamp', + 'house', + 'no-smoking', + 'smoking', + 'shopping-cart-full', + 'shopping-cart-1', + 'shopping-cart-2', + 'shopping-bag-1', + 'shopping-bag-2', + 'sold-out', + 'sell', + 'present', + 'box', + 'bank-card', + 'money', + 'coin', + 'wallet', + 'discount', + 'price-tag', + 'news', + 'guide', + 'male', + 'female', + 'thumb', + 'cpu', + 'link', + 'connection', + 'open', + 'turn-off', + 'set-up', + 'chat-round', + 'chat-line-round', + 'chat-square', + 'chat-dot-round', + 'chat-dot-square', + 'chat-line-square', + 'message', + 'postcard', + 'position', + 'turn-off-microphone', + 'microphone', + 'close-notification', + 'bangzhu', + 'time', + 'odometer', + 'crop', + 'aim', + 'switch-button', + 'full-screen', + 'copy-document', + 'mic', + 'stopwatch', + 'medal-1', + 'medal', + 'trophy', + 'trophy-1', + 'first-aid-kit', + 'discover', + 'place', + 'location', + 'location-outline', + 'location-information', + 'add-location', + 'delete-location', + 'map-location', + 'alarm-clock', + 'timer', + 'watch-1', + 'watch', + 'lock', + 'unlock', + 'key', + 'service', + 'mobile-phone', + 'bicycle', + 'truck', + 'ship', + 'basketball', + 'football', + 'soccer', + 'baseball', + 'wind-power', + 'light-rain', + 'lightning', + 'heavy-rain', + 'sunrise', + 'sunrise-1', + 'sunset', + 'sunny', + 'cloudy', + 'partly-cloudy', + 'cloudy-and-sunny', + 'moon', + 'moon-night', + 'dish', + 'dish-1', + 'food', + 'chicken', + 'fork-spoon', + 'knife-fork', + 'burger', + 'tableware', + 'sugar', + 'dessert', + 'ice-cream', + 'hot-water', + 'water-cup', + 'coffee-cup', + 'cold-drink', + 'goblet', + 'goblet-full', + 'goblet-square', + 'goblet-square-full', + 'refrigerator', + 'grape', + 'watermelon', + 'cherry', + 'apple', + 'pear', + 'orange', + 'coffee', + 'ice-tea', + 'ice-drink', + 'milk-tea', + 'potato-strips', + 'lollipop', + 'ice-cream-square', + 'ice-cream-round', +]; + +export default elementIcons; diff --git a/project-web/src/components/js/internal.js b/project-web/src/components/js/internal.js new file mode 100644 index 0000000..bdc1abc --- /dev/null +++ b/project-web/src/components/js/internal.js @@ -0,0 +1,73 @@ +(function () { + /* eslint-disable */ + if (window.frameElement.id) { + let parent = window.parent, + dialog = parent.$EDITORUI[window.frameElement.id.replace(/_iframe$/, '')], + editor = dialog.editor, + UE = parent.UE, + domUtils = UE.dom.domUtils, + utils = UE.utils, + browser = UE.browser, + /* eslint-disable */ + ajax = UE.ajax, + $G = function (id) { + return document.getElementById(id); + }, + $focus = function (node) { + setTimeout(function () { + if (browser.ie) { + var r = node.createTextRange(); + r.collapse(false); + r.select(); + } else { + node.focus(); + } + }, 0); + }; + window.nowEditor = { editor: editor, dialog: dialog }; + utils.loadFile(document, { + href: editor.options.themePath + editor.options.theme + '/dialogbase.css?cache=' + Math.random(), + tag: 'link', + type: 'text/css', + rel: 'stylesheet', + }); + var lang = editor.getLang(dialog.className.split('-')[2]); + if (lang) { + domUtils.on(window, 'load', function () { + var langImgPath = editor.options.langPath + editor.options.lang + '/images/'; + // 閽堝闈欐�佽祫婧� + for (var i in lang['static']) { + var dom = $G(i); + if (!dom) continue; + let tagName = dom.tagName, + content = lang['static'][i]; + if (content.src) { + // clone + content = utils.extend({}, content, false); + content.src = langImgPath + content.src; + } + if (content.style) { + content = utils.extend({}, content, false); + content.style = content.style.replace(/url\s*\(/g, 'url(' + langImgPath); + } + switch (tagName.toLowerCase()) { + case 'var': + dom.parentNode.replaceChild(document.createTextNode(content), dom); + break; + case 'select': + var ops = dom.options; + for (var j = 0, oj; (oj = ops[j]); ) { + oj.innerHTML = content.options[j++]; + } + for (var p in content) { + p != 'options' && dom.setAttribute(p, content[p]); + } + break; + default: + domUtils.setAttributes(dom, content); + } + } + }); + } + } +})(); diff --git a/project-web/src/components/myButton/myButton.vue b/project-web/src/components/myButton/myButton.vue new file mode 100644 index 0000000..a37f4f4 --- /dev/null +++ b/project-web/src/components/myButton/myButton.vue @@ -0,0 +1,381 @@ +<template> + <el-button + v-if="show && site!=='tools'" + :icon="myIcon" + :loading="loading" + :plain="myPlain" + :size="mySize" + :disabled="disabled" + :type="myType" + @click="click" + >{{ myName }} + </el-button> + <el-button + v-else-if="show && site==='tools'" + :icon="myIcon" + :loading="loading" + :plain="myPlain" + :size="mySize" + :type="myType" + @click="click" + >{{ myName }} + </el-button> +</template> +<script> +export default { + props: { + checkPermission: { // 鎸夐挳鏉冮檺 + type: String, + default: '' + }, + site: { // filter 鎼滅储鏉★紝tools 宸ュ叿鏉★紝operation 鎿嶄綔鏍忥紝form 琛ㄥ崟 + type: String, + default: '' + }, + type: {// 鎸夐挳绫诲瀷 + type: String, + default: '' + }, + name: {// 鎸夐挳鍚嶇О + type: String, + default: '' + }, + icon: {// 鍥炬爣 + type: String, + default: null + }, + size: {// 灏哄 + type: String, + default: 'mini' + }, + plain: {// 鍥炬爣 + type: Boolean, + default: false + }, + disabled: {// 鍥炬爣 + type: Boolean, + default: false + } + }, + data() { + return { + filter: {// 鎼滅储鏉′笂鐨勬寜閽悕绉伴泦鍚� + size: 'mini', + plain: false, + other: { + '鎼滅储': { + type: 'primary', + icon: 'el-icon-search' + }, + '閲嶇疆': { + type: 'warning', + icon: 'el-icon-refresh' + }, + '瀵煎嚭': { + type: 'info' + } + + } + }, + tools: {// 宸ュ叿鏉′笂鐨勬寜閽泦鍚� + size: 'medium', + plain: true, + type: 'primary', + other: { + '娣诲姞': { + icon: 'el-icon-plus' + }, + '杩斿洖': { + icon: 'el-icon-edit-outline' + }, + '鏌ョ湅': { + icon: 'el-icon-refresh' + }, + '瀵煎叆': { + icon: 'el-icon-upload2' + }, + '瀵煎叆妯℃澘涓嬭浇': { + icon: 'el-icon-download' + }, + '瀵煎嚭': { + icon: 'el-icon-download' + }, + '鎵撳嵃': { + 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' + }, + '鏈烘瀯瀵煎叆': { + icon: 'el-icon-edit-outline' + }, + '瀵煎叆璁板綍': { + icon: 'el-icon-edit-outline' + }, + '瀵煎叆璁板綍鏌ヨ': { + icon: 'el-icon-refresh' + }, + '鏂板': { + icon: 'el-icon-edit-outline' + }, + '缁存姢鎸囨爣': { + icon: 'el-icon-refresh' + } + } + }, + form: { // 琛ㄥ崟涓婄殑鎸夐挳 + size: 'medium', + plain: false, + other: { + '閫夋嫨': { + type: 'primary' + }, + '鏈嶅姟浜哄憳': { + type: 'primary' + }, + '淇濆瓨': { + type: 'primary' + }, + '淇濆瓨骞跺彂甯�': { + type: 'success' + }, + '鍙栨秷': { + type: 'default' + }, + '杩斿洖': { + type: 'default' + }, + '鍏抽棴': { + type: 'default' + }, + '閲嶇疆': { + type: 'default' + }, + '鏆傚瓨': { + type: 'warning' + }, + '鏌ヨ': { + type: 'primary' + }, + '纭': { + type: 'primary' + }, + '纭畾': { + type: 'primary' + }, + '鍦板潃鎷惧彇': { + type: 'primary' + }, + '涓嬭浇鍥剧墖': { + type: 'success' + }, + '鎻愪氦': { + type: 'primary' + }, + '杞淳': { + type: 'success' + }, + '澶勭悊': { + type: 'primary' + }, + '涓婃姤': { + type: 'primary' + } + } + }, + operation: {// 鎿嶄綔鏍忎笂鐨勬寜閽泦鍚� + size: 'mini', + plain: true, + other: { + '濉叆': { + type: 'primary' + }, + '浜哄憳閰嶇疆': { + type: 'primary' + }, + '妯℃澘棰勮': { + type: 'success' + }, + '璋冩煡椤归厤缃�': { + type: 'default' + }, + '绛夌骇鍗忚': { + type: 'primary' + }, + '鏌ョ湅璇︽儏': { + type: 'default' + }, + '缂栬緫': { + type: 'primary' + }, + '涓嬭浇': { + type: 'primary' + }, + '娣诲姞': { + type: 'primary' + }, + '澶勭悊': { + type: 'primary' + }, + '鍒犻櫎': { + type: 'danger' + }, + '鍏抽棴': { + type: 'danger' + }, + '杩斿洖': { + type: 'danger' + }, + '鏉冮檺': { + type: 'success' + }, + '瑙掕壊': { + type: 'warning' + }, + '瀵嗙爜鍒濆鍖�': { + type: 'default' + }, + '閲嶇疆瀵嗙爜': { + type: 'warning' + }, + '浜哄憳': { + type: 'success' + }, + '澶囨敞': { + type: 'warning' + }, + '鍚敤': { + type: 'success' + }, + '绂佺敤': { + type: 'warning' + }, + '鍚敤榛戝悕鍗�': { + type: 'success' + }, + '鍔犲叆榛戝悕鍗�': { + type: 'danger' + }, + '瀹℃牳': { + type: 'primary' + }, + '鎾ゅ洖': { + type: 'danger' + }, + '璇︽儏': { + type: 'success' + }, + '鎻愪氦': { + type: 'warning' + }, + '淇敼': { + type: 'warning' + }, + '鍙栨秷': { + type: 'default' + }, + '杩樺師': { + type: 'warning' + }, + '褰掓。': { + type: 'primary' + }, + '璋冩煡璇︽儏': { + type: 'primary' + }, + '棰勮': { + type: 'success' + }, + '澶嶅埗': { + type: 'default' + }, + '宸ュ崟璇︽儏': { + type: 'success' + } + } + }, + text: { // 琛ㄥ崟涓婄殑鎸夐挳 + size: 'mini', + type: 'text', + icon: '', + other: { + '娣诲姞': { + type: 'primary' + }, + '纭畾': { + type: 'primary' + } + } + }, + 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.type || this.filter.other[this.myName].type + this.myIcon = this.icon || this.filter.other[this.myName].icon + } else if (this.site == 'tools') { + this.mySize = this.tools.size + this.myPlain = this.tools.plain + this.myType = 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].type + } else if (this.site == 'form') { + this.mySize = this.form.size || this.size + this.myPlain = this.form.plain + this.myType = this.type || this.form.other[this.myName].type + } else if (this.site == 'text') { + this.mySize = this.text.size + this.myType = this.text.type + this.myIcon = this.icon || 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 + }, 3000)// 3绉掑唴涓嶈兘閲嶅鐐瑰嚮 + } + } +} +</script> diff --git a/project-web/src/components/myInputNumber/index.vue b/project-web/src/components/myInputNumber/index.vue new file mode 100644 index 0000000..bd1a905 --- /dev/null +++ b/project-web/src/components/myInputNumber/index.vue @@ -0,0 +1,94 @@ +<template> + <div class="component"> + <el-input-number + style="width: 100%!important;text-align: left" + v-bind="$attrs" + v-on="$listeners" + :value="value" + :controls-position="controlsPosition" + :precision="precision" + :step="step" + :min="min" + :max="max" + :placeholder="placeholder" + clearable + > + + </el-input-number> + <p class="text">{{text}}</p> + + </div> +</template> + +<script> +export default { + name: 'myInputNumber', + props: { + text:[String], + value: { + type: [Number,String], + }, + placeholder: { + type: String, + default: '', + }, + controlsPosition: { + type: Object, + default: () => {}, + }, + label: { + type: String, + default: '', + }, + step: { + type: Number, + default: 0.1, + }, + min: { + type: Number, + default: 0, + }, + max: { + type: Number, + default: 999, + }, + //绮惧害 1 1浣嶅皬鏁� 2 2浣嶅皬鏁� 绫绘帹 + precision: { + type: Number, + default: 0, + }, + } +}; +</script> + +<style scoped lang="scss"> +.component{ + width: 100%; + position: relative; + overflow: hidden; + .text{ + position: absolute; + top: 1px; + bottom: 1px; + right: 1px; + text-align: center; + background-color: #f5f7fa; + border-left: 1px solid #dcdfe6; + padding: 0 20px; + border-radius: 4px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + color: #909399; + } +} +>>> .el-input-number__decrease { + display: none; +} +>>> .el-input-number__increase { + display: none; +} +>>> .el-input--medium .el-input__inner{ + text-align: left; + padding: 15px; +} +</style> diff --git a/project-web/src/components/mySearch/SearchItem.vue b/project-web/src/components/mySearch/SearchItem.vue new file mode 100644 index 0000000..4da675b --- /dev/null +++ b/project-web/src/components/mySearch/SearchItem.vue @@ -0,0 +1,319 @@ +<template> + <div> + <!--鏂囨湰--> + <el-input + :type="item.inputType || 'text'" + v-if="item.type === 'text'" + :placeholder="item.placeholder || ''" + @change="(e) => inputChange(e)" + :clearable="true" + v-model="val" + style="width: 150px" + /> + <!-- 涓嬫媺--> + + <el-cascader + v-model="val" + v-if="item.type === 'cascader'" + :options="item.options" + :props="item.optionsConfig.props||{ checkStrictly: true,value: 'id' }" + :clearable="true" + style="width: 150px" + @change="(v) => this.$emit('change', v)" + > + </el-cascader> + <!-- 涓嬫媺--> + <el-select + v-if="item.type === 'select'" + :placeholder="item.placeholder || ''" + v-model="val" + show-search + :multiple="item.multiple || false" + :collapse-tags="item.collapseTags || false" + :clearable="true" + style="width: 150px" + @change="(v) => this.$emit('change', v)" + > + <el-option v-for="(o, i) in item.options" :value="o.value" :label="o.label" :key="o.value"></el-option> + </el-select> + + <!-- 鏍戝舰涓嬫媺--> + <el-tree + v-if="item.type === 'tree'" + v-model="val" + placeholder="璇烽�夋嫨" + allow-clear + :data="treeData" + :load-data="onLoadData" + style="width: 150px" + @change="(v) => this.$emit('change', v)" + > + </el-tree> + + <!--鏃堕棿--> + <el-time-select + v-if="item.type === 'time-picker'" + :placeholder="item.placeholder || ''" + v-model="val" + :clearable="true" + style="width: 150px" + @change="(v) => this.$emit('change', v)" + /> + <!--骞撮�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'year-picker'" + v-model="val" + type="year" + :clearable="true" + style="width: 150px" + @change="(v) => panelChange(v, 'yyyy')" + /> + <!--鏈堥�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'month-picker'" + v-model="val" + type="month" + :clearable="true" + style="width: 150px" + @change="(v) => panelChange(v, 'yyyy-MM')" + /> + <!--鏃ラ�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'date-picker'" + v-model="val" + type="date" + :clearable="true" + style="width: 150px" + @change="(v) => panelChange(v, 'yyyy-MM-dd')" + /> + <!--鏃ユ湡甯︽椂闂撮�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'date-time-picker'" + v-model="val" + type="datetime" + :clearable="true" + style="width: 150px" + format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd HH:mm:ss" + @change="(v)=>panelChange(v,'yyyy-MM-dd HH:mm:ss')" + /> + <!--鑼冨洿閫夋嫨鏃堕棿--> + <el-date-picker + v-if="item.type === 'datetimerange-picker'" + v-model="val" + style="width: 378px" + :placeholder="item.placeholder || ''" + type="datetimerange" + :pickerOptions='pickerOptions' + :disabled="item.disabled" + :clearable="true" + :format="item.format?item.format:'yyyy-MM-dd HH:mm'" + :value-format="item.format?item.format:'yyyy-MM-dd HH:mm'" + @change="(v) => this.$emit('change', v)" + /> + </div> +</template> + +<script> +import {formatDates} from '@/utils/index'; +import request from '@/utils/request'; + +function trim(str) { + if (str == null) { + return ''; + } + return str.replace(/^\s*(.*?)[\s\n]*$/g, '$1'); +} + +export default { + name: 'SearchItem', + props: { + value: [String, Number, Object, Array], + item: Object, + }, + created() { + if (this.item.type === 'select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + }).then((res) => { + const data = res || []; + this.item.options = []; + data.forEach((v) => { + this.item.options.push({ + label: v[this.item.optionsConfig.label || 'label'], + value: v[this.item.optionsConfig.value || 'value'], + }); + }); + }); + } + if (this.item.type === 'cascader' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + }).then((res) => { + const data = res || []; + this.item.options = []; + this.item.options = data; + }); + } + if (this.item.type === 'tree-select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + if (this.item.asyncLoad) { + this.asyncLoad({value: 0}).then((res) => { + this.treeData = res; + }); + } else { + this.asyncLoad({}).then((res) => { + this.treeData = res; + }); + } + } + }, + watch: { + value(v) { + this.val = v; + }, + }, + data() { + return { + val: this.item.defaultValue, + treeData: [], // 鏍戝舰涓嬫媺 + endOpen: false, // 鎺у埗骞翠唤閫夋嫨鏄剧ず闅愯棌 + pickerOptions: { + shortcuts: [{ + text: '鏈�杩戜竴鍛�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + } + }, { + text: '鏈�杩戜竴涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + } + }, { + text: '鏈�杩戜笁涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + } + }, + { + text: '鏈�杩戝崐骞�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 180); + picker.$emit('pick', [start, end]); + } + }] + }, + }; + }, + methods: { + panelChange(v, type) { + var info = null + if (v && this.item.type !== 'date-time-picker') { + info = formatDates(v, type) + } else { + info = v + } + this.val = info + this.$emit('change', info) + }, + filterOption(input, option) { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0; + }, + inputChange(e) { + this.$emit('change', trim(e)); + }, + onLoadData(treeNode) { + return new Promise((resolve) => { + if (this.item.asyncLoad === undefined || !this.item.asyncLoad) { + resolve(); + return; + } + if (treeNode.dataRef.children) { + resolve(); + return; + } + this.asyncLoad(treeNode.dataRef).then((res) => { + treeNode.dataRef.children = res; + this.treeData = [...this.treeData]; + resolve(); + }); + }); + }, + asyncLoad({value}) { + let url = `${this.item.optionsConfig.url}`; + if (value !== undefined) { + url = `${this.item.optionsConfig.url}?pid=${value}`; + } + return new Promise((resolve) => { + // this.$axios({ + // url: url, + // method: 'get' + // }) + request({ + url: url, + method: 'get', + }) + .then((res) => { + const data = res || []; + const result = []; + const rander = (array, r) => { + array.forEach((v) => { + const d = { + label: v[this.item.optionsConfig.label || 'label'], + value: v[this.item.optionsConfig.value || 'value'], + disabled: false, + }; + if (this.item.allowLv) { + if ( + // eslint-disable-next-line no-eval + eval(v[this.item.optionsConfig.lv || 'lv'] + this.item.allowLv) + ) { + d.disabled = false; + } else { + d.disabled = true; + } + } + if (v.children && v.children.length > 0) { + d.children = []; + rander(v.children, d.children); + } + r.push(d); + }); + }; + rander(data, result); + resolve(result); + }) + .catch(() => { + resolve([]); + }); + }); + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/components/mySearch/index.js b/project-web/src/components/mySearch/index.js new file mode 100644 index 0000000..c2fb958 --- /dev/null +++ b/project-web/src/components/mySearch/index.js @@ -0,0 +1,64 @@ +import mySearch from './mySearch' + +// vue椤甸潰锛� <my-search ref="searchBar" :items="items" @search="search"></my-search> +// items.js 鏍煎紡 type 涓虹被鍨� dataIndex涓簁ey label涓烘枃鏈� defaultValue 涓洪粯璁ゅ�� +// const items = [ +// { +// type: 'text', +// dataIndex: 'name', +// label: '鏂囨湰', +// defaultValue: '' +// }, +// { +// type: 'time-picker', +// dataIndex: 'time-picker', +// label: '鏃堕棿', +// defaultValue: '' +// }, +// { +// type: 'date-picker', +// dataIndex: 'dateTime', +// label: '閫夋嫨鏃�', +// defaultValue: '' +// }, +// { +// type: 'month-picker', +// dataIndex: 'monthTime', +// label: '閫夋嫨鏈�', +// defaultValue: '' +// }, +// { +// type: 'year-picker', +// dataIndex: 'yearTime', +// label: '閫夋嫨骞�', +// defaultValue: '' +// }, +// { +// type: 'select', +// dataIndex: 'lv', +// label: '绛夌骇', +// defaultValue: '', +// options: [ +// { +// label: 'A绾�', +// value: 'A' +// }, +// { +// label: 'B绾�', +// value: 'B' +// }, +// { +// label: 'C绾�', +// value: 'C' +// }, +// { +// label: 'D绾�', +// value: 'D' +// } +// ] +// }, +// ] +mySearch.install = function (Vue) { + Vue.component(mySearch.name, mySearch) +} +export default mySearch diff --git a/project-web/src/components/mySearch/mySearch.vue b/project-web/src/components/mySearch/mySearch.vue new file mode 100644 index 0000000..8570825 --- /dev/null +++ b/project-web/src/components/mySearch/mySearch.vue @@ -0,0 +1,107 @@ +<template> + <div class="table-page-search-wrapper" style="padding: 0 10px 10px 10px"> + <el-form :model="form" inline ref="formData" size="small"> + <el-form-item :label="item.label" :prop="item.dataIndex" v-for="(item, i) in myItems1" :key="i"> + <search-item :item="item" @change="formChange($event, i)" :value="item.value" /> + </el-form-item> + <el-form-item> + <div class="table-page-search-submitButtons"> + <el-button size="small" type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> + <el-button size="small" style="margin-left: 8px" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> + </el-form-item> + </el-form> + </div> +</template> +<script> +import SearchItem from './SearchItem'; + +export default { + components: { SearchItem }, + name: 'mySearch', + props: ['items'], + data() { + return { + myItems1: [], + // 楂樼骇鎼滅储 灞曞紑/鍏抽棴 + advanced: false, + form: {}, + }; + }, + beforeCreate() { + this.form = {}; + }, + created() { + this.items.map((x, i) => { + this.form[x.dataIndex] = x.defaultValue ? x.defaultValue : null; + }); + this.myItems1 = this.items; + }, + computed: { + actionMd: function () { + if (!this.advanced) { + return 4; + } else { + const _b = this.items.length % 3; + if (_b === 0) { + return 24; + } else { + return 4; + } + } + }, + }, + methods: { + toggleAdvanced() { + this.advanced = !this.advanced; + this.$emit('openChange'); + }, + search(e) { + e.preventDefault(); + this.$refs.formData.validate((valid) => { + if (valid) { + this.form.pageNum = 1; + this.$emit('search', this.form); + } else { + this.$message.warning('鏍¢獙鏈�氳繃,璇锋鏌�!'); + return false; + } + }); + }, + reset() { + this.$refs['formData'].resetFields(); + this.items.map((x, i) => { + x.value = x.defaultValue ? x.defaultValue : null; + }); + this.myItems1 = this.items; + this.$forceUpdate(); + this.$nextTick(() => { + this.form.pageNum = 1; + this.$emit('reset'); + this.$emit('search', this.form); + }); + }, + formChange(e, i) { + this.form[this.items[i].dataIndex] = e; + this.items[i].value = e; + this.$forceUpdate(); + }, + }, +}; +</script> + +<style scoped> +/deep/.el-form--inline .el-form-item__label { + font-weight: normal; + color: #1d2129; +} +.table-page-search-submitButtons { + min-width: 160px; +} +/deep/.el-button--medium { + padding: 10px 12px; +} +>>>.el-form-item{ + margin: 6px 10px 6px 0; +} +</style> diff --git a/project-web/src/components/mySearchCopy/SearchItem.vue b/project-web/src/components/mySearchCopy/SearchItem.vue new file mode 100644 index 0000000..30581e7 --- /dev/null +++ b/project-web/src/components/mySearchCopy/SearchItem.vue @@ -0,0 +1,282 @@ +<template> + <div> + <!--鏂囨湰--> + <el-input + :type="item.inputType || 'text'" + v-if="item.type === 'text'" + :placeholder="item.placeholder || ''" + @change="(e) => inputChange(e)" + :clearable="true" + v-model="val" + style="width: 200px" + /> + <!-- 涓嬫媺--> + + <el-cascader + v-model="val" + v-if="item.type === 'cascader'" + :options="item.options" + :props="{ checkStrictly: true,value: 'id' }" + clearable + :clearable="true" + style="width: 200px" + @change="(v) => this.$emit('change', v)" + > + </el-cascader> + <!-- 涓嬫媺--> + <el-select + v-if="item.type === 'select'" + :placeholder="item.placeholder || ''" + v-model="val" + show-search + :multiple="item.multiple || false" + :collapse-tags="item.collapseTags || false" + :clearable="true" + style="width: 200px" + @change="(v) => this.$emit('change', v)" + > + <el-option v-for="(o, i) in item.options" :value="o.value" :label="o.label" :key="o.value"> </el-option> + </el-select> + + <!-- 鏍戝舰涓嬫媺--> + <el-tree + v-if="item.type === 'tree'" + v-model="val" + placeholder="璇烽�夋嫨" + allow-clear + :data="treeData" + :load-data="onLoadData" + style="width: 200px" + @change="(v) => this.$emit('change', v)" + > + </el-tree> + + <!--鏃堕棿--> + <el-time-select + v-if="item.type === 'time-picker'" + :placeholder="item.placeholder || ''" + v-model="val" + :clearable="true" + style="width: 200px" + @change="(v) => this.$emit('change', v)" + /> + <!--骞撮�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'year-picker'" + v-model="val" + type="year" + :clearable="true" + style="width: 200px" + @change="(v) => panelChange(v, 'yyyy')" + /> + <!--鏈堥�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'month-picker'" + v-model="val" + type="month" + :clearable="true" + style="width: 200px" + @change="(v) => panelChange(v, 'yyyy-MM')" + /> + <!--鏃ラ�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'date-picker'" + v-model="val" + type="date" + :clearable="true" + style="width: 200px" + @change="(v) => panelChange(v, 'yyyy-MM-dd')" + /> + <!--鏃ユ湡甯︽椂闂撮�夋嫨鍣�--> + <el-date-picker + v-if="item.type === 'date-time-picker'" + v-model="val" + type="datetime" + :clearable="true" + style="width: 200px" + format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd HH:mm:ss" + @change="(v)=>panelChange(v,'yyyy-MM-dd HH:mm:ss')" + /> + <!--鑼冨洿閫夋嫨鏃堕棿--> + <el-date-picker + v-if="item.type === 'datetimerange-picker'" + v-model="val" + :placeholder="item.placeholder || ''" + type="datetimerange" + :disabled="item.disabled" + :clearable="true" + format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd HH:mm:ss" + @change="(v) => this.$emit('change', v)" + /> + </div> +</template> + +<script> +import { formatDates } from '@/utils/index'; +import request from '@/utils/request'; + +function trim(str) { + if (str == null) { + return ''; + } + return str.replace(/^\s*(.*?)[\s\n]*$/g, '$1'); +} + +export default { + name: 'SearchItem', + props: { + value: [String, Number, Object, Array], + item: Object, + }, + created() { + if (this.item.type === 'select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + }).then((res) => { + const data = res || []; + this.item.options = []; + data.forEach((v) => { + this.item.options.push({ + label: v[this.item.optionsConfig.label || 'label'], + value: v[this.item.optionsConfig.value || 'value'], + }); + }); + }); + } + if (this.item.type === 'cascader' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + }).then((res) => { + const data = res || []; + this.item.options = []; + this.item.options = data; + }); + } + if (this.item.type === 'tree-select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + if (this.item.asyncLoad) { + this.asyncLoad({ value: 0 }).then((res) => { + this.treeData = res; + }); + } else { + this.asyncLoad({}).then((res) => { + this.treeData = res; + }); + } + } + }, + watch: { + value(v) { + this.val = v; + }, + }, + data() { + return { + val: this.item.defaultValue, + treeData: [], // 鏍戝舰涓嬫媺 + endOpen: false, // 鎺у埗骞翠唤閫夋嫨鏄剧ず闅愯棌 + }; + }, + methods: { + panelChange (v,type) { + var info = null + if( v && this.item.type!=='date-time-picker'){ + info = formatDates(v, type) + }else{ + info = v + } + this.val = info + this.$emit('change', info) + }, + filterOption(input, option) { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0; + }, + inputChange(e) { + this.$emit('change', trim(e)); + }, + onLoadData(treeNode) { + return new Promise((resolve) => { + if (this.item.asyncLoad === undefined || !this.item.asyncLoad) { + resolve(); + return; + } + if (treeNode.dataRef.children) { + resolve(); + return; + } + this.asyncLoad(treeNode.dataRef).then((res) => { + treeNode.dataRef.children = res; + this.treeData = [...this.treeData]; + resolve(); + }); + }); + }, + asyncLoad({ value }) { + let url = `${this.item.optionsConfig.url}`; + if (value !== undefined) { + url = `${this.item.optionsConfig.url}?pid=${value}`; + } + return new Promise((resolve) => { + // this.$axios({ + // url: url, + // method: 'get' + // }) + request({ + url: url, + method: 'get', + }) + .then((res) => { + const data = res || []; + const result = []; + const rander = (array, r) => { + array.forEach((v) => { + const d = { + label: v[this.item.optionsConfig.label || 'label'], + value: v[this.item.optionsConfig.value || 'value'], + disabled: false, + }; + if (this.item.allowLv) { + if ( + // eslint-disable-next-line no-eval + eval(v[this.item.optionsConfig.lv || 'lv'] + this.item.allowLv) + ) { + d.disabled = false; + } else { + d.disabled = true; + } + } + if (v.children && v.children.length > 0) { + d.children = []; + rander(v.children, d.children); + } + r.push(d); + }); + }; + rander(data, result); + resolve(result); + }) + .catch(() => { + resolve([]); + }); + }); + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/components/mySearchCopy/index.js b/project-web/src/components/mySearchCopy/index.js new file mode 100644 index 0000000..e5dcf9e --- /dev/null +++ b/project-web/src/components/mySearchCopy/index.js @@ -0,0 +1,65 @@ +import mySearch from './mySearch' + +// 2023.7.11 Can +// vue椤甸潰锛� <my-search ref="searchBar" :items="items" @search="search"></my-search> +// items.js 鏍煎紡 type 涓虹被鍨� dataIndex涓簁ey label涓烘枃鏈� defaultValue 涓洪粯璁ゅ�� +// const items = [ +// { +// type: 'text', +// dataIndex: 'name', +// label: '鏂囨湰', +// defaultValue: '' +// }, +// { +// type: 'time-picker', +// dataIndex: 'time-picker', +// label: '鏃堕棿', +// defaultValue: '' +// }, +// { +// type: 'date-picker', +// dataIndex: 'dateTime', +// label: '閫夋嫨鏃�', +// defaultValue: '' +// }, +// { +// type: 'month-picker', +// dataIndex: 'monthTime', +// label: '閫夋嫨鏈�', +// defaultValue: '' +// }, +// { +// type: 'year-picker', +// dataIndex: 'yearTime', +// label: '閫夋嫨骞�', +// defaultValue: '' +// }, +// { +// type: 'select', +// dataIndex: 'lv', +// label: '绛夌骇', +// defaultValue: '', +// options: [ +// { +// label: 'A绾�', +// value: 'A' +// }, +// { +// label: 'B绾�', +// value: 'B' +// }, +// { +// label: 'C绾�', +// value: 'C' +// }, +// { +// label: 'D绾�', +// value: 'D' +// } +// ] +// }, +// ] +mySearch.install = function (Vue) { + Vue.component(mySearch.name, mySearch) +} +export default mySearch diff --git a/project-web/src/components/mySearchCopy/mySearch.vue b/project-web/src/components/mySearchCopy/mySearch.vue new file mode 100644 index 0000000..35a3449 --- /dev/null +++ b/project-web/src/components/mySearchCopy/mySearch.vue @@ -0,0 +1,133 @@ +<template> + <div class="table-page-search-wrapper"> + <el-form :model="form" inline ref="formData" label-width="100px" size="small"> +<!-- <el-row :gutter="10">--> +<!-- <el-col :sm="24" :md="24" :lg="24">--> + <el-form-item :label="item.label" :prop="item.dataIndex" v-for="(item, i) in myItems1" :key="i"> + <search-item :item="item" @change="formChange($event,i)" :value="item.value"/> + </el-form-item> + <div v-show="advanced" style="display: inline;"> + <el-form-item :label="item.label" :prop="item.dataIndex" v-for="(item, i) in myItems2" :key="i"> + <search-item :item="item" @change="formChange($event,i+3)" :value="item.value"/> + </el-form-item> + </div> + <div class="table-page-search-submitButtons"> + <a + @click="toggleAdvanced" + style="margin-left: 8px" + v-if="items.length > 4"> + {{ advanced ? "鏀惰捣" : "灞曞紑" }} + <i :class="advanced?'el-icon-top':'el-icon-bottom'"/> + </a> + <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> + <el-button style="margin-left: 8px" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> +<!-- </el-col>--> +<!-- <el-col :sm="24" :md="7" :lg="5">--> +<!-- --> +<!-- </el-col>--> +<!-- </el-row>--> + </el-form> + </div> +</template> +<script> +import SearchItem from './SearchItem' + +export default { + components: { SearchItem }, + name: 'mySearch', + props: ['items'], + data () { + return { + myItems1: [], + myItems2: [], + // 楂樼骇鎼滅储 灞曞紑/鍏抽棴 + advanced: false, + form:{} + } + }, + beforeCreate () { + this.form = {} + }, + created () { + this.items.map((x,i)=>{ + this.form[x.dataIndex] = x.defaultValue ? x.defaultValue:null + }) + if (this.items.length > 4) { + this.myItems1 = this.items.slice(0, 4) + this.myItems2 = this.items.slice(4) + } else { + this.myItems1 = this.items + } + }, + computed: { + actionMd: function () { + if (!this.advanced) { + return 4 + } else { + const _b = this.items.length % 3 + if (_b === 0) { + return 24 + } else { + return 4 + } + } + } + }, + methods: { + toggleAdvanced () { + this.advanced = !this.advanced + this.$emit('openChange') + }, + search (e) { + e.preventDefault() + this.$refs.formData.validate((valid) => { + if (valid) { + this.form.pageNum = 1 + this.$emit('search', this.form) + } else { + this.$message.warning('鏍¢獙鏈�氳繃,璇锋鏌�!') + return false; + } + }); + }, + reset () { + this.$refs['formData'].resetFields(); + this.items.map((x,i)=>{ + x.value = x.defaultValue ? x.defaultValue:null + }) + if (this.items.length > 3) { + this.myItems1 = this.items.slice(0, 3) + this.myItems2 = this.items.slice(3) + } else { + this.myItems1 = this.items + } + this.$forceUpdate() + this.$nextTick(()=>{ + this.form.pageNum = 1 + this.$emit('reset') + this.$emit('search', this.form) + }) + }, + formChange(e,i){ + this.form[this.items[i].dataIndex] = e + this.items[i].value = e + this.$forceUpdate() + } + } +} +</script> + +<style scoped> +/deep/.el-form--inline .el-form-item__label{ + font-weight: normal; + color: #1D2129; +} +.table-page-search-submitButtons{ + min-width: 160px; + float: right; +} + /deep/.el-button--medium{ + padding:10px 12px; +} +</style> diff --git a/project-web/src/components/mySwitch/mySwitch.vue b/project-web/src/components/mySwitch/mySwitch.vue new file mode 100644 index 0000000..45826bd --- /dev/null +++ b/project-web/src/components/mySwitch/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="#0d997c" + inactive-color="#C0CCDA" + /> + </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/project-web/src/components/myTable/myTable.vue b/project-web/src/components/myTable/myTable.vue new file mode 100644 index 0000000..9ee89bf --- /dev/null +++ b/project-web/src/components/myTable/myTable.vue @@ -0,0 +1,752 @@ +<!--鍒楀闇�瑕佸浐瀹氬彸渚ф搷浣滅敤V锛屽垪灏戜笉闇�瑕佸浐瀹氬彸渚ф搷浣滅敤V2--> +<template> + <div> + <!--宸ュ叿鏉�--> + <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" + style="margin-bottom: 15px" + /> + <!--瀵煎嚭--> + <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="pageNum"><el-input v-model="exportParams.pageNum" /></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="true" + border + :highlight-current-row="true" + @select="handleSelect" + @select-all="handleSelectAll" + > + <!--璇︽儏--> + <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.showCheckBox" + type="selection" + align="center" + width="55" + /> + <!--搴忓彿 鏈夊垎椤垫椂--> + <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.pageNum - 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" /> + <!--鍒楀唴瀹�--> + <el-table-column + v-for="(column,index) in columnNotHidden" + :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.audio"> + <audio v-if="column.audio(scope.row).value" :src="column.audio(scope.row).value" controls style="width: 100%;height: 40px;"></audio> + <div v-else>鏆傛棤闊抽</div> + </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))"> + {{ column.formatter(scope.row).value }} + </span> + </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> + <!--鎿嶄綔鍒�--> + <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 + 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"> + 鏇村 + <i class="el-icon-arrow-down el-icon--right"></i> + </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 + :name="m.title" + :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.pageNum" + :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" + /> + </div> +</template> + +<script> +import myButton from '@/components/myButton/myButton' +import mySwitch from '@/components/mySwitch/mySwitch' +import request from '@/utils/request' +import * as valid from '@/utils/validate' +export default { + components: { myButton, mySwitch }, + props: { + table: { + type: Object, + default() { + return null + } + }, + parentSelectionsObject: { // 榛樿閫変腑鐨勬暟鎹� + type: Array, + default() { + return [] + } + }, + parentSelection: { // 榛樿閫変腑鐨勬暟鎹甶d + type: Array, + default() { + return [] + } + }, + // 褰撶偣鍑婚噸缃寜閽椂,filter鎸囧悜鏀瑰彉鏃朵笉闇�瑕佹墜鍔ㄨ皟鐢╯earch鏂规硶, 浠呮敼鍙榝ilter鍐呴儴鍊兼椂闇�鎵嬪姩璋冪敤search + // 濡�: this.filter = {} 涓嶉渶瑕佽皟鐢╯earch this.filter.name = null 鏃堕渶璋冪敤search + filter: { + type: Object, + default() { + return null + } + } + }, + data() { + const validatepageNum = (rule, value, callback) => { + if (!valid.isNotEmpty(this.exportParams.pageNum)) { + callback(new Error('璇疯緭鍏ラ〉鐮�')) + } else if (!valid.isInteger(this.exportParams.pageNum)) { + 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 { + selection: [], // 瀛樺偍澶嶉�夋閫変腑鐨処D + selectionObject: [], // 瀛樺偍澶嶉�夋閫変腑鐨勫璞� + /** table鍒楄〃鏁版嵁*/ + myTable: { + ref: 'myTable', + 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, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 瀹藉害 + attr: [], // 鎿嶄綔 + more: [] // 鏇村 + }, + rows: [], // 鍒楄〃鏁版嵁 + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + checkColumns: [], // 璁板綍鍒楁帶鍒朵腑閫変腑鐨勫垪 + // 瀵煎嚭鍔熻兘鎵�闇�鍙傛暟 + visible: false, // 鎺у埗瀵煎嚭琛ㄥ崟鐨勯殣钘� + exportParams: { + fileName: '', + fileFormat: '.xls', + page: '2', + pageNum: 1, + pageSize: 20000 + }, + // 瀵煎嚭琛ㄥ崟鏍¢獙 + rules: { + fileName: [{ required: true, validator: validatefileName, trigger: 'blur' }], + pageNum: [{ required: true, validator: validatepageNum, 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 + }) + } + }, + watch: { + filter(val) { + this.search({ pageNum: 1 }) + }, + parentSelectionsObject(e) { + // 鍒濆鍖栭粯璁ら�変腑鐨勫垪 + this.selectionObject = e + this.selectionObject.forEach(sel => { + if (!this.selection.includes(sel.id)) { + this.selection.push(sel.id) + } + }) + this.reloadCheckBox() + }, + selectionObject(val){ //鑾峰彇閫変腑瀵硅薄 + this.$emit('getSel',val) + }, + table(e) { + Object.assign(this.myTable, e) + this.reloadCheckBox() + } + }, + created() { + const that = this + window.onresize = function() { + that.timeStamp = new Date().getTime() + } + that.selection = that.parentSelection + // 鍒濆鍖栭粯璁ら�変腑鐨勫垪(濡傛灉selectionObject锛宻election鍚屾椂瀛樺湪鍒欎互selectionObject涓轰富) + that.selectionObject = that.parentSelectionsObject + that.selectionObject.forEach(sel => { + that.selection.push(sel.id) + }) + this.initTable() + }, + methods: { + childDeleteitem(idd){ + // 瀛愮粍浠跺彇娑堥�変腑 + this.selectionObject = this.selectionObject.filter(({ id }) => id !== idd) + this.selection = this.selection.filter(id => id !== idd) + }, + // 鍗曢�� + 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) + } + }, + clearSelection() { + this.selection = [] + this.$refs[this.myTable.ref].clearSelection() + }, + // 鍏ㄩ�� + 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() { + this.$nextTick(() => { + // 閲嶆柊鍕鹃�夎閫変腑椤� + 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) + } + } + }) + } + }) + }, + // 鑾峰彇琚�変腑椤筰d + getChedkIds() { + const newArr = Array.from(new Set(this.selection)); // 鍘婚噸 + return newArr + }, + // 鑾峰彇琚�変腑椤� + getChedkObject() { + return this.selectionObject + }, + 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, + pageNum: 1, + pageSize: 10, + total: 0 + }) + } + this.$nextTick(() => { + this.search({ pageNum: 1 }) + }) + this.myTable.columns.forEach((column, idx) => { + if (!column.hidden) { + this.checkColumns.push(idx) + } + }) + this.timeStamp = new Date().getTime() + this.reloadCheckBox() + } + }, + /* + * @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.pageNum) { + this.myTable.paging.page.pageNum = param.pageNum + } + params.pageNum = this.myTable.paging.page.pageNum + if (param == undefined) { + params.pageNum = 1 + } + request({ + url: this.myTable.url, + method: 'get', + params: params + }).then(res => { + if (res.datas) { + this.$set(this.myTable, 'rows', res.datas) + } + this.$set( + this.myTable.paging, + 'page', + Object.assign(this.myTable.paging.page, { + pageSize: res.pageSize, + pageNum: res.pageIndex, + total: res.totalRows + }) + ) + this.myTable.loading = false + this.reloadCheckBox() + }) + }) + }, + /* + * @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({ pageNum: 1 }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageNum + */ + handleCurrentChange(pageNum) { + this.myTable.paging.page.pageNum = pageNum + this.search({ pageNum: pageNum }) + }, + /* + * @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(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝鍑�' + }) + 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( + { + pageNum: this.exportParams.pageNum, + 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/generalExport', // 璇锋眰鍦板潃, + method: 'post', + data: params + }).then(response => { + if (response.code == 1) { + 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; +} +.el-table__empty-block { + margin: 0 auto; +} +.table-tool-bar{ + /*margin-bottom: 15px;*/ +} +</style> diff --git a/project-web/src/components/myTable/myTableV2.vue b/project-web/src/components/myTable/myTableV2.vue new file mode 100644 index 0000000..47b61b2 --- /dev/null +++ b/project-web/src/components/myTable/myTableV2.vue @@ -0,0 +1,644 @@ +<!--鍒楀闇�瑕佸浐瀹氬彸渚ф搷浣滅敤V锛屽垪灏戜笉闇�瑕佸浐瀹氬彸渚ф搷浣滅敤V2--> +<template> + <div> + <!--宸ュ叿鏉�--> + <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" + style="margin-bottom: 15px" + /> + <!--瀵煎嚭--> + <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="pageNum"><el-input v-model="exportParams.pageNum" /></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 + style="width: 100%;" + :key="timeStamp" + :ref="myTable.ref" + v-loading="myTable.loading" + :data="myTable.rows" + :max-height="myTable.maxHeight" + :height="myTable.height" + :size="myTable.size" + :fit="true" + border + :highlight-current-row="true" + > + <!--璇︽儏--> + <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" fixed="left"> + <template slot-scope="scope"> + <span>{{ scope.$index + (myTable.paging.page.pageNum - 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" /> + <!--鍒楀唴瀹�--> + <el-table-column + v-for="(column,index) in columnNotHidden" + :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.audio"> + <audio v-if="column.audio(scope.row).value" :src="column.audio(scope.row).value" controls style="width: 100%;height: 40px;"></audio> + <div v-else>鏆傛棤闊抽</div> + </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-on:dblclick="handleDbClick(column.formatter(scope.row))"> + {{ column.formatter(scope.row).value }} + </span> + </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> + <!--鎿嶄綔鍒�--> + <el-table-column + fixed="right" + v-if="myTable.operation.show" + label="鎿嶄綔" + header-align="center" + :align="myTable.operation.align || 'center'" + :width="myTable.operation.width" + > + <template slot-scope="scope"> + <template v-for="(operation, index) in myTable.operation.attr"> + <my-button + 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"> + 鏇村 + <i class="el-icon-arrow-down el-icon--right"></i> + </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 + :name="m.title" + :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 + v-if="myTable.paging.show" + :small="myTable.paging.page.small" + :current-page="myTable.paging.page.pageNum" + :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" + /> + </div> +</template> + +<script> +import myButton from '@/components/myButton/myButton' +import mySwitch from '@/components/mySwitch/mySwitch' +import request from '@/utils/request' +import * as valid from '@/utils/validate' +export default { + components: { myButton, mySwitch }, + 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 validatepageNum = (rule, value, callback) => { + if (!valid.isNotEmpty(this.exportParams.pageNum)) { + callback(new Error('璇疯緭鍏ラ〉鐮�')) + } else if (!valid.isInteger(this.exportParams.pageNum)) { + 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: { + url: '', + params: {}, + border: false, + 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, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 瀹藉害 + attr: [], // 鎿嶄綔 + more: [] // 鏇村 + }, + rows: [], // 鍒楄〃鏁版嵁 + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + checkColumns: [], // 璁板綍鍒楁帶鍒朵腑閫変腑鐨勫垪 + // 瀵煎嚭鍔熻兘鎵�闇�鍙傛暟 + visible: false, // 鎺у埗瀵煎嚭琛ㄥ崟鐨勯殣钘� + exportParams: { + fileName: '', + fileFormat: '.xls', + page: '2', + pageNum: 1, + pageSize: 20000 + }, + // 瀵煎嚭琛ㄥ崟鏍¢獙 + rules: { + fileName: [{ required: true, validator: validatefileName, trigger: 'blur' }], + pageNum: [{ required: true, validator: validatepageNum, 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 + }) + } + }, + watch: { + filter(val) { + this.search({ pageNum: 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, + pageNum: 1, + pageSize: 10, + total: 0 + }) + } + this.$nextTick(() => { + this.search({ pageNum: 1 }) + }) + this.myTable.columns.forEach((column, idx) => { + if (!column.hidden) { + this.checkColumns.push(idx) + } + }) + this.timeStamp = new Date().getTime() + } + }, + /* + * @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) + if(this.myTable.paging.show){ + params.pageSize = this.myTable.paging.page.pageSize + if (param && param.pageNum) { + this.myTable.paging.page.pageNum = param.pageNum + } + params.pageNum = this.myTable.paging.page.pageNum + if (param == undefined) { + params.pageNum = 1 + } + } + + request({ + url: this.myTable.url, + method: 'get', + params: params + }).then(res => { + if(this.myTable.paging.show){ + if (res.datas) { + this.$set(this.myTable, 'rows', res.datas) + } + this.$set( + this.myTable.paging, + 'page', + Object.assign(this.myTable.paging.page, { + total: res.totalRows + }) + ) + }else{ + this.$set(this.myTable, 'rows', res) + } + + 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:#0d997c;' + } 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() + } + }, + // 鍙屽嚮浜嬩欢 + handleDbClick(format) { + if (format.dbClick != undefined) { + format.dbClick() + } + }, + /* + * @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({ pageNum: 1 }) + }, + /* + * @Author : liu.q [916000612@qq.com] + * @Date : 2019-07-17 14:22 + * @Description :鍒囨崲pageNum + */ + handleCurrentChange(pageNum) { + this.myTable.paging.page.pageNum = pageNum + this.search({ pageNum: pageNum }) + }, + /* + * @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(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝鍑�' + }) + 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( + { + pageNum: this.exportParams.pageNum, + 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/generalExport', // 璇锋眰鍦板潃, + 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> +/*璇︽儏琛ㄥ崟*/ +.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; +} +.el-table__empty-block { + margin: 0 auto; +} +.table-tool-bar{ + /*margin-bottom: 15px;*/ +} +</style> diff --git a/project-web/src/components/myTree/index.vue b/project-web/src/components/myTree/index.vue new file mode 100644 index 0000000..81ac3e2 --- /dev/null +++ b/project-web/src/components/myTree/index.vue @@ -0,0 +1,177 @@ +<template> + <div> + <el-input + style='margin-bottom: 8px;width:100%' + placeholder='鎼滅储' + prefix-icon='el-icon-search' + v-model='searchValue' + clearable> + </el-input> + <div class='tree-box'> + <div class='refresh-btn' v-if='treeList.length>0' @click='refshData'> + 閲嶇疆<i class='el-icon-refresh'></i> + </div> + <el-tree + ref='tree' + :data='treeList' + node-key='id' + @node-expand='onExpand' + @node-click='onSelect' + :expand-on-click-node='false' + :default-expand-all='autoExpandParent' + :filter-node-method='filterNode' + :highlight-current='true' + > + <template slot-scope='{ node, data }'> + <span v-if='node.label.indexOf(searchValue) > -1' class='font-14 line-h-30'> + {{ node.label.substr(0, node.label.indexOf(searchValue)) }} + <span style='color: #0d997c' class='font-14 line-h-30'>{{ searchValue }}</span> + {{ node.label.substr(node.label.indexOf(searchValue) + searchValue.length) }} + </span> + <span v-else>{{ node.label }}</span> + </template> + </el-tree> + </div> + </div> +</template> + +<script> + +export default { + props: {// 绗簩绉嶆柟寮� + treeList: { + type: Array, + default: function() { + return []; + }, + }, + }, + data() { + return { + expandedKeys: [], + searchValue: '', + autoExpandParent: false, + dataList: [], + }; + }, + watch: { + searchValue(val) { + this.$refs.tree.filter(val); + }, + treeList(curVal) { + if (curVal) { + this.generateList(curVal); + this.treeList = curVal; + const rander = (array, param) => { + array.forEach(v => { + v.scopedSlots = param; + if (v.children && v.children.length > 0) { + rander(v.children, param); + } + }); + }; + rander(this.treeList, { label: 'label' }); + } + }, + }, + methods: { + onExpand(expandedKeys) { + this.expandedKeys = expandedKeys; + this.autoExpandParent = false; + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + onChange(e) { + const value = e; + const expandedKeys = this.dataList.map(item => { + if (item.label.indexOf(value) > -1) { + return this.getParentKey(item.id, this.treeList); + } + return null; + }) + .filter((item, i, self) => item && self.indexOf(item) === i); + Object.assign(this, { + expandedKeys, + searchValue: value, + autoExpandParent: true, + }); + }, + getParentKey(id, tree) { + let parentKey; + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + if (node.children) { + if (node.children.some(item => item.id === id)) { + parentKey = node.id; + } else if (this.getParentKey(id, node.children)) { + parentKey = this.getParentKey(id, node.children); + } + } + } + return parentKey; + }, + generateList(data) { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const id = node.id; + this.dataList.push({ id: id, label: node.label }); + if (node.children) { + this.generateList(node.children); + } + } + }, + onSelect(selectedNodes) { + const param = { id: selectedNodes.id, name: selectedNodes.label }; + if (selectedNodes.code) { + param.code = selectedNodes.code; + } + this.$emit('setNode', param); + }, + refshData() { + this.$refs.tree.setCheckedKeys([]); + this.$refs.tree.setCurrentKey(null); + this.$forceUpdate(); + this.$emit('setNode', {}); + }, + }, +}; +</script> +<style scoped> +/deep/ .el-tree-node__content { + font-size: 14px; + height: 40px; + line-height: 40px; +} + +.font-14 { + font-size: 14px; +} + +.tree-box { + position: relative; + max-height: calc(100vh - 306px); + overflow-y: scroll; +} + +.tree-box::-webkit-scrollbar { + width: 5px; +} + +.refresh-btn { + cursor: pointer; + position: absolute; + top: 0; + right: 0; + font-size: 14px; + z-index: 101; + line-height: 40px; + color: #999; + text-align: right; +} + +.refresh-btn:hover { + color: #0c8aff; +} +</style> diff --git a/project-web/src/components/myTree/satisficingIndex.vue b/project-web/src/components/myTree/satisficingIndex.vue new file mode 100644 index 0000000..a06c52c --- /dev/null +++ b/project-web/src/components/myTree/satisficingIndex.vue @@ -0,0 +1,137 @@ +<template> + <div> + <div class="tree-box"> + <el-tree + ref="tree" + :data="treeList" + node-key="id" + :props="{ + 'label':'name' + }" + @node-expand="onExpand" + @node-click="onSelect" + :expand-on-click-node="false" + :default-expand-all="autoExpandParent" + highlight-current="true" + > + </el-tree> + </div> + </div> +</template> + +<script> + + export default { + props: {// 绗簩绉嶆柟寮� + treeList: { + type: Array, + default: function () { + return [] + } + } + }, + data () { + return { + expandedKeys: [], + searchValue: '', + autoExpandParent: false, + dataList: [] + } + }, + watch: { + treeList (curVal) { + if (curVal) { + this.generateList(curVal) + this.treeList = curVal + } + } + }, + methods: { + onExpand (expandedKeys) { + this.expandedKeys = expandedKeys + this.autoExpandParent = false + }, + onChange (e) { + const value = e + const expandedKeys = this.dataList.map(item => { + if (item.label.indexOf(value) > -1) { + return this.getParentKey(item.id, this.treeList) + } + return null + }) + .filter((item, i, self) => item && self.indexOf(item) === i) + Object.assign(this, { + expandedKeys, + searchValue: value, + autoExpandParent: true + }) + }, + getParentKey (id, tree) { + let parentKey + for (let i = 0; i < tree.length; i++) { + const node = tree[i] + if (node.children) { + if (node.children.some(item => item.id === id)) { + parentKey = node.id + } else if (this.getParentKey(id, node.children)) { + parentKey = this.getParentKey(id, node.children) + } + } + } + return parentKey + }, + generateList (data) { + //id 鍜� 瀵硅薄鑳借幏鍙栧埌 + for (let i = 0; i < data.length; i++) { + const node = data[i] + const id = node.id + console.log(id+'id') + console.log(node.name+'name') + this.dataList.push({ id: id, label: node.name }) + } + }, + onSelect (selectedNodes) { + console.log(selectedNodes.id) + console.log(selectedNodes.name) + const param = { id: selectedNodes.id, name: selectedNodes.name } + this.$emit('setNode', param) + }, + refshData(){ + this.$refs.tree.setCheckedKeys([]); + this.$emit('setNode', {}) + } + } + } +</script> +<style scoped> +/deep/ .el-tree-node__content{ + font-size: 14px; + height: 40px; + line-height: 40px; +} +.font-14{ + font-size: 14px; +} +.tree-box{ + position: relative; + max-height: calc(100vh - 306px); + overflow-y: scroll; +} +.tree-box::-webkit-scrollbar{ + width: 5px; +} +.refresh-btn{ + cursor: pointer; + position: absolute; + top:0; + right:0; + font-size: 14px; + z-index: 101; + line-height: 40px; + color: #999; + text-align: right; +} +.refresh-btn:hover{ + color: #0c8aff; +} +</style> diff --git a/project-web/src/components/upload/index.vue b/project-web/src/components/upload/index.vue new file mode 100644 index 0000000..f54212b --- /dev/null +++ b/project-web/src/components/upload/index.vue @@ -0,0 +1,256 @@ +<template> + <div> + <el-upload + class="upload-demo" + :action="defaultSettings.uploadUrl" + :multiple="defaultSettings.multiple" + name="multipartFile" + :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" + > + <div v-if="settings.type==='picture-card'"> + <template> + <i class="el-icon-plus"></i> + </template> + </div> + <div v-else> + <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="medium" type="text" plain icon="el-icon-upload"> + {{ defaultSettings.title }} + </el-button> + </div> + <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 }}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 { getDownUrl } 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: 100, // 鏈�澶уぇ灏忥紝鍗曚綅M + num: 10, // 鏀寔涓婁紶鍥剧墖涓暟 + accept: '.jpg,.jpeg,.png,.bmp,.pdf,.doc,.docx,.xls,.xlsx,.apk,.zip', // 闄愬埗鏍煎紡 + tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}kb` + uploadUrl: '', // 涓婁紶璺緞 + multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + type: 'text' // 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) + // + // 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.name == img.name) { + this.fileList.splice(i, 1) + break + } + } + this.$nextTick(() => { + this.$emit('on-change') + this.initPreviewImg() + }) + }, + 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 < Number(this.defaultSettings.max) + if (!isImg) { + this.$message.error('涓婁紶鏂囦欢鏍煎紡鍙兘鏄� ' + this.defaultSettings.accept + ' 鏍煎紡!') + } + if (!isLt2M) { + this.$message.error('涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ' + this.defaultSettings.max + 'M!' + '褰撳墠鏂囦欢澶у皬锛�' + (file.size / 1024 / 1024).toFixed(2) + 'M') + } + return isImg && isLt2M && isRepeat + }, + handleUploadSuccess(response, file, fileList) { + if (response.code === 1) { + response.data.forEach(f => { + this.fileList.push({ + fileType:f.fileExt, + id: f.id, + name: f.fileName, + url: this.getUrl(f.url), + path: f.url, + attSize: f.fileSize || null + }) + }) + this.$nextTick(() => { + this.$emit('on-change') + this.initPreviewImg() + }) + } else { + this.$message.warning('涓婁紶澶辫触') + } + }, + 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.id == f.id) { + 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, { + }) + // + }, + /* + * @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 getDownUrl() + path + } + } + } +} +</script> + +<style scoped> + /* 鍥剧墖棰勮灞傜骇*/ + .viewer-container { + z-index: 90709102!important; + } + +</style> diff --git a/project-web/src/components/uploadFrom/index.js b/project-web/src/components/uploadFrom/index.js new file mode 100644 index 0000000..d2a7933 --- /dev/null +++ b/project-web/src/components/uploadFrom/index.js @@ -0,0 +1,25 @@ +import Element from 'element-ui'; +import '@/styles/element-variables.scss'; +import uploadFromComponent from './index.vue'; +import Vue from 'vue'; +import Cookies from 'js-cookie'; + +Vue.use(Element, { + size: Cookies.get('size') || 'medium', // set element-ui default size +}); +const uploadFrom = {}; +uploadFrom.install = function (Vue, options) { + const ToastConstructor = Vue.extend(uploadFromComponent); + // 鐢熸垚涓�涓瀛愮被鐨勫疄渚� + const instance = new ToastConstructor(); + instance.$mount(document.createElement('div')); + document.body.appendChild(instance.$el); + Vue.prototype.$modalUpload = function (callback, isMore, modelName, boolean) { + instance.visible = true; + instance.callback = callback; + instance.isMore = isMore; //鏄惁鏄閫� + instance.modelName = modelName; //涓婁紶鏂囦欢鍖呭悕瀛� + instance.booleanVal = boolean; + }; +}; +export default uploadFrom; diff --git a/project-web/src/components/uploadFrom/index.vue b/project-web/src/components/uploadFrom/index.vue new file mode 100644 index 0000000..15ce63a --- /dev/null +++ b/project-web/src/components/uploadFrom/index.vue @@ -0,0 +1,46 @@ +<template> + <div> + <el-dialog + title="涓婁紶鍥剧墖" + :visible.sync="visible" + width="950px" + :modal="booleanVal" + append-to-body + :before-close="handleClose" + > + <upload-picture v-if="visible" :isMore="isMore" :modelName="modelName" @getImage="getImage"></upload-picture> + </el-dialog> + </div> +</template> + +<script> +export default { + name: 'UploadFroms', + data() { + return { + visible: false, + callback: function () {}, + isMore: '', + modelName: '', + ISmodal: false, + booleanVal: false, + }; + }, + watch: { + // show() { + // this.visible = this.show + // } + }, + methods: { + handleClose() { + this.visible = false; + }, + getImage(img) { + this.callback(img); + this.visible = false; + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/components/win/index.vue b/project-web/src/components/win/index.vue new file mode 100644 index 0000000..19087ef --- /dev/null +++ b/project-web/src/components/win/index.vue @@ -0,0 +1,72 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :title="title" + :width="width" + :modal="false" + :visible.sync="visible" + top="150px" + :append-to-body="false" + :destroy-on-close="true" + @close="close" + > + <div v-loading="loading"> + <slot/> + </div> + <div v-if="$slots.footer" slot="footer"> + <slot name="footer"/> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + loading: { + type: Boolean, + default: false + }, + 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> +>>> .el-dialog__body { + overflow-y: auto; + max-height: calc(100vh - 140px); +} +</style> diff --git a/project-web/src/components/win/win-lg.vue b/project-web/src/components/win/win-lg.vue new file mode 100644 index 0000000..a98c691 --- /dev/null +++ b/project-web/src/components/win/win-lg.vue @@ -0,0 +1,91 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :title="title" + :width="'1200px'" + :modal="true" + :visible.sync="visible" + top="15vh" + :close-on-click-modal="false" + :append-to-body="true" + :destroy-on-close="true" + @close="close" + > + <div v-loading="loading"> + <slot/> + </div> + <div v-if="$slots.footer" slot="footer"> + <slot name="footer"/> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + loading: { + type: Boolean, + default: false + }, + 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 scoped lang="scss"> +>>> .el-dialog__headerbtn{ + top:13px; +} +>>> .el-dialog__header { + padding:12px 20px; +} +>>> .el-dialog__body { + overflow-y: auto; + max-height: calc(100vh - 240px); + &::-webkit-scrollbar { + display: block; + width: 4px; + height: 10px; + border-radius: 2px; + background: red; + } + /* 淇敼婊氬姩鏉$殑杞ㄩ亾鍜屾粦鍧楅鑹� */ + &::-webkit-scrollbar-track { + background: #f1f1f1; + } + &::-webkit-scrollbar-thumb { + background: #999; + border-radius: 2px; + + } +} +</style> diff --git a/project-web/src/components/win/win-md.vue b/project-web/src/components/win/win-md.vue new file mode 100644 index 0000000..3ab8032 --- /dev/null +++ b/project-web/src/components/win/win-md.vue @@ -0,0 +1,95 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :title="title" + :width="width" + :modal="true" + :visible.sync="visible" + :top="'15vh'" + :close-on-click-modal="false" + :append-to-body="true" + :destroy-on-close="true" + @close="close" + > + <div v-loading="loading"> + <slot/> + </div> + <div v-if="$slots.footer" slot="footer"> + <slot name="footer"/> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + loading: { + type: Boolean, + default: false + }, + width: { + type: String, + default: '900px' + }, + 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 scoped lang="scss"> +>>> .el-dialog__headerbtn{ + top:13px; +} +>>> .el-dialog__header { + padding:12px 20px; +} +>>> .el-dialog__body { + overflow-y: auto; + max-height: calc(100vh - 340px); + &::-webkit-scrollbar { + display: block; + width: 4px; + height: 10px; + border-radius: 2px; + background: red; + } + /* 淇敼婊氬姩鏉$殑杞ㄩ亾鍜屾粦鍧楅鑹� */ + &::-webkit-scrollbar-track { + background: #f1f1f1; + } + &::-webkit-scrollbar-thumb { + background: #999; + border-radius: 2px; + + } +} +</style> diff --git a/project-web/src/components/win/win-sm.vue b/project-web/src/components/win/win-sm.vue new file mode 100644 index 0000000..d8ee3ba --- /dev/null +++ b/project-web/src/components/win/win-sm.vue @@ -0,0 +1,75 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :title="title" + :width="'540px'" + :modal="true" + :visible.sync="visible" + :top="'15vh'" + :close-on-click-modal="false" + :append-to-body="true" + :destroy-on-close="true" + @close="close" + > + <div v-loading="loading"> + <slot/> + </div> + <div v-if="$slots.footer" slot="footer"> + <slot name="footer"/> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + loading: { + type: Boolean, + default: false + }, + 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 scoped> +>>> .el-dialog__headerbtn{ + top:13px; +} +>>> .el-dialog__header { + padding:12px 20px; +} +>>> .el-dialog__body { + overflow-y: auto; + max-height: calc(100vh - 340px); +} +</style> diff --git a/project-web/src/components/win2/index.vue b/project-web/src/components/win2/index.vue new file mode 100644 index 0000000..463664b --- /dev/null +++ b/project-web/src/components/win2/index.vue @@ -0,0 +1,151 @@ +<template> + <!--鍔ㄧ敾--> + <transition name="el-fade-in"> + <el-dialog + :close-on-press-escape="false" + :modal="false" + :modal-append-to-body="false" + width="100%" + :visible.sync="visible" + custom-class="cus-dialog2" + :show-close="false" + center + :destroy-on-close="true" + @close="close" + > + <div slot="title"> + <div class="winTitle"> + <img src="@/assets/images/project/icon-return.png" alt="杩斿洖" @click="close" class="return-logo" /> + <span>{{ title }}</span> + </div> + </div> + <div v-loading="loading" :style="{paddingBottom: $slots.footer?'80px !important':0}"> + <slot /> + </div> + <div v-if="$slots.footer" slot="footer" class="dialog-footer"> + <slot name="footer" /> + </div> + </el-dialog> + </transition> +</template> + +<script> +export default { + props: { + loading: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + }, + data() { + return { + visible: true, + width: 0, + top: 0, + }; + }, + // watch:{ + // 'visible':{ + // deep:true, + // immediate:true, + // handle(val){ + // console.log(val) + // } + // } + // }, + mounted() { + this.show(); + }, + // watch:{ + // $router(){ + // this.close() + // } + // }, + methods: { + show() { + this.visible = true; + try { + window.onresize = function () { + document.querySelectorAll('.cus-dialog2').forEach((v) => { + v.style.width = '100%' + v.style.top = '0' + v.style.left = 0 + v.style.marginTop = 0 + }); + document.querySelectorAll('.el-dialog__wrapper').forEach((v) => { + v.style.width = document.querySelector('.app-main').clientWidth + 'px'; + v.style.top = '120px'; + v.style.left = document.querySelector('.app-main').getBoundingClientRect().left + 'px'; + }); + + }; + window.onresize(); + } catch (e) { + console.error(e); + } + }, + close() { + this.visible = false; + this.$emit('close'); + }, + }, +}; +</script> + +<style scoped lang="scss"> +.winTitle { + padding: 20px; + display: flex; + align-items: center; + font-size: 18px; + font-weight: 600; + color:#666666; + span { + margin-left: 10px; + } +} + +>>> .cus-dialog2 > .el-dialog__footer { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 0; + background-color: #fff; +} + +>>> .cus-dialog2 > .el-dialog__header { + border: none; + padding: 0 !important; +} + +>>> .cus-dialog2 { + margin: 0 !important; +} + +>>> .cus-dialog2 > .el-dialog__body { + height: calc(100vh - 190px); + overflow-y: auto; + overflow-x: hidden; + padding: 0 !important; + + &::-webkit-scrollbar { + width: 0; + } + + //婊氬姩鏉¤建閬� + &::-webkit-scrollbar-track { + width: 0; + } +} + +.return-logo { + width: 24px; + height: 24px; + cursor: pointer; +} +</style> diff --git a/project-web/src/directive/copy/copy.js b/project-web/src/directive/copy/copy.js new file mode 100644 index 0000000..ae49b34 --- /dev/null +++ b/project-web/src/directive/copy/copy.js @@ -0,0 +1,75 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import { Message } from 'element-ui'; + +const vCopy = { + // 鍚嶅瓧鐖卞彇鍟ュ彇鍟� + /* + bind 閽╁瓙鍑芥暟锛岀涓�娆$粦瀹氭椂璋冪敤锛屽彲浠ュ湪杩欓噷鍋氬垵濮嬪寲璁剧疆 + el: 浣滅敤鐨� dom 瀵硅薄 + value: 浼犵粰鎸囦护鐨勫�硷紝涔熷氨鏄垜浠 copy 鐨勫�� + */ + bind(el, { value }) { + el.$value = value; // 鐢ㄤ竴涓叏灞�灞炴�ф潵瀛樹紶杩涙潵鐨勫�硷紝鍥犱负杩欎釜鍊煎湪鍒殑閽╁瓙鍑芥暟閲岃繕浼氱敤鍒� + el.handler = () => { + if (!el.$value) { + // 鍊间负绌虹殑鏃跺�欙紝缁欏嚭鎻愮ず锛屾垜杩欓噷鐨勬彁绀烘槸鐢ㄧ殑 element-ui 鐨勬彁绀猴紝浣犱滑闅忔剰 + Message.warning('鏃犲鍒跺唴瀹�'); + return; + } + // 鍔ㄦ�佸垱寤� textarea 鏍囩 + const textarea = document.createElement('textarea'); + // 灏嗚 textarea 璁句负鍙锛屽悓鏃跺皢 textarea 绉诲嚭鍙鍖哄煙 + textarea.readOnly = 'readonly'; + textarea.style.position = 'absolute'; + textarea.style.left = '-9999px'; + // 灏嗚 copy 鐨勫�艰祴缁� textarea 鏍囩鐨� value 灞炴�� + textarea.value = el.$value; + // 灏� textarea 鎻掑叆鍒� body 涓� + document.body.appendChild(textarea); + // 閫変腑鍊煎苟澶嶅埗 + textarea.select(); + textarea.setSelectionRange(0, textarea.value.length); + //灏辨槸鍙互閫氳繃璁剧疆璧峰浜庣粓姝綅缃紝鏉ラ�変腑涓�娈垫枃鏈腑鐨勪竴閮ㄥ垎,杩欓噷鍏跺疄灏辨槸鍏ㄩ�� + const result = document.execCommand('Copy'); + //html鍘熺敓鐨勫鍒跺姛鑳� + /** + * 鎷撳睍 + * :document.execCommand(鈥漵electAll鈥�) 鍏ㄩ�� + * :document.execCommand(open) 鎵撳紑 + * :document.execCommand(saveAs) 鍙﹀瓨涓� + */ + if (result) { + Message.success('澶嶅埗鎴愬姛'); + } + document.body.removeChild(textarea); + //澶嶅埗鎴愬姛鐒跺悗鍒犻櫎textarea鏍囩 + }; + // 缁戝畾鐐瑰嚮浜嬩欢锛屽氨鏄墍璋撶殑涓�閿� copy 鍟� + el.addEventListener('click', el.handler); + }, + // 褰撲紶杩涙潵鐨勫�兼洿鏂扮殑鏃跺�欒Е鍙� + componentUpdated(el, { value }) { + el.$value = value; + }, + // 鎸囦护涓庡厓绱犺В缁戠殑鏃跺�欙紝绉婚櫎浜嬩欢缁戝畾 + unbind(el) { + el.removeEventListener('click', el.handler); + }, +}; + +//浣跨敤绀轰緥 <el-button v-copy="info">澶嶅埗</el-button> +//data() { +// return { +// info:'瑕佸鍒剁殑鍐呭' +// } + +export default vCopy; diff --git a/project-web/src/directive/dialog/drag.js b/project-web/src/directive/dialog/drag.js new file mode 100644 index 0000000..08b8739 --- /dev/null +++ b/project-web/src/directive/dialog/drag.js @@ -0,0 +1,68 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +export default { + bind(el, binding, vnode, oldVnode) { + const value = binding.value; + if (value == false) return; + // 鑾峰彇鎷栨嫿鍐呭澶撮儴 + const dialogHeaderEl = el.querySelector('.el-dialog__header'); + const dragDom = el.querySelector('.el-dialog'); + dialogHeaderEl.style.cursor = 'move'; + // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null); + const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); + dragDom.style.position = 'absolute'; + dragDom.style.marginTop = 0; + let width = dragDom.style.width; + if (width.includes('%')) { + width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100); + } else { + width = +width.replace(/\px/g, ''); + } + dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`; + // 榧犳爣鎸変笅浜嬩欢 + dialogHeaderEl.onmousedown = (e) => { + // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂� (榧犳爣鐐瑰嚮浣嶇疆璺濈鍙绐楀彛鐨勮窛绂�) + const disX = e.clientX - dialogHeaderEl.offsetLeft; + const disY = e.clientY - dialogHeaderEl.offsetTop; + + // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲 + let styL, styT; + + // 娉ㄦ剰鍦╥e涓� 绗竴娆¤幏鍙栧埌鐨勫�间负缁勪欢鑷甫50% 绉诲姩涔嬪悗璧嬪�间负px + if (sty.left.includes('%')) { + styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); + styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); + } else { + styL = +sty.left.replace(/\px/g, ''); + styT = +sty.top.replace(/\px/g, ''); + } + + // 榧犳爣鎷栨嫿浜嬩欢 + document.onmousemove = function (e) { + // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈 锛堝紑濮嬫嫋鎷借嚦缁撴潫鎷栨嫿鐨勮窛绂伙級 + const l = e.clientX - disX; + const t = e.clientY - disY; + + let finallyL = l + styL; + let finallyT = t + styT; + + // 绉诲姩褰撳墠鍏冪礌 + dragDom.style.left = `${finallyL}px`; + dragDom.style.top = `${finallyT}px`; + }; + + document.onmouseup = function (e) { + document.onmousemove = null; + document.onmouseup = null; + }; + }; + }, +}; diff --git a/project-web/src/directive/dialog/dragHeight.js b/project-web/src/directive/dialog/dragHeight.js new file mode 100644 index 0000000..222516b --- /dev/null +++ b/project-web/src/directive/dialog/dragHeight.js @@ -0,0 +1,43 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +export default { + bind(el) { + const dragDom = el.querySelector('.el-dialog'); + const lineEl = document.createElement('div'); + lineEl.style = + 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;'; + lineEl.addEventListener( + 'mousedown', + function (e) { + // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂� + const disX = e.clientX - el.offsetLeft; + const disY = e.clientY - el.offsetTop; + // 褰撳墠瀹藉害 楂樺害 + const curWidth = dragDom.offsetWidth; + const curHeight = dragDom.offsetHeight; + document.onmousemove = function (e) { + e.preventDefault(); // 绉诲姩鏃剁鐢ㄩ粯璁や簨浠� + // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈 + const xl = e.clientX - disX; + const yl = e.clientY - disY; + dragDom.style.width = `${curWidth + xl}px`; + dragDom.style.height = `${curHeight + yl}px`; + }; + document.onmouseup = function (e) { + document.onmousemove = null; + document.onmouseup = null; + }; + }, + false, + ); + dragDom.appendChild(lineEl); + }, +}; diff --git a/project-web/src/directive/dialog/dragWidth.js b/project-web/src/directive/dialog/dragWidth.js new file mode 100644 index 0000000..e8eebeb --- /dev/null +++ b/project-web/src/directive/dialog/dragWidth.js @@ -0,0 +1,39 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +export default { + bind(el) { + const dragDom = el.querySelector('.el-dialog'); + const lineEl = document.createElement('div'); + lineEl.style = + 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;'; + lineEl.addEventListener( + 'mousedown', + function (e) { + // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂� + const disX = e.clientX - el.offsetLeft; + // 褰撳墠瀹藉害 + const curWidth = dragDom.offsetWidth; + document.onmousemove = function (e) { + e.preventDefault(); // 绉诲姩鏃剁鐢ㄩ粯璁や簨浠� + // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈 + const l = e.clientX - disX; + dragDom.style.width = `${curWidth + l}px`; + }; + document.onmouseup = function (e) { + document.onmousemove = null; + document.onmouseup = null; + }; + }, + false, + ); + dragDom.appendChild(lineEl); + }, +}; diff --git a/project-web/src/directive/float.js b/project-web/src/directive/float.js new file mode 100644 index 0000000..b287ae0 --- /dev/null +++ b/project-web/src/directive/float.js @@ -0,0 +1,40 @@ +import Vue from 'vue' + +Vue.directive('float', function (el, binding) { + const {value} = binding + const min = value.min || 0 + const max = value.max || 9999999 + const digit = value.digit || 2 + const _input = el + _input.onkeyup = function (e) { + let value = e.currentTarget.firstElementChild.value + if (value.length == 1) { + value = value.replace(/[^1-9]/g, '') + } else { + if (digit == 1) { + value = value.replace(/^0[0-9]+/, val => val[1]) + .replace(/^(\.)+/, '') + .replace(/[^\d.]/g, '') + .replace(/\.+/, '.') + .replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3') + } else { + value = value.replace(/^0[0-9]+/, val => val[1]) + .replace(/^(\.)+/, '') + .replace(/[^\d.]/g, '') + .replace(/\.+/, '.') + .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') + } + } + if (min) { + if (value < min) { + value = min + } + } + if (max) { + if (value > max) { + value = max + } + } + e.currentTarget.firstElementChild.value = value + } +}) diff --git a/project-web/src/directive/index.js b/project-web/src/directive/index.js new file mode 100644 index 0000000..4dbc507 --- /dev/null +++ b/project-web/src/directive/index.js @@ -0,0 +1,24 @@ + +import hasRole from './permission/hasRole'; +import hasPermi from './permission/hasPermi'; +import dialogDrag from './dialog/drag'; +import dialogDragWidth from './dialog/dragWidth'; +import dialogDragHeight from './dialog/dragHeight'; +import copy from './copy/copy'; + +const install = function (Vue) { + Vue.directive('hasRole', hasRole); + Vue.directive('hasPermi', hasPermi); + Vue.directive('dialogDrag', dialogDrag); + Vue.directive('dialogDragWidth', dialogDragWidth); + Vue.directive('dialogDragHeight', dialogDragHeight); + Vue.directive('copy', copy); +}; + +if (window.Vue) { + window['hasRole'] = hasRole; + window['hasPermi'] = hasPermi; + Vue.use(install); // eslint-disable-line +} + +export default install; diff --git a/project-web/src/directive/num.js b/project-web/src/directive/num.js new file mode 100644 index 0000000..e873f8d --- /dev/null +++ b/project-web/src/directive/num.js @@ -0,0 +1,27 @@ +import Vue from 'vue' + +Vue.directive('num', function (el, binding) { + const min = binding.value.min + const max = binding.value.max + const _input = el + _input.onkeyup = function (e) { + let value = e.currentTarget.firstElementChild.value + if (value.length == 1) { + value = value.replace(/[^1-9]/g, '') + } else { + value = value.replace(/[^\d]/g, '') + } + if (min) { + if (value < min) { + value = min + } + } + if (max) { + if (value > max) { + value = max + } + } + e.currentTarget.firstElementChild.value = value + } + +}) diff --git a/project-web/src/directive/permission/hasPermi.js b/project-web/src/directive/permission/hasPermi.js new file mode 100644 index 0000000..04be248 --- /dev/null +++ b/project-web/src/directive/permission/hasPermi.js @@ -0,0 +1,32 @@ + +import store from '@/store'; + +export default { + inserted(el, binding, vnode) { + // 褰撹缁戝畾鐨勫厓绱犳彃鍏ュ埌 DOM 涓椂鈥︹�� + const { value } = binding; + const all_permission = '*:*:*'; + //瓒呯鏍囪瘑 + const permissions = store.getters && store.getters.permissions; + //浠巊etters涓彇鍑轰粠鎺ュ彛璇锋眰鍒扮殑鏉冮檺鏍囪瘑鏁扮粍 + if (value && value instanceof Array && value.length > 0) { + //value涓烘寚浠ょ殑缁戝畾鍊硷紝骞朵笖瑕佹眰鏄竴涓潪绌烘暟缁� + const permissionFlag = value; + + const hasPermissions = permissions.some((permission) => { + //some() 鏂规硶鐢ㄤ簬妫�娴嬫暟缁勪腑鐨勫厓绱犳槸鍚︽弧瓒虫寚瀹氭潯浠讹紙鍑芥暟鎻愪緵锛� + //濡傛灉鏄秴绠℃垨鑰呭叾浠栫鐞嗗憳鏈夊搴旂殑鏉冮檺鏍囪瘑 + return all_permission === permission || permissionFlag.includes(permission); + //妫�娴嬫暟缁� permissionFlag 鏄惁鍖呭惈 permission + }); + + if (!hasPermissions) { + el.parentNode && el.parentNode.removeChild(el); + //鍚﹀垯灏卞垹闄よ鑺傜偣锛屼綋鐜板湪椤甸潰涓婂氨鏄病鏈夋寜閽搴旂殑鏉冮檺鏍囪瘑灏变笉鏄剧ず璇ユ寜閽� + } + } else { + throw new Error(`璇疯缃搷浣滄潈闄愭爣绛惧�糮); + //椤甸潰涓婁娇鐢╲-hasPermi娌℃湁浼犲�肩殑鎯呭喌涓嬬粰鐨勬彁绀� + } + }, +}; diff --git a/project-web/src/directive/permission/hasRole.js b/project-web/src/directive/permission/hasRole.js new file mode 100644 index 0000000..8a10828 --- /dev/null +++ b/project-web/src/directive/permission/hasRole.js @@ -0,0 +1,24 @@ + +import store from '@/store'; + +export default { + inserted(el, binding, vnode) { + const { value } = binding; + const super_admin = 'ROLE_SUPERVISOR'; + const roles = store.state.user.name; + + if (value && value instanceof Array && value.length > 0) { + const roleFlag = value; + + const hasRole = roles.some((role) => { + return super_admin === role || roleFlag.includes(role); + }); + + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error(`璇疯缃鑹叉潈闄愭爣绛惧��"`); + } + }, +}; diff --git a/project-web/src/filters/commFilter.js b/project-web/src/filters/commFilter.js new file mode 100644 index 0000000..0e0a7e2 --- /dev/null +++ b/project-web/src/filters/commFilter.js @@ -0,0 +1,269 @@ + +import * as constants from '@/utils/constants.js'; +import { formatDates } from '@/utils/index'; + +// 鍏叡杩囨护鍣� +export function filterEmpty(val) { + let _result = '-'; + if (!val) { + return _result; + } + _result = val; + return _result; +} + +// 鏃堕棿杩囨护鍣� +export function formatDate(time) { + if (time !== 0) { + const date = new Date(time * 1000); + return formatDates(date, 'yyyy-MM-dd hh:mm'); + } +} + +export function filterYesOrNo(value) { + return value ? '鏄�' : '鍚�'; +} + +export function filterShowOrHide(value) { + return value ? '鏄剧ず' : '涓嶆樉绀�'; +} + +export function filterShowOrHideForFormConfig(value) { + return value === '鈥�0鈥�' ? '鏄剧ず' : '涓嶆樉绀�'; +} + +export function filterYesOrNoIs(value) { + return value ? '鍚�' : '鏄�'; +} + +export function filterCategroyType(value) { + return constants.categoryType.filter((item) => value === item.value)[0].name; +} + +export function filterConfigCategory(value) { + return constants.configCategory.filter((item) => value === item.value)[0].label; +} + +/** + * @description 鍏紬鍙峰洖澶嶇被鍨� + */ +export function keywordStatusFilter(status) { + const statusMap = { + text: '鏂囧瓧娑堟伅', + image: '鍥剧墖娑堟伅', + news: '鍥炬枃娑堟伅', + voice: '澹伴煶娑堟伅', + }; + return statusMap[status]; +} + +/** + * @description 浼樻儬鍒哥被鍨� + */ +export function couponUserTypeFilter(status) { + const statusMap = { + 1: '閫氱敤鍒�', + 2: '鍟嗗搧鍒�', + 3: '鍝佺被鍒�', + }; + return statusMap[status]; +} + +/** + * @description 浼樻儬鍒搁鍙栨柟寮� + */ +export function couponTypeFilter(status) { + const statusMap = { + 1: '鎵嬪姩棰嗗彇', + 2: '鏂颁汉鍒�', + 3: '璧犻�佸埜', + }; + return statusMap[status]; +} + +/** + * @description 鏂囩珷鍒嗙被 + */ +export function articleTypeFilter(status) { + if (!status) { + return ''; + } + let arrayList = JSON.parse(localStorage.getItem('articleClass')); + if (arrayList.filter((item) => Number(status) === Number(item.id)).length < 1) { + return ''; + } + return arrayList.filter((item) => Number(status) === Number(item.id))[0].name; +} + +/** + * @description 鏀粯鐘舵�� + */ +export function payStatusFilter(status) { + const statusMap = { + false: '鏈敮浠�', + true: '宸叉敮浠�', + }; + return statusMap[status]; +} + +/** + * @description 鎻愮幇鏂瑰紡 + */ +export function extractTypeFilter(status) { + const statusMap = { + bank: '閾惰鍗�', + alipay: '鏀粯瀹�', + weixin: '寰俊', + }; + return statusMap[status]; +} + +/** + * @description 鍏呭�肩被鍨� + */ +export function rechargeTypeFilter(status) { + const statusMap = { + public: '寰俊鍏紬鍙�', + weixinh5: '寰俊H5鏀粯', + routine: '灏忕▼搴�', + }; + return statusMap[status]; +} + +/** + * @description 璐㈠姟瀹℃牳鐘舵�� + */ +export function extractStatusFilter(status) { + const statusMap = { + '-1': '宸叉嫆缁�', + 0: '瀹℃牳涓�', + 1: '宸叉彁鐜�', + }; + return statusMap[status]; +} + +/** + * @description 鐮嶄环鐘舵�� + */ +export function bargainStatusFilter(status) { + const statusMap = { + 1: '杩涜涓�', + 2: '鏈畬鎴�', + 3: '宸叉垚鍔�', + }; + return statusMap[status]; +} + +/** + * @description 鐮嶄环鐘舵�� + */ +export function bargainColorFilter(status) { + const statusMap = { + 1: '', + 2: 'danger', + 3: 'success', + }; + return statusMap[status]; +} + +/** + * @description 鎷煎洟鐘舵�� + */ +export function groupStatusFilter(status) { + const statusMap = { + 1: '杩涜涓�', + 2: '宸叉垚鍔�', + 3: '鏈畬鎴�', + }; + return statusMap[status]; +} + +/** + * @description 鎷煎洟鐘舵�� + */ +export function groupColorFilter(status) { + const statusMap = { + 1: '', + 2: 'success', + 3: 'danger', + }; + return statusMap[status]; +} + +/** + * @description 涓�鍙烽�歵ab鍊� + */ +export function onePassTypeFilter(status) { + const statusMap = { + sms: '鐭俊', + copy: '鍟嗗搧閲囬泦', + expr_query: '鐗╂祦鏌ヨ', + expr_dump: '鐢靛瓙闈㈠崟鎵撳嵃', + }; + return statusMap[status]; +} + +/** + * @description 绉垎鐘舵�� + */ +export function integralStatusFilter(status) { + const statusMap = { + 1: '璁㈠崟鍒涘缓', + 2: '鍐荤粨鏈�', + 3: '瀹屾垚', + 4: '澶辨晥', + }; + return statusMap[status]; +} + +/** + * @description 鍏宠仈绫诲瀷 + */ +export function integralLinkTypeFilter(status) { + const statusMap = { + order: '璁㈠崟', + refund: '閫�娆�', + sign: '绛惧埌', + system: '绯荤粺鎿嶄綔', + }; + return statusMap[status]; +} + +/** + * @description 鍏宠仈id + */ +export function integralLinkIdFilter(status) { + const statusMap = { + orderNo: '璁㈠崟鍙�', + refundOrderNo: '閫�娆惧崟鍙�', + 0: '-', + }; + return statusMap[status]; +} + +/** + * @description 姘涘洿鍥俱�佹椿鍔ㄨ竟妗嗕娇鐢ㄨ寖鍥寸被鍨� + */ +export function activityMethodFilter(status) { + const statusMap = { + 0: '鍏ㄩ儴鍟嗗搧', + 1: '鎸囧畾鍟嗗搧', + 2: '鎸囧畾鍝佺墝', + 3: '鎸囧畾鍟嗗搧鍒嗙被', + 4: '鎸囧畾鍟嗘埛', + }; + return statusMap[status]; +} + +/** + * @description 绉掓潃鍟嗗搧娲诲姩鐘舵�� + * + */ +export function activityStatusFilter(status) { + const statusMap = { + 0: '鏈紑濮�', + 1: '杩涜涓�', + 2: '宸茬粨鏉�', + }; + return statusMap[status]; +} diff --git a/project-web/src/filters/finance.js b/project-web/src/filters/finance.js new file mode 100644 index 0000000..ccba6c5 --- /dev/null +++ b/project-web/src/filters/finance.js @@ -0,0 +1,33 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +//璐㈠姟杩囨护鍣� +/** + * 璧勯噾娴佹按 浜ゆ槗绫诲瀷 + */ +export function transactionTypeFilter(status) { + const statusMap = { + pay_order: '璁㈠崟鏀粯', + refund_order: '璁㈠崟閫�娆�', + }; + return statusMap[status]; +} + +/** + * 缁撶畻绫诲瀷 + */ +export function closingTypeFilter(status) { + const statusMap = { + bank: '閾惰鍗�', + wechat: '寰俊', + alipay: '鏀粯瀹�', + }; + return statusMap[status]; +} diff --git a/project-web/src/filters/index.js b/project-web/src/filters/index.js new file mode 100644 index 0000000..78342bc --- /dev/null +++ b/project-web/src/filters/index.js @@ -0,0 +1,75 @@ +// import parseTime, formatTime and set to filter +export { parseTime, formatTime } from '@/utils'; + +export * from '../filters/commFilter'; +export * from '../filters/user'; +export * from '../filters/order'; +export * from '../filters/wx'; +export * from '../filters/merchant'; +export * from '../filters/product'; +export * from '../filters/finance'; +/** + * Show plural label if time is plural number + * @param {number} time + * @param {string} label + * @return {string} + */ +function pluralize(time, label) { + if (time === 1) { + return time + label; + } + return time + label + 's'; +} + +/** + * @param {number} time + */ +export function timeAgo(time) { + const between = Date.now() / 1000 - Number(time); + if (between < 3600) { + return pluralize(~~(between / 60), ' minute'); + } else if (between < 86400) { + return pluralize(~~(between / 3600), ' hour'); + } else { + return pluralize(~~(between / 86400), ' day'); + } +} + +/** + * Number formatting + * like 10000 => 10k + * @param {number} num + * @param {number} digits + */ +export function numberFormatter(num, digits) { + const si = [ + { value: 1e18, symbol: 'E' }, + { value: 1e15, symbol: 'P' }, + { value: 1e12, symbol: 'T' }, + { value: 1e9, symbol: 'G' }, + { value: 1e6, symbol: 'M' }, + { value: 1e3, symbol: 'k' }, + ]; + for (let i = 0; i < si.length; i++) { + if (num >= si[i].value) { + return (num / si[i].value).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol; + } + } + return num.toString(); +} + +/** + * 10000 => "10,000" + * @param {number} num + */ +export function toThousandFilter(num) { + return (+num || 0).toString().replace(/^-?\d+/g, (m) => m.replace(/(?=(?!\b)(\d{3})+$)/g, ',')); +} + +/** + * Upper case first char + * @param {String} string + */ +export function uppercaseFirst(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} diff --git a/project-web/src/filters/merchant.js b/project-web/src/filters/merchant.js new file mode 100644 index 0000000..0744b55 --- /dev/null +++ b/project-web/src/filters/merchant.js @@ -0,0 +1,66 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +//鍟嗘埛杩囨护鍣� +import store from '@/store'; + +/** + * 鍟嗘埛鍒嗙被 + */ +export function merCategoryFilter(status) { + if (!status) { + return ''; + } + let arrayList = store.getters.merchantClassify; + let array = arrayList.filter((item) => status === item.id); + if (array.length) { + return array[0].name; + } else { + return ''; + } +} + +/** + * 鍟嗛摵绫诲瀷 + */ +export function merchantTypeFilter(status) { + if (!status) { + return ''; + } + let arrayList = store.getters.merchantType; + let array = arrayList.filter((item) => status === item.id); + if (array.length) { + return array[0].name; + } else { + return ''; + } +} + +/** + * 鍟嗘埛鍒涘缓绫诲瀷 + */ +export function merCreateTypeFilter(status) { + const statusMap = { + admin: '绠$悊鍛樺垱寤�', + apply: '鍟嗘埛鍏ラ┗鐢宠', + }; + return statusMap[status]; +} + +/** + * 鍟嗘埛绫诲埆 + */ +export function selfTypeFilter(status) { + const statusMap = { + true: '鑷惀', + false: '闈炶嚜钀�', + }; + return statusMap[status]; +} diff --git a/project-web/src/filters/order.js b/project-web/src/filters/order.js new file mode 100644 index 0000000..25193e2 --- /dev/null +++ b/project-web/src/filters/order.js @@ -0,0 +1,80 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +//璁㈠崟杩囨护鍣� + +/** + * @description 鏀粯鐘舵�� + */ +export function paidFilter(status) { + const statusMap = { + true: '宸叉敮浠�', + false: '鏈敮浠�', + }; + return statusMap[status]; +} + +/** + * @description 璁㈠崟鐘舵�� + * 2,宸叉敹璐э紝寰呰瘎浠� + */ +export function orderStatusFilter(status) { + const statusMap = { + 0: '寰呮敮浠�', + 1: '寰呭彂璐�', + 2: '閮ㄥ垎鏀惰揣', + 3: '寰呮牳閿�', + 4: '寰呮敹璐�', + 5: '宸叉敹璐�', + 6: '宸插畬鎴�', + 9: '宸插彇娑�', + }; + return statusMap[status]; +} + +/** + * @description 璁㈠崟涓殑閫�娆剧姸鎬� + * 2,宸叉敹璐э紝寰呰瘎浠� + */ +export function orderRefundStatusFilter(status) { + const statusMap = { + 0: '鏈��娆�', + 1: '鐢宠閫�娆句腑', + 2: '閮ㄥ垎閫�娆�', + 3: '宸查��娆�', + }; + return statusMap[status]; +} + +/** + * @description 閫�娆剧姸鎬� + * 2,宸叉敹璐э紝寰呰瘎浠� + */ +export function refundStatusFilter(status) { + const statusMap = { + 0: '寰呭鏍�', + 1: '鎷掔粷閫�娆�', + 2: '閫�娆句腑', + 3: '宸查��娆�', + }; + return statusMap[status]; +} + +/** + * @description 鏀粯鏂瑰紡 + */ +export function payTypeFilter(status) { + const statusMap = { + weixin: '寰俊', + alipay: '鏀粯瀹�', + yue: '浣欓', + }; + return statusMap[status]; +} diff --git a/project-web/src/filters/product.js b/project-web/src/filters/product.js new file mode 100644 index 0000000..a530f29 --- /dev/null +++ b/project-web/src/filters/product.js @@ -0,0 +1,77 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * 瀹℃牳鐘舵�� + */ +export function auditStatusFilter(status) { + const statusMap = { + 0: '鏃犻渶瀹℃牳', + 1: '寰呭鏍�', + 2: '瀹℃牳鎴愬姛', + 3: '瀹℃牳鎷掔粷', + }; + return statusMap[status]; +} + +/** + * @description 瑙嗛鍙疯崏绋垮晢鍝佸井淇″鏍哥姸鎬� + */ +export function editStatusFilter(status) { + const statusMap = { + '-1': '杩濊/椋庢帶绯荤粺涓�', + '-2': '骞冲彴涓嬫灦', + '-3': '鍟嗗涓嬫灦', + 1: '鏈鏍�', + 2: '瀹℃牳涓�', + 3: '瀹℃牳澶辫触', + 4: '瀹℃牳鎴愬姛', + }; + return statusMap[status]; +} + +/** + * @description 瑙嗛鍙疯崏绋垮晢鍝佸钩鍙板鏍哥姸鎬� + */ +export function platformStatusFilter(status) { + const statusMap = { + 1: '鏈鏍�', + 2: '瀹℃牳涓�', + 3: '瀹℃牳澶辫触', + 4: '瀹℃牳鎴愬姛', + }; + return statusMap[status]; +} + +/** + * @description 瑙嗛鍙锋寮忓晢鍝佺姸鎬� + */ +export function videoStatusFilter(status) { + const statusMap = { + 0: '鍒濆鍊�', + 5: '涓婃灦', + 11: '鑷富涓嬫灦', + 13: '杩濊涓嬫灦/椋庢帶绯荤粺涓嬫灦', + }; + return statusMap[status]; +} + +/** + * @description 瑙嗛鍙� 寰俊鍟嗗搧绫诲瀷璧勮川绫诲瀷 + */ +export function productQualificationTypeFilter(status) { + const statusMap = { + 0: '涓嶉渶瑕�', + 1: '蹇呭~', + 2: '閫夊~', + null: '鏃犺姹�', + }; + return statusMap[status]; +} diff --git a/project-web/src/filters/user.js b/project-web/src/filters/user.js new file mode 100644 index 0000000..1565d1a --- /dev/null +++ b/project-web/src/filters/user.js @@ -0,0 +1,49 @@ +//浼氬憳杩囨护鍣� + +/** + * 鐢ㄦ埛娉ㄥ唽绫诲瀷 + */ +export function registerTypeFilter(status) { + const statusMap = { + wechat: '鍏紬鍙�', + routine: '灏忕▼搴�', + h5: 'H5', + iosWx: '寰俊ios', + androidWx: '寰俊瀹夊崜', + ios: 'ios', + }; + return statusMap[status]; +} + +/** + * 鐢ㄦ埛绫诲瀷 + */ +export function filterIsPromoter(status) { + const statusMap = { + true: '鎺ㄥ箍鍛�', + false: '鏅�氱敤鎴�', + }; + return statusMap[status]; +} + +/** + * 鏍囩 + */ +export function tagFilter(status) { + if (!status) { + return '-'; + } + let arr = JSON.parse(localStorage.getItem('tagAllList')); + let obj = {}; + for (let i in arr) { + obj[arr[i].id] = arr[i]; + } + let strArr = status.split(','); + let newArr = []; + for (let item of strArr) { + if (obj[item]) { + newArr.push(obj[item].name); + } + } + return newArr.join(','); +} diff --git a/project-web/src/filters/wx.js b/project-web/src/filters/wx.js new file mode 100644 index 0000000..b3cfad8 --- /dev/null +++ b/project-web/src/filters/wx.js @@ -0,0 +1,39 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +//灏忕▼搴� 寰俊杩囨护鍣� +import Cookies from 'js-cookie'; +/** + * @description 灏忕▼搴忔墍灞炵被鐩� + */ +export function wxCategoryFilter(status) { + if (!status) { + return ''; + } + if (!Cookies.get('WxCategory')) { + return; + } + let arrayList = JSON.parse(Cookies.get('WxCategory')); + if (arrayList.filter((item) => Number(status) === Number(item.id)).length < 1) { + return ''; + } + return arrayList.filter((item) => Number(status) === Number(item.id))[0].name; +} + +/** + * @description 灏忕▼搴忔ā鏉跨被鍨� + */ +export function wxTypeFilter(status) { + const statusMap = { + 2: '涓�娆℃�ц闃�', + 3: '闀挎湡璁㈤槄', + }; + return statusMap[status]; +} diff --git a/project-web/src/icons/index.js b/project-web/src/icons/index.js new file mode 100644 index 0000000..f69cbfb --- /dev/null +++ b/project-web/src/icons/index.js @@ -0,0 +1,9 @@ +import Vue from 'vue'; +import SvgIcon from '@/components/SvgIcon'; // svg component + +// register globally +Vue.component('svg-icon', SvgIcon); + +const req = require.context('./svg', false, /\.svg$/); +const requireAll = (requireContext) => requireContext.keys().map(requireContext); +requireAll(req); diff --git a/project-web/src/icons/svg/404.svg b/project-web/src/icons/svg/404.svg new file mode 100644 index 0000000..6df5019 --- /dev/null +++ b/project-web/src/icons/svg/404.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/bug.svg b/project-web/src/icons/svg/bug.svg new file mode 100644 index 0000000..05a150d --- /dev/null +++ b/project-web/src/icons/svg/bug.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/chart.svg b/project-web/src/icons/svg/chart.svg new file mode 100644 index 0000000..27728fb --- /dev/null +++ b/project-web/src/icons/svg/chart.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/clipboard.svg b/project-web/src/icons/svg/clipboard.svg new file mode 100644 index 0000000..90923ff --- /dev/null +++ b/project-web/src/icons/svg/clipboard.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/component.svg b/project-web/src/icons/svg/component.svg new file mode 100644 index 0000000..207ada3 --- /dev/null +++ b/project-web/src/icons/svg/component.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h54.857v54.857H0V0zm0 73.143h54.857V128H0V73.143zm73.143 0H128V128H73.143V73.143zm27.428-18.286C115.72 54.857 128 42.577 128 27.43 128 12.28 115.72 0 100.571 0 85.423 0 73.143 12.28 73.143 27.429c0 15.148 12.28 27.428 27.428 27.428z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/dashboard.svg b/project-web/src/icons/svg/dashboard.svg new file mode 100644 index 0000000..5317d37 --- /dev/null +++ b/project-web/src/icons/svg/dashboard.svg @@ -0,0 +1 @@ +<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/documentation.svg b/project-web/src/icons/svg/documentation.svg new file mode 100644 index 0000000..7043122 --- /dev/null +++ b/project-web/src/icons/svg/documentation.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/drag.svg b/project-web/src/icons/svg/drag.svg new file mode 100644 index 0000000..4185d3c --- /dev/null +++ b/project-web/src/icons/svg/drag.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/edit.svg b/project-web/src/icons/svg/edit.svg new file mode 100644 index 0000000..d26101f --- /dev/null +++ b/project-web/src/icons/svg/edit.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/education.svg b/project-web/src/icons/svg/education.svg new file mode 100644 index 0000000..7bfb01d --- /dev/null +++ b/project-web/src/icons/svg/education.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/email.svg b/project-web/src/icons/svg/email.svg new file mode 100644 index 0000000..74d25e2 --- /dev/null +++ b/project-web/src/icons/svg/email.svg @@ -0,0 +1 @@ +<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/example.svg b/project-web/src/icons/svg/example.svg new file mode 100644 index 0000000..46f42b5 --- /dev/null +++ b/project-web/src/icons/svg/example.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/excel.svg b/project-web/src/icons/svg/excel.svg new file mode 100644 index 0000000..74d97b8 --- /dev/null +++ b/project-web/src/icons/svg/excel.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/exit-fullscreen.svg b/project-web/src/icons/svg/exit-fullscreen.svg new file mode 100644 index 0000000..485c128 --- /dev/null +++ b/project-web/src/icons/svg/exit-fullscreen.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/eye-open.svg b/project-web/src/icons/svg/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/project-web/src/icons/svg/eye-open.svg @@ -0,0 +1 @@ +<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M512 128q69.675 0 135.51 21.163t115.498 54.997 93.483 74.837 73.685 82.006 51.67 74.837 32.17 54.827L1024 512q-2.347 4.992-6.315 13.483T998.87 560.17t-31.658 51.669-44.331 59.99-56.832 64.34-69.504 60.16-82.347 51.5-94.848 34.687T512 896q-69.675 0-135.51-21.163t-115.498-54.826-93.483-74.326-73.685-81.493-51.67-74.496-32.17-54.997L0 513.707q2.347-4.992 6.315-13.483t18.816-34.816 31.658-51.84 44.331-60.33 56.832-64.683 69.504-60.331 82.347-51.84 94.848-34.816T512 128.085zm0 85.333q-46.677 0-91.648 12.331t-81.152 31.83-70.656 47.146-59.648 54.485-48.853 57.686-37.675 52.821-26.325 43.99q12.33 21.674 26.325 43.52t37.675 52.351 48.853 57.003 59.648 53.845T339.2 767.02t81.152 31.488T512 810.667t91.648-12.331 81.152-31.659 70.656-46.848 59.648-54.186 48.853-57.344 37.675-52.651T927.957 512q-12.33-21.675-26.325-43.648t-37.675-52.65-48.853-57.345-59.648-54.186-70.656-46.848-81.152-31.659T512 213.334zm0 128q70.656 0 120.661 50.006T682.667 512 632.66 632.661 512 682.667 391.339 632.66 341.333 512t50.006-120.661T512 341.333zm0 85.334q-35.328 0-60.33 25.002T426.666 512t25.002 60.33T512 597.334t60.33-25.002T597.334 512t-25.002-60.33T512 426.666z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/eye.svg b/project-web/src/icons/svg/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/project-web/src/icons/svg/eye.svg @@ -0,0 +1 @@ +<svg width="128" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M127.072 7.994c1.37-2.208.914-5.152-.914-6.87-2.056-1.717-4.797-1.226-6.396.982-.229.245-25.586 32.382-55.74 32.382-29.24 0-55.74-32.382-55.968-32.627-1.6-1.963-4.57-2.208-6.397-.49C-.17 3.086-.399 6.275 1.2 8.238c.457.736 5.94 7.36 14.62 14.72L4.17 35.96c-1.828 1.963-1.6 5.152.228 6.87.457.98 1.6 1.471 2.742 1.471s2.284-.49 3.198-1.472l12.564-13.983c5.94 4.416 13.021 8.587 20.788 11.53l-4.797 17.418c-.685 2.699.686 5.397 3.198 6.133h1.37c2.057 0 3.884-1.472 4.341-3.68L52.6 42.83c3.655.736 7.538 1.227 11.422 1.227 3.883 0 7.767-.49 11.422-1.227l4.797 17.173c.457 2.208 2.513 3.68 4.34 3.68.457 0 .914 0 1.143-.246 2.513-.736 3.883-3.434 3.198-6.133l-4.797-17.172c7.767-2.944 14.848-7.114 20.788-11.53l12.336 13.738c.913.981 2.056 1.472 3.198 1.472s2.284-.49 3.198-1.472c1.828-1.963 1.828-4.906.228-6.87l-11.65-13.001c9.366-7.36 14.849-14.474 14.849-14.474z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/form.svg b/project-web/src/icons/svg/form.svg new file mode 100644 index 0000000..dcbaa18 --- /dev/null +++ b/project-web/src/icons/svg/form.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.068 23.784c-1.02 0-1.877-.32-2.572-.96a8.588 8.588 0 0 1-1.738-2.237 11.524 11.524 0 0 1-1.042-2.621c-.232-.895-.348-1.641-.348-2.238V0h.278c.834 0 1.622.085 2.363.256.742.17 1.645.575 2.711 1.214 1.066.64 2.363 1.535 3.892 2.686 1.53 1.15 3.453 2.664 5.77 4.54 2.502 2.045 4.494 3.771 5.977 5.178 1.483 1.406 2.618 2.6 3.406 3.58.787.98 1.274 1.812 1.46 2.494.185.682.277 1.278.277 1.79v2.046H84.068zM127.3 84.01c.278.682.464 1.535.556 2.558.093 1.023-.37 2.003-1.39 2.94-.463.427-.88.832-1.25 1.215-.372.384-.696.704-.974.96a6.69 6.69 0 0 1-.973.767l-11.816-10.741a44.331 44.331 0 0 0 1.877-1.535 31.028 31.028 0 0 1 1.737-1.406c1.112-.938 2.317-1.343 3.615-1.215 1.297.128 2.363.405 3.197.83.927.427 1.923 1.173 2.989 2.239 1.065 1.065 1.876 2.195 2.432 3.388zM78.23 95.902c2.038 0 3.752-.511 5.143-1.534l-26.969 25.83H18.037c-1.761 0-3.684-.47-5.77-1.407a24.549 24.549 0 0 1-5.838-3.709 21.373 21.373 0 0 1-4.518-5.306c-1.204-2.003-1.807-4.07-1.807-6.202V16.495c0-1.79.44-3.665 1.32-5.626A18.41 18.41 0 0 1 5.04 5.562a21.798 21.798 0 0 1 5.213-3.964C12.198.533 14.237 0 16.37 0h53.24v15.984c0 1.62.278 3.367.834 5.242a16.704 16.704 0 0 0 2.572 5.179c1.159 1.577 2.665 2.898 4.518 3.964 1.853 1.066 4.078 1.598 6.673 1.598h20.295v42.325L85.458 92.45c1.02-1.364 1.529-2.856 1.529-4.476 0-2.216-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1c-2.409 0-4.448.789-6.116 2.366-1.668 1.577-2.502 3.474-2.502 5.69 0 2.217.834 4.092 2.502 5.626 1.668 1.535 3.707 2.302 6.117 2.302h52.13zM26.1 47.951c-2.41 0-4.449.789-6.117 2.366-1.668 1.577-2.502 3.473-2.502 5.69 0 2.216.834 4.092 2.502 5.626 1.668 1.534 3.707 2.302 6.117 2.302h52.13c2.409 0 4.47-.768 6.185-2.302 1.715-1.534 2.572-3.41 2.572-5.626 0-2.217-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1zm52.407 64.063l1.807-1.663 3.476-3.196a479.75 479.75 0 0 0 4.587-4.284 500.757 500.757 0 0 1 5.004-4.667c3.985-3.666 8.48-7.758 13.485-12.276l11.677 10.741-13.485 12.404-5.004 4.603-4.587 4.22a179.46 179.46 0 0 0-3.267 3.068c-.88.853-1.367 1.322-1.46 1.407-.463.341-.973.703-1.529 1.087-.556.383-1.112.703-1.668.959-.556.256-1.413.575-2.572.959a83.5 83.5 0 0 1-3.545 1.087 72.2 72.2 0 0 1-3.475.895c-1.112.256-1.946.426-2.502.511-1.112.17-1.854.043-2.224-.383-.371-.426-.464-1.151-.278-2.174.092-.511.278-1.279.556-2.302.278-1.023.602-2.067.973-3.132l1.042-3.005c.325-.938.58-1.577.765-1.918a10.157 10.157 0 0 1 2.224-2.941z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/fullscreen.svg b/project-web/src/icons/svg/fullscreen.svg new file mode 100644 index 0000000..0e86b6f --- /dev/null +++ b/project-web/src/icons/svg/fullscreen.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/guide.svg b/project-web/src/icons/svg/guide.svg new file mode 100644 index 0000000..b271001 --- /dev/null +++ b/project-web/src/icons/svg/guide.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.482 70.131l36.204 16.18 69.932-65.485-61.38 70.594 46.435 18.735c1.119.425 2.397-.17 2.797-1.363v-.085L127.998.047 1.322 65.874c-1.12.597-1.519 1.959-1.04 3.151.32.511.72.937 1.2 1.107zm44.676 57.821L64.22 107.26l-18.062-7.834v28.527z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/icon.svg b/project-web/src/icons/svg/icon.svg new file mode 100644 index 0000000..82be8ee --- /dev/null +++ b/project-web/src/icons/svg/icon.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 0 1 4.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 0 1 2.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/international.svg b/project-web/src/icons/svg/international.svg new file mode 100644 index 0000000..e9b56ee --- /dev/null +++ b/project-web/src/icons/svg/international.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M83.287 103.01c-1.57-3.84-6.778-10.414-15.447-19.548-2.327-2.444-2.182-4.306-1.338-9.862v-.64c.553-3.81 1.513-6.05 14.313-8.087 6.516-1.018 8.203 1.57 10.589 5.178l.785 1.193a12.625 12.625 0 0 0 6.43 5.207c1.134.524 2.53 1.164 4.421 2.24 4.596 2.53 4.596 5.41 4.596 11.753v.727a26.91 26.91 0 0 1-5.178 17.454 59.055 59.055 0 0 1-19.025 11.026c3.49-6.546.814-14.313 0-16.553l-.146-.087zM64 5.12a58.502 58.502 0 0 1 25.484 5.818 54.313 54.313 0 0 0-12.859 10.327c-.93 1.28-1.716 2.473-2.472 3.579-2.444 3.694-3.637 5.352-5.818 5.614a25.105 25.105 0 0 1-4.219 0c-4.276-.29-10.094-.64-11.956 4.422-1.193 3.23-1.396 11.956 2.444 16.495.66 1.077.778 2.4.32 3.578a7.01 7.01 0 0 1-2.066 3.229 18.938 18.938 0 0 1-2.909-2.91 18.91 18.91 0 0 0-8.32-6.603c-1.25-.349-2.647-.64-3.985-.93-3.782-.786-8.03-1.688-9.019-3.812a14.895 14.895 0 0 1-.727-5.818 21.935 21.935 0 0 0-1.396-9.25 8.873 8.873 0 0 0-5.557-4.946A58.705 58.705 0 0 1 64 5.12zM0 64c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/language.svg b/project-web/src/icons/svg/language.svg new file mode 100644 index 0000000..0082b57 --- /dev/null +++ b/project-web/src/icons/svg/language.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.742 36.8c2.398 7.2 5.595 12.8 11.19 18.4 4.795-4.8 7.992-11.2 10.39-18.4h-21.58zm-52.748 40h20.78l-10.39-28-10.39 28z"/><path d="M111.916 0H16.009C7.218 0 .025 7.2.025 16v96c0 8.8 7.193 16 15.984 16h95.907c8.791 0 15.984-7.2 15.984-16V16c0-8.8-6.394-16-15.984-16zM72.754 103.2c-1.598 1.6-3.197 1.6-4.795 1.6-.8 0-2.398 0-3.197-.8-.8-.8-1.599 0-1.599-.8s-.799-1.6-1.598-3.2c-.8-1.6-.8-2.4-1.599-4l-3.196-8.8H28.797L25.6 96c-1.598 3.2-2.398 5.6-3.197 7.2-.8 1.6-2.398 1.6-4.795 1.6-1.599 0-3.197-.8-4.796-1.6-1.598-1.6-2.397-2.4-2.397-4 0-.8 0-1.6.799-3.2.8-1.6.8-2.4 1.598-4l17.583-44.8c.8-1.6.8-3.2 1.599-4.8.799-1.6 1.598-3.2 2.397-4 .8-.8 1.599-2.4 3.197-3.2 1.599-.8 3.197-.8 4.796-.8 1.598 0 3.196 0 4.795.8 1.598.8 2.398 1.6 3.197 3.2.799.8 1.598 2.4 2.397 4 .8 1.6 1.599 3.2 2.398 5.6l17.583 44c1.598 3.2 2.398 5.6 2.398 7.2-.8.8-1.599 2.4-2.398 4zM116.711 72c-8.791-3.2-15.185-7.2-20.78-12-5.594 5.6-12.787 9.6-21.579 12l-2.397-4c8.791-2.4 15.984-5.6 21.579-11.2C87.939 51.2 83.144 44 81.545 36h-7.992v-3.2h21.58c-1.6-2.4-3.198-5.6-4.796-8l2.397-.8c1.599 2.4 3.997 5.6 5.595 8.8h19.98v4h-7.992c-2.397 8-6.393 15.2-11.189 20 5.595 4.8 11.988 8.8 20.78 11.2l-3.197 4z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/link.svg b/project-web/src/icons/svg/link.svg new file mode 100644 index 0000000..48197ba --- /dev/null +++ b/project-web/src/icons/svg/link.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.625 127.937H.063V12.375h57.781v12.374H12.438v90.813h90.813V70.156h12.374z"/><path d="M116.426 2.821l8.753 8.753-56.734 56.734-8.753-8.745z"/><path d="M127.893 37.982h-12.375V12.375H88.706V0h39.187z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/list.svg b/project-web/src/icons/svg/list.svg new file mode 100644 index 0000000..20259ed --- /dev/null +++ b/project-web/src/icons/svg/list.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.585 12.087c0 6.616 3.974 11.98 8.877 11.98 4.902 0 8.877-5.364 8.877-11.98 0-6.616-3.975-11.98-8.877-11.98-4.903 0-8.877 5.364-8.877 11.98zM125.86.107H35.613c-1.268 0-2.114 1.426-2.114 2.852v18.255c0 1.712 1.057 2.853 2.114 2.853h90.247c1.268 0 2.114-1.426 2.114-2.853V2.96c0-1.711-1.057-2.852-2.114-2.852zM.106 62.86c0 6.615 3.974 11.979 8.876 11.979 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zM124.17 50.88H33.921c-1.268 0-2.114 1.425-2.114 2.851v18.256c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852V53.73c0-1.426-.846-2.852-2.114-2.852zM.106 115.913c0 6.616 3.974 11.98 8.876 11.98 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zm124.064-11.98H33.921c-1.268 0-2.114 1.426-2.114 2.853v18.255c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852v-18.255c0-1.427-.846-2.853-2.114-2.853z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/lock.svg b/project-web/src/icons/svg/lock.svg new file mode 100644 index 0000000..74fee54 --- /dev/null +++ b/project-web/src/icons/svg/lock.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M119.88 49.674h-7.987V39.52C111.893 17.738 90.45.08 63.996.08 37.543.08 16.1 17.738 16.1 39.52v10.154H8.113c-4.408 0-7.987 2.94-7.987 6.577v65.13c0 3.637 3.57 6.577 7.987 6.577H119.88c4.407 0 7.987-2.94 7.987-6.577v-65.13c-.008-3.636-3.58-6.577-7.987-6.577zm-23.953 0H32.065V39.52c0-14.524 14.301-26.295 31.931-26.295 17.63 0 31.932 11.777 31.932 26.295v10.153z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/message.svg b/project-web/src/icons/svg/message.svg new file mode 100644 index 0000000..14ca817 --- /dev/null +++ b/project-web/src/icons/svg/message.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 20.967v59.59c0 11.59 8.537 20.966 19.075 20.966h28.613l1 26.477L76.8 101.523h32.125c10.538 0 19.075-9.377 19.075-20.966v-59.59C128 9.377 119.463 0 108.925 0h-89.85C8.538 0 0 9.377 0 20.967zm82.325 33.1c0-5.524 4.013-9.935 9.037-9.935 5.026 0 9.038 4.41 9.038 9.934 0 5.524-4.025 9.934-9.038 9.934-5.024 0-9.037-4.41-9.037-9.934zm-27.613 0c0-5.524 4.013-9.935 9.038-9.935s9.037 4.41 9.037 9.934c0 5.524-4.025 9.934-9.037 9.934-5.025 0-9.038-4.41-9.038-9.934zm-27.1 0c0-5.524 4.013-9.935 9.038-9.935s9.038 4.41 9.038 9.934c0 5.524-4.026 9.934-9.05 9.934-5.013 0-9.025-4.41-9.025-9.934z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/money.svg b/project-web/src/icons/svg/money.svg new file mode 100644 index 0000000..c1580de --- /dev/null +++ b/project-web/src/icons/svg/money.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.122 127.892v-28.68H7.513V87.274h46.609v-12.4H7.513v-12.86h38.003L.099 0h22.6l32.556 45.07c3.617 5.144 6.44 9.611 8.487 13.385 1.788-3.05 4.89-7.779 9.301-14.186L103.93 0h24.01L82.385 62.013h38.34v12.862h-46.41v12.4h46.41v11.937h-46.41v28.68H54.123z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/nested.svg b/project-web/src/icons/svg/nested.svg new file mode 100644 index 0000000..06713a8 --- /dev/null +++ b/project-web/src/icons/svg/nested.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M.002 9.2c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-5.043-3.58-9.132-7.997-9.132S.002 4.157.002 9.2zM31.997.066h95.981V18.33H31.997V.066zm0 45.669c0 5.044 3.58 9.132 7.998 9.132 4.417 0 7.997-4.088 7.997-9.132 0-3.263-1.524-6.278-3.998-7.91-2.475-1.63-5.524-1.63-7.998 0-2.475 1.632-4 4.647-4 7.91zM63.992 36.6h63.986v18.265H63.992V36.6zm-31.995 82.2c0 5.043 3.58 9.132 7.998 9.132 4.417 0 7.997-4.089 7.997-9.132 0-5.044-3.58-9.133-7.997-9.133s-7.998 4.089-7.998 9.133zm31.995-9.131h63.986v18.265H63.992V109.67zm0-27.404c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-3.263-1.524-6.277-3.998-7.909-2.475-1.631-5.524-1.631-7.998 0-2.475 1.632-4 4.646-4 7.91zm31.995-9.13h31.991V91.4H95.987V73.135z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/password.svg b/project-web/src/icons/svg/password.svg new file mode 100644 index 0000000..e291d85 --- /dev/null +++ b/project-web/src/icons/svg/password.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M108.8 44.322H89.6v-5.36c0-9.04-3.308-24.163-25.6-24.163-23.145 0-25.6 16.881-25.6 24.162v5.361H19.2v-5.36C19.2 15.281 36.798 0 64 0c27.202 0 44.8 15.281 44.8 38.961v5.361zm-32 39.356c0-5.44-5.763-9.832-12.8-9.832-7.037 0-12.8 4.392-12.8 9.832 0 3.682 2.567 6.808 6.407 8.477v11.205c0 2.718 2.875 4.962 6.4 4.962 3.524 0 6.4-2.244 6.4-4.962V92.155c3.833-1.669 6.393-4.795 6.393-8.477zM128 64v49.201c0 8.158-8.645 14.799-19.2 14.799H19.2C8.651 128 0 121.359 0 113.201V64c0-8.153 8.645-14.799 19.2-14.799h89.6c10.555 0 19.2 6.646 19.2 14.799z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/pdf.svg b/project-web/src/icons/svg/pdf.svg new file mode 100644 index 0000000..957aa0c --- /dev/null +++ b/project-web/src/icons/svg/pdf.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><path d="M869.073 277.307H657.111V65.344l211.962 211.963zm-238.232 26.27V65.344l-476.498-.054v416.957h714.73v-178.67H630.841zm-335.836 360.57c-5.07-3.064-10.944-5.133-17.61-6.201-6.67-1.064-13.603-1.6-20.81-1.6h-48.821v85.641h48.822c7.206 0 14.14-.532 20.81-1.6 6.665-1.065 12.54-3.133 17.609-6.202 5.064-3.063 9.134-7.406 12.208-13.007 3.065-5.602 4.6-12.937 4.6-22.011 0-9.07-1.535-16.408-4.6-22.01-3.074-5.603-7.144-9.94-12.208-13.01zM35.82 541.805v416.904h952.358V541.805H35.821zm331.421 191.179c-3.6 11.071-9.343 20.879-17.209 29.413-7.874 8.542-18.078 15.408-30.617 20.61-12.544 5.206-27.747 7.807-45.621 7.807h-66.036v102.45h-62.831V607.517h128.867c17.874 0 33.077 2.6 45.62 7.802 12.541 5.207 22.745 12.076 30.618 20.615 7.866 8.538 13.604 18.277 17.21 29.212 3.6 10.943 5.401 22.278 5.401 34.018 0 11.477-1.8 22.752-5.402 33.819zM644.9 806.417c-5.343 17.61-13.408 32.818-24.212 45.627-10.807 12.803-24.283 22.879-40.423 30.213-16.146 7.343-35.155 11.007-57.03 11.007h-123.26V607.518h123.26c18.41 0 35.552 2.941 51.428 8.808 15.873 5.869 29.618 14.671 41.22 26.412 11.608 11.744 20.674 26.411 27.217 44.02 6.535 17.61 9.803 38.288 9.803 62.035 0 20.81-2.67 40.02-8.003 57.624zm245.362-146.07h-138.07v66.03h119.66v48.829h-119.66v118.058h-62.83V607.518h200.9v52.829h-.001zm-318.2 25.611c-6.402-8.266-14.877-14.604-25.412-19.01-10.544-4.402-23.551-6.602-39.019-6.602h-44.825v180.088h56.029c9.07 0 17.872-1.463 26.415-4.401 8.535-2.932 16.14-7.802 22.812-14.609 6.665-6.8 12.007-15.667 16.007-26.61 4.003-10.94 6.003-24.275 6.003-40.021 0-14.408-1.4-27.416-4.202-39.019-2.8-11.607-7.406-21.542-13.808-29.816zm0 0"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/people.svg b/project-web/src/icons/svg/people.svg new file mode 100644 index 0000000..2bd54ae --- /dev/null +++ b/project-web/src/icons/svg/people.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M104.185 95.254c8.161 7.574 13.145 17.441 13.145 28.28 0 1.508-.098 2.998-.285 4.466h-10.784c.238-1.465.403-2.948.403-4.465 0-8.983-4.36-17.115-11.419-23.216C86 104.66 75.355 107.162 64 107.162c-11.344 0-21.98-2.495-31.22-6.83-7.064 6.099-11.444 14.218-11.444 23.203 0 1.517.165 3 .403 4.465H10.955a35.444 35.444 0 0 1-.285-4.465c0-10.838 4.974-20.713 13.127-28.291C9.294 85.42.003 70.417.003 53.58.003 23.99 28.656.001 64 .001s63.997 23.988 63.997 53.58c0 16.842-9.299 31.85-23.812 41.673zM64 36.867c-29.454 0-53.33-10.077-53.33 15.342 0 25.418 23.876 46.023 53.33 46.023 29.454 0 53.33-20.605 53.33-46.023 0-25.419-23.876-15.342-53.33-15.342zm24.888 25.644c-3.927 0-7.111-2.665-7.111-5.953 0-3.288 3.184-5.954 7.11-5.954 3.928 0 7.111 2.666 7.111 5.954s-3.183 5.953-7.11 5.953zm-3.556 16.372c0 4.11-9.55 7.442-21.332 7.442-11.781 0-21.332-3.332-21.332-7.442 0-1.06.656-2.064 1.8-2.976 3.295 2.626 10.79 4.465 19.532 4.465 8.743 0 16.237-1.84 19.531-4.465 1.145.912 1.801 1.916 1.801 2.976zm-46.22-16.372c-3.927 0-7.11-2.665-7.11-5.953 0-3.288 3.183-5.954 7.11-5.954 3.927 0 7.111 2.666 7.111 5.954s-3.184 5.953-7.11 5.953z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/peoples.svg b/project-web/src/icons/svg/peoples.svg new file mode 100644 index 0000000..aab852e --- /dev/null +++ b/project-web/src/icons/svg/peoples.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M95.648 118.762c0 5.035-3.563 9.121-7.979 9.121H7.98c-4.416 0-7.979-4.086-7.979-9.121C0 100.519 15.408 83.47 31.152 76.75c-9.099-6.43-15.216-17.863-15.216-30.987v-9.128c0-20.16 14.293-36.518 31.893-36.518s31.894 16.358 31.894 36.518v9.122c0 13.137-6.123 24.556-15.216 30.993 15.738 6.726 31.141 23.769 31.141 42.012z"/><path d="M106.032 118.252h15.867c3.376 0 6.101-3.125 6.101-6.972 0-13.957-11.787-26.984-23.819-32.123 6.955-4.919 11.638-13.66 11.638-23.704v-6.985c0-15.416-10.928-27.926-24.39-27.926-1.674 0-3.306.193-4.89.561 1.936 4.713 3.018 9.974 3.018 15.526v9.121c0 13.137-3.056 23.111-11.066 30.993 14.842 4.41 27.312 23.42 27.541 41.509z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/qq.svg b/project-web/src/icons/svg/qq.svg new file mode 100644 index 0000000..ee13d4e --- /dev/null +++ b/project-web/src/icons/svg/qq.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M18.448 57.545l-.244-.744-.198-.968-.132-.53v-2.181l.236-.859.24-.908.317-.953.428-1.06.561-1.103.794-1.104v-.773l.077-.724.123-.984.34-1.106.313-1.194.25-.548.289-.511.371-.569.405-.423v-2.73l.234-1.407.236-1.633.42-1.955.577-2.035.43-1.118.426-1.217.468-1.135.559-1.216.57-1.332.655-1.247.737-1.331.929-1.33.43-.762.457-.624.995-1.406 1.025-1.403 1.163-1.444 1.246-1.405 1.352-1.384 1.41-1.423 1.708-1.536 1.083-.934 1.322-1.008 1.34-.89 1.448-.855 1.392-.76 1.57-.63 1.667-.775 1.657-.532 1.653-.552 1.787-.548 1.785-.417 1.876-.347L59.128.68l1.879-.245 1.876-.252 2.002-.106h5.912l1.97.243 1.981.231 2.019.207 1.874.441 1.979.413 1.857.475 2.035.53 1.862.646 1.782.738 1.904.78 1.736.853 1.689.95 1.655 1.044 1.425.971.662.548.693.401 1.323 1.1 1.115 1.064 1.112 1.1 1.083 1.214.894 1.178 1.064 1.217.74 1.306.752 1.162.798 1.352.661 1.175 1.113 2.489.546 1.286.428 1.192.428 1.294.384 1.217.267 1.047.347 1.231.607 2.198.388 1.924.253 1.861.217 1.497.342 2.28.077.362.274.41.737 1.18.473.8.42.832.534.892.472 1.07.307 1.093.334 1.2.252 1.232.115.605.106.746v.648l-.106.643v.8l-.192.774-.35 1.5-.403.76-.299.852v.213l.142.264.4.623 1.746 2.53 1.377 1.9.66 1.267.889 1.389.774 1.52.893 1.627.894 1.828 1.006 2.069.567 1.268.518 1.239.447 1.307.44 1.175.336 1.235.342 1.16.432 2.261.343 2.31.235 2.05v2.891l-.158 1.025-.226 1.768-.308 1.59-.48 1.44-.18.588-.336.707-.28.493-.375.607-.33.383-.42.494-.375.4-.401.34-.48.207-.432.207-.355.114h-.543l-.346-.114-.66-.32-.302-.212-.317-.223-.347-.304-.35-.342-.579-.63-.684-.89-.539-.917-.538-.734-.526-.855-.741-1.517-.833-1.579-.098-.055h-.138l-.338.247-.196.415-.326.516-.567 1.533-.856 2.182-1.096 2.626-.824 1.308-.864 1.366-1.027 1.536-1.09 1.503-.557.68-.676.743-1.555 1.497.136.135.21.214.777.446 3.235 1.524 1.41.779 1.347.756 1.332.953 1.187.982.574.443.432.511.445.593.367.643.198.533.242.64.105.554.115.647-.115.433v.44l-.105.454-.242.415-.092.325-.22.394-.587.784-.543.627-.42.47-.35.348-.893.638-1.01.556-1.077.532-1.155.511-1.287.495-.693.207-.608.167-1.496.342-1.545.325-1.552.323-1.689.27-1.74.072-1.785.21h-5.539l-1.998-.114-1.86-.168-2.005-.27-1.99-.209-2.095-.286-2.03-.495-1.981-.374-1.968-.552-2.019-.707-1.98-.585-1.044-.342-.927-.323-.586-.223-.582-.12h-1.647l-1.904-.131-.962-.096-1.24-.135-.795.705-1.085.665-1.471.701-1.628.875-.99.475-1.033.376-2.281.914-1.24.305-1.3.343-1.803.344-1.13.086-1.193.1-1.246.135-1.45.053h-5.926l-3.346-.053-3.25-.321-1.644-.23-1.589-.23-1.546-.227-1.547-.305-1.442-.456-1.434-.325-1.294-.51-1.223-.474-1.142-.533-.99-.583-.984-.71-.336-.343-.44-.415-.334-.362-.3-.417-.278-.415-.215-.42-.311-.89-.109-.46-.138-.51v-.473l.138-.533v-.53l.109-.53v-1.069l.052-.564.259-.647.215-.646.39-.779.286-.3.236-.348.615-.738.49-.38.464-.266.428-.338.676-.21.543-.324.676-.341.77-.227.775-.231.897-.192.85-.11 1.008-.13 1.093-.081.284-.092h.063l.137-.115v-.13l-.2-.266-.58-.27-1.45-1.231-.975-.761-1.127-.967-1.136-1.082-1.181-1.382-1.36-1.558-.508-.843-.672-.87-.58-1.007-.522-1.1-.704-1.047-.459-1.194-.547-1.192-.546-1.33-.397-1.273-.378-1.575-.112-.057h-.115l-.059-.113h-.14l-.23.113-.114.057-.158.264-.057.321-.119.286-.206.477-.664 1.157-.345.701-.546.612-.58.736-.641.816-.677.724-.795.701-.734.658-.814.524-.89.546-.855.325-1.008.247-.99.095h-.233l-.228-.095-.18-.384-.29-.188-.38-.912-.237-.493-.255-.707-.21-.734-.113-.724-.313-1.648-.12-.972v-3.185l.12-2.379.196-1.214.23-1.252.21-1.347.374-1.254.42-1.443.431-1.407.578-1.448.545-1.38.754-1.4.699-1.52.855-1.425 1.006-1.538 1.023-1.382 1.069-1.538.891-1.071 1.142-1.227 1.202-1.237.56-.59.678-.662.985-.836 1.012-.853 1.647-1.446 1.242-.889z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/search.svg b/project-web/src/icons/svg/search.svg new file mode 100644 index 0000000..84233dd --- /dev/null +++ b/project-web/src/icons/svg/search.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M124.884 109.812L94.256 79.166c-.357-.357-.757-.629-1.129-.914a50.366 50.366 0 0 0 8.186-27.59C101.327 22.689 78.656 0 50.67 0 22.685 0 0 22.688 0 50.663c0 27.989 22.685 50.663 50.656 50.663 10.186 0 19.643-3.03 27.6-8.201.286.385.557.771.9 1.114l30.628 30.632a10.633 10.633 0 0 0 7.543 3.129c2.728 0 5.457-1.043 7.543-3.115 4.171-4.157 4.171-10.915.014-15.073M50.671 85.338C31.557 85.338 16 69.78 16 50.663c0-19.102 15.557-34.661 34.67-34.661 19.115 0 34.657 15.559 34.657 34.675 0 19.102-15.557 34.661-34.656 34.661"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/shopping.svg b/project-web/src/icons/svg/shopping.svg new file mode 100644 index 0000000..87513e7 --- /dev/null +++ b/project-web/src/icons/svg/shopping.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M42.913 101.36c1.642 0 3.198.332 4.667.996a12.28 12.28 0 0 1 3.89 2.772c1.123 1.184 1.987 2.582 2.592 4.193.605 1.612.908 3.318.908 5.118 0 1.8-.303 3.507-.908 5.118-.605 1.611-1.469 3.01-2.593 4.194a13.3 13.3 0 0 1-3.889 2.843 10.582 10.582 0 0 1-4.667 1.066c-1.729 0-3.306-.355-4.732-1.066a13.604 13.604 0 0 1-3.825-2.843c-1.123-1.185-1.988-2.583-2.593-4.194a14.437 14.437 0 0 1-.907-5.118c0-1.8.302-3.506.907-5.118.605-1.61 1.47-3.009 2.593-4.193a12.515 12.515 0 0 1 3.825-2.772c1.426-.664 3.003-.996 4.732-.996zm53.932.285c1.643 0 3.22.331 4.733.995a11.386 11.386 0 0 1 3.889 2.772c1.08 1.185 1.945 2.583 2.593 4.194.648 1.61.972 3.317.972 5.118 0 1.8-.324 3.506-.972 5.117-.648 1.611-1.513 3.01-2.593 4.194a12.253 12.253 0 0 1-3.89 2.843 11 11 0 0 1-4.732 1.066 10.58 10.58 0 0 1-4.667-1.066 12.478 12.478 0 0 1-3.824-2.843c-1.08-1.185-1.945-2.583-2.593-4.194a13.581 13.581 0 0 1-.973-5.117c0-1.801.325-3.507.973-5.118.648-1.611 1.512-3.01 2.593-4.194a11.559 11.559 0 0 1 3.824-2.772 11.212 11.212 0 0 1 4.667-.995zm21.781-80.747c2.42 0 4.3.355 5.64 1.066 1.34.71 2.29 1.587 2.852 2.63a6.427 6.427 0 0 1 .778 3.34c-.044 1.185-.195 2.204-.454 3.057-.26.853-.8 2.606-1.62 5.26a589.268 589.268 0 0 1-2.788 8.743 1236.373 1236.373 0 0 0-3.047 9.453c-.994 3.128-1.75 5.592-2.269 7.393-1.123 3.79-2.55 6.42-4.278 7.89-1.728 1.469-3.846 2.203-6.352 2.203H39.023l1.945 12.795h65.342c4.148 0 6.223 1.943 6.223 5.828 0 1.896-.41 3.53-1.232 4.905-.821 1.374-2.442 2.061-4.862 2.061H38.505c-1.729 0-3.176-.426-4.343-1.28-1.167-.852-2.14-1.966-2.917-3.34a21.277 21.277 0 0 1-1.88-4.478 44.128 44.128 0 0 1-1.102-4.55c-.087-.568-.324-1.942-.713-4.122-.39-2.18-.865-4.904-1.426-8.174l-1.88-10.947c-.692-4.027-1.383-8.079-2.075-12.154-1.642-9.572-3.5-20.234-5.574-31.986H6.87c-1.296 0-2.377-.356-3.24-1.067a9.024 9.024 0 0 1-2.14-2.558 10.416 10.416 0 0 1-1.167-3.2C.108 8.53 0 7.488 0 6.54c0-1.896.583-3.46 1.75-4.69C2.917.615 4.494 0 6.482 0h13.095c1.728 0 3.111.284 4.148.853 1.037.569 1.858 1.28 2.463 2.132a8.548 8.548 0 0 1 1.297 2.701c.26.948.475 1.754.648 2.417.173.758.346 1.825.519 3.199.173 1.374.345 2.772.518 4.193.26 1.706.519 3.507.778 5.403h88.678z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/size.svg b/project-web/src/icons/svg/size.svg new file mode 100644 index 0000000..ddb25b8 --- /dev/null +++ b/project-web/src/icons/svg/size.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h54.796v18.286H36.531V128H18.265V73.143H0V54.857zm127.857-36.571H91.935V128H72.456V18.286H36.534V0h91.326l-.003 18.286z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/skill.svg b/project-web/src/icons/svg/skill.svg new file mode 100644 index 0000000..a3b7312 --- /dev/null +++ b/project-web/src/icons/svg/skill.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M31.652 93.206h33.401c1.44 2.418 3.077 4.663 4.93 6.692h-38.33v-6.692zm0-10.586h28.914a44.8 44.8 0 0 1-1.264-6.688h-27.65v6.688zm0-17.27H59.39c.288-2.286.714-4.532 1.34-6.687H31.65v6.687h.003zm53.913 44.84v5.85c0 2.798-2.095 5.075-4.667 5.075h-70.07c-2.576 0-4.663-2.277-4.663-5.075V31.26l23.22-20.96v22.25H17.16v6.688h18.39V6.688h45.348c2.576 0 4.667 2.277 4.667 5.066v20.009c1.987-.675 4.053-1.128 6.17-1.445v-18.56C91.738 5.28 86.874 0 80.902 0H31.15L0 28.118v87.917c0 6.48 4.859 11.759 10.832 11.759h70.07c5.974 0 10.837-5.27 10.837-11.759v-4.41c-2.117-.312-4.183-.765-6.17-1.435h-.004zM23.279 58.667h-7.96v6.688h7.96v-6.688zm-7.956 41.23h7.96v-6.691h-7.96v6.692zm7.956-23.96h-7.96v6.687h7.96v-6.688zm89.718-15.042l-4.896-4.07-12.447 17.613-11.19-9.305-3.762 5.311 16.091 13.38 16.204-22.929zM128 70.978c0-18.632-13.97-33.782-31.147-33.782-17.168 0-31.135 15.155-31.135 33.782 0 18.628 13.97 33.783 31.135 33.783 17.172 0 31.143-15.15 31.143-33.783H128zm-6.17 0c0 14.933-11.203 27.1-24.981 27.1-13.77 0-24.987-12.158-24.987-27.1 0-14.941 11.195-27.099 24.987-27.099 13.778 0 24.982 12.158 24.982 27.1z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/star.svg b/project-web/src/icons/svg/star.svg new file mode 100644 index 0000000..6cf86e6 --- /dev/null +++ b/project-web/src/icons/svg/star.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M70.66 4.328l14.01 29.693c1.088 2.29 3.177 3.882 5.603 4.25l31.347 4.76c6.087.926 8.528 8.756 4.117 13.247L103.05 79.395c-1.75 1.78-2.544 4.352-2.132 6.867l5.352 32.641c1.043 6.337-5.33 11.182-10.778 8.19l-28.039-15.409a7.13 7.13 0 0 0-6.91 0l-28.039 15.41c-5.448 2.99-11.821-1.854-10.777-8.19l5.352-32.642c.415-2.515-.387-5.088-2.136-6.867L2.264 56.278C-2.146 51.787.286 43.957 6.38 43.031l31.343-4.76c2.419-.368 4.51-1.96 5.595-4.25L57.334 4.328c2.728-5.77 10.605-5.77 13.325 0z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/tab.svg b/project-web/src/icons/svg/tab.svg new file mode 100644 index 0000000..b4b48e4 --- /dev/null +++ b/project-web/src/icons/svg/tab.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.921.052H49.08c-1.865 0-3.198 1.599-3.198 3.464v6.661c0 1.865 1.6 3.464 3.198 3.464h29.84c1.865 0 3.198-1.599 3.198-3.464V3.516C82.385 1.65 80.786.052 78.92.052zm45.563 0H94.642c-1.865 0-3.464 1.599-3.464 3.464v6.661c0 1.865 1.599 3.464 3.464 3.464h29.842c1.865-.266 3.464-1.599 3.464-3.464V3.516c0-1.865-1.599-3.464-3.464-3.464zm0 22.382H40.02c-1.866 0-3.464-1.599-3.464-3.464V3.516c0-1.865-1.599-3.464-3.464-3.464H3.516C1.65.052.052 1.651.052 3.516V124.75c0 1.598 1.599 3.197 3.464 3.197h120.968c1.865 0 3.464-1.599 3.464-3.464V25.898c0-1.865-1.599-3.464-3.464-3.464z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/table.svg b/project-web/src/icons/svg/table.svg new file mode 100644 index 0000000..0e3dc9d --- /dev/null +++ b/project-web/src/icons/svg/table.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M.006.064h127.988v31.104H.006V.064zm0 38.016h38.396v41.472H.006V38.08zm0 48.384h38.396v41.472H.006V86.464zM44.802 38.08h38.396v41.472H44.802V38.08zm0 48.384h38.396v41.472H44.802V86.464zM89.598 38.08h38.396v41.472H89.598zm0 48.384h38.396v41.472H89.598z"/><path d="M.006.064h127.988v31.104H.006V.064zm0 38.016h38.396v41.472H.006V38.08zm0 48.384h38.396v41.472H.006V86.464zM44.802 38.08h38.396v41.472H44.802V38.08zm0 48.384h38.396v41.472H44.802V86.464zM89.598 38.08h38.396v41.472H89.598zm0 48.384h38.396v41.472H89.598z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/theme.svg b/project-web/src/icons/svg/theme.svg new file mode 100644 index 0000000..5982a2f --- /dev/null +++ b/project-web/src/icons/svg/theme.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M125.5 36.984L95.336 2.83C93.735 1.018 91.565 0 89.3 0c-2.263 0-4.433 1.018-6.033 2.83l-3.786 4.286c-1.6 1.812-3.77 2.83-6.032 2.831H54.553c-2.263 0-4.434-1.018-6.033-2.83L44.734 2.83C43.134 1.018 40.964 0 38.701 0c-2.263 0-4.434 1.018-6.034 2.83L2.5 36.984C.9 38.796 0 41.254 0 43.815c0 2.562.899 5.02 2.5 6.831L14.565 64.31c2.178 2.468 5.367 3.403 8.33 2.444 1.35-.435 2.709.592 2.709 2.18v49.407c0 5.313 3.84 9.66 8.532 9.66h59.726c4.693 0 8.532-4.347 8.532-9.66V68.934c0-1.59 1.36-2.616 2.71-2.181 2.962.96 6.15.024 8.329-2.444L125.5 50.646c1.6-1.811 2.499-4.269 2.499-6.83 0-2.563-.899-5.02-2.5-6.832z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/tree-table.svg b/project-web/src/icons/svg/tree-table.svg new file mode 100644 index 0000000..8aafdb8 --- /dev/null +++ b/project-web/src/icons/svg/tree-table.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M44.8 0h79.543C126.78 0 128 1.422 128 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H44.8c-2.438 0-3.657-1.422-3.657-4.267V4.267C41.143 1.422 42.362 0 44.8 0zm22.857 48h56.686c2.438 0 3.657 1.422 3.657 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H67.657C65.22 80 64 78.578 64 75.733V52.267C64 49.422 65.219 48 67.657 48zm0 48h56.686c2.438 0 3.657 1.422 3.657 4.267v23.466c0 2.845-1.219 4.267-3.657 4.267H67.657C65.22 128 64 126.578 64 123.733v-23.466C64 97.422 65.219 96 67.657 96zM50.286 68.267c2.02 0 3.657-1.91 3.657-4.267 0-2.356-1.638-4.267-3.657-4.267H17.37V32h6.4c2.02 0 3.658-1.91 3.658-4.267V4.267C27.429 1.91 25.79 0 23.77 0H3.657C1.637 0 0 1.91 0 4.267v23.466C0 30.09 1.637 32 3.657 32h6.4v80c0 2.356 1.638 4.267 3.657 4.267h36.572c2.02 0 3.657-1.91 3.657-4.267 0-2.356-1.638-4.267-3.657-4.267H17.37V68.267h32.915z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/tree.svg b/project-web/src/icons/svg/tree.svg new file mode 100644 index 0000000..dd4b7dd --- /dev/null +++ b/project-web/src/icons/svg/tree.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M126.713 90.023c.858.985 1.287 2.134 1.287 3.447v29.553c0 1.423-.429 2.6-1.287 3.53-.858.93-1.907 1.395-3.146 1.395H97.824c-1.145 0-2.146-.465-3.004-1.395-.858-.93-1.287-2.107-1.287-3.53V93.47c0-.875.19-1.696.572-2.462.382-.766.906-1.368 1.573-1.806a3.84 3.84 0 0 1 2.146-.657h9.725V69.007a3.84 3.84 0 0 0-.43-1.806 3.569 3.569 0 0 0-1.143-1.313 2.714 2.714 0 0 0-1.573-.492h-36.47v23.149h9.725c1.144 0 2.145.492 3.004 1.478.858.985 1.287 2.134 1.287 3.447v29.553c0 .876-.191 1.696-.573 2.463-.38.766-.905 1.368-1.573 1.806a3.84 3.84 0 0 1-2.145.656H51.915a3.84 3.84 0 0 1-2.145-.656c-.668-.438-1.216-1.04-1.645-1.806a4.96 4.96 0 0 1-.644-2.463V93.47c0-1.313.43-2.462 1.288-3.447.858-.986 1.907-1.478 3.146-1.478h9.582v-23.15h-37.9c-.953 0-1.74.356-2.359 1.068-.62.711-.93 1.56-.93 2.544v19.538h9.726c1.239 0 2.264.492 3.074 1.478.81.985 1.216 2.134 1.216 3.447v29.553c0 1.423-.405 2.6-1.216 3.53-.81.93-1.835 1.395-3.074 1.395H4.29c-.476 0-.93-.082-1.358-.246a4.1 4.1 0 0 1-1.144-.657 4.658 4.658 0 0 1-.93-1.067 5.186 5.186 0 0 1-.643-1.395 5.566 5.566 0 0 1-.215-1.56V93.47c0-.437.048-.875.143-1.313a3.95 3.95 0 0 1 .429-1.15c.19-.328.429-.656.715-.984.286-.329.572-.602.858-.821.286-.22.62-.383 1.001-.493.382-.11.763-.164 1.144-.164h9.726V61.619c0-.985.31-1.833.93-2.544.619-.712 1.358-1.068 2.216-1.068h44.335V39.62h-9.582c-1.24 0-2.288-.492-3.146-1.477a5.09 5.09 0 0 1-1.287-3.448V5.14c0-1.423.429-2.627 1.287-3.612.858-.985 1.907-1.477 3.146-1.477h25.743c.763 0 1.478.246 2.145.739a5.17 5.17 0 0 1 1.573 1.888c.382.766.573 1.587.573 2.462v29.553c0 1.313-.43 2.463-1.287 3.448-.859.985-1.86 1.477-3.004 1.477h-9.725v18.389h42.762c.954 0 1.74.355 2.36 1.067.62.711.93 1.56.93 2.545v26.925h9.582c1.239 0 2.288.492 3.146 1.478z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/user.svg b/project-web/src/icons/svg/user.svg new file mode 100644 index 0000000..0ba0716 --- /dev/null +++ b/project-web/src/icons/svg/user.svg @@ -0,0 +1 @@ +<svg width="130" height="130" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/wechat.svg b/project-web/src/icons/svg/wechat.svg new file mode 100644 index 0000000..c586e55 --- /dev/null +++ b/project-web/src/icons/svg/wechat.svg @@ -0,0 +1 @@ +<svg width="128" height="110" xmlns="http://www.w3.org/2000/svg"><path d="M86.635 33.334c1.467 0 2.917.113 4.358.283C87.078 14.392 67.58.111 45.321.111 20.44.111.055 17.987.055 40.687c0 13.104 6.781 23.863 18.115 32.209l-4.527 14.352 15.82-8.364c5.666 1.182 10.207 2.395 15.858 2.395 1.42 0 2.829-.073 4.227-.189-.886-3.19-1.398-6.53-1.398-9.996 0-20.845 16.98-37.76 38.485-37.76zm-24.34-12.936c3.407 0 5.665 2.363 5.665 5.954 0 3.576-2.258 5.97-5.666 5.97-3.392 0-6.795-2.395-6.795-5.97 0-3.591 3.403-5.954 6.795-5.954zM30.616 32.323c-3.393 0-6.818-2.395-6.818-5.971 0-3.591 3.425-5.954 6.818-5.954 3.392 0 5.65 2.363 5.65 5.954 0 3.576-2.258 5.97-5.65 5.97z"/><path d="M127.945 70.52c0-19.075-18.108-34.623-38.448-34.623-21.537 0-38.5 15.548-38.5 34.623 0 19.108 16.963 34.622 38.5 34.622 4.508 0 9.058-1.2 13.584-2.395l12.414 7.167-3.404-11.923c9.087-7.184 15.854-16.712 15.854-27.471zm-50.928-5.97c-2.254 0-4.53-2.362-4.53-4.773 0-2.378 2.276-4.771 4.53-4.771 3.422 0 5.665 2.393 5.665 4.771 0 2.41-2.243 4.773-5.665 4.773zm24.897 0c-2.24 0-4.498-2.362-4.498-4.773 0-2.378 2.258-4.771 4.498-4.771 3.392 0 5.665 2.393 5.665 4.771 0 2.41-2.273 4.773-5.665 4.773z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svg/zip.svg b/project-web/src/icons/svg/zip.svg new file mode 100644 index 0000000..f806fc4 --- /dev/null +++ b/project-web/src/icons/svg/zip.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.527 116.793c.178.008.348.024.527.024h40.233c4.711-.005 8.53-3.677 8.534-8.21V18.895c-.004-4.532-3.823-8.204-8.534-8.209H79.054c-.179 0-.353.016-.527.024V0L0 10.082v107.406l78.527 10.342v-11.037zm0-101.362c.174-.024.348-.052.527-.052h40.233c2.018 0 3.659 1.578 3.659 3.52v89.713c-.003 1.942-1.64 3.517-3.659 3.519H79.054c-.179 0-.353-.028-.527-.052V15.431zM30.262 75.757l-18.721-.46V72.37l11.3-16.673v-.148l-10.266.164v-4.51l17.504-.44v3.264L18.696 70.76v.144l11.566.176v4.678zm9.419.231l-5.823-.144V50.671l5.823-.144v25.461zm22.255-11.632c-2.168 1.922-5.353 2.76-9.02 2.736-.702.004-1.402-.04-2.097-.131v9.303l-5.997-.148V50.743c1.852-.352 4.473-.647 8.218-.743 3.838-.096 6.608.539 8.48 1.913 1.807 1.306 3.032 3.5 3.032 6.112s-.926 4.833-2.612 6.331h-.004zM53.36 54.45c-.856-.01-1.71.083-2.541.275v7.682c.523.116 1.167.152 2.06.152 3.301-.004 5.36-1.614 5.36-4.314 0-2.425-1.772-3.843-4.875-3.791l-.004-.004zm39.847-37.066h9.564v3.795h-9.564v-3.795zm-9.568 5.68h9.564v3.8h-9.564v-3.8zm9.568 6.216h9.564v3.799h-9.564V29.28zm0 12h9.564v3.794h-9.564V41.28zm-9.568-6.096h9.564v3.795h-9.564v-3.795zm9.472 47.064c2.512 0 4.921-.96 6.697-2.67 1.776-1.708 2.773-4.026 2.772-6.442l-1.748-15.263c0-5.033-2.492-9.112-7.725-9.112-5.232 0-7.72 4.079-7.72 9.112l-1.752 15.263c-.001 2.417.996 4.735 2.773 6.444 1.777 1.71 4.187 2.669 6.7 2.668h.003zm-3.135-16.75h6.27v12.743h-6.27V65.5z"/></svg> \ No newline at end of file diff --git a/project-web/src/icons/svgo.yml b/project-web/src/icons/svgo.yml new file mode 100644 index 0000000..541b4bb --- /dev/null +++ b/project-web/src/icons/svgo.yml @@ -0,0 +1,21 @@ +# replace default config + +# multipass: true +# full: true + +plugins: + # - name + # + # or: + # - name: false + # - name: true + # + # or: + # - name: + # param1: 1 + # param2: 2 + + - removeAttrs: + attrs: + - 'fill' + - 'fill-rule' diff --git a/project-web/src/layout/components/AppMain.vue b/project-web/src/layout/components/AppMain.vue new file mode 100644 index 0000000..3ff485b --- /dev/null +++ b/project-web/src/layout/components/AppMain.vue @@ -0,0 +1,50 @@ +<template> + <section class="app-main"> + <transition name="fade-transform" mode="out-in"> + <keep-alive :include="cachedViews"> + <router-view :key="key" /> + </keep-alive> + </transition> + </section> +</template> + +<script> +export default { + name: 'AppMain', + data() { + return {}; + }, + computed: { + cachedViews() { + return this.$store.state.tagsView.cachedViews; + }, + key() { + return this.$route.path; + }, + }, +}; +</script> + +<style lang="scss" scoped> +.app-main { + /* 50= navbar 50 */ + height: calc(100vh - 130px); + width: 100%; + position: relative; + overflow-x: hidden; + overflow-y: auto; + background: #f5f5f5; +} + + +.hasTagsView { + .fixed-header + .app-main { + //padding-top: 80px; + } +} +.el-popup-parent--hidden { + .fixed-header { + padding-right: 15px; + } +} +</style> diff --git a/project-web/src/layout/components/Navbar.vue b/project-web/src/layout/components/Navbar.vue new file mode 100644 index 0000000..052dffb --- /dev/null +++ b/project-web/src/layout/components/Navbar.vue @@ -0,0 +1,340 @@ +<template> + <div class="navbar navbar-yw"> + <div style="display: flex;align-items: center"> + <img class="logo" src="@/assets/images/logo.png" alt=""/> + <img class="logo-txt" src="@/assets/images/top-title.png" alt=""/> + </div> + <div class="right-menu"> + <div class="menu-item" @click="dataV"> + <img class="icon" src="@/assets/images/icon-datav.png" alt="鏁版嵁鐪嬫澘" title="鏁版嵁鐪嬫澘"> + </div> + <div class="user"> + <img class="avatar" :src="userInfo&&userInfo.avatar?ftpUrl+userInfo.avatar:require('@/assets/images/40b2.jpeg')" alt=""> + <div> + <el-dropdown> + <div class="user-name">{{ name }}<i class="el-icon-arrow-down"/></div> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item> + <div @click="$router.push('/userInfo')">涓汉淇℃伅</div> + </el-dropdown-item> + <!-- <el-dropdown-item>淇敼瀵嗙爜</el-dropdown-item>--> + <el-dropdown-item> + <div @click="logout">閫�鍑�</div> + </el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <div v-if="userInfo && userInfo.userName" class="user-role">{{ userInfo.userName }}</div> + </div> + </div> + </div> + </div> +</template> + +<script> +import {mapGetters} from 'vuex' +import {getDownUrl} from "@/utils/base"; +export default { + data() { + return { + ftpUrl: getDownUrl(), + userName: '鏈煡', + } + }, + computed: { + ...mapGetters([ + 'userInfo', + 'sidebar', + 'name', + 'avatar', + 'device', + 'dir' + ]) + }, + methods: { + openNotification(){ + this.$emit('openNotification') + }, + logout() { + this.$confirm('纭畾閫�鍑�?', '', { + confirmButtonText: '纭畾', + cancelButtonText: '杩斿洖', + type: 'warning' + }).then(() => { + this.$store.dispatch('user/logout').then(() => { + location.reload() + }) + }).catch(() => { + }) + }, + dataV() { + // window.open("https://datav.aliyuncs.com/share/87597dbd720965d4a2e901d683a0805c"); + const {href} = this.$router.resolve({ + path: '/dataV' + }) + window.open(href, '_blank') + }, + } +} +</script> + +<style lang="scss" scoped> +.navbar-yw{ + background-image: url("~@/assets/images/top-bg.png"); + background-size: auto 70px; + background-position: right center; + background-color: #203d6d; +} +.navbar { + height: 70px; + position: relative; + box-shadow: 0 1px 4px rgba(0, 21, 41, .08); + color: #fff; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 40px; + z-index: 100; + .logo{ + width: 39px; + height: 39px; + margin-right: 10px; + } + .logo-txt { + width: 352px; + height: 43px; + } + .phone-call { + margin-left: 50px; + width: 325px; + height: 44px; + border-radius: 30px; + background-color: #fff; + display: flex; + align-items: center; + transition: all 0.3s; + + &-left { + cursor: pointer; + flex-shrink: 0; + width: 73px; + height: 36px; + border-right: 1px solid #eee; + text-align: center; + line-height: 36px; + font-size: 14px; + color: #000; + } + + &-right { + flex-shrink: 0; + width: 251px; + display: flex; + align-items: center; + justify-content: flex-end; + position: relative; + &-phone { + font-size: 14px; + color: #000; + margin-bottom: 5px; + } + + &-tip { + font-size: 12px; + color: #999; + } + + &-btn { + cursor: pointer; + margin-left: 10px; + margin-right: 4px; + width: 67px; + height: 38px; + border-radius: 26px; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + + img { + width: 32px; + height: 32px; + } + } + } + } + + .phone-red { + background-color: #f3595a; + } + + .phone-green { + background-color: #67C23A; + } + .phone-normal{ + background-color: #dbdbdb; + } + .phone { + -webkit-animation: vibrate 2s cubic-bezier(.36, .07, .19, .97) infinite; + animation: vibrate 2s cubic-bezier(.36, .07, .19, .97) infinite; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 300px; + perspective: 300px; + } + + @keyframes vibrate { + 0%, 2%, 4%, 6%, 8%, 10%, 12%, 14%, 16%, 18% { + -webkit-transform: translate3d(-3px, 0, 0); + transform: translate3d(-3px, 0, 0); + } + 1%, 3%, 5%, 7%, 9%, 11%, 13%, 15%, 17%, 19% { + -webkit-transform: translate3d(3px, 0, 0); + transform: translate3d(3px, 0, 0); + } + 20%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + } + + .connect { + display: flex; + align-items: center; + margin-left: 10px; + position: relative; + } + // 杞帴娴獥 + + .right-menu { + display: flex; + align-items: center; + } + + .menu-item { + cursor: pointer; + width: 32px; + height: 32px; + position: relative; + margin:0 15px; + } + + .user { + margin-left: 24px; + display: flex; + align-items: center; + .avatar { + width: 44px; + height: 44px; + border-radius: 50%; + margin-right: 10px; + } + + .user-name { + cursor: pointer; + color: #FFFFFF; + font-size: 14px; + } + + .user-role { + margin-top: 4px; + font-size: 12px; + color: rgba(255, 255, 255, 0.8); + } + } +} + +.ewm-show:hover .ewm-box { + display: block; +} + +.ewm-box { + display: none; + position: absolute; + bottom: -110px; + left: 50%; + margin-left: -50px; + z-index: 100001; +} + +.ewm-f-box { + position: relative; + background-color: #FFFFFF; +} + +.ewm-f-box::after { + position: absolute; + left: 50%; + top: -8px; + margin-left: -5px; + display: block; + content: ''; + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid #fff; +} + +.navbar .menu-item .ewm-img { + width: 100px; +} +// 鎷ㄦ墦鐢佃瘽寮圭獥 +.phone-hover{ + width: 300px; + position: absolute; + left:60%; + top: 50px; + background-color: #FFFFFF; + border-radius: 4px; + padding:12px; + box-shadow: 0 0 8px 2px rgba(0,0,0,0.3); + z-index: 101; +} +// 杞帴 +.zj-hover{ + left:0; +} +.zj-list{ + min-height: 300px; + max-height: 300px; + overflow-y: scroll; +} +.zj-list::-webkit-scrollbar, { + width: 4px; +} + +.zj-list::-webkit-scrollbar-thumb, { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} +.zj-item{ + padding:16px; + border-bottom: 1px solid #f5f5f5; +} +.zj-item:hover{ + background-color: #f5f5f5; + cursor: pointer; +} +.color-11A{ + color:#11AD6F; +} +.color-F35{ + color:#F3595A; +} +.com-head{ + width: 38px; + height: 38px; + margin-right: 5px; +} +.icon-zj{ + width: 22px; + height: 22px; +} +>>> .el-form--label-top .el-form-item__label{ + padding:0!important; +} +.m-b-5{ + margin-bottom: 5px; +} +</style> diff --git a/project-web/src/layout/components/Settings/index.vue b/project-web/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..e2ee981 --- /dev/null +++ b/project-web/src/layout/components/Settings/index.vue @@ -0,0 +1,284 @@ +<template> + <div class="drawer-container"> + <div> + <h3 class="drawer-title">涓婚椋庢牸璁剧疆</h3> + <div class="setting-drawer-block-checbox"> + <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-dark')"> + <img src="@/assets/imgs/dark.svg" alt="dark" /> + <div v-if="sideTheme === 'theme-dark'" class="setting-drawer-block-checbox-selectIcon" style="display: block"> + <i aria-label="鍥炬爣: check" class="anticon anticon-check"> + <svg + viewBox="64 64 896 896" + data-icon="check" + width="1em" + height="1em" + :fill="theme" + aria-hidden="true" + focusable="false" + class="" + > + <path + d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" + /> + </svg> + </i> + </div> + </div> + <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-light')"> + <img src="@/assets/imgs/light.svg" alt="light" /> + <div + v-if="sideTheme === 'theme-light'" + class="setting-drawer-block-checbox-selectIcon" + style="display: block" + > + <i aria-label="鍥炬爣: check" class="anticon anticon-check"> + <svg + viewBox="64 64 896 896" + data-icon="check" + width="1em" + height="1em" + :fill="theme" + aria-hidden="true" + focusable="false" + class="" + > + <path + d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" + /> + </svg> + </i> + </div> + </div> + </div> + <el-divider /> + <div class="drawer-item"> + <span>涓婚棰滆壊</span> + <theme-picker style="float: right; height: 26px; margin: -3px 8px 0 0" @change="themeChange" /> + </div> + + <div class="drawer-item"> + <span>寮�鍚� TopNav</span> + <el-switch v-model="topNav" class="drawer-switch" /> + </div> + + <div class="drawer-item" v-if="topNav"> + <span>寮�鍚� Icon</span> + <el-switch v-model="navIcon" class="drawer-switch" /> + </div> + + <div class="drawer-item"> + <span>寮�鍚� Tags-Views</span> + <el-switch v-model="tagsView" class="drawer-switch" /> + </div> + + <div class="drawer-item"> + <span>鍥哄畾 Header</span> + <el-switch v-model="fixedHeader" class="drawer-switch" /> + </div> + + <div class="drawer-item"> + <span>鏄剧ず Logo</span> + <el-switch v-model="sidebarLogo" class="drawer-switch" /> + </div> + + <el-divider /> + <el-button size="small" type="primary" plain icon="el-icon-document-add" @click="saveSetting">淇濆瓨閰嶇疆</el-button> + <el-button size="small" plain icon="el-icon-refresh" @click="resetSetting">閲嶇疆閰嶇疆</el-button> + </div> + </div> +</template> + +<script> +import ThemePicker from '@/components/ThemePicker'; + +export default { + components: { ThemePicker }, + data() { + return { + sideTheme: this.$store.state.settings.sideTheme, + routers: this.$store.state.permission.routes, + }; + }, + computed: { + theme: { + get() { + return this.$store.state.settings.theme; + }, + }, + fixedHeader: { + get() { + return this.$store.state.settings.fixedHeader; + }, + set(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'fixedHeader', + value: val, + }); + }, + }, + topNav: { + get() { + //鍥炶皟鍑芥暟 褰撻渶瑕佽鍙栧綋鍓嶅睘鎬у�兼槸鎵ц锛屾牴鎹浉鍏虫暟鎹绠楀苟杩斿洖褰撳墠灞炴�х殑鍊� + return this.$store.state.settings.topNav; + }, + set(val) { + //鐩戣褰撳墠灞炴�у�肩殑鍙樺寲锛屽綋灞炴�у�煎彂鐢熷彉鍖栨椂鎵ц锛屾洿鏂扮浉鍏崇殑灞炴�ф暟鎹� + //val灏辨槸topNav鐨勬渶鏂板睘鎬у�� + this.$store.dispatch('settings/changeSetting', { + key: 'topNav', + value: val, + }); + if (val) { + let key = this.$route.path.split('/')[1]; + //閫氳繃鎴彇褰撳墠璺敱鐨勭涓�绾х洰褰曡窡椤堕儴涓�绾ц彍鍗曢�変腑椤圭殑val鍊煎仛鍖归厤 + key = '/' + key; + this.routers.map((item) => { + if (key == item.url && item.child.length > 0) { + //濡傛灉鍖归厤锛屽氨缁欎晶杈瑰鑸祴鍊间负閫変腑椤圭殑瀛愮骇鏁扮粍 + this.$store.commit('permission/SET_SIDEBAR_ROUTERS', item.child); + } else if (key == item.url && !item.child.length) { + //濡傛灉閬嶅巻浠ュ悗val鍊肩瓑浜巌tem鐨剈rl锛屼絾鏄湁娌℃湁瀛愮骇锛屽氨鎶婂畠瀛愮骇璧嬪�肩粰渚ц竟瀵艰埅鐨勬暟缁勶紝杩欓噷閽堝dashboard鎺у埗鍙� + this.$store.commit('permission/SET_SIDEBAR_ROUTERS', [item]); + } + }); + } + if (!val) { + //鍏抽棴鐨勬椂鍊欎晶杈瑰鑸殑鍙栧�艰繕鏄彇榛樿鐨剅outes鏁扮粍 + this.$store.commit('permission/SET_SIDEBAR_ROUTERS', this.$store.state.permission.routes); + } + }, + }, + navIcon: { + get() { + return this.$store.state.settings.navIcon; + }, + set(val) { + this.$store.dispatch('settings/changeSetting', { + //dispatch锛氬惈鏈夊紓姝ユ搷浣滐紝渚嬪鍚戝悗鍙版彁浜ゆ暟鎹紝鍐欐硶锛� this.$store.dispatch('action鏂规硶鍚�',鍊�) + //commit锛氬悓姝ユ搷浣滐紝鍐欐硶锛歵his.$store.commit('mutations鏂规硶鍚�',鍊�) + key: 'navIcon', + value: val, + }); + }, + }, + tagsView: { + get() { + return this.$store.state.settings.tagsView; + }, + set(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'tagsView', + value: val, + }); + }, + }, + sidebarLogo: { + get() { + return this.$store.state.settings.sidebarLogo; + }, + set(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'sidebarLogo', + value: val, + }); + }, + }, + }, + methods: { + themeChange(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'theme', + value: val, + }); + }, + handleTheme(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'sideTheme', + value: val, + }); + this.sideTheme = val; + }, + saveSetting() { + this.$modal.loading('姝e湪淇濆瓨鍒版湰鍦帮紝璇风◢鍊�...'); + //灏嗚缃啓鍏ョ紦瀛� + this.$cache.local.setJSON('layout-setting', { + topNav: this.topNav, + tagsView: this.tagsView, + fixedHeader: this.fixedHeader, + sidebarLogo: this.sidebarLogo, + dynamicTitle: this.dynamicTitle, + sideTheme: this.sideTheme, + theme: this.theme, + navIcon: this.navIcon, + }); + setTimeout(this.$modal.closeLoading(), 1000); + }, + resetSetting() { + this.$modal.loading('姝e湪娓呴櫎璁剧疆缂撳瓨骞跺埛鏂帮紝璇风◢鍊�...'); + this.$cache.local.remove('layout-setting'); + setTimeout('window.location.reload()', 1000); + }, + }, +}; +</script> + +<style lang="scss" scoped> +::v-deep .el-switch { + width: 40px; +} +.drawer-container { + padding: 24px; + font-size: 14px; + line-height: 1.5; + word-wrap: break-word; + + .drawer-title { + margin-bottom: 12px; + color: rgba(0, 0, 0, 0.85); + font-size: 14px; + line-height: 22px; + } + + .drawer-item { + color: rgba(0, 0, 0, 0.65); + font-size: 14px; + padding: 12px 0; + } + + .drawer-switch { + float: right; + } + .setting-drawer-block-checbox { + display: flex; + justify-content: flex-start; + align-items: center; + margin-top: 10px; + margin-bottom: 20px; + + .setting-drawer-block-checbox-item { + position: relative; + margin-right: 16px; + border-radius: 2px; + cursor: pointer; + + img { + width: 48px; + height: 48px; + } + + .setting-drawer-block-checbox-selectIcon { + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + padding-top: 15px; + padding-left: 24px; + color: #1890ff; + font-weight: 700; + font-size: 14px; + } + } + } +} +</style> diff --git a/project-web/src/layout/components/Sidebar/FixiOSBug.js b/project-web/src/layout/components/Sidebar/FixiOSBug.js new file mode 100644 index 0000000..a50c9fa --- /dev/null +++ b/project-web/src/layout/components/Sidebar/FixiOSBug.js @@ -0,0 +1,36 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +export default { + computed: { + device() { + return this.$store.state.app.device; + }, + }, + mounted() { + // In order to fix the click on menu on the ios device will trigger the mouseleave bug + // https://github.com/PanJiaChen/vue-element-admin/issues/1135 + this.fixBugIniOS(); + }, + methods: { + fixBugIniOS() { + const $subMenu = this.$refs.subMenu; + if ($subMenu) { + const handleMouseleave = $subMenu.handleMouseleave; + $subMenu.handleMouseleave = (e) => { + if (this.device === 'mobile') { + return; + } + handleMouseleave(e); + }; + } + }, + }, +}; diff --git a/project-web/src/layout/components/Sidebar/Item.vue b/project-web/src/layout/components/Sidebar/Item.vue new file mode 100644 index 0000000..c0dee5a --- /dev/null +++ b/project-web/src/layout/components/Sidebar/Item.vue @@ -0,0 +1,32 @@ +<script> + +export default { + name: 'MenuItem', + functional: true, + props: { + icon: { + type: String, + default: '', + }, + title: { + type: String, + default: '', + }, + }, + render(h, context) { + const { icon, title } = context.props; + const vnodes = []; + + if (icon) { + const ic = 'el-icon-' + icon; + //class={ic} + // vnodes.push(<i style="color:#ffffff;" />); + } + + if (title) { + vnodes.push(<span slot="title">{title}</span>); + } + return vnodes; + }, +}; +</script> diff --git a/project-web/src/layout/components/Sidebar/Link.vue b/project-web/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..20f8ab3 --- /dev/null +++ b/project-web/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,35 @@ +<template> + <!-- eslint-disable vue/require-component-is --> + <component v-bind="linkProps(to)"> + <slot /> + </component> +</template> + +<script> +import { isExternal } from '@/utils/validate'; + +export default { + props: { + to: { + type: String, + required: true, + }, + }, + methods: { + linkProps(url) { + if (isExternal(url)) { + return { + is: 'a', + href: url, + target: '_blank', + rel: 'noopener', + }; + } + return { + is: 'router-link', + to: url, + }; + }, + }, +}; +</script> diff --git a/project-web/src/layout/components/Sidebar/Logo.vue b/project-web/src/layout/components/Sidebar/Logo.vue new file mode 100644 index 0000000..acadf5d --- /dev/null +++ b/project-web/src/layout/components/Sidebar/Logo.vue @@ -0,0 +1,103 @@ +<template> + <div class="sidebar-logo-container" :class="{ collapse: collapse }"> + <transition name="sidebarLogoFade"> + <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> + <img v-if="logoSmall" :src="logoSmall" class="sidebar-logo-small" /> + </router-link> + <router-link v-else key="expand" class="sidebar-logo-link" to="/"> + <img v-if="logo" :src="logo" class="sidebar-logo-big" /> + </router-link> + </transition> + </div> +</template> + +<script> +import logoImg from '@/assets/imgs/logo.png'; + +export default { + name: 'SidebarLogo', + props: { + collapse: { + type: Boolean, + required: true, + }, + }, + data() { + return { + title: 'Vue Element Admin', + logo: logoImg, + logoSmall: '', + }; + }, + mounted() { + // this.getLogo(); + // this.getSquareLogo(); + }, + methods: { + // getLogo() { + // systemConfigApi.configGetUniq({ key: 'site_logo_lefttop' }).then((data) => { + // this.logo = data; + // }); + // }, + // getSquareLogo() { + // systemConfigApi.configGetUniq({ key: 'site_logo_square' }).then((data) => { + // this.logoSmall = data; + // }); + // }, + }, +}; +</script> + +<style lang="scss" scoped> +.sidebarLogoFade-enter-active { + transition: opacity 1.5s; +} +.sidebar-logo-big { + width: auto; + height: 40px; + vertical-align: middle; + margin-right: 12px; +} +.sidebarLogoFade-enter, +.sidebarLogoFade-leave-to { + opacity: 0; +} + +.sidebar-logo-container { + position: relative; + width: 100%; + height: 55px; + line-height: 55px; + text-align: center; + overflow: hidden; + background: #fff; + + & .sidebar-logo-link { + height: 100%; + width: 100%; + + & .sidebar-logo-small { + width: 35px; + height: 35px; + vertical-align: middle; + } + + & .sidebar-title { + display: inline-block; + margin: 0; + color: #fff; + font-weight: 600; + line-height: 50px; + font-size: 14px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + vertical-align: middle; + } + } + + &.collapse { + .sidebar-logo { + margin-right: 0px; + } + } +} +</style> diff --git a/project-web/src/layout/components/Sidebar/SidebarItem.vue b/project-web/src/layout/components/Sidebar/SidebarItem.vue new file mode 100644 index 0000000..b5b8a95 --- /dev/null +++ b/project-web/src/layout/components/Sidebar/SidebarItem.vue @@ -0,0 +1,171 @@ +<template> + <div v-if="!item.hidden"> + <template + v-if=" + hasOneShowingChild(item.childList, item) && + (!onlyOneChild.childList || onlyOneChild.noShowingChildren) && + !item.alwaysShow + " + > + <router-link v-if="onlyOneChild" :to="onlyOneChild.component"> + <el-menu-item :index="resolvePath(onlyOneChild.component)" :class="{ 'submenu-title-noDropdown': !isNest }"> +<!-- <span v-if="activeMenu===resolvePath(onlyOneChild.component)" class="cur-icon"><span class="dot"/></span> + <span v-else class="cur-empty"/>--> + <item :icon="onlyOneChild.extra || (item.meta && item.extra)" :title="onlyOneChild.name"/> + </el-menu-item> + </router-link> + </template> + <el-submenu v-else ref="subMenu" :index="resolvePath(item.component)" popper-append-to-body> + <template slot="title"> + <item v-if="item" :icon="item && item.icon" :title="item.name"/> + </template> + <sidebar-item + v-for="(childs, i) in item.childList" + :key="i" + :is-nest="true" + :item="childs" + :base-path="resolvePath(childs.component)" + class="nest-menu" + /> + </el-submenu> + </div> +</template> + +<script> +import path from 'path'; +import {isExternal} from '@/utils/validate'; +import Item from './Item'; +import AppLink from './Link'; +import FixiOSBug from './FixiOSBug'; + +export default { + name: 'SidebarItem', + components: {Item, AppLink}, + mixins: [FixiOSBug], + props: { + // route object + item: { + type: Object, + required: true, + }, + isNest: { + type: Boolean, + default: false, + }, + basePath: { + type: String, + default: '', + }, + }, + data() { + // To fix https://github.com/PanJiaChen/vue-admin-template/issues/237 + // TODO: refactor with render function + this.onlyOneChild = null; + return {}; + }, + // mounted(){ + // console.log('kkkk',this.item) + // }, + mounted() { + }, + computed: { + activeMenu() { + const route = this.$route + const {meta, path} = route + // if set path, the sidebar will highlight the path you set + if (meta.activeMenu) { + return meta.activeMenu + } + return path + } + }, + methods: { + hasOneShowingChild(childList = [], parent) { + const showingChildren = childList.filter((item) => { + if (item.hidden) { + return false; + } else { + // Temp set(will be used if only has one showing childList) + this.onlyOneChild = item; + return true; + } + }); + + // When there is only one childList router, the childList router is displayed by default + if (showingChildren.length === 1) { + return true; + } + + // Show parent if there are no childList router to display + if (showingChildren.length === 0) { + this.onlyOneChild = {...parent, path: '', noShowingChildren: true}; + return true; + } + + return false; + }, + resolvePath(routePath) { + // console.log(this.item); + // console.log("............" + routePath); + if (isExternal(routePath)) { + return routePath; + } + if (isExternal(this.basePath)) { + return this.basePath; + } + // console.log(this.basePath, routePath) + return path.resolve(this.basePath, routePath); + }, + }, +}; +</script> +<style lang="scss" scoped> +> > > .el-submenu__title { + height: 35px; + line-height: 35px; +} + +> > > .is-opened .el-submenu__title { + background-color: #ECF2FF; + color: #0d997c; + + i { + color: #0d997c + } +} +/* +> > > .el-menu-item { + padding-left: 5px !important; +}*/ + +> > > .el-menu-item:hover, .el-menu-item:focus { + background: #fff; + color: #0d997c; +} + +.cur-icon { + display: inline-block; + width: 10px; + height: 10px; + border-radius: 5px; + border: 1px solid #0d997c; + position: relative; + + .dot { + position: absolute; + top: 2px; + left: 2px; + display: inline-block; + width: 4px; + height: 4px; + border-radius: 2px; + background-color: #0d997c; + } +} + +.cur-empty { + display: inline-block; + width: 10px; + height: 10px; +} +</style> diff --git a/project-web/src/layout/components/Sidebar/index.vue b/project-web/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..d6414d6 --- /dev/null +++ b/project-web/src/layout/components/Sidebar/index.vue @@ -0,0 +1,265 @@ +<template> + <div + :class="{ 'has-logo': showLogo }" + :style="{ + backgroundColor: settings.sideTheme === 'theme-light' ? variables.menuLightBackground : variables.menuBackground, + }" + > +<!-- <logo v-if="showLogo" :collapse="isCollapse" />--> + <el-aside class="my-aside" :style="{backgroundColor: (!openAside||routes.length&&rootRoute&&rootRoute.meta)?'#f6f8fc':'#fff'}"> + <el-scrollbar style="position: relative" wrap-class="scrollbar-wrapper"> + <template v-for="route in routes"> + <div + v-if="!route.hidden" + :key="route.id" + class="root-route" + :class="{act:actId===route.id}" + @click="routeClick(route)" + > + <i class="route-icon" :class="route.meta && route.meta.icon" /> + <div class="root-route-title">{{ route.meta ? route.meta.title : '' }}</div> + </div> + </template> + </el-scrollbar> + </el-aside> + <div v-if="routes.length&&rootRoute&&rootRoute.meta" style="position: relative"> + <div :class="openAside?'aside-box':'aside-box-close'"> + <el-aside width="172px;" style="border-right: 1px solid #EEEEEE"> + <el-scrollbar wrap-class="scrollbar-wrapper"> + <div class="menu-title">{{ rootRoute.meta.title }}</div> + <el-menu + :default-active="activeMenu" + :collapse="false" + :background-color="variables.menuBg" + :text-color="variables.menuText" + :unique-opened="true" + :active-text-color="variables.menuActiveText" + :collapse-transition="false" + mode="vertical" + @select="handleSelect" + > + <sidebar-item v-for="route in sidebarRouters" :key="route.id" :item="route" :base-path="route.path" /> + </el-menu> + </el-scrollbar> + </el-aside> + </div> + <div class="toggle-box" :class="openAside?'':'toggle-box-right'" @click="openAside=!openAside"><i class="el-icon-arrow-left" /></div> + </div> + </div> +</template> + +<script> +import { mapGetters, mapState } from 'vuex'; +import Logo from './Logo'; +import SidebarItem from './SidebarItem'; +import variables from '@/styles/variables.scss'; +import { isEmpty, isNotEmpty } from '@/utils/validate' +export default { + components: { SidebarItem, Logo }, + data(){ + return{ + openAside: true, + actId: '', + activeMenuIdx: '', + // showSidebar: userSidebarTop, + // needTagsView: tagsView, + subRoute: [], + rootRoute: { meta: { title: '' }} + } + }, + methods:{ + routeClick(route) { + this.rootRoute = route + this.subRoute = route.children + this.actId = route.id + const rootRoute = this.getFirstRoute(route) + this.$router.push(rootRoute.path) + }, + handleSelect(key, keyPath) { + this.activeMenuIdx = key + }, + getFirstRoute(route) { + if (isNotEmpty(route.children)) { + const len = route.children.length + for (let i = 0; i < len; i++) { + const item = route.children[i] + if (isNotEmpty(item)) { + const route = this.getFirstRoute(item) + if (isEmpty(route.children)) { + return route + } + } + } + } else { + return route + } + }, + }, + computed: { + ...mapState(['settings']), + ...mapGetters(['permission_routes', 'sidebarRouters', 'sidebar']), + activeMenu() { + const route = this.$route; + const { meta, path } = route; + // if set path, the sidebar will highlight the path you set + if (meta.activeMenu) { + return meta.activeMenu; + } + return path; + }, + showLogo() { + return this.$store.state.settings.sidebarLogo; + }, + variables() { + return variables; + }, + isCollapse() { + return !this.sidebar.opened; + }, + routes() { + // console.log(this.$router.options.routes) + return this.$router.options.routes + }, + }, +}; +</script> +<style lang="scss" scoped> +.el-submenu__icon-arrow { + color: #fff !important; +} +.header { + width: 100%; + -webkit-box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: fixed; + z-index: 3; + top: 60px; +} + +.header .navbar { + max-width: 1200px; + margin-left: auto; + margin-right: auto; + -webkit-box-shadow: 0 0 0; + box-shadow: 0 0 0; +} + +.root-route { + align-self: center; + width: 92px; + height: 58px; + border-radius: 10px; + cursor: pointer; + font-size: 12px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 20px auto; + color: #666; + line-height: 1; + transition: 0.3s; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #C4C4C4; + } + + .root-route-title { + margin-top: 2px; + } +} + +.root-route:hover { + background-color: #0d997c; + color: #fff; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #fff; + } +} + +.root-route.act { + background-color: #0d997c; + color: #fff; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #fff; + } +} +.aside-box{ + width: 171px; + transition: all 0.3s; +} +.aside-box-close{ + transition: all 0.3s; + width: 0; +} +.toggle-box { + width: 31px; + height: 62px; + border-radius: 0 31px 31px 0; + border: 1px solid #eeeeee; + box-sizing: border-box; + background: #ffffff; + position: absolute; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 24px; + top: 67px; + right: -31px; + z-index: 99; + transition: all 0.3s; + transition-delay: 0.2s; + transform: rotate(0); +} +.toggle-box-right i{ + transform: rotate(180deg); + transition-delay: 0.2s; +} +.breadcrumb{ + height: 56px; + line-height: 56px; + padding: 0 24px; + font-size: 18px; + font-weight: bold; + background-color: #fff; +} +.my-aside { + width: 128px !important; + transition: all 0.3s; +} + +.bg { + width: 121px; + position: absolute; + bottom: 0; + z-index: -1; +} + +.el-menu { + border: none; +} + +.menu-title { + background-color: #ECF2FF; + padding: 0px 10px; + margin: 10px; + font-size: 15px; + color: #0d997c; + border-radius: 4px; +} +</style> diff --git a/project-web/src/layout/components/TagsView/ScrollPane.vue b/project-web/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..6454c2f --- /dev/null +++ b/project-web/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,94 @@ +<template> + <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll"> + <slot /> + </el-scrollbar> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +const tagAndTagSpacing = 4; // tagAndTagSpacing + +export default { + name: 'ScrollPane', + data() { + return { + left: 0, + }; + }, + computed: { + scrollWrapper() { + return this.$refs.scrollContainer.$refs.wrap; + }, + }, + methods: { + handleScroll(e) { + const eventDelta = e.wheelDelta || -e.deltaY * 40; + const $scrollWrapper = this.scrollWrapper; + $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4; + }, + moveToTarget(currentTag) { + const $container = this.$refs.scrollContainer.$el; + const $containerWidth = $container.offsetWidth; + const $scrollWrapper = this.scrollWrapper; + const tagList = this.$parent.$refs.tag; + + let firstTag = null; + let lastTag = null; + + // find first tag and last tag + if (tagList.length > 0) { + firstTag = tagList[0]; + lastTag = tagList[tagList.length - 1]; + } + + if (firstTag === currentTag) { + $scrollWrapper.scrollLeft = 0; + } else if (lastTag === currentTag) { + $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth; + } else { + // find preTag and nextTag + const currentIndex = tagList.findIndex((item) => item === currentTag); + const prevTag = tagList[currentIndex - 1]; + const nextTag = tagList[currentIndex + 1]; + + // the tag's offsetLeft after of nextTag + const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing; + + // the tag's offsetLeft before of prevTag + const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing; + + if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) { + $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth; + } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) { + $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft; + } + } + }, + }, +}; +</script> + +<style lang="scss" scoped> +.scroll-container { + white-space: nowrap; + position: relative; + overflow: hidden; + width: 100%; + ::v-deep { + .el-scrollbar__bar { + bottom: 0px; + } + .el-scrollbar__wrap { + /*height: 49px;*/ + } + } +} +</style> diff --git a/project-web/src/layout/components/TagsView/index.vue b/project-web/src/layout/components/TagsView/index.vue new file mode 100644 index 0000000..0354595 --- /dev/null +++ b/project-web/src/layout/components/TagsView/index.vue @@ -0,0 +1,332 @@ +<template> + <div id="tags-view-container" class="tags-view-container" v-if="!isPhone"> + <scroll-pane ref="scrollPane" class="tags-view-wrapper"> + <router-link + v-for="tag in visitedViews" + ref="tag" + :key="tag.path" + :class="isActive(tag) ? 'active' : ''" + :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" + tag="span" + class="tags-view-item" + @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''" + @contextmenu.prevent.native="openMenu(tag, $event)" + > + {{ tag.title }} + <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> + </router-link> + </scroll-pane> + <ul v-show="visible" :style="{ left: (openAside?left+170:left) + 'px', top: top + 'px' }" class="contextmenu"> + <li @click="refreshSelectedTag(selectedTag)">鍒锋柊</li> + <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">鍏抽棴</li> + <li @click="closeOthersTags">鍏抽棴鍏朵粬</li> + <li @click="closeAllTags(selectedTag)">鍏抽棴鎵�鏈�</li> + </ul> + </div> +</template> + +<script> +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import ScrollPane from './ScrollPane'; +import path from 'path'; + +export default { + props:{ + openAside:{ + type: Boolean, + default: false + } + }, + components: { ScrollPane }, + data() { + return { + fullWidth: document.body.clientWidth, + visible: false, + top: 0, + left: 0, + selectedTag: {}, + affixTags: [], + isPhone: this.$wechat.isPhone(), + }; + }, + computed: { + visitedViews() { + return this.$store.state.tagsView.visitedViews; + }, + routes() { + return this.$store.state.permission.routes; + }, + theme() { + return this.$store.state.settings.theme; + }, + topNav: { + get() { + return this.$store.state.settings.topNav; + }, + }, + }, + watch: { + $route() { + this.addTags(); + if (this.topNav) this.setSidebarRouters(); //宸︿晶浜岀骇鑿滃崟鍚屾 + if (!this.isPhone) this.moveToCurrentTag(); + }, + visible(value) { + if (value) { + document.body.addEventListener('click', this.closeMenu); + } else { + document.body.removeEventListener('click', this.closeMenu); + } + }, + }, + mounted() { + window.addEventListener('resize', this.handleResize); + this.initTags(); + this.addTags(); + if (this.topNav) this.setSidebarRouters(); + }, + methods: { + handleResize(event) { + this.fullWidth = document.body.clientWidth; + }, + isActive(route) { + return route.path === this.$route.path; + }, + isAffix(tag) { + return tag.meta && tag.meta.affix; + }, + filterAffixTags(routes, basePath = '/') { + let tags = []; + routes.forEach((route) => { + if (route.meta && route.meta.affix) { + const tagPath = path.resolve(basePath, route.path); + tags.push({ + fullPath: tagPath, + path: tagPath, + name: route.name, + meta: { ...route.meta }, + }); + } + if (route.children) { + const tempTags = this.filterAffixTags(route.children, route.path); + if (tempTags.length >= 1) { + tags = [...tags, ...tempTags]; + } + } + }); + return tags; + }, + initTags() { + const affixTags = (this.affixTags = this.filterAffixTags(this.routes)); + for (const tag of affixTags) { + // Must have tag name + if (tag.name) { + this.$store.dispatch('tagsView/addVisitedView', tag); + } + } + }, + /** + * 宸︿晶浜岀骇鑿滃崟鍚屾 + */ + setSidebarRouters() { + let key = this.$route.path.split('/')[1]; + //閫氳繃鎴彇褰撳墠璺敱鐨勭涓�绾х洰褰曡窡椤堕儴涓�绾ц彍鍗曢�変腑椤圭殑val鍊煎仛鍖归厤 + key = '/' + key; + this.routes.map((item) => { + if (key == item.url && item.child.length > 0) { + //濡傛灉鍖归厤锛屽氨缁欎晶杈瑰鑸祴鍊间负閫変腑椤圭殑瀛愮骇鏁扮粍 + this.$store.commit('permission/SET_SIDEBAR_ROUTERS', item.child); + } else if (key == item.url && !item.child.length) { + //濡傛灉閬嶅巻浠ュ悗val鍊肩瓑浜巌tem鐨剈rl锛屼絾鏄湁娌℃湁瀛愮骇锛屽氨鎶婂畠瀛愮骇璧嬪�肩粰渚ц竟瀵艰埅鐨勬暟缁勶紝杩欓噷閽堝dashboard鎺у埗鍙� + this.$store.commit('permission/SET_SIDEBAR_ROUTERS', [item]); + } + }); + }, + addTags() { + const { name } = this.$route; + if (name) { + this.$store.dispatch('tagsView/addView', this.$route); + } + return false; + }, + moveToCurrentTag() { + const tags = this.$refs.tag; + this.$nextTick(() => { + for (const tag of tags) { + if (tag.to.path === this.$route.path) { + this.$refs.scrollPane.moveToTarget(tag); + // when query is different then update + if (tag.to.fullPath !== this.$route.fullPath) { + this.$store.dispatch('tagsView/updateVisitedView', this.$route); + } + break; + } + } + }); + }, + refreshSelectedTag(view) { + this.$store.dispatch('tagsView/delCachedView', view).then(() => { + const { fullPath } = view; + this.$nextTick(() => { + this.$router.replace({ + path: '/redirect' + fullPath, + }); + }); + }); + }, + closeSelectedTag(view) { + this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => { + if (this.isActive(view)) { + this.toLastView(visitedViews, view); + } + }); + }, + closeOthersTags() { + this.$router.push(this.selectedTag); + this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { + this.moveToCurrentTag(); + }); + }, + closeAllTags(view) { + this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => { + if (this.affixTags.some((tag) => tag.path === view.path)) { + return; + } + this.toLastView(visitedViews, view); + }); + }, + toLastView(visitedViews, view) { + const latestView = visitedViews.slice(-1)[0]; + if (latestView) { + this.$router.push(latestView.fullPath); + } else { + // now the default is to redirect to the home page if there is no tags-view, + // you can adjust it according to your needs. + if (view.name === 'Dashboard') { + // to reload home page + this.$router.replace({ path: '/redirect' + view.fullPath }); + } else { + this.$router.push('/dashboard'); + } + } + }, + openMenu(tag, e) { + const menuMinWidth = 105; + const offsetLeft = this.$el.getBoundingClientRect().left; // container margin left + const offsetWidth = this.$el.offsetWidth; // container width + const maxLeft = offsetWidth - menuMinWidth; // left boundary + const left = e.clientX - offsetLeft + 15; // 15: margin right + if (left > maxLeft) { + this.left = maxLeft; + } else { + this.left = left; + } + this.top = e.clientY; + this.visible = true; + this.selectedTag = tag; + }, + closeMenu() { + this.visible = false; + }, + }, +}; +</script> + +<style lang="scss" scoped> +.tags-view-container { + padding: 6px 0; + width: 100%; + background: #ffffff; + // border-bottom: 1px solid #d8dce5; + // box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); + .tags-view-wrapper { + .tags-view-item { + display: inline-block; + position: relative; + cursor: pointer; + height: 36px; + line-height: 36px; + border: 1px solid #eeeeee; + color: #666666; + background: #fff; + padding: 0 8px; + font-size: 14px; + margin-left: 10px; + border-radius: 3px; + &:first-of-type { + margin-left: 20px; + } + &:last-of-type { + margin-right: 20px; + } + &.active { + background-color: #fff; + color: #333333; + border-color: #C8CED5; + // &::before { + // content: ''; + // background: #fff; + // display: inline-block; + // width: 8px; + // height: 8px; + // border-radius: 50%; + // position: relative; + // margin-right: 2px; + // } + } + } + } + .contextmenu { + margin: 0; + background: #fff; + z-index: 3000; + position: absolute; + list-style-type: none; + padding: 5px 0; + border-radius: 4px; + font-size: 12px; + font-weight: 400; + color: #333; + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); + li { + margin: 0; + padding: 7px 16px; + cursor: pointer; + &:hover { + background: #eee; + } + } + } +} +</style> + +<style lang="scss" scoped> +//reset element css of el-icon-close +.tags-view-wrapper { + .tags-view-item { + .el-icon-close { + font-size: 16px; + border-radius: 50%; + text-align: center; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transform-origin: 100% 50%; + &:before { + transform: scale(0.6); + display: inline-block; + } + &:hover { + background-color: #b4bccc; + color: #fff; + } + } + } +} +</style> diff --git a/project-web/src/layout/components/index.js b/project-web/src/layout/components/index.js new file mode 100644 index 0000000..6f53956 --- /dev/null +++ b/project-web/src/layout/components/index.js @@ -0,0 +1,14 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +export { default as AppMain } from './AppMain'; +export { default as Navbar } from './Navbar'; +export { default as Settings } from './Settings'; +export { default as Sidebar } from './Sidebar/index.vue'; +export { default as TagsView } from './TagsView/index.vue'; diff --git "a/project-web/src/layout/imgs/Group 42731\346\220\234\347\264\2429579.png" "b/project-web/src/layout/imgs/Group 42731\346\220\234\347\264\2429579.png" new file mode 100644 index 0000000..882a5bd --- /dev/null +++ "b/project-web/src/layout/imgs/Group 42731\346\220\234\347\264\2429579.png" Binary files differ diff --git a/project-web/src/layout/imgs/bggl.png b/project-web/src/layout/imgs/bggl.png new file mode 100644 index 0000000..f512cd6 --- /dev/null +++ b/project-web/src/layout/imgs/bggl.png Binary files differ diff --git a/project-web/src/layout/imgs/bgglA.png b/project-web/src/layout/imgs/bgglA.png new file mode 100644 index 0000000..7442177 --- /dev/null +++ b/project-web/src/layout/imgs/bgglA.png Binary files differ diff --git a/project-web/src/layout/imgs/fbgl.png b/project-web/src/layout/imgs/fbgl.png new file mode 100644 index 0000000..0243f3f --- /dev/null +++ b/project-web/src/layout/imgs/fbgl.png Binary files differ diff --git a/project-web/src/layout/imgs/fbglA.png b/project-web/src/layout/imgs/fbglA.png new file mode 100644 index 0000000..2367d21 --- /dev/null +++ b/project-web/src/layout/imgs/fbglA.png Binary files differ diff --git a/project-web/src/layout/imgs/jcxx.png b/project-web/src/layout/imgs/jcxx.png new file mode 100644 index 0000000..12716a7 --- /dev/null +++ b/project-web/src/layout/imgs/jcxx.png Binary files differ diff --git a/project-web/src/layout/imgs/jcxxA.png b/project-web/src/layout/imgs/jcxxA.png new file mode 100644 index 0000000..ee4e1d6 --- /dev/null +++ b/project-web/src/layout/imgs/jcxxA.png Binary files differ diff --git a/project-web/src/layout/imgs/jxgl.png b/project-web/src/layout/imgs/jxgl.png new file mode 100644 index 0000000..faa42f1 --- /dev/null +++ b/project-web/src/layout/imgs/jxgl.png Binary files differ diff --git a/project-web/src/layout/imgs/jxglA.png b/project-web/src/layout/imgs/jxglA.png new file mode 100644 index 0000000..59a67bd --- /dev/null +++ b/project-web/src/layout/imgs/jxglA.png Binary files differ diff --git a/project-web/src/layout/imgs/kfgzt.png b/project-web/src/layout/imgs/kfgzt.png new file mode 100644 index 0000000..7257d1f --- /dev/null +++ b/project-web/src/layout/imgs/kfgzt.png Binary files differ diff --git a/project-web/src/layout/imgs/kfgztA.png b/project-web/src/layout/imgs/kfgztA.png new file mode 100644 index 0000000..82ebbd5 --- /dev/null +++ b/project-web/src/layout/imgs/kfgztA.png Binary files differ diff --git a/project-web/src/layout/imgs/mydgl.png b/project-web/src/layout/imgs/mydgl.png new file mode 100644 index 0000000..5227e97 --- /dev/null +++ b/project-web/src/layout/imgs/mydgl.png Binary files differ diff --git a/project-web/src/layout/imgs/mydglA.png b/project-web/src/layout/imgs/mydglA.png new file mode 100644 index 0000000..f46d754 --- /dev/null +++ b/project-web/src/layout/imgs/mydglA.png Binary files differ diff --git a/project-web/src/layout/imgs/sjgl.png b/project-web/src/layout/imgs/sjgl.png new file mode 100644 index 0000000..2230525 --- /dev/null +++ b/project-web/src/layout/imgs/sjgl.png Binary files differ diff --git a/project-web/src/layout/imgs/sjglA.png b/project-web/src/layout/imgs/sjglA.png new file mode 100644 index 0000000..e58202a --- /dev/null +++ b/project-web/src/layout/imgs/sjglA.png Binary files differ diff --git a/project-web/src/layout/imgs/sy.png b/project-web/src/layout/imgs/sy.png new file mode 100644 index 0000000..328a8d3 --- /dev/null +++ b/project-web/src/layout/imgs/sy.png Binary files differ diff --git a/project-web/src/layout/imgs/syA.png b/project-web/src/layout/imgs/syA.png new file mode 100644 index 0000000..0d1b68e --- /dev/null +++ b/project-web/src/layout/imgs/syA.png Binary files differ diff --git a/project-web/src/layout/imgs/wtgl.png b/project-web/src/layout/imgs/wtgl.png new file mode 100644 index 0000000..41f3b1a --- /dev/null +++ b/project-web/src/layout/imgs/wtgl.png Binary files differ diff --git a/project-web/src/layout/imgs/wtglA.png b/project-web/src/layout/imgs/wtglA.png new file mode 100644 index 0000000..2e40749 --- /dev/null +++ b/project-web/src/layout/imgs/wtglA.png Binary files differ diff --git a/project-web/src/layout/imgs/xmgl.png b/project-web/src/layout/imgs/xmgl.png new file mode 100644 index 0000000..1d3e0aa --- /dev/null +++ b/project-web/src/layout/imgs/xmgl.png Binary files differ diff --git a/project-web/src/layout/imgs/xmglA.png b/project-web/src/layout/imgs/xmglA.png new file mode 100644 index 0000000..e5b73c8 --- /dev/null +++ b/project-web/src/layout/imgs/xmglA.png Binary files differ diff --git a/project-web/src/layout/imgs/xtgl.png b/project-web/src/layout/imgs/xtgl.png new file mode 100644 index 0000000..d5d1b8f --- /dev/null +++ b/project-web/src/layout/imgs/xtgl.png Binary files differ diff --git a/project-web/src/layout/imgs/xtglA.png b/project-web/src/layout/imgs/xtglA.png new file mode 100644 index 0000000..8dd4614 --- /dev/null +++ b/project-web/src/layout/imgs/xtglA.png Binary files differ diff --git a/project-web/src/layout/imgs/zskgl.png b/project-web/src/layout/imgs/zskgl.png new file mode 100644 index 0000000..4e7ace1 --- /dev/null +++ b/project-web/src/layout/imgs/zskgl.png Binary files differ diff --git a/project-web/src/layout/imgs/zskglA.png b/project-web/src/layout/imgs/zskglA.png new file mode 100644 index 0000000..2e4ca7c --- /dev/null +++ b/project-web/src/layout/imgs/zskglA.png Binary files differ diff --git a/project-web/src/layout/index.vue b/project-web/src/layout/index.vue new file mode 100644 index 0000000..3c1a382 --- /dev/null +++ b/project-web/src/layout/index.vue @@ -0,0 +1,531 @@ +<template> + <el-container> + <div class="app-wrapper"> + <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside"/> + <div :class="{ hasTagsView: needTagsView }" class="main-container"> + <el-header height="70px"> + <div :class="{ 'fixed-header': fixedHeader }"> + <navbar /> + </div> + </el-header> + <el-container> + <el-aside class="my-aside" :style="{ backgroundColor: !openAside ? '#fff' : '#EBEEF5' }"> + <!-- <el-aside class="my-aside" :style="{backgroundColor: (!openAside||sidebarRouters.length&&rootRoute&&rootRoute.meta)?'#F6F8FC':'#EBEEF5'}">--> + <el-scrollbar style="position: relative" wrap-class="scrollbar-wrapper"> + <template v-for="(route, index) in sidebarRouters"> + <div + v-if="!route.hidden" + :key="route.id" + class="root-route" + :class="{ act: actId === route.id }" + @click="routeClick(route)" + > + <!-- <i class="route-icon" :class="'el-icon-' + route.icon" />--> +<!-- <img v-if="actId === route.id" :src="iconsList[actId].urlA" alt=""/>--> +<!-- <img v-else :src="iconsList[route.id].url" alt=""/>--> + <div class="root-route-title">{{ route.name }}</div> + </div> + </template> + </el-scrollbar> + </el-aside> + <div class="my-aside-box"> + <div + v-if="subRoute && subRoute.length > 0 && rootRoute" + :class="openAside ? 'aside-box' : 'aside-box-close'" + > + <el-aside width="170px;" style="height: 100%; border-right: 1px solid #eeeeee"> + <el-scrollbar wrap-class="scrollbar-wrapper"> + <div class="menu-title">{{ rootRoute.name }}</div> + <el-menu + :default-active="activeMenu" + :collapse="false" + :background-color="variables.menuBg" + :text-color="variables.menuText" + :unique-opened="true" + :active-text-color="variables.menuActiveText" + :collapse-transition="false" + mode="vertical" + @select="handleSelect" + > + <sidebar-item v-for="route in subRoute" :key="route.id" :item="route" :base-path="route.path"/> + </el-menu> + </el-scrollbar> + </el-aside> + </div> + <div + class="toggle-box" + v-if="subRoute && subRoute.length" + :class="openAside ? '' : 'toggle-box-right'" + @click="switchOpen" + > + <i style="font-size: 16px" class="el-icon-arrow-left"/> + </div> + </div> + <el-main> + <tags-view v-if="needTagsView" :openAside="openAside" :visible="true"/> + <app-main/> + </el-main> + </el-container> + </div> + </div> + </el-container> +</template> + +<script> +import {AppMain, Navbar, Settings, Sidebar, TagsView} from './components'; +import ResizeMixin from './mixin/ResizeHandler'; +import {mapGetters, mapState} from 'vuex'; +import SidebarItem from './components/Sidebar/SidebarItem'; +import variables from '@/styles/variables.scss'; +import {isEmpty, isNotEmpty} from '@/utils/validate'; + +export default { + name: 'Layout', + data() { + return { + openAside: true,// 浜岀骇鑿滃崟鏄惁灞曞紑 + actId: '', + activeMenuIdx: '', + subRoute: [], + rootRoute: {meta: {title: ''}}, + iconsList: { + 12000: { + url: require('./imgs/kfgzt.png'), + urlA: require('./imgs/kfgztA.png'), + }, + 13000: { + url: require('./imgs/sjgl.png'), + urlA: require('./imgs/sjglA.png'), + }, + 6000: { + url: require('./imgs/jcxx.png'), + urlA: require('./imgs/jcxxA.png'), + }, + 7000: { + url: require('./imgs/jcxx.png'), + urlA: require('./imgs/jcxxA.png'), + }, + 10000: { + url: require('./imgs/xtgl.png'), + urlA: require('./imgs/xtglA.png'), + }, + 20230801151431: { + url: require('./imgs/mydgl.png'), + urlA: require('./imgs/mydglA.png'), + }, + 11000: { + url: require('./imgs/xmgl.png'), + urlA: require('./imgs/xmglA.png'), + }, + 20230726152522: { + url: require('./imgs/zskgl.png'), + urlA: require('./imgs/zskglA.png'), + }, + 8000: { + url: require('./imgs/xtgl.png'), + urlA: require('./imgs/xtglA.png'), + }, + }, + }; + }, + components: { + AppMain, + Navbar, + Settings, + Sidebar, + TagsView, + SidebarItem + }, + mixins: [ResizeMixin], + watch: { + $route(to, from) { + const route = this.$route; + let root = this.getCurrentRoute(route.path, this.sidebarRouters); + if (root && root.length > 0) { + this.rootRoute = root[0]; + } + this.actId = this.rootRoute.id; + + if (this.activeMenu.length > 1) { + this.subActId = this.activeMenu[1].id; + this.subRoute = this.rootRoute.childList; + } else { + this.subActId = ''; + this.subRoute = []; + } + } + }, + computed: { + ...mapGetters(['permission_routes', 'sidebarRouters', 'sidebar']), + ...mapState({ + sidebar: (state) => state.app.sidebar, + device: (state) => state.app.device, + showSettings: (state) => state.settings.showSettings, + needTagsView: (state) => state.settings.tagsView, + fixedHeader: (state) => state.settings.fixedHeader, + }), + classObj() { + return { + openSidebar: this.sidebar.opened, + withoutAnimation: this.sidebar.withoutAnimation, + mobile: this.device === 'mobile', + }; + }, + activeMenu() { + const route = this.$route; + const {meta, path} = route; + // if set path, the sidebar will highlight the path you set + if (meta.activeMenu) { + return meta.activeMenu; + } + return path; + }, + showLogo() { + return this.$store.state.settings.sidebarLogo; + }, + variables() { + return variables; + }, + isCollapse() { + return !this.sidebar.opened; + }, + }, + mounted() { + const route = this.$route; + let root = this.getCurrentRoute(route.path, this.sidebarRouters); + if (root && root.length > 0) { + this.rootRoute = root[0]; + this.actId = this.rootRoute.id; + } + if (this.activeMenu.length > 1) { + this.subActId = this.activeMenu[1].id; + this.subRoute = this.rootRoute.childList; + } + if(!localStorage.getItem('openAside')){ + localStorage.setItem('openAside','open') + + } + if(localStorage.getItem('openAside')=='open'){ + this.openAside=true + } + if(localStorage.getItem('openAside')=='close'){ + this.openAside=false + } + }, + methods: { + switchOpen(){ + this.openAside=!this.openAside + localStorage.setItem('openAside',this.openAside?'open':'close') + }, + handleSelect(key, keyPath) { + this.activeMenuIdx = key; + }, + routeClick(route) { + // console.log(route) + this.rootRoute = route; + this.subRoute = route.childList; + this.actId = route.id; + const rootRoute = this.getFirstRoute(route); + + if (route.childList.length == 0) { + this.$router.push(rootRoute.component); + } + this.openAside = true; + }, + getFirstRoute(route) { + if (isNotEmpty(route.childList)) { + const len = route.childList.length; + for (let i = 0; i < len; i++) { + const item = route.childList[i]; + if (isNotEmpty(item)) { + const route = this.getFirstRoute(item); + if (isEmpty(route.childList)) { + return route; + } + } + } + } else { + return route; + } + }, + getCurrentRoute(path, nodes, ids) { + if (ids === undefined) { + ids = []; + } + // console.log(path,nodes,'okookk') + const len = nodes.length; + for (let i = 0; i < len; i++) { + const item = nodes[i]; + const idArr = ids.concat(); + idArr.push(item); + // console.log(item.url , path) + if (item.component === path) { + return idArr; + } + if (item.childList && item.childList.length > 0) { + const findResult = this.getCurrentRoute(path, item.childList, idArr); + if (findResult) { + return findResult; + } + } + } + }, + handleClickOutside() { + this.$store.dispatch('app/closeSideBar', {withoutAnimation: false}); + } + }, +}; +</script> + +<style lang="scss" scoped> +@import '~@/styles/mixin.scss'; +@import '~@/styles/variables.scss'; + +.el-main { + padding: 0; +} + +> > > .el-scrollbar__ba { + display: none; +} + +> > > .el-scrollbar__thumb { + display: none; +} + +> > > .el-menu-item { + height: 35px; + line-height: 35px; +} + +.open-image { + display: flex; + align-items: center; + justify-content: center; + position: fixed; + background-color: rgba(0, 0, 0, 0.6); + height: 100%; + width: 100%; + top: 0; + left: 0; + z-index: 999999; +} + +.app-wrapper { + @include clearfix; + position: relative; + height: 100%; + width: 100%; + + &.mobile.openSidebar { + position: fixed; + top: 0; + } +} + +.drawer-bg { + background: #000; + opacity: 0.3; + width: 100%; + top: 0; + height: 100%; + position: absolute; + z-index: 999; +} + +.fixed-header { + position: fixed; + top: 0; + right: 0; + z-index: 9; + width: calc(100% - #{$base-sidebar-width}); + transition: width 0.28s; +} + +.mobile .fixed-header { + width: 100%; +} + +.el-submenu__icon-arrow { + color: #fff !important; +} + +.header { + width: 100%; + -webkit-box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + position: fixed; + z-index: 3; + top: 60px; +} + +.header .navbar { + max-width: 1200px; + margin-left: auto; + margin-right: auto; + -webkit-box-shadow: 0 0 0; + box-shadow: 0 0 0; +} + +.root-route { + align-self: center; + width: 92px; + height: 58px; + border-radius: 10px; + cursor: pointer; + font-size: 14px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 20px auto; + color: #666; + line-height: 1; + transition: 0.3s; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #c4c4c4; + } + + .root-route-title { + margin-top: 2px; + } +} + +.root-route:hover { + background-color: #0d997c; + color: #fff; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #fff; + } +} + +.root-route.act { + background-color: #0d997c; + color: #fff; + + .route-icon { + width: 30px; + height: 30px; + font-size: 30px; + line-height: 1; + color: #fff; + } +} + +> > > .el-aside { + padding: 0 10px; + width: 170px; +} + +.aside-box { + width: 170px; + transition: all 0.3s; + height: calc(100vh - 80px); + background-color: #fff; + position: relative; +} + +.aside-box-close { + transition: all 0.3s; + width: 0; + overflow: hidden; +} + +.toggle-box { + cursor: pointer; + width: 23px; + height: 97px; + border-radius: 0 31px 31px 0; + border: 1px solid #eeeeee; + box-sizing: border-box; + background: #0D997C; + position: absolute; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 24px; + top: 50%; + right: -22px; + z-index: 2; + transition: all 0.3s; + transition-delay: 0.2s; + transform: rotate(0); + transform: translateY(-50%); + i { + color: #fff; + } +} + +.toggle-box-right i { + transform: rotate(180deg); + transition-delay: 0.2s; +} + +.breadcrumb { + height: 56px; + line-height: 56px; + padding: 0 24px; + font-size: 18px; + font-weight: bold; + background-color: #fff; +} + +.my-aside { + padding: 0; + width: 121px !important; + transition: all 0.3s; + height: calc(100vh - 80px); + overflow-y: auto; + + &::-webkit-scrollbar { + display: none; + width: 0 !important; + -ms-overflow-style: none; + } +} + +.bg { + width: 121px; + position: absolute; + bottom: 0; + z-index: -1; +} + +.el-menu { + border: none; +} + +.menu-title { + background-color: #F6F8FC; + padding: 0px 10px; + margin: 10px 0; + font-size: 16px; + color: #1D2129; + border-radius: 4px; +} + +.my-aside-box { + position: relative; + + &::-webkit-scrollbar { + display: none; + width: 0 !important; + -ms-overflow-style: none; + } +} + +.my-aside-box::-webkit-scrollbar { + display: none; +} +</style> diff --git a/project-web/src/layout/mixin/ResizeHandler.js b/project-web/src/layout/mixin/ResizeHandler.js new file mode 100644 index 0000000..29563a4 --- /dev/null +++ b/project-web/src/layout/mixin/ResizeHandler.js @@ -0,0 +1,55 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import store from '@/store'; + +const { body } = document; +const WIDTH = 992; // refer to Bootstrap's responsive design + +export default { + watch: { + $route() { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); + } + }, + }, + beforeMount() { + window.addEventListener('resize', this.$_resizeHandler); + }, + beforeDestroy() { + window.removeEventListener('resize', this.$_resizeHandler); + }, + mounted() { + const isMobile = this.$_isMobile(); + if (isMobile) { + store.dispatch('app/toggleDevice', 'mobile'); + store.dispatch('app/closeSideBar', { withoutAnimation: true }); + } + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_isMobile() { + const rect = body.getBoundingClientRect(); + return rect.width - 1 < WIDTH; + }, + $_resizeHandler() { + if (!document.hidden) { + const isMobile = this.$_isMobile(); + store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop'); + + if (isMobile) { + store.dispatch('app/closeSideBar', { withoutAnimation: true }); + } + } + }, + }, +}; diff --git a/project-web/src/libs/debounce.js b/project-web/src/libs/debounce.js new file mode 100644 index 0000000..cd068a5 --- /dev/null +++ b/project-web/src/libs/debounce.js @@ -0,0 +1,19 @@ +/** + * 涓�涓畝鍗曠殑鍑芥暟闃叉姈 + * @param {Function} fun 闇�瑕侀檺鍒舵墽琛岄鐜囩殑鍑芥暟 + * @param {Number} delay 寤惰繜鏃堕棿锛岃繖娈垫椂闂磋繃鍚庯紝鎵嶅彲瑙﹀彂绗簩娆� + */ +export default function (fun, delay) { + // 璁板綍涓婁竴娆″嚱鏁拌Е鍙戠殑鏃堕棿 + var timer = null; + var debounced = function () { + var ctx = this; + var args = arguments; + // 娓呴櫎涓婁竴娆″欢鏃跺櫒 + if (timer) clearTimeout(timer); + timer = setTimeout(function () { + fun.apply(ctx, args); + }, delay); + }; + return debounced; +} diff --git a/project-web/src/libs/dialog.js b/project-web/src/libs/dialog.js new file mode 100644 index 0000000..5904ec5 --- /dev/null +++ b/project-web/src/libs/dialog.js @@ -0,0 +1,67 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import { + Confirm as confirm, + Alert as alert, + Toast as toast, + Notify as notify, + Loading as loading, +} from 'vue-ydui/dist/lib.rem/dialog'; + +const dialog = { + confirm, + alert, + toast, + notify, + loading, +}; + +const icons = { error: '鎿嶄綔澶辫触', success: '鎿嶄綔鎴愬姛' }; +Object.keys(icons).reduce((dialog, key) => { + dialog[key] = (mes, obj = {}) => { + return new Promise(function (resolve) { + toast({ + mes: mes || icons[key], + timeout: 1000, + icon: key, + callback: () => { + resolve(); + }, + ...obj, + }); + }); + }; + return dialog; +}, dialog); + +dialog.message = (mes = '鎿嶄綔澶辫触', obj = {}) => { + return new Promise(function (resolve) { + toast({ + mes, + timeout: 1000, + callback: () => { + resolve(); + }, + ...obj, + }); + }); +}; + +dialog.validateError = (...args) => { + validatorDefaultCatch(...args); +}; + +export function validatorDefaultCatch(err, type = 'message') { + console.log(err); + return dialog[type](err.errors[0].message); +} + +export default dialog; diff --git a/project-web/src/libs/index.js b/project-web/src/libs/index.js new file mode 100644 index 0000000..48e43d0 --- /dev/null +++ b/project-web/src/libs/index.js @@ -0,0 +1,44 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import modalIcon from '@/libs/modal-icon'; +import modalParserFrom from '@/libs/modal-parserFrom'; +import modalSure from '@/libs/modal-sure'; +import modalPrompt from '@/libs/modal-prompt'; +import timeOptions from '@/libs/timeOptions'; +import dialog from '@/libs/dialog'; +import * as constants from '@/utils/constants.js'; +import * as selfUtil from '@/utils/ZBKJIutil.js'; +import * as Auth from '@/libs/wechat'; +import util from '@/utils/utils'; +import schema from 'async-validator'; +import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from '@/utils/parsing'; +import axios from 'axios'; +export default { + install(Vue) { + Vue.prototype.$modalSure = modalSure; + Vue.prototype.$modalIcon = modalIcon; + Vue.prototype.$modalParserFrom = modalParserFrom; + Vue.prototype.$timeOptions = timeOptions; + Vue.prototype.$constants = constants; + Vue.prototype.$selfUtil = selfUtil; + Vue.prototype.handleTree = handleTree; + Vue.prototype.parseTime = parseTime; + Vue.prototype.resetForm = resetForm; + Vue.prototype.$dialog = dialog; + Vue.prototype.$scroll = scroll; + Vue.prototype.$wechat = Auth; + Vue.prototype.$util = util; + Vue.prototype.$modalPrompt = modalPrompt; + Vue.prototype.$axios = axios; + Vue.prototype.$validator = function (rule) { + return new schema(rule); + }; + }, +}; diff --git a/project-web/src/libs/modal-coupon.js b/project-web/src/libs/modal-coupon.js new file mode 100644 index 0000000..493294d --- /dev/null +++ b/project-web/src/libs/modal-coupon.js @@ -0,0 +1,57 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * 浼樻儬鍒稿垪琛ㄥ脊绐楀舰寮忓睍绀虹粍浠� + * @param handle + * @param keyNum 閲嶇疆琛ㄥ崟key鍊� + * @param callback 鍥炶皟鍑芥暟 + * @param couponId 浼樻儬鍒竔d + * @param userIds 鐢ㄦ埛id + * @returns {Promise<any>} + */ +export default function modalCoupon(handle, keyNum, callback, couponId = [], userIds) { + const h = this.$createElement; + return new Promise((resolve, reject) => { + this.$msgbox({ + title: '浼樻儬鍒稿垪琛�', + customClass: 'upload-form-temp', + closeOnClickModal: false, + showClose: false, + message: h('div', { class: 'common-form-upload' }, [ + h('couponList', { + props: { + handle: handle, + couponId: couponId, + keyNum: keyNum, + userIds: userIds, + }, + on: { + getCouponId(id) { + callback(id); + }, + }, + }), + ]), + showCancelButton: false, + showConfirmButton: false, + }) + .then(() => { + resolve(); + }) + .catch(() => { + reject(); + this.$message({ + type: 'info', + message: '宸插彇娑�', + }); + }); + }); +} diff --git a/project-web/src/libs/modal-icon.js b/project-web/src/libs/modal-icon.js new file mode 100644 index 0000000..f545bc8 --- /dev/null +++ b/project-web/src/libs/modal-icon.js @@ -0,0 +1,47 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * 鑿滃崟鍥炬爣寮圭獥褰㈠紡灞曠ず缁勪欢 + * @param callback 鍥炶皟鍑芥暟 + * @returns {Promise<any>} + */ +export default function modalIcon(callback) { + const h = this.$createElement; + return new Promise((resolve, reject) => { + this.$msgbox({ + title: '鑿滃崟鍥炬爣', + customClass: 'upload-form', + closeOnClickModal: false, + showClose: false, + message: h('div', { class: 'common-form-upload' }, [ + h('iconFrom', { + on: { + getIcon(n) { + callback(n); + }, + }, + }), + ]), + showCancelButton: false, + showConfirmButton: false, + }) + .then(() => { + resolve(); + }) + .catch(() => { + reject(); + this.$message({ + type: 'info', + message: '宸插彇娑�', + }); + }); + }); +} diff --git a/project-web/src/libs/modal-parserFrom.js b/project-web/src/libs/modal-parserFrom.js new file mode 100644 index 0000000..24803ff --- /dev/null +++ b/project-web/src/libs/modal-parserFrom.js @@ -0,0 +1,49 @@ + +/** + * 寮圭獥鏍峰紡鐨勮〃鍗曢厤缃殑鎻愪氦 + * @param title 鏍囬 + * @param formId 琛ㄥ崟id + * @param isCreate 鏄惁鏄紪杈� + * @param editData 璇︽儏鏁版嵁 + * @param callback 鍥炶皟鍑芥暟 + * @param keyNum 閲嶇疆琛ㄥ崟key鍊� + * @returns {Promise<any>} + */ +export default function modalParserFrom(title, formId, isCreate, editData, callback, keyNum) { + const h = this.$createElement; + return new Promise((resolve, reject) => { + this.$msgbox({ + title, + customClass: 'upload-form', + closeOnClickModal: false, + showClose: true, + message: h('div', { class: 'common-form-upload' }, [ + h('ZBParser', { + props: { + formId, + isCreate, + editData, + keyNum, + }, + on: { + submit(formValue) { + callback(formValue); + }, + }, + }), + ]), + showCancelButton: false, + showConfirmButton: false, + }) + .then(() => { + resolve(); + }) + .catch(() => { + reject(); + // this.$message({ + // type: 'info', + // message: '宸插彇娑�' + // }) + }); + }); +} diff --git a/project-web/src/libs/modal-prompt.js b/project-web/src/libs/modal-prompt.js new file mode 100644 index 0000000..3acd095 --- /dev/null +++ b/project-web/src/libs/modal-prompt.js @@ -0,0 +1,56 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * $prompt涓�琛屽唴瀹筰nput鎻愪氦灏佽 + * @param inputType input type 绫诲瀷 + * @param title 鏍囬 + * @param val 鍥炴樉鐨勫�� + * @returns {Promise<any>} + */ +export default function modalPrompt(inputType, title, val) { + return new Promise((resolve, reject) => { + this.$prompt(`${title}`, { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + inputErrorMessage: `璇疯緭鍏�${title}`, + inputType: inputType, + inputValue: val ? val : '', + showClose: false, + closeOnClickModal: false, + inputPlaceholder: `璇疯緭鍏�${title}`, + inputValidator: (value) => { + if (!value) return '杈撳叆涓嶈兘涓虹┖'; + }, + beforeClose: (action, instance, done) => { + if (action === 'confirm') { + instance.confirmButtonLoading = true; + instance.confirmButtonText = '鎵ц涓�...'; + setTimeout(() => { + done(); + setTimeout(() => { + instance.confirmButtonLoading = false; + }, 300); + }, 3000); + } else { + done(); + } + }, + }) + .then(({ value }) => { + resolve(value); + // this.ruleForm.reason = value; + // this.submit(); + }) + .catch(() => { + this.$message.info('鍙栨秷杈撳叆'); + }); + }); +} diff --git a/project-web/src/libs/modal-sure.js b/project-web/src/libs/modal-sure.js new file mode 100644 index 0000000..cd5a0e3 --- /dev/null +++ b/project-web/src/libs/modal-sure.js @@ -0,0 +1,34 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * 鍐嶆纭畾寮圭獥缁勪欢 + * @param title 鏍囬 + * @returns {Promise<any>} + */ +export default function modalSure(title) { + return new Promise((resolve, reject) => { + this.$confirm(`纭畾${title || '姘镐箙鍒犻櫎璇ユ暟鎹�'}`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + resolve(); + }) + .catch(() => { + reject(); + this.$message({ + type: 'info', + message: '宸插彇娑�', + }); + }); + }); +} diff --git a/project-web/src/libs/public.js b/project-web/src/libs/public.js new file mode 100644 index 0000000..34b8270 --- /dev/null +++ b/project-web/src/libs/public.js @@ -0,0 +1,24 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * @description 鐭俊鏄惁鐧诲綍 + */ +export function isLogin() { + return new Promise((resolve, reject) => { + isLoginApi() + .then(async (res) => { + resolve(res); + }) + .catch((res) => { + reject(res); + }); + }); +} diff --git a/project-web/src/libs/timeOptions.js b/project-web/src/libs/timeOptions.js new file mode 100644 index 0000000..b48bc93 --- /dev/null +++ b/project-web/src/libs/timeOptions.js @@ -0,0 +1,65 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +export default { + shortcuts: [ + { + text: '鏄ㄥぉ', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜竷澶�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), 1))); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩�30澶�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜竴骞�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 365); + picker.$emit('pick', [start, end]); + }, + }, + ], + disabledDate(time) { + let curDate = new Date().getTime(); + let three = 365 * 24 * 3600 * 1000; + let threeMonths = curDate - three; + return time.getTime() > Date.now() || time.getTime() < threeMonths; + }, +}; diff --git a/project-web/src/libs/wechat.js b/project-web/src/libs/wechat.js new file mode 100644 index 0000000..4b79ab5 --- /dev/null +++ b/project-web/src/libs/wechat.js @@ -0,0 +1,183 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import WechatJSSDK from 'wechat-jssdk/dist/client.umd'; +import { getWechatConfig, wechatAuth } from '@/api/system/wxApi'; +import { getToken, removeToken, setToken } from '@/utils/auth'; +import { parseQuery } from '@/utils'; +import Cookies from 'js-cookie'; +const STATE_KEY = 'wx_authorize_state'; +import store from '@/store'; +const WX_AUTH = 'wx_auth'; +const BACK_URL = 'login_back_url'; +const LOGINTYPE = 'loginType'; +let instance; +let wechatObj; +const LONGITUDE = 'user_longitude'; +const LATITUDE = 'user_latitude'; + +const WECHAT_SCRIPT_URL = '//res.wx.qq.com/open/js/jweixin-1.6.0.js'; + +/** + * 鏄惁鏄井淇� + */ +export function isWeixin() { + return navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1; +} + +/** + * 鏄惁鏄Щ鍔ㄧ + */ +export function isPhone() { + return /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent); +} + +export default function wechat() { + return new Promise((resolve, reject) => { + if (instance) return resolve(instance); + getWechatConfig() + .then((res) => { + const _wx = WechatJSSDK(res); + wechatObj = _wx; + _wx + .initialize() + .then(() => { + instance = _wx.wx; + instance.initConfig = res; + resolve(instance); + }) + .catch(reject); + }) + .catch((err) => { + reject(err); + }); + }); +} + +export function loginByWxCode(code) { + return new Promise((resolve, reject) => { + let loginType = getToken(); + wechatAuth(code) + .then((res) => { + store.commit('SET_TOKEN', res.token); + setToken(res.token); + Cookies.set(WX_AUTH, code); + resolve(res); + }) + .catch((err) => { + reject(err); + }); + }); +} + +export function getWXCodeByUrl(path, step) { + if (getToken()) return; + generatorWxUrl(path, step); +} + +export function generatorWxUrl(path, step) { + wechat() + .then((wx) => { + window.location.href = getAuthUrl(wx.initConfig, path, step); + }) + .catch((err) => { + reject(err); + }); +} + +function getAuthUrl(config, path, step) { + const finalUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${ + config.appId + }&redirect_uri=${encodeURIComponent(path)}&response_type=code&scope=snsapi_base&state=${step}#wechat_redirect`; + return finalUrl; +} + +function getQueryString(name) { + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); + var reg_rewrite = new RegExp('(^|/)' + name + '/([^/]*)(/|$)', 'i'); + var r = window.location.search.substr(1).match(reg); + var q = window.location.pathname.substr(1).match(reg_rewrite); + if (r != null) { + return unescape(r[2]); + } else if (q != null) { + return unescape(q[2]); + } else { + return null; + } +} + +/** + * 鍏紬鍙蜂簨浠� + * @param name 浜嬩欢鍚� + * @param config 閰嶇疆 + * @returns {Promise<unknown>} + */ +export function wechatEvevt(name, config) { + return new Promise((resolve, reject) => { + let wx; + let configDefault = { + fail(res) { + if (wx) return reject({ is_ready: true, wx: wx }); + getWechatConfig().then((res) => { + wechatObj.signSignature({ + nonceStr: res.nonceStr, + signature: res.signature, + timestamp: res.timestamp, + }); + wx = wechatObj.getOriginalWx(); + reject({ is_ready: true, wx: wx }); + }); + }, + success(res) { + resolve(res); + }, + cancel(err) { + reject(err); + }, + complete(err) { + reject(err); + }, + }; + Object.assign(configDefault, config); + getWechatConfig().then((res) => { + const _wx = WechatJSSDK(res); + _wx.initialize().then(() => { + instance = _wx.getOriginalWx(); + instance.ready(() => { + if (typeof name === 'object') { + name.forEach((item) => { + instance[item] && instance[item](configDefault); + }); + } else instance[name] && instance[name](configDefault); + }); + }); + }); + }); +} + +export function ready() { + return new Promise((resolve) => { + if (typeof instance !== 'undefined') { + instance.ready(() => { + resolve(instance); + }); + } else { + getWechatConfig().then((res) => { + const _wx = WechatJSSDK(res); + _wx.initialize().then(() => { + instance = _wx.wx; + instance.ready(() => { + resolve(instance); + }); + }); + }); + } + }); +} diff --git a/project-web/src/libs/yearOptions.js b/project-web/src/libs/yearOptions.js new file mode 100644 index 0000000..95c7ca7 --- /dev/null +++ b/project-web/src/libs/yearOptions.js @@ -0,0 +1,37 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +export default { + shortcuts: [ + { + text: '鏈湀', + onClick(picker) { + picker.$emit('pick', [new Date(), new Date()]); + }, + }, + { + text: '浠婂勾鑷充粖', + onClick(picker) { + const end = new Date(); + const start = new Date(new Date().getFullYear(), 0); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戝叚涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setMonth(start.getMonth() - 6); + picker.$emit('pick', [start, end]); + }, + }, + ], +}; diff --git a/project-web/src/main.js b/project-web/src/main.js new file mode 100644 index 0000000..7095f49 --- /dev/null +++ b/project-web/src/main.js @@ -0,0 +1,176 @@ +import Vue from 'vue'; +import '@babel/polyfill'; +import Element from 'element-ui'; +import 'normalize.css/normalize.css'; // a modern alternative to CSS resets +import './styles/element-variables.scss'; +import '@/styles/index.scss'; // global css +import '@/assets/iconfont/iconfont.css'; +import 'swiper/dist/css/swiper.css'; +import 'vue-ydui/dist/ydui.base.css'; +// import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/parsing"; +// 鎳掑姞杞� +import VueLazyload from 'vue-lazyload'; +import VueAwesomeSwiper from 'vue-awesome-swiper'; +import Cookies from 'js-cookie'; +import Debounce from './libs/debounce.js'; //闃叉姈鑷畾涔夋寚浠� +Vue.config.devtools = true; + +import Print from '@/utils/print'; +Vue.use(Print); +// 鐧惧害鍦板浘 +import BaiduMap from 'vue-baidu-map' +Vue.use(BaiduMap,{ + ak:'' +}); + +import App from './App'; +import store from './store'; +import router from './router'; +import base from './components/base/index'; // 鍏叡缁勪欢 +import './icons'; // icon +import './permission'; // permission control +import './utils/error-log'; // error integralLog +import * as filters from './filters'; // global filters +import {parseQuery} from '@/utils'; +import plugins from './plugins'; +import directive from './directive'; //directive +import libs from './libs/index.js'; // 鍏ㄥ眬鍑芥暟 +import mySearch from '@/components/mySearch'; // 鍏叡鎼滅储 +import './directive/float'; +import './directive/num'; +import searchInfo from '@/utils/changeColor'; +import exportExcel from '@/utils/exportExcel'; // 瀵煎嚭 +import {previewDoc, downLoad} from '@/utils/base'; +Vue.prototype.exportExcelUtils = exportExcel; +Vue.prototype.previewDoc = previewDoc; +Vue.prototype.downLoad = downLoad; +Vue.prototype.$searchInfo = searchInfo; +Vue.use(VueLazyload, { + preLoad: 1.3, + error: require('./assets/imgs/no.png'), + loading: require('./assets/imgs/moren.jpg'), + attempt: 1, + listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'], +}); + +Vue.use(VueAwesomeSwiper); +Vue.use(plugins); +Vue.use(directive); +Vue.use(libs); +Vue.use(base); +Vue.use(mySearch); +let cookieName = 'VCONSOLE'; +let query = parseQuery(); +let urlSpread = query['spread']; +let vconsole = query[cookieName.toLowerCase()]; +let md5Crmeb = 'b14d1e9baeced9bb7525ab19ee35f2d2'; //CRMEB MD5 鍔犲瘑寮�鍚痸console妯″紡 +let md5UnCrmeb = '3dca2162c4e101b7656793a1af20295c'; //UN_CREMB MD5 鍔犲瘑鍏抽棴vconsole妯″紡 + +if (vconsole !== undefined) { + if (vconsole === md5UnCrmeb && Cookies.has(cookieName)) Cookies.remove(cookieName); +} else vconsole = Cookies.get(cookieName); + +if (vconsole !== undefined && vconsole === md5Crmeb) { + Cookies.set(cookieName, md5Crmeb, 3600); + const module = () => import('vconsole'); + module().then((Module) => { + new Module.default(); + }); +} +// 鑷畾涔夊疄鐜癝tring 绫诲瀷鐨剅eplaceAll鏂规硶 +String.prototype.replaceAll = function (s1, s2) { + return this.replace(new RegExp(s1, 'gm'), s2); +}; +// Vue.prototype.$modalCoupon = modalCoupon +/** + * If you don't want to use mock-server + * you want to use MockJs for mock api + * you can execute: mockXHR() + * + * Currently MockJs will be used in the production environment, + * please remove it before going online ! ! ! + */ +// if (process.env.NODE_ENV === 'production') { +// const { mockXHR } = require('../mock') +// mockXHR() +// } + +Vue.use(Element, { + size: 'small', // set element-ui default size + zIndex: 3000, +}); + +// register global utility filters +Object.keys(filters).forEach((key) => { + Vue.filter(key, filters[key]); +}); + +Vue.config.productionTip = false; + +const $previewApp = document.getElementById('previewApp'); +const childAttrs = { + file: '', + dialog: ' width="600px" class="dialog-width" v-if="visible" :visible.sync="visible" :modal-append-to-body="false" ', +}; + + +function buildLinks(links) { + let strs = ''; + links.forEach((url) => { + strs += `<link href="${url}" rel="stylesheet">`; + }); + return strs; +} + + +function newVue(attrs, main, html) { + // eslint-disable-next-line no-eval + main = eval(`(${main})`); + main.template = `<div>${html}</div>`; + new Vue({ + components: { + child: main, + }, + data() { + return { + visible: true, + }; + }, + template: ` + <div> + <child ${attrs}/> + </div>`, + }).$mount('#app'); +} + +String.prototype.replaceAll = function (s1, s2) { + return this.replace(new RegExp(s1, 'gm'), s2); +}; + +/** + * 闃叉姈 闃叉閲嶅鐐瑰嚮 + * 浼犲弬锛歷-debounceClick="() =>{handleFun(arg)}" + * 涓嶄紶鍙�:v-debounceClick="handleFun" + * delayTime:寤惰繜鐨勬椂闂�,鍙墽琛屾渶鍚庝竴娆� + */ +Vue.directive('debounceClick', { + bind(el, binding, vnode, oldvnode) { + }, + inserted: function (el, binding) { + let delayTime = el.getAttribute('delay-time') || 1000; + el.onclick = Debounce(function () { + binding.value(); + }, delayTime); + }, +}); +import '@/mock' +new Vue({ + el: '#app', + router, + store, + render: (h) => h(App), + beforeCreate() { + Vue.prototype.$EventBus = this + } + +}); diff --git a/project-web/src/mock/index.js b/project-web/src/mock/index.js new file mode 100644 index 0000000..6f1f001 --- /dev/null +++ b/project-web/src/mock/index.js @@ -0,0 +1,37 @@ +import Mock from 'mockjs'; +import stageConfig from './projectConfig/stageConfig'; +import stageNode from './projectConfig/stageNode'; +import buildPlan from './projectConfig/buildPlan'; +import buildPlanNode from './projectConfig/buildPlanNode'; +import kanbanConfig from './projectConfig/kanbanConfig'; +import kanbanNode from './projectConfig/kanbanNode'; +import warningConfig from './projectConfig/warningConfig'; +import cancel from './projectManagement/cancel'; +import classify from './projectManagement/classify'; +import audit from './projectManagement/audit'; +import record from './projectManagement/record'; +import information from './projectManagement/information'; +/** + * 妯℃嫙鏁版嵁mock + * + * mock鏄惁寮�鍚ā鎷熸暟鎹嫤鎴� + * + * false 鏃朵负璇锋眰鎺ュ彛 + */ + +stageConfig({ mock: false }); //椤圭洰鑺傜偣閰嶇疆 +stageNode({ mock: false }); //椤圭洰闃舵鑺傜偣 +buildPlan({ mock: false }); //椤圭洰寤鸿璁″垝 +buildPlanNode({ mock: false }); //椤圭洰寤鸿璁″垝 闃舵鑺傜偣閰嶇疆 +kanbanConfig({ mock: false }); //鐪嬫澘鑺傜偣閰嶇疆 +kanbanNode({ mock: false }); //鐪嬫澘鑺傜偣閰嶇疆 妯$増鑺傜偣璁剧疆 +warningConfig({ mock: false }); //涓存湡棰勮璁剧疆 +classify({ mock: false }); //椤圭洰鍒嗙被 +cancel({ mock: false }); //椤圭洰鍙栨秷 +audit({ mock: false }); //椤圭洰瀹℃牳 +record({ mock: false }); //椤圭洰褰掓。 +information({ mock: false }); //椤圭洰淇℃伅 +// 寤惰繜鍔犺浇 +Mock.setup({ + timeout: '1000', +}); diff --git a/project-web/src/mock/projectConfig/buildPlan.js b/project-web/src/mock/projectConfig/buildPlan.js new file mode 100644 index 0000000..f40d487 --- /dev/null +++ b/project-web/src/mock/projectConfig/buildPlan.js @@ -0,0 +1,68 @@ +import Mock from 'mockjs'; + +/*椤圭洰寤鸿璁″垝*/ +export default ({mock}) => { + if (!mock) return; + //鏂板 + Mock.mock(new RegExp("/pc/p/temp/project/add"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //鍒犻櫎 + Mock.mock(new RegExp("/pc/p/temp/project/del"), 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/project/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //淇敼鐘舵�� + Mock.mock(new RegExp("/pc/p/temp/project/updStatus"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //璇︽儏 + Mock.mock(new RegExp("/pc/p/temp/project/detail"), 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + projectName: '@ctitle(3,5)', + projectCode: '@id', + 'planTypeName|1': ['涓皬鍨嬪疄鐗╃綉宸ョ▼', '澶у瀷瀹炵墿缃戝伐绋�', '灏忚妯′俊鎭寲宸ョ▼', '澶ц妯′俊鎭寲宸ョ▼'], + 'planTypeCode|1-4': 4, + "status|0-1": 0, + }, + }); + }); + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/project/list"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|4': [ + { + id: '@id', + projectName: '@ctitle(3,5)', + projectCode: '@id', + 'planTypeName|1': ['涓皬鍨嬪疄鐗╃綉宸ョ▼', '澶у瀷瀹炵墿缃戝伐绋�', '灏忚妯′俊鎭寲宸ョ▼', '澶ц妯′俊鎭寲宸ョ▼'], + 'planTypeCode|1-4': 4, + "status|0-1": 0, + }, + ] + }); + }) +} diff --git a/project-web/src/mock/projectConfig/buildPlanNode.js b/project-web/src/mock/projectConfig/buildPlanNode.js new file mode 100644 index 0000000..97760a9 --- /dev/null +++ b/project-web/src/mock/projectConfig/buildPlanNode.js @@ -0,0 +1,89 @@ +import Mock from 'mockjs'; + +/*椤圭洰寤鸿璁″垝*/ +export default ({mock}) => { + if (!mock) return; + //鏌ヨ椤圭洰闃舵鑺傜偣鏍� + Mock.mock(new RegExp("/pc/p/temp/stage/node/tree"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|5': [ + { + id: '@id', + name: '@ctitle(3,5)', + 'children|6':[ + { + id: '@id', + name: '@ctitle(3,5)', + } + ] + }, + ] + + }); + }) + //鏌ヨ璁″垝妯$増闃舵鑺傜偣鏍� + Mock.mock(new RegExp("/pc/p/temp/project/stage/node/tree"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|5': [ + { + id: '@id', + name: '@ctitle(3,5)', + 'stageTimeDays|40-350':50, + 'children|6':[ + { + id: '@id', + name: '@ctitle(3,5)', + 'nodeTimeStart|1-80': 20, + 'nodeTimeDays|1-80': 20, + 'completeNotifyStatus|0-1': 1, + 'notifyTempStageNodeId|3-5':['@ctitle(3,5)'], + 'warnNeed|0-1': 1, + 'fileNeed|0-1': 1, + } + ] + }, + ] + + }); + }) + //璁剧疆椤圭洰妯$増涓嬮樁娈佃妭鐐� + Mock.mock(new RegExp("/pc/p/temp/project/stage/node"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }) + //鏌ヨ椤圭洰妯$増涓嬮樁娈佃妭鐐硅鎯� + Mock.mock(new RegExp("/pc/p/temp/project/stage/node"), 'get', () => { + let data = Mock.mock({ + 'data|5': [ + { + id: '@id', + stageName: '@ctitle(3,5)', + 'stageTimeDays|40-350':50, + nodeName: '@ctitle(3,5)', + 'nodeTimeStart|1-80': 20, + 'nodeTimeDays|1-80': 20, + 'completeNotifyStatus|0-1': 1, + 'notifyStage|3-5':['@ctitle(3,5)'], + 'notifyNode|3-5':['@ctitle(3,5)'], + 'warnNeed|0-1': 1, + 'fileNeed|0-1': 1, + }, + ] + }) + let arr = [4,3,6,5,6] + let temp = [] + data.data.map((item,i)=>{ + for (let j = 0; j < arr[i]; j++) { + temp.push(item) + } + }) + return { + code: 1, + data: temp + } + }) +} diff --git a/project-web/src/mock/projectConfig/kanbanConfig.js b/project-web/src/mock/projectConfig/kanbanConfig.js new file mode 100644 index 0000000..d6cd621 --- /dev/null +++ b/project-web/src/mock/projectConfig/kanbanConfig.js @@ -0,0 +1,52 @@ +import Mock from 'mockjs'; + +/*鐪嬫澘鑺傜偣閰嶇疆*/ +export default ({mock}) => { + if (!mock) return; + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/project/board/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //淇敼鐘舵�� + Mock.mock(new RegExp("/pc/p/temp/project/board/updStatus"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //璇︽儏 + Mock.mock(new RegExp("/pc/p/temp/project/board/detail"), 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + boardName: '@ctitle(3,5)', + boardCode: '@id', + "sort|+1": 1, + "status|0-1": 0, + }, + + }); + }); + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/project/board/list"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|5': [ + { + id: '@id', + boardName: '@ctitle(3,5)', + boardCode: '@id', + "sort|+1": 1, + "status|0-1": 0, + }, + ] + }); + }) + +} diff --git a/project-web/src/mock/projectConfig/kanbanNode.js b/project-web/src/mock/projectConfig/kanbanNode.js new file mode 100644 index 0000000..4e802c6 --- /dev/null +++ b/project-web/src/mock/projectConfig/kanbanNode.js @@ -0,0 +1,48 @@ +import Mock from 'mockjs'; + +/*鐪嬫澘鑺傜偣閰嶇疆*/ +export default ({mock}) => { + if (!mock) return; + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/project/board/node/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/project/board/node/tree"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|5': [ + { + id: '@id', + name: '@ctitle(3,5)', + 'children|6':[ + { + id: '@id', + name: '@ctitle(3,5)', + } + ] + }, + ] + }); + }) + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/project/board/node/list"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|5': [ + { + id: '@id', + tempBoardId: '@id', + tempProjectId: '@id', + tempProjectName: '@ctitle(3,5)', + // 'tempStageNodeIds|3': ['@id'] + 'tempStageNodeIds': [] + }, + ] + }); + }) +} diff --git a/project-web/src/mock/projectConfig/stageConfig.js b/project-web/src/mock/projectConfig/stageConfig.js new file mode 100644 index 0000000..f64dba6 --- /dev/null +++ b/project-web/src/mock/projectConfig/stageConfig.js @@ -0,0 +1,72 @@ +import Mock from 'mockjs'; + +/*椤圭洰鑺傜偣閰嶇疆*/ +export default ({mock}) => { + if (!mock) return; + //鏂板 + Mock.mock(new RegExp("/pc/p/temp/stage/add"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //鍒犻櫎 + Mock.mock(new RegExp("/pc/p/temp/stage/del"), 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/stage/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //淇敼鐘舵�� + Mock.mock(new RegExp("/pc/p/temp/stage/updStatus"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //璇︽儏 + Mock.mock(new RegExp("/pc/p/temp/stage/detail"), 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + stageName: '@ctitle(3,5)', + nodeName: '@ctitle(2,4)', + "sort|+1": 1, + "status|0-1": 0, + }, + + }); + }); + //鏌ヨ椤圭洰闃舵鍒楄〃 + Mock.mock(/\/pc\/\/p\/temp\/stage\/list/, 'get', () => { + const data = Mock.mock({ + code: 1, + data: { + 'datas|10': [ + { + id: '@id', + stageName: '鍐屾暟'+'@ctitle(3,5)', + nodeName: '@ctitle(2,4)', + "sort|+1": 1, + "status|0-1": 0, + }, + ], + totalRows: 40 + } + + }); + return data + }) +} diff --git a/project-web/src/mock/projectConfig/stageNode.js b/project-web/src/mock/projectConfig/stageNode.js new file mode 100644 index 0000000..b840d69 --- /dev/null +++ b/project-web/src/mock/projectConfig/stageNode.js @@ -0,0 +1,71 @@ +import Mock from 'mockjs'; + +/*闃舵鑺傜偣*/ +export default ({mock}) => { + if (!mock) return; + //鏂板 + Mock.mock(new RegExp("/pc/p/temp/stage/node/add"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //鍒犻櫎 + Mock.mock(new RegExp("/pc/p/temp/stage/node/del"), 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/stage/node/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //淇敼鐘舵�� + Mock.mock(new RegExp("/pc/p/temp/stage/node/updStatus"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //璇︽儏 + Mock.mock(new RegExp("/pc/p/temp/stage/node/detail"), 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + nodeName: '@ctitle(3,5)', + remark: '@cparagraph(2)', + "sort|+1": 1, + "status|0-1": 0, + }, + + }); + }); + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/stage/node/list"), 'get', () => { + return Mock.mock({ + code: 1, + data: { + 'datas|10': [ + { + id: '@id', + nodeName: '@ctitle(3,5)', + remark: '@cparagraph(2)', + "sort|+1": 1, + "status|0-1": 0, + }, + ], + totalRows: 40 + } + + }); + }) +} diff --git a/project-web/src/mock/projectConfig/warningConfig.js b/project-web/src/mock/projectConfig/warningConfig.js new file mode 100644 index 0000000..dba8a65 --- /dev/null +++ b/project-web/src/mock/projectConfig/warningConfig.js @@ -0,0 +1,128 @@ +import Mock from 'mockjs'; + +/*涓存湡棰勮璁剧疆*/ +export default ({mock}) => { + if (!mock) return; + //鏂板 + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/add"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //鍒犻櫎 + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/del"), 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //缂栬緫 + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/upd"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //淇敼鐘舵�� + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/updStatus"), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + + }); + }); + //璇︽儏 + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/detail"), 'get', () => { + const phonePrefix = ['132', '135', '189'] + const index = Math.floor(Math.random() * phonePrefix.length) + var phone = [] + for (let i = 0; i < 15; i++) { + phone.push(phonePrefix[index] + Mock.mock(/\d{8}/)) + } + return Mock.mock({ + code: 1, + data: { + id: '@id', + tempExpirationNotifyName: '@ctitle(3,5)', + tempExpirationNotifyCode: '@id', + createOrgName: '@city()', + 'expireBefore1|5-10': 6, + 'beforeManagerNotify1|0-1': 0, + 'beforeManagerNotifyUser1|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + 'expireBefore2|5-10': 6, + 'beforeManagerNotify2|0-1': 0, + 'beforeManagerNotifyUser2|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + 'expireBefore3|5-10': 6, + 'beforeManagerNotify3|0-1': 0, + 'beforeManagerNotifyUser3|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + 'expireAfter1|5-10': 6, + 'afterManagerNotify1|0-1': 0, + 'afterManagerNotifyUser1|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + 'expireAfter2|5-10': 6, + 'afterManagerNotify2|0-1': 0, + 'afterManagerNotifyUser2|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + 'expireAfter3|5-10': 6, + 'afterManagerNotify3|0-1': 0, + 'afterManagerNotifyUser3|3-6': [ + { + id: '@id', + userName: '@cname', + } + ], + "notifyWx|0-1": 0, + "notifyMobMsg|0-1": 0, + "notifyMobMsgWay|0-1": 0, + "status|0-1": 0, + notifyMob: phone.join(','), + 'notifyTime|0-23': 9 + }, + }); + }); + //鏌ヨ鍒楄〃 + Mock.mock(new RegExp("/pc/p/temp/expiration/notify/list"), 'get', () => { + return Mock.mock({ + code: 1, + 'data|10': [ + { + id: '@id', + tempExpirationNotifyName: '@ctitle(3,5)', + tempExpirationNotifyCode: '@id', + createOrgName: '@city()', + "notifyWx|0-1": 0, + "notifyMobMsg|0-1": 0, + "notifyMobMsgWay|0-1": 0, + "status|0-1": 0, + }, + ] + }); + }) +} diff --git a/project-web/src/mock/projectManagement.js b/project-web/src/mock/projectManagement.js new file mode 100644 index 0000000..ef01669 --- /dev/null +++ b/project-web/src/mock/projectManagement.js @@ -0,0 +1,255 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤圭洰鍒嗙被 + // 椤圭洰鍒嗙被宸︿晶鏍� + Mock.mock(/\/pc\/\/p\/project\/category\/tree/, 'get', () => { + return Mock.mock({ + code: 1, + 'data|5':[ + { + label: '@ctitle(5)', + id: '@id', + 'children|3-10':[ + { + label: '@ctitle(5)', + id: '@id', + parentId:'@id' + } + ] + } + ] + }); + }); + // 椤圭洰鍒嗙被琛ㄦ牸 + Mock.mock(/\/pc\/\/p\/project\/category\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + title: '@ctitle(6,12)', + "orderNum|+1": 1, + "status|0-1": 0, + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 淇敼椤圭洰鍒嗙被鐘舵�� + Mock.mock(/\/pc\/\/p\/project\/category\/updateStatus/, 'post', () => { + return Mock.mock({ + code: 1, + data:1 + }); + }); + // 鏂板鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/add/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 淇敼鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/edit/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 鍒犻櫎鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/del/, 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 鑾峰彇鍒嗙被璇︽儏 + Mock.mock(/\/pc\/\/p\/project\/category\/detail/, 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + title: '@ctitle(6,12)', + "orderNum|+1": 1, + "status|0-1": 0, + } + }); + }); + // 椤圭洰淇℃伅 + // 椤堕儴椤圭洰淇℃伅缁熻 + Mock.mock(/\/pc\/\/p\/project\/info\/total/, 'get', () => { + return Mock.mock({ + code: 1, + data: { + "projectTotal|50-100": 66, + "awaitNum|20-50": 20, + "ingNum|20-50": 20, + "postponeNum|20-50": 20, + "endNum|20-50": 20, + "cancelNum|20-50": 20, + } + }) + }) + // 椤圭洰淇℃伅琛ㄦ牸 + Mock.mock(/\/pc\/\/p\/project\/info\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + "progressRate|50-100": 60, + 'expirationNotifyStatus|0-1':0, + "status|0-4": 0, // 0 鏈紑宸� 1 杩涜涓� 2 宸插畬鎴� 3 宸插彇娑� 4 宸插欢鏈� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 棰勮璁剧疆 淇濆瓨妯℃澘棰勮 + Mock.mock(/\/pc\/\/p\/project\/info\/tempNotify\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 涓嬭揪鎶曡祫 鑾峰彇宸茬粡涓嬭揪鎶曡祫鐨勯搴� + Mock.mock(/\/pc\/\/p\/release\/invest\/info\/list/, 'get', () => { + return Mock.mock({ + code: 1, + 'data|2': [ + { + "releaseInvest|10-20": 10, + } + ] + }) + }) + // 涓嬭揪鎶曡祫 淇濆瓨 + Mock.mock(/\/pc\/\/p\/project\/info\/investInfo\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + + + // 椤圭洰瀹℃牳 + // 椤圭洰瀹℃牳琛ㄦ牸 + Mock.mock(/\/pc\/\/p\/project\/audit\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + "sourceStatus|0-1": 0, // 0褰掓。 1鏂板 + 'auditStatus|0-2':0 // 0 鏈鏍� 1 涓嶉�氳繃 2 閫氳繃 + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 椤圭洰瀹℃牳 瀹℃牳 + Mock.mock(/\/pc\/\/p\/project\/audit\/upd/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + + + // 椤圭洰褰掓。 + // 椤圭洰褰掓。鍒楄〃 + Mock.mock(/\/pc\/\/p\/project\/record\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + 'archiveStatus|0-2':0 // 0 鏈綊妗� 1 瀹℃牳涓� 2 宸插綊妗� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 椤圭洰褰掓。 + Mock.mock(/\/pc\/\/p\/project\/record\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 椤圭洰杩樺師 + Mock.mock(/\/pc\/\/p\/project\/record\/upd/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + + // 椤圭洰鍙栨秷 + // 椤圭洰鍙栨秷鍒楄〃 + Mock.mock(/\/pc\/\/p\/project\/cancel\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + 'cancelStatus|0-1':0 // 0 鏈彇娑� 1 宸插彇娑� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + + // 椤圭洰鍙栨秷 + Mock.mock(/\/\/\/p\/project\/cancel\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); +} diff --git a/project-web/src/mock/projectManagement/audit.js b/project-web/src/mock/projectManagement/audit.js new file mode 100644 index 0000000..9bb4c04 --- /dev/null +++ b/project-web/src/mock/projectManagement/audit.js @@ -0,0 +1,36 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤圭洰瀹℃牳 + // 椤圭洰瀹℃牳琛ㄦ牸 + Mock.mock(/\/pc\/\/p\/project\/audit\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + "sourceStatus|0-1": 0, // 0褰掓。 1鏂板 + 'auditStatus|0-2':0 // 0 鏈鏍� 1 涓嶉�氳繃 2 閫氳繃 + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 椤圭洰瀹℃牳 瀹℃牳 + Mock.mock(/\/pc\/\/p\/project\/audit\/upd/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); +} diff --git a/project-web/src/mock/projectManagement/cancel.js b/project-web/src/mock/projectManagement/cancel.js new file mode 100644 index 0000000..99538ec --- /dev/null +++ b/project-web/src/mock/projectManagement/cancel.js @@ -0,0 +1,36 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤圭洰鍙栨秷 + // 椤圭洰鍙栨秷鍒楄〃 + Mock.mock(new RegExp('/pc/p/project/cancel/list'), 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + 'cancelStatus|0-1':0 // 0 鏈彇娑� 1 宸插彇娑� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + + // 椤圭洰鍙栨秷 + Mock.mock(/\/pc\/p\/project\/cancel\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); +} diff --git a/project-web/src/mock/projectManagement/classify.js b/project-web/src/mock/projectManagement/classify.js new file mode 100644 index 0000000..3c8e035 --- /dev/null +++ b/project-web/src/mock/projectManagement/classify.js @@ -0,0 +1,82 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤圭洰鍒嗙被宸︿晶鏍� + Mock.mock(/\/pc\/\/p\/project\/category\/tree/, 'get', () => { + return Mock.mock({ + code: 1, + 'data|5':[ + { + label: '@ctitle(5)', + id: '@id', + 'children|3-10':[ + { + label: '@ctitle(5)', + id: '@id', + parentId:'@id' + } + ] + } + ] + }); + }); + // 椤圭洰鍒嗙被琛ㄦ牸 + Mock.mock(/\/pc\/\/p\/project\/category\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + title: '@ctitle(6,12)', + "orderNum|+1": 1, + "status|0-1": 0, + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 淇敼椤圭洰鍒嗙被鐘舵�� + Mock.mock(/\/pc\/\/p\/project\/category\/updateStatus/, 'post', () => { + return Mock.mock({ + code: 1, + data:1 + }); + }); + // 鏂板鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/add/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 淇敼鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/edit/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 鍒犻櫎鍒嗙被 + Mock.mock(/\/pc\/\/p\/project\/category\/del/, 'delete', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 鑾峰彇鍒嗙被璇︽儏 + Mock.mock(/\/pc\/\/p\/project\/category\/detail/, 'get', () => { + return Mock.mock({ + code: 1, + data: { + id: '@id', + title: '@ctitle(6,12)', + "orderNum|+1": 1, + "status|0-1": 0, + } + }); + }); +} diff --git a/project-web/src/mock/projectManagement/information.js b/project-web/src/mock/projectManagement/information.js new file mode 100644 index 0000000..2ad55f8 --- /dev/null +++ b/project-web/src/mock/projectManagement/information.js @@ -0,0 +1,68 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤堕儴椤圭洰淇℃伅缁熻 + Mock.mock(new RegExp('/pc/p/project/info/total'), 'get', () => { + return Mock.mock({ + code: 1, + data: { + "projectTotal|50-100": 66, + "awaitNum|20-50": 20, + "ingNum|20-50": 20, + "postponeNum|20-50": 20, + "endNum|20-50": 20, + "cancelNum|20-50": 20, + } + }) + }) + // 椤圭洰淇℃伅琛ㄦ牸 + Mock.mock(new RegExp('/pc/p/project/info/list'), 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + "progressRate|50-100": 60, + 'expirationNotifyStatus|0-1':0, + "status|0-4": 0, // 0 鏈紑宸� 1 杩涜涓� 2 宸插畬鎴� 3 宸插彇娑� 4 宸插欢鏈� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 棰勮璁剧疆 淇濆瓨妯℃澘棰勮 + Mock.mock(new RegExp('/pc/p/project/info/tempNotify/save'), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 涓嬭揪鎶曡祫 鑾峰彇宸茬粡涓嬭揪鎶曡祫鐨勯搴� + Mock.mock(new RegExp('/pc/p/release/invest/info/list'), 'get', () => { + return Mock.mock({ + code: 1, + 'data|2': [ + { + "releaseInvest|10-20": 10, + } + ] + }) + }) + // 涓嬭揪鎶曡祫 淇濆瓨 + Mock.mock(new RegExp('/pc/p/project/info/investInfo/save'), 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); +} diff --git a/project-web/src/mock/projectManagement/record.js b/project-web/src/mock/projectManagement/record.js new file mode 100644 index 0000000..55687ce --- /dev/null +++ b/project-web/src/mock/projectManagement/record.js @@ -0,0 +1,42 @@ +import Mock from 'mockjs'; +export default ({ mock }) => { + if (!mock) return; + // 椤圭洰褰掓。 + // 椤圭洰褰掓。鍒楄〃 + Mock.mock(/\/pc\/p\/project\/info\/record\/list/, 'get', () => { + return Mock.mock({ + code: 1, + data:{ + 'datas|10': [ + { + id: '@id', + projectName: '@ctitle(6,12)', + projectCode: '@id', + projectCategoryName:'@ctitle(4,6)', + buildOrgName:'@city', + approvalDate:'@datetime("yyyy-MM-dd HH:mm")', + createTime:'@datetime("yyyy-MM-dd HH:mm")', + 'archiveStatus|0-2':0 // 0 鏈綊妗� 1 瀹℃牳涓� 2 宸插綊妗� + }, + ], + pageIndex:1, + pageSize:10, + totalRows: 40 + } + }); + }); + // 椤圭洰褰掓。 + Mock.mock(/\/pc\/p\/project\/info\/record\/save/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); + // 椤圭洰杩樺師 + Mock.mock(/\/pc\/p\/project\/info\/record\/upd/, 'post', () => { + return Mock.mock({ + code: 1, + data: 1 + }); + }); +} diff --git a/project-web/src/permission.js b/project-web/src/permission.js new file mode 100644 index 0000000..589d741 --- /dev/null +++ b/project-web/src/permission.js @@ -0,0 +1,67 @@ +import router from './router'; +import store from './store'; +import { Message } from 'element-ui'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; // progress bar style +import { getToken, getCPass } from '@/utils/auth'; // get token from cookie +import getPageTitle from '@/utils/get-page-title'; + +NProgress.configure({ showSpinner: false }); // NProgress Configuration + +const whiteList = ['/login', '/auth-redirect','/resetPwd']; // no redirect whitelist + + +router.beforeEach(async (to, from, next) => { + // start progress bar + NProgress.start(); + + // set page title + document.title = getPageTitle(to.meta.title); + + // determine whether the user has logged in + const hasToken = getToken(); + if (hasToken) { + if (to.path === '/login') { + // if is logged in, redirect to the home page + next({ path: '/' }); + NProgress.done(); + }else if( to.path === '/resetPwd'){ + next(); + NProgress.done(); + }else { + const hasRoles = store.getters.roles && store.getters.roles.length > 0; + if (hasRoles) { + next(); + } else { + try { + const roles = await store.dispatch('user/getInfo').roles; + const accessRoutes = await store.dispatch('permission/generateRoutes'); + router.options.routes = accessRoutes // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� + router.addRoutes(accessRoutes); + next({ ...to, replace: true }); + } catch (error) { + store.dispatch('user/logout').then(() => { + Message.error(error) + next({ path: '/login?redirect=${to.path}' }) + }) + } + } + } + } else { + /* has no token*/ + if (whiteList.indexOf(to.path) !== -1) { + // in the free login whitelist, go directly + next(); + } else { + // other pages that do not have permission to access are redirected to the login page. + // next(`/login?redirect=${to.path}`); + next('/login'); + NProgress.done(); + } + } +}); + +router.afterEach(() => { + // finish progress bar + NProgress.done(); +}); diff --git a/project-web/src/plugins/auth.js b/project-web/src/plugins/auth.js new file mode 100644 index 0000000..845b2e8 --- /dev/null +++ b/project-web/src/plugins/auth.js @@ -0,0 +1,45 @@ + +import store from '@/store'; + +function authPermission(permission) { + const all_permission = '*:*:*'; + const permissions = store.getters && store.getters.permissions; + if (permission && permission.length > 0) { + return permissions.some((v) => { + return all_permission === v || v === permission; + }); + } else { + return false; + } +} + +function authRole(role) { + const super_admin = 'ROLE_SUPERVISOR'; + const roles = store.getters && store.getters.roles; + if (role && role.length > 0) { + return roles.some((v) => { + return super_admin === v || v === role; + }); + } else { + return false; + } +} + +export default { + // 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄� + hasPermi(permission) { + return authPermission(permission); + }, + // 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽彧闇�鍖呭惈鍏朵腑涓�涓� + hasPermiOr(permissions) { + return permissions.some((item) => { + return authPermission(item); + }); + }, + // 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽繀椤诲叏閮ㄦ嫢鏈� + hasPermiAnd(permissions) { + return permissions.every((item) => { + return authPermission(item); + }); + }, +}; diff --git a/project-web/src/plugins/cache.js b/project-web/src/plugins/cache.js new file mode 100644 index 0000000..230410a --- /dev/null +++ b/project-web/src/plugins/cache.js @@ -0,0 +1,118 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +const sessionCache = { + set(key, value) { + if (!sessionStorage) { + return; + } + if (key != null && value != null) { + sessionStorage.setItem(key, value); + } + }, + get(key) { + if (!sessionStorage) { + return null; + } + if (key == null) { + return null; + } + return sessionStorage.getItem(key); + }, + setJSON(key, jsonValue) { + if (jsonValue != null) { + this.set(key, JSON.stringify(jsonValue)); + } + }, + getJSON(key) { + const value = this.get(key); + if (value != null) { + return JSON.parse(value); + } + }, + remove(key) { + sessionStorage.removeItem(key); + }, +}; +const localCache = { + set(key, value) { + if (!localStorage) { + return; + } + if (key != null && value != null) { + localStorage.setItem(key, value); + } + }, + get(key) { + if (!localStorage) { + return null; + } + if (key == null) { + return null; + } + return localStorage.getItem(key); + }, + setJSON(key, jsonValue) { + if (jsonValue != null) { + this.set(key, JSON.stringify(jsonValue)); + } + }, + getJSON(key) { + const value = this.get(key); + if (value != null) { + return JSON.parse(value); + } + }, + remove(key) { + localStorage.removeItem(key); + }, + // 妫�娴嬬紦瀛樻槸鍚﹀瓨鍦� + has(key) { + return localStorage.getItem(key) ? true : false; + }, + setItem(params) { + let obj = { + name: '', + value: '', + expires: '', + startTime: new Date().getTime(), + }; + let options = {}; + //灏唎bj鍜屼紶杩涙潵鐨刾arams鍚堝苟 + Object.assign(options, obj, params); + if (options.expires) { + //濡傛灉options.expires璁剧疆浜嗙殑璇� + //浠ptions.name涓簁ey锛宱ptions涓哄�兼斁杩涘幓 + localStorage.setItem(options.name, JSON.stringify(options)); + } else { + //濡傛灉options.expires娌℃湁璁剧疆锛屽氨鍒ゆ柇涓�涓媣alue鐨勭被鍨� + let type = Object.prototype.toString.call(options.value); + //濡傛灉value鏄璞℃垨鑰呮暟缁勫璞$殑绫诲瀷锛屽氨鍏堢敤JSON.stringify杞竴涓嬶紝鍐嶅瓨杩涘幓 + if (Object.prototype.toString.call(options.value) == '[object Object]') { + options.value = JSON.stringify(options.value); + } + if (Object.prototype.toString.call(options.value) == '[object Array]') { + options.value = JSON.stringify(options.value); + } + localStorage.setItem(options.name, options.value); + } + }, +}; + +export default { + /** + * 浼氳瘽绾х紦瀛� + */ + session: sessionCache, + /** + * 鏈湴缂撳瓨 + */ + local: localCache, +}; diff --git a/project-web/src/plugins/download.js b/project-web/src/plugins/download.js new file mode 100644 index 0000000..107363f --- /dev/null +++ b/project-web/src/plugins/download.js @@ -0,0 +1,82 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +import { saveAs } from 'file-saver'; +import axios from 'axios'; +import { getToken } from '@/utils/auth'; +import { Message } from 'element-ui'; + +const baseURL = process.env.VUE_APP_BASE_API; + +export default { + name(name, isDelete = true) { + var url = baseURL + '/common/download?fileName=' + encodeURI(name) + '&delete=' + isDelete; + axios({ + method: 'get', + url: url, + responseType: 'blob', + headers: { Authorization: 'Bearer ' + getToken() }, + }).then(async (res) => { + const isLogin = await this.blobValidate(res.data); + if (isLogin) { + const blob = new Blob([res.data]); + this.saveAs(blob, decodeURI(res.headers['download-filename'])); + } else { + Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�'); + } + }); + }, + resource(resource) { + var url = baseURL + '/common/download/resource?resource=' + encodeURI(resource); + axios({ + method: 'get', + url: url, + responseType: 'blob', + headers: { Authorization: 'Bearer ' + getToken() }, + }).then(async (res) => { + const isLogin = await this.blobValidate(res.data); + if (isLogin) { + const blob = new Blob([res.data]); + this.saveAs(blob, decodeURI(res.headers['download-filename'])); + } else { + Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�'); + } + }); + }, + zip(url, name) { + var url = baseURL + url; + axios({ + method: 'get', + url: url, + responseType: 'blob', + headers: { Authorization: 'Bearer ' + getToken() }, + }).then(async (res) => { + const isLogin = await this.blobValidate(res.data); + if (isLogin) { + const blob = new Blob([res.data], { type: 'application/zip' }); + this.saveAs(blob, name); + } else { + Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�'); + } + }); + }, + saveAs(text, name, opts) { + saveAs(text, name, opts); + }, + async blobValidate(data) { + try { + const text = await data.text(); + JSON.parse(text); + return false; + } catch (error) { + return true; + } + }, +}; diff --git a/project-web/src/plugins/index.js b/project-web/src/plugins/index.js new file mode 100644 index 0000000..0f7ee29 --- /dev/null +++ b/project-web/src/plugins/index.js @@ -0,0 +1,17 @@ +import auth from './auth'; +import cache from './cache'; +import modal from './modal'; +import download from './download'; + +export default { + install(Vue) { + // 璁よ瘉瀵硅薄 + Vue.prototype.$auth = auth; + // 缂撳瓨瀵硅薄 + Vue.prototype.$cache = cache; + // 妯℃�佹瀵硅薄 + Vue.prototype.$modal = modal; + // 涓嬭浇鏂囦欢 + Vue.prototype.$download = download; + }, +}; diff --git a/project-web/src/plugins/modal.js b/project-web/src/plugins/modal.js new file mode 100644 index 0000000..bcd71e8 --- /dev/null +++ b/project-web/src/plugins/modal.js @@ -0,0 +1,85 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +import { Message, MessageBox, Notification, Loading } from 'element-ui'; + +let loadingInstance; + +export default { + // 娑堟伅鎻愮ず + msg(content) { + Message.info(content); + }, + // 閿欒娑堟伅 + msgError(content) { + Message.error(content); + }, + // 鎴愬姛娑堟伅 + msgSuccess(content) { + Message.success(content); + }, + // 璀﹀憡娑堟伅 + msgWarning(content) { + Message.warning(content); + }, + // 寮瑰嚭鎻愮ず + alert(content) { + MessageBox.alert(content, '绯荤粺鎻愮ず'); + }, + // 閿欒鎻愮ず + alertError(content) { + MessageBox.alert(content, '绯荤粺鎻愮ず', { type: 'error' }); + }, + // 鎴愬姛鎻愮ず + alertSuccess(content) { + MessageBox.alert(content, '绯荤粺鎻愮ず', { type: 'success' }); + }, + // 璀﹀憡鎻愮ず + alertWarning(content) { + MessageBox.alert(content, '绯荤粺鎻愮ず', { type: 'warning' }); + }, + // 閫氱煡鎻愮ず + notify(content) { + Notification.info(content); + }, + // 閿欒閫氱煡 + notifyError(content) { + Notification.error(content); + }, + // 鎴愬姛閫氱煡 + notifySuccess(content) { + Notification.success(content); + }, + // 璀﹀憡閫氱煡 + notifyWarning(content) { + Notification.warning(content); + }, + // 纭绐椾綋 + confirm(content) { + return MessageBox.confirm(content, '绯荤粺鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }); + }, + // 鎵撳紑閬僵灞� + loading(content) { + loadingInstance = Loading.service({ + lock: true, + text: content, + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)', + }); + }, + // 鍏抽棴閬僵灞� + closeLoading() { + loadingInstance.close(); + }, +}; diff --git a/project-web/src/router/index.js b/project-web/src/router/index.js new file mode 100644 index 0000000..1af6e2b --- /dev/null +++ b/project-web/src/router/index.js @@ -0,0 +1,132 @@ + +import Vue from 'vue'; +import Router from 'vue-router'; + +Vue.use(Router); + +/* Layout */ +import Layout from '@/layout'; + + +/** + * Note: sub-menu only appear when route children.length >= 1 + * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html + * + * hidden: true if set true, item will not show in the sidebar(default is false) + * alwaysShow: true if set true, will always show the root menu + * if not set alwaysShow, when item has more than one children route, + * it will becomes nested mode, otherwise not show the root menu + * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb + * name:'router-name' the name is used by <keep-alive> (must set!!!) + * meta : { + roles: ['admin','editor'] control the page roles (you can set multiple roles) + title: 'title' the name show in sidebar and breadcrumb (recommend set) + icon: 'svg-name' the icon show in the sidebar + noCache: true if set true, the page will no be cached(default is false) + affix: true if set true, the tag will affix in the tags-view + breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) + activeMenu: '/example/list' if set path, the sidebar will highlight the path you set + } + */ + +/** + * constantRoutes + * a base page that does not have permission requirements + * all roles can be accessed + * + */ + +export const constantRoutes = [ + + { + path: '/redirect', + component: Layout, + hidden: true, + children: [ + { + path: '/redirect/:path(.*)', + component: () => import('@/views/redirect/index'), + }, + ], + }, + { + path: '/login', + component: () => import('@/views/login/index'), + hidden: true, + }, + { + path: '/dataV', + component: () => import('@/views/dataV/static'), + hidden: true, + }, + { + path: '/resetPwd', + component: () => import('@/views/login/resetPassword'), + hidden: true, + }, + { + path: '/auth-redirect', + component: () => import('@/views/login/auth-redirect'), + hidden: true, + }, + { + path: '/401', + component: () => import('@/views/error-page/401'), + hidden: true, + }, + { + path: '/', + component: Layout, + redirect: '/dashboard', + children: [ + { + path: 'dashboard', + component: () => import('@/views/dashboard/index'), + name: 'Dashboard', + meta: { title: '涓婚〉', icon: 'dashboard', affix: true }, + }, + ], + }, + { + path: '/', + component: Layout, + children: [ + { + path: 'userInfo', + component: () => import('@/views/systemSetting/user/profile/index'), + name: 'userInfo', + meta: { title: '涓汉淇℃伅', icon: 'dashboard', affix: false }, + }, + ], + }, + // 404 page must be placed at the end !!! + { + path: '/404', + component: () => import('@/views/error-page/404'), + redirect: '/404', + hidden: true, + }, + // { path: '*', redirect: '/404', hidden: true }, +]; + +/** + * asyncRoutes + * the routes that need to be dynamically loaded based on user roles + */ +export const asyncRoutes = []; +const createRouter = () => + new Router({ + // mode: 'history', // require service support + scrollBehavior: () => ({ y: 0 }), + routes: constantRoutes, + }); + +const router = createRouter(); + +// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 +export function resetRouter() { + const newRouter = createRouter(); + router.matcher = newRouter.matcher; // reset router +} + +export default router; diff --git a/project-web/src/settings.js b/project-web/src/settings.js new file mode 100644 index 0000000..1a16a49 --- /dev/null +++ b/project-web/src/settings.js @@ -0,0 +1,64 @@ + +// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞 +const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}/api/`; +module.exports = { + // 鎺ュ彛璇锋眰鍦板潃 + apiBaseURL: VUE_APP_API_URL, + + title: '鍥哄畾璧勪骇椤圭洰杩涘害', + + /** + * @type {boolean} true | false + * @description Whether show the settings right-panel + * 鏄惁鏄剧ず璁剧疆鍙充晶闈㈡澘 + */ + showSettings: true, + + /** + * @type {boolean} true | false + * @description Whether need tagsView + * 鏄惁浣跨敤tagsView + */ + tagsView: true, + + /** + * @type {boolean} true | false + * @description Whether fix the header + * 鏄惁鍥哄畾header + */ + fixedHeader: true, + + /** + * @type {boolean} true | false + * @description Whether show the logo in sidebar + * 鏄惁鍦ㄤ晶杈规爮涓樉绀簂ogo + */ + sidebarLogo: false, + + /** + * @type {boolean} true | false + * @description Whether to turn on top bar navigation + * 鏄惁寮�鍚《鏍忓鑸� + */ + topNav: true, + + /** + * @type {boolean} true | false + * @description Whether to navigation icon + * 鏄惁鏄剧ず瀵艰埅icon + */ + navIcon: true, + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production', + /* + * @Author : can + * @Date : 2023-7-13 + * @Description : sesssionToken 鏍囪瘑 + */ + sessionToken: 'Authorization' +}; diff --git a/project-web/src/store/getters.js b/project-web/src/store/getters.js new file mode 100644 index 0000000..450c288 --- /dev/null +++ b/project-web/src/store/getters.js @@ -0,0 +1,23 @@ + +const getters = { + sidebar: (state) => state.app.sidebar, + size: (state) => state.app.size, + device: (state) => state.app.device, + visitedViews: (state) => state.tagsView.visitedViews, + cachedViews: (state) => state.tagsView.cachedViews, + token: (state) => state.user.token, + avatar: (state) => state.user.avatar, + name: (state) => state.user.name, + introduction: (state) => state.user.introduction, + roles: (state) => state.user.roles, + permission_routes: (state) => state.permission.routes, + permissions: (state) => state.user.permissions, + myButtonPermission:(state) => state.user.myButtonPermission, + sidebarRouters: (state) => state.permission.sidebarRouters, + errorLogs: (state) => state.errorLog.logs, + isLogin: (state) => state.user.isLogin, + frontDomain: (state) => state.settings.frontDomain, + info: state => state.user.info, + userInfo: state => state.user.userInfo, +}; +export default getters; diff --git a/project-web/src/store/index.js b/project-web/src/store/index.js new file mode 100644 index 0000000..04fd5a9 --- /dev/null +++ b/project-web/src/store/index.js @@ -0,0 +1,24 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import getters from './getters'; + +Vue.use(Vuex); + +// https://webpack.js.org/guides/dependency-management/#requirecontext +const modulesFiles = require.context('./modules', true, /\.js$/); + +// you do not need `import app from './modules/app'` +// it will auto require all vuex module from modules file +const modules = modulesFiles.keys().reduce((modules, modulePath) => { + // set './app.js' => 'app' + const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1'); + const value = modulesFiles(modulePath); + modules[moduleName] = value.default; + return modules; +}, {}); +const store = new Vuex.Store({ + modules, + getters, +}); + +export default store; diff --git a/project-web/src/store/modules/app.js b/project-web/src/store/modules/app.js new file mode 100644 index 0000000..f49977b --- /dev/null +++ b/project-web/src/store/modules/app.js @@ -0,0 +1,72 @@ + +import Cookies from 'js-cookie'; + +const state = { + msgNumData: { + cuibantotalnum: 0, + daibantotalnum: 0, + notreadnum: 0, + totalnotreadnum: 0, + readnum: 0, + totalnum: 0 + }, //閫氱煡娑堟伅鏁版嵁 + captureStatus: false, //鎴浘鎻掍欢鍒濆鍖栫姸鎬� + sidebar: { + opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, + withoutAnimation: false, + }, + device: 'desktop', + size: Cookies.get('size') || 'mini', +}; + +const mutations = { + SET_MSG_NUM:(state,obj)=>{ + state.msgNumData = obj; + }, + SET_CAPTURE_SATE:(state,status)=>{ + state.captureStatus = status; + }, + TOGGLE_SIDEBAR: (state) => { + state.sidebar.opened = !state.sidebar.opened; + state.sidebar.withoutAnimation = false; + if (state.sidebar.opened) { + Cookies.set('sidebarStatus', 1); + } else { + Cookies.set('sidebarStatus', 0); + } + }, + CLOSE_SIDEBAR: (state, withoutAnimation) => { + Cookies.set('sidebarStatus', 0); + state.sidebar.opened = false; + state.sidebar.withoutAnimation = withoutAnimation; + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device; + }, + SET_SIZE: (state, size) => { + state.size = size; + Cookies.set('size', size); + }, +}; + +const actions = { + toggleSideBar({ commit }) { + commit('TOGGLE_SIDEBAR'); + }, + closeSideBar({ commit }, { withoutAnimation }) { + commit('CLOSE_SIDEBAR', withoutAnimation); + }, + toggleDevice({ commit }, device) { + commit('TOGGLE_DEVICE', device); + }, + setSize({ commit }, size) { + commit('SET_SIZE', size); + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/store/modules/errorLog.js b/project-web/src/store/modules/errorLog.js new file mode 100644 index 0000000..0d41a2b --- /dev/null +++ b/project-web/src/store/modules/errorLog.js @@ -0,0 +1,38 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +const state = { + logs: [], +}; + +const mutations = { + ADD_ERROR_LOG: (state, log) => { + state.logs.push(log); + }, + CLEAR_ERROR_LOG: (state) => { + state.logs.splice(0); + }, +}; + +const actions = { + addErrorLog({ commit }, log) { + commit('ADD_ERROR_LOG', log); + }, + clearErrorLog({ commit }) { + commit('CLEAR_ERROR_LOG'); + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/store/modules/permission.js b/project-web/src/store/modules/permission.js new file mode 100644 index 0000000..71137e6 --- /dev/null +++ b/project-web/src/store/modules/permission.js @@ -0,0 +1,181 @@ +import * as roleApi from '@/api/system/roleApi.js'; +import Layout from '@/layout/index' + +/** + * Filter asynchronous routing tables by recursion + * @param routes asyncRoutes + * @param roles + */ +export function filterAsyncRoutes(routes, roles) { + const res = []; + routes.forEach((route) => { + const tmp = { ...route }; + if (tmp.child) { + tmp.child = filterAsyncRoutes(tmp.child, roles); + } + res.push(tmp); + }); + + return res; +} + +const state = { + routes: [], + addRoutes: [], + topbarRouters: [], + sidebarRouters: JSON.parse(localStorage.getItem('sidebarRouters')) || [], +}; + +const mutations = { + SET_ROUTES: (state, routes) => { + state.addRoutes = routes; + state.routes = routes; + }, + SET_TOPBAR_ROUTES: (state, routes) => { + state.topbarRouters = routes; + }, + SET_SIDEBAR_ROUTERS: (state, routes) => { + state.sidebarRouters = routes; + localStorage.setItem('sidebarRouters', JSON.stringify(routes)); + if (!routes.length) localStorage.removeItem('sidebarRouters'); + }, +}; +const actions = { + generateRoutes({ commit }) { + return new Promise(async (resolve) => { + let accessedRoutes = []; + let menus = await roleApi.menuListApi(); + commit('SET_SIDEBAR_ROUTERS', menus); + let list = tree2arr(JSON.parse(JSON.stringify(menus)),[]) + let menuData = []; + if (list != null && list.length > 0) { + const rlist = []; + for (let i = 0; i < list.length; i++) { + const sm = list[i]; + if (sm.pid == 0) { + rlist.push(getResultMap(sm)) + list.splice(i, 1) + i-- + } + + } + menuData = setChildren(list, rlist) + } + commit('SET_ROUTES', menuData); + resolve(menuData); + }); + }, +}; + +function comRouter(menus, asyncRouter, hasLeft) { + const res = []; + asyncRouter.forEach((router) => { + const _leftUrl = hasLeft ? hasLeft + '/' + router.path : router.path; + const _hasPromise = menus.filter((item) => item.url.startsWith(_leftUrl)); + if (_hasPromise.length > 0) { + res.push(router); + } + if (router.children) { + comRouter(menus, router.children, router.path); + } + }); + return res; +} + + +const setChildren = (list, rlist) => { + let b// 鍑忓皯娌″繀瑕佺殑閬嶅巻 + for (let x = 0; x < rlist.length; x++) { + const m = rlist[x] + b = false + for (let i = 0; i < list.length; i++) { + const sm = list[i] + if (sm.pid === m.id) { // 瀛樺湪瀛愯妭鐐� + b = true + if (m.children === undefined) { + m.children = [] + } + const clist = m.children + const cmap = getResultMap(sm) + clist.push(cmap) + list.splice(i, 1) + i-- + setChildren(list, clist) + continue + } + if (b) { + break + } + } + } + return rlist +} +const tree2arr = (tree)=>{ + let arr=[] + tree.map(item=>{ + arr.push(item) + if(item.childList.length>0){ + arr.push(...tree2arr(item.childList)) + } + }) + return arr +} +const getResultMap = sysMenu => { //M 鐩綍 C鑿滃崟 F鎸夐挳 + const result = {} + result.id = sysMenu.id + result.name = 'menu' + sysMenu.id + if (sysMenu.menuType == 'M') { // 鐩綍 + + if (sysMenu.pid == '0') { + result.path = '' + result.component = Layout + result.redirect = 'noredirect' + result.alwaysShow = false + } else { + result.path = '' + result.component = () => import(`@/views/routerView/index`) + result.redirect = 'noredirect' + } + } else if (sysMenu.menuType == 'C') { + let url = sysMenu.component + if(url.substr(0, 7) == 'http://' || url.substr(0,8)=='https://'){ + if(url.indexOf('?')>-1){ + result.path = url+'&sessionToken='+getToken() + }else{ + result.path = url+'?sessionToken='+getToken() + } + }else if(url.indexOf("?")>-1){ + const params = url.substring(url.indexOf("?")+1,url.length).split("&"); + let param={} + params.forEach(function(v){ + param[v.split("=")[0]] = v.split("=")[1] + }) + result.props=param + url = url.substring(0,url.indexOf("?")) + result.path = '/views' + url+'/'+sysMenu.id + result.component = () => import(`@/views/${url}`) + }else{ + result.path = sysMenu.component + // result.component = () => import(`@/views/${url}`) + result.component= resolve => require([`@/views${url}`],resolve) + } + + + } else { + result.hidden = true + } + + const result1 = {} + result1.title = sysMenu.name + result1.icon = sysMenu.icons + result1.noCache = false + // result1.role = ['admin','editor'] + result.meta = result1 + return result +} +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/store/modules/settings.js b/project-web/src/store/modules/settings.js new file mode 100644 index 0000000..08db1e5 --- /dev/null +++ b/project-web/src/store/modules/settings.js @@ -0,0 +1,50 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import defaultSettings from '@/settings'; +import Cache from '@/plugins/cache'; +const { showSettings, tagsView, fixedHeader, sidebarLogo, topNav, sideTheme, navIcon } = defaultSettings; +const storageSetting = Cache.local.has('layout-setting') ? Cache.local.getJSON('layout-setting') : ''; +const state = { + theme: storageSetting.theme || '#409EFF', + sideTheme: storageSetting.sideTheme || sideTheme, + topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, + showSettings: showSettings, + tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView, + fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader, + sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo, + navIcon: storageSetting.navIcon === undefined ? navIcon : storageSetting.navIcon, + frontDomain: localStorage.getItem('frontDomain') || '', //绉诲姩绔煙鍚� +}; +const mutations = { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value; + } + }, + SET_FrontDomain(state, frontDomain) { + state.frontDomain = frontDomain; + localStorage.setItem('frontDomain', frontDomain); + if (!frontDomain) localStorage.removeItem('frontDomain'); + }, +}; + +const actions = { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data); + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/store/modules/tagsView.js b/project-web/src/store/modules/tagsView.js new file mode 100644 index 0000000..52abc05 --- /dev/null +++ b/project-web/src/store/modules/tagsView.js @@ -0,0 +1,170 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +const state = { + visitedViews: [], + cachedViews: [], +}; + +const mutations = { + ADD_VISITED_VIEW: (state, view) => { + if (state.visitedViews.some((v) => v.path === view.path)) return; + state.visitedViews.push( + Object.assign({}, view, { + title: view.meta.title || 'no-name', + }), + ); + }, + ADD_CACHED_VIEW: (state, view) => { + if (state.cachedViews.includes(view.name)) return; + if (!view.meta.noCache) { + state.cachedViews.push(view.name); + } + }, + + DEL_VISITED_VIEW: (state, view) => { + for (const [i, v] of state.visitedViews.entries()) { + if (v.path === view.path) { + state.visitedViews.splice(i, 1); + break; + } + } + }, + DEL_CACHED_VIEW: (state, view) => { + const index = state.cachedViews.indexOf(view.name); + index > -1 && state.cachedViews.splice(index, 1); + }, + + DEL_OTHERS_VISITED_VIEWS: (state, view) => { + state.visitedViews = state.visitedViews.filter((v) => { + return v.meta.affix || v.path === view.path; + }); + }, + DEL_OTHERS_CACHED_VIEWS: (state, view) => { + const index = state.cachedViews.indexOf(view.name); + if (index > -1) { + state.cachedViews = state.cachedViews.slice(index, index + 1); + } else { + // if index = -1, there is no cached tags + state.cachedViews = []; + } + }, + + DEL_ALL_VISITED_VIEWS: (state) => { + // keep affix tags + const affixTags = state.visitedViews.filter((tag) => tag.meta.affix); + state.visitedViews = affixTags; + }, + DEL_ALL_CACHED_VIEWS: (state) => { + state.cachedViews = []; + }, + + UPDATE_VISITED_VIEW: (state, view) => { + for (let v of state.visitedViews) { + if (v.path === view.path) { + v = Object.assign(v, view); + break; + } + } + }, +}; + +const actions = { + addView({ dispatch }, view) { + dispatch('addVisitedView', view); + dispatch('addCachedView', view); + }, + addVisitedView({ commit }, view) { + commit('ADD_VISITED_VIEW', view); + }, + addCachedView({ commit }, view) { + commit('ADD_CACHED_VIEW', view); + }, + + delView({ dispatch, state }, view) { + return new Promise((resolve) => { + dispatch('delVisitedView', view); + dispatch('delCachedView', view); + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews], + }); + }); + }, + delVisitedView({ commit, state }, view) { + return new Promise((resolve) => { + commit('DEL_VISITED_VIEW', view); + resolve([...state.visitedViews]); + }); + }, + delCachedView({ commit, state }, view) { + return new Promise((resolve) => { + commit('DEL_CACHED_VIEW', view); + resolve([...state.cachedViews]); + }); + }, + + delOthersViews({ dispatch, state }, view) { + return new Promise((resolve) => { + dispatch('delOthersVisitedViews', view); + dispatch('delOthersCachedViews', view); + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews], + }); + }); + }, + delOthersVisitedViews({ commit, state }, view) { + return new Promise((resolve) => { + commit('DEL_OTHERS_VISITED_VIEWS', view); + resolve([...state.visitedViews]); + }); + }, + delOthersCachedViews({ commit, state }, view) { + return new Promise((resolve) => { + commit('DEL_OTHERS_CACHED_VIEWS', view); + resolve([...state.cachedViews]); + }); + }, + + delAllViews({ dispatch, state }, view) { + return new Promise((resolve) => { + dispatch('delAllVisitedViews', view); + dispatch('delAllCachedViews', view); + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews], + }); + }); + }, + delAllVisitedViews({ commit, state }) { + return new Promise((resolve) => { + commit('DEL_ALL_VISITED_VIEWS'); + resolve([...state.visitedViews]); + }); + }, + delAllCachedViews({ commit, state }) { + return new Promise((resolve) => { + commit('DEL_ALL_CACHED_VIEWS'); + resolve([...state.cachedViews]); + }); + }, + + updateVisitedView({ commit }, view) { + commit('UPDATE_VISITED_VIEW', view); + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/store/modules/user.js b/project-web/src/store/modules/user.js new file mode 100644 index 0000000..4910810 --- /dev/null +++ b/project-web/src/store/modules/user.js @@ -0,0 +1,231 @@ +import {getInfo, login, logout,getCurInfo} from '@/api/user'; +import {getToken, removeToken,setUserInfo, setToken,getUser,getUserDetail,setUserDetail,setCPass} from '@/utils/auth'; +import router, {resetRouter} from '@/router'; +import {isLoginApi} from '@/api/system/sms'; +import Cookies from 'js-cookie'; +import {getQueryString} from '@/libs/wechat'; +import {Loading} from 'element-ui'; +import {encrypt} from '@/utils/jsencrypt' +import store from "@/store"; + +const state = { + info: getUser(), + userInfo:getUserDetail(),//鐢ㄦ埛璇︾粏淇℃伅 + token: getToken(), + userId:'', + name: '', + avatar: '', + introduction: '', + roles: [], + isLogin: Cookies.get('isLogin'), + permissions: [], + myButtonPermission:[], + captcha: { + captchaVerification: '', + secretKey: '', + token: '', + }, //婊戝潡楠岃瘉token +}; + +const mutations = { + SET_USER_INFO:(state, info)=>{ + // 璁剧疆璇︾粏淇℃伅 + state.userInfo = info + setUserDetail(info) + }, + SET_MYBUTTONPERMISSION: (state, myButtonPermission) => { + state.myButtonPermission = myButtonPermission + }, + SET_TOKEN: (state, token) => { + state.token = token; + setToken(token) + }, + SET_USERINFO: (state, user) =>{ + // 淇濆瓨鐢ㄦ埛淇℃伅 + state.info = user + setUserInfo(user) + }, + SET_ISLOGIN: (state, isLogin) => { + state.isLogin = isLogin; + Cookies.set(isLogin); + }, + SET_INTRODUCTION: (state, introduction) => { + state.introduction = introduction; + }, + SET_USERID: (state, id) => { + state.userId = id; + }, + SET_NAME: (state, name) => { + state.name = name; + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar; + }, + SET_ROLES: (state, roles) => { + state.roles = roles; + }, + SET_PERMISSIONS: (state, permissions) => { + state.permissions = permissions; + }, + SET_CAPTCHA: (state, captcha) => { + state.captcha = captcha; + } +}; + +const actions = { + // user login + login({ commit }, userInfo) { + // const { account, pwd, key, code, wxCode } = userInfo; + const username = userInfo.account.trim() + // const password = userInfo.password + const password = encrypt(userInfo.password) + const code = userInfo.code + const uuid = userInfo.uuid + const loginType = userInfo.loginType + const verifyType = userInfo.verifyType + Loading.service(); + return new Promise((resolve, reject) => { + // login(userInfo) + login(username, password, code, uuid, loginType, verifyType) + .then((data) => { + let loadingInstance = Loading.service(); + loadingInstance.close(); + commit('SET_TOKEN', data.token); + commit('SET_USERINFO', data.userInfo); + getCurInfo().then(res=>{ + commit('SET_USER_INFO',res) + }) + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + }, + + // 鐭俊鏄惁鐧诲綍 + isLogin({ commit }, userInfo) { + return new Promise((resolve, reject) => { + isLoginApi() + .then(async (res) => { + commit('SET_ISLOGIN', res.isLogin); + resolve(res); + }) + .catch((res) => { + commit('SET_ISLOGIN', false); + reject(res); + }); + }); + }, + + // get user info + getInfo({ commit, state }) { + return new Promise((resolve, reject) => { + getInfo(state.token) + .then(data => { + if (!data) { + reject('Verification failed, please Login again.'); + } + let roles = data.roleIds; + if (!roles || roles.length <= 0) { + reject('getInfo: roles must be a non-null array!'); + } + // 鑾峰彇骞惰缃慨鏀瑰瘑鐮佺殑鐘舵�� + setCPass(data.force_change_pass) + if( data.force_change_pass ){ + router.push({ path: '/resetPwd' }); + reject(data); + } + commit('SET_USERID', data.id); + commit('SET_ROLES', roles); + commit('SET_NAME', data.account); + commit('SET_AVATAR', 'http://kaifa.crmeb.net/system/images/admin_logo.png'); + commit('SET_INTRODUCTION', data.realName); + commit('SET_PERMISSIONS', data.permissions); //鏉冮檺鏍囪瘑 + resolve(data); + }) + .catch((error) => { + reject(error); + }); + }); + }, + + // user logout + logout({ commit, state, dispatch }) { + Loading.service(); + return new Promise((resolve, reject) => { + logout(state.token) + .then(() => { + let loadingInstance = Loading.service(); + loadingInstance.close(); + commit('SET_TOKEN', ''); + commit('SET_ROLES', []); + commit('SET_PERMISSIONS', []); + commit('SET_CONNECTION_CLEAR', null) // 鏂紑閾炬帴 + removeToken(); + resetRouter(); + // localStorage.clear(); + Cookies.remove('storeStaffList'); + Cookies.remove('JavaInfo'); + localStorage.clear('sidebarRouters'); + sessionStorage.removeItem('token'); + // reset visited views and cached views + // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485 + dispatch('tagsView/delAllViews', null, { root: true }); + + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + }, + + // remove token + resetToken({ commit }) { + return new Promise((resolve) => { + commit('SET_TOKEN', ''); + commit('SET_ROLES', []); + removeToken(); + resolve(); + }); + }, + // // 璁剧疆token + // setToken({ commit }, state) { + // return new Promise((resolve) => { + // commit('SET_TOKEN', state.token); + // // Cookies.set('JavaInfo', JSON.stringify(state)); + // setToken(data.token); + // resolve(); + // }); + // }, + + // dynamically modify permissions + changeRoles({ commit, dispatch }, role) { + return new Promise(async (resolve) => { + // const token = role + '-token'; + // + // commit('SET_TOKEN', token); + // // setToken(token); + // + const { roles } = await dispatch('getInfo'); + // resetRouter(); + // generate accessible routes map based on roles + const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }); + // dynamically add accessible routes + router.addRoutes(accessRoutes); + + // reset visited views and cached views + dispatch('tagsView/delAllViews', null, { root: true }); + + resolve(); + }); + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, +}; diff --git a/project-web/src/styles/btn.scss b/project-web/src/styles/btn.scss new file mode 100644 index 0000000..df96fd0 --- /dev/null +++ b/project-web/src/styles/btn.scss @@ -0,0 +1,99 @@ +@import './variables.scss'; + +@mixin colorBtn($color) { + background: $color; + + &:hover { + color: $color; + + &:before, + &:after { + background: $color; + } + } +} + +.blue-btn { + @include colorBtn($blue); +} + +.light-blue-btn { + @include colorBtn($light-blue); +} + +.red-btn { + @include colorBtn($red); +} + +.pink-btn { + @include colorBtn($pink); +} + +.green-btn { + @include colorBtn($green); +} + +.tiffany-btn { + @include colorBtn($tiffany); +} + +.yellow-btn { + @include colorBtn($yellow); +} + +.pan-btn { + font-size: 14px; + color: #fff; + padding: 14px 36px; + border-radius: 8px; + border: none; + outline: none; + transition: 600ms ease all; + position: relative; + display: inline-block; + + &:hover { + background: #fff; + + &:before, + &:after { + width: 100%; + transition: 600ms ease all; + } + } + + &:before, + &:after { + content: ''; + position: absolute; + top: 0; + right: 0; + height: 2px; + width: 0; + transition: 400ms ease all; + } + + &::after { + right: inherit; + top: inherit; + left: 0; + bottom: 0; + } +} + +.custom-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + color: #fff; + -webkit-appearance: none; + text-align: center; + box-sizing: border-box; + outline: 0; + margin: 0; + padding: 10px 15px; + font-size: 14px; + border-radius: 4px; +} diff --git a/project-web/src/styles/element-ui.scss b/project-web/src/styles/element-ui.scss new file mode 100644 index 0000000..bc6f8e8 --- /dev/null +++ b/project-web/src/styles/element-ui.scss @@ -0,0 +1,99 @@ +// cover some element-ui styles +.el-aside{ + margin: 0!important; +} +.el-breadcrumb__inner, +.el-breadcrumb__inner a { + font-weight: 400 !important; +} + +.el-upload { + input[type='file'] { + display: none !important; + } +} + +.el-upload__input { + display: none; +} + +.cell { + .el-tag { + margin-right: 0px; + } +} + +.small-padding { + .cell { + padding-left: 5px; + padding-right: 5px; + } +} + +.fixed-width { + .el-button--mini { + padding: 7px 10px; + width: 60px; + } +} + +.status-col { + .cell { + padding: 0 10px; + text-align: center; + + .el-tag { + margin-right: 0px; + } + } +} + +// to fixed https://github.com/ElemeFE/element/issues/2461 +.el-dialog { + transform: none; + left: 0; + position: relative; + margin: 0 auto; +} + +// refine element ui upload +.upload-container { + .el-upload { + //width: 100%; + + .el-upload-dragger { + width: 100%; + height: 200px; + } + } +} + +// dropdown +.el-dropdown-menu { + a { + display: block; + } +} + +// fix date-picker ui bug in filter-item +.el-range-editor.el-input__inner { + display: inline-flex !important; +} + +// to fix el-date-picker css style +.el-range-separator { + box-sizing: content-box; +} +.el-card.is-always-shadow { + //box-shadow: none; +} +.el-form-item__label{ + font-weight: normal; +} +.el-dialog__body::-webkit-scrollbar{ + display: none; +} + +.el-dialog__body::-webkit-scrollbar { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} diff --git a/project-web/src/styles/element-variables.scss b/project-web/src/styles/element-variables.scss new file mode 100644 index 0000000..ddbe7df --- /dev/null +++ b/project-web/src/styles/element-variables.scss @@ -0,0 +1,31 @@ +/** +* I think element-ui's default theme color is too light for long-term use. +* So I modified the default color and you can modify it to your liking. +**/ + +/* theme color */ +$--color-primary: #0D997C;//#1890ff; +$--color-success: #11AD6F; //#13ce66; +$--color-warning: #ffba00; +$--color-danger: #ff4949; +// $--color-info: #1E1E1E; + +$--button-font-weight: 400; + +// $--color-text-regular: #1f2d3d; + +$--border-color-light: #dfe4ed; +$--border-color-lighter: #e6ebf5; + +$--table-border: 1px solid#dfe6ec; + +/* icon font path, required */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import '~element-ui/packages/theme-chalk/src/index'; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + theme: $--color-primary; +} diff --git a/project-web/src/styles/index.scss b/project-web/src/styles/index.scss new file mode 100644 index 0000000..e132428 --- /dev/null +++ b/project-web/src/styles/index.scss @@ -0,0 +1,330 @@ +@import './variables.scss'; +@import './mixin.scss'; +@import './transition.scss'; +@import './element-ui.scss'; +@import './sidebar.scss'; +@import './btn.scss'; +@import './styles.scss'; + +body { + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; +} + +label { + font-weight: 700; +} + +html { + height: 100%; + box-sizing: border-box; +} + +#app { + height: 100%; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} +// 鏃犻渶婊氬姩鏉� +.no-scrollbar::-webkit-scrollbar { + display: none!important; +} +.app-main::-webkit-scrollbar { + display: none!important; +} +.filter-container{ + padding: 15px 10px 0 15px; + background-color: #F6F8FC; +} +.no-padding { + padding: 0px !important; +} + +.padding-content { + padding: 4px 0; +} + +a:focus, +a:active { + outline: none; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + text-decoration: none; +} + +div:focus { + outline: none; +} + +.fr { + float: right; +} + +.fl { + float: left; +} + +.pr-5 { + padding-right: 5px; +} + +.pl-5 { + padding-left: 5px; +} + +.block { + display: block; +} + +.pointer { + cursor: pointer; +} + +.inlineBlock { + display: block; +} + +.clearfix { + &:after { + visibility: hidden; + display: block; + font-size: 0; + content: ' '; + clear: both; + height: 0; + } +} + +aside { + //background: #eef1f6; + padding: 8px 24px; + margin-bottom: 20px; + border-radius: 2px; + display: block; + line-height: 32px; + font-size: 16px; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', + 'Droid Sans', 'Helvetica Neue', sans-serif; + color: #2c3e50; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + a { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } + } +} + +//main-container鍏ㄥ眬鏍峰紡 +.app-container { + padding: 16px; + height: 100%; +} + +.components-container { + position: relative; +} + +.pagination-container { + margin-top: 30px; +} + +.text-center { + text-align: center; +} + +.sub-navbar { + height: 50px; + line-height: 50px; + position: relative; + width: 100%; + text-align: right; + padding-right: 20px; + transition: 600ms ease position; + background: linear-gradient( + 90deg, + rgba(32, 182, 249, 1) 0%, + rgba(32, 182, 249, 1) 0%, + rgba(33, 120, 241, 1) 100%, + rgba(33, 120, 241, 1) 100% + ); + + .subtitle { + font-size: 20px; + color: #fff; + } + + &.draft { + background: #d0d0d0; + } + + &.deleted { + background: #d0d0d0; + } +} + +.link-type, +.link-type:focus { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } +} + +.filter-container { + .filter-item { + display: inline-block; + vertical-align: middle; + margin-bottom: 10px; + } +} + +//refine vue-multiselect plugin +.multiselect { + line-height: 16px; +} + +.multiselect--active { + z-index: 1000 !important; +} + +.ml10 { + margin-left: 10px; +} +.ml20 { + margin-left: 20px; +} +.mb10 { + margin-bottom: 10px; +} +.link { + color: #409eff; + cursor: pointer; +} +.color-red { + color: #f56c6c; +} +.btn-width100 { + width: 100%; +} +.el-card__body{ + border-radius: 8px!important; +} +// 2023-7-13 鏂版坊鍔犲叕鍏辨牱寮� +.font-12 { + font-size: 12px; +} +.font-13{ + font-size: 13px; +} +.font-14 { + font-size: 14px; +} +.font-15 { + font-size: 15px; +} +.font-16 { + font-size: 16px; +} + +.font-18 { + font-size: 18px; +} + +.f-r { + display: flex; + align-items: center; +} + +.f-col { + display: flex; + flex-direction: column; +} + +.f-r-top { + align-items: flex-start; +} + +.f-r-center { + justify-content: center; +} + +.f-r-between { + justify-content: space-between; +} + +.f-r-start { + justify-content: flex-start; +} + +.f-r-end { + justify-content: flex-end; +} + +.f-1 { + flex: 1; +} + +.color-333 { + color: #333333; +} + +.color-666 { + color: #666666; +} + +.color-999 { + color: #999999; +} +.color-839{ + color:#83919E; +} +.bg-fff { + background-color: #FFFFFF; +} + +.bg-f5f { + background-color: #F5F5F5; +} + +.font-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} +.line-1{ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.line-2{ + word-break: break-all; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp:2; + overflow: hidden; +} +button{ + font-family: sans-serif!important; +} diff --git a/project-web/src/styles/mixin.scss b/project-web/src/styles/mixin.scss new file mode 100644 index 0000000..5250e71 --- /dev/null +++ b/project-web/src/styles/mixin.scss @@ -0,0 +1,60 @@ +@mixin clearfix { + &:after { + content: ''; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + +@mixin pct($pct) { + width: #{$pct}; + position: relative; + margin: 0 auto; +} + +@mixin triangle($width, $height, $color, $direction) { + $width: $width/2; + $color-border-style: $height solid $color; + $transparent-border-style: $width solid transparent; + height: 0; + width: 0; + + @if $direction==up { + border-bottom: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==right { + border-left: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } @else if $direction==down { + border-top: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==left { + border-right: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } +} diff --git a/project-web/src/styles/reset.css b/project-web/src/styles/reset.css new file mode 100644 index 0000000..bbca8b7 --- /dev/null +++ b/project-web/src/styles/reset.css @@ -0,0 +1,284 @@ +body, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +p, +blockquote, +dl, +dt, +dd, +ul, +ol, +li, +pre, +form, +fieldset, +legend, +button, +input, +textarea, +th, +td, +select { + margin: 0; + padding: 0; +} +body, +button, +input, +select, +textarea { + font-size: 0.3rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; +} +address, +cite, +dfn, +em, +var { + font-style: normal; +} +code, +kbd, +pre, +samp { + font-family: couriernew, courier, monospace; +} +small { + font-size: 12px; +} +ul, +ol { + list-style: none; +} +sup { + vertical-align: text-top; +} +sub { + vertical-align: text-bottom; +} +legend { + color: #000; +} +fieldset, +img { + border: 0; +} +button, +input, +select, +textarea { + font-size: 100%; +} +table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +menu, +nav, +section { + display: block; +} +input, +input[type='search'], +button, +select, +option, +textarea, +a { + outline: none; + border: 0; + -webkit-appearance: none; + border-radius: 0; + background: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +/* custom */ +a { + text-decoration: none; + -webkit-backface-visibility: hidden; + color: #333; +} +body, +input, +textarea { + -webkit-text-size-adjust: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + font-family: 'PingFang SC', 'STHeitiSC-Light', 'Helvetica-Light', arial, sans-serif, 'Droid Sans Fallback'; + color: #333; +} +div, +section, +header, +footer { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +input { + line-height: normal; + box-sizing: border-box; +} +.fl { + float: left; +} +.fr { + float: right; +} +.clear { + clear: both; + height: 0; + line-height: 0; + font-size: 0; +} +.clearfix:after { + content: '.'; + display: block; + height: 0; + visibility: hidden; + clear: both; + overflow: hidden; +} +::-webkit-scrollbar { + width: 0px; +} +::-webkit-scrollbar-track { + background-color: unset; +} + +::-webkit-scrollbar-thumb { + background-color: unset; +} + +::-webkit-scrollbar-thumb:hover { + background-color: unset; +} + +::-webkit-scrollbar-thumb:active { + background-color: unset; +} +.flex { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; +} +.con-cell { + display: table-cell; + height: 100%; + vertical-align: middle; +} +.old-price { + text-decoration: line-through; +} + +.icon { + width: 1em; + height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} +@font-face { + font-family: 'GuildfordProBook 5'; + /*src:url('GuildfordProBook 5.otf')*/ +} +[v-cloak] { + display: none; +} +.iconfont { + font-size: 0.36rem; +} +/* 涓�鍍忕礌杈规 */ +@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5) { + .border-1px::after { + -webkit-transform: scaleY(0.7); + -moz-transform: scaleY(0.7); + -o-transform: scaleY(0.7); + -ms-transform: scaleY(0.7); + transform: scaleY(0.7); + } + .border-1px::before { + -webkit-transform: scaleY(0.7); + -moz-transform: scaleY(0.7); + -o-transform: scaleY(0.7); + -ms-transform: scaleY(0.7); + transform: scaleY(0.7); + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) { + .border-1px::after { + -webkit-transform: scaleY(0.5); + -moz-transform: scaleY(0.5); + -o-transform: scaleY(0.5); + -ms-transform: scaleY(0.5); + transform: scaleY(0.5); + } + .border-1px::before { + -webkit-transform: scaleY(0.5); + -moz-transform: scaleY(0.5); + -o-transform: scaleY(0.5); + -ms-transform: scaleY(0.5); + transform: scaleY(0.5); + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) { + .border-1px::after { + -webkit-transform: scaleY(0.33); + -moz-transform: scaleY(0.33); + -o-transform: scaleY(0.33); + -ms-transform: scaleY(0.33); + transform: scaleY(0.33); + } + .border-1px::before { + -webkit-transform: scaleY(0.33); + -moz-transform: scaleY(0.33); + -o-transform: scaleY(0.33); + -ms-transform: scaleY(0.33); + transform: scaleY(0.33); + } +} +.line1 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; +} +.line2 { + word-break: break-all; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} +.mask { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 555; + background-color: rgba(0, 0, 0, 0.5); +} diff --git a/project-web/src/styles/sidebar.scss b/project-web/src/styles/sidebar.scss new file mode 100644 index 0000000..2aa3f4e --- /dev/null +++ b/project-web/src/styles/sidebar.scss @@ -0,0 +1,210 @@ +#app { + .main-container { + min-height: 100%; + transition: margin-left 0.28s; + //margin-left: $base-sidebar-width; + position: relative; + } + + .sidebar-container { + transition: width 0.28s; + width: $base-sidebar-width !important; + background-color: $base-menu-background; + height: 100%; + position: fixed; + font-size: 0px; + top: 0; + bottom: 0; + left: 0; + z-index: 1001; + overflow: hidden; + + // reset element-ui css + .horizontal-collapse-transition { + transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; + } + + .scrollbar-wrapper { + overflow-x: hidden !important; + } + + .el-scrollbar__bar.is-vertical { + right: 0px; + } + + .el-scrollbar { + height: 100%; + } + + &.has-logo { + .el-scrollbar { + height: calc(100% - 50px); + padding-bottom: 40px; + } + } + + .is-horizontal { + display: none; + } + + a { + display: inline-block; + width: 100%; + overflow: hidden; + } + + .svg-icon { + margin-right: 16px; + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + } + + // menu hover + .submenu-title-noDropdown, + .el-submenu__title { + &:hover { + // background-color: rgba(0, 0, 0, 0.06) !important; + } + } + .is-active { + background-color: #fff !important; + font-weight: 500; + } + .is-active > .el-submenu__title { + // color: $base-menu-color-active ; + } + + & .nest-menu .el-submenu > .el-submenu__title, + & .el-submenu .el-menu-item { + min-width: $base-sidebar-width !important; + background-color: subMenuBackground !important; + + &:hover { + // background-color: rgba(0, 0, 0, 0.06) !important; + } + } + } + + .hideSidebar { + .sidebar-container { + width: 54px !important; + } + + .main-container { + //margin-left: 54px; + } + + .submenu-title-noDropdown { + //padding: 0 !important; + position: relative; + + .el-tooltip { + padding: 0 !important; + text-align: center !important; + .svg-icon { + margin-left: 20px; + } + } + } + + .el-submenu { + overflow: hidden; + + & > .el-submenu__title { + padding: 0 !important; + text-align: center; + .svg-icon { + margin-left: 20px; + } + + .el-submenu__icon-arrow { + display: none; + } + } + } + + .el-menu--collapse { + .el-submenu { + & > .el-submenu__title { + & > span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } + } + } + } + + .el-menu--collapse .el-menu .el-submenu { + min-width: $base-sidebar-width !important; + } + + // mobile responsive + .mobile { + .main-container { + margin-left: 0px; + } + + .sidebar-container { + transition: transform 0.28s; + width: $base-sidebar-width !important; + } + + &.hideSidebar { + .sidebar-container { + pointer-events: none; + transition-duration: 0.3s; + transform: translate3d(-$base-sidebar-width, 0, 0); + } + } + } + + .withoutAnimation { + .main-container, + .sidebar-container { + transition: none; + } + } +} + +// when menu collapsed +.el-menu--vertical { + & > .el-menu { + .svg-icon { + margin-right: 16px; + } + } + + .nest-menu .el-submenu > .el-submenu__title, + .el-menu-item { + &:hover { + // you can use $subMenuHover + background-color: rgba(0, 0, 0, 0.06) !important; + } + } + // the scroll bar appears when the subMenu is too long + > .el-menu--popup { + max-height: 100vh; + overflow-y: auto; + + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } + } +} diff --git a/project-web/src/styles/styles.scss b/project-web/src/styles/styles.scss new file mode 100644 index 0000000..ea3f18d --- /dev/null +++ b/project-web/src/styles/styles.scss @@ -0,0 +1,628 @@ +@charset "UTF-8"; +#app .sidebar-container .is-active { + background: none !important; +} +.el-table { + .el-table__header-wrapper, + .el-table__fixed-header-wrapper { + th { + word-break: break-word; + height: 47px; + background: #f3f8fe; + color: #515a6e; + font-size: 14px; + font-weight: 500; + } + } +} + +.el-dialog__body { + padding: 20px !important; +} + +.acea-row { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex !important; + -webkit-box-lines: multiple; + -moz-box-lines: multiple; + -o-box-lines: multiple; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + /* 杈呭姪绫� */ +} + +.acea-row.row-middle { + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.acea-row.justify-content { + -webkit-justify-content: center; + justify-content: center; +} +.acea-row.row-right { + -webkit-box-pack: end; + -moz-box-pack: end; + -o-box-pack: end; + -ms-flex-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; +} + +.acea-row.row-bottom { + -webkit-box-align: end; + -moz-box-align: end; + -o-box-align: end; + -ms-flex-align: end; + -webkit-align-items: flex-end; + align-items: flex-end; +} + +.acea-row.row-around { + justify-content: space-around; + -webkit-justify-content: space-around; +} + +.acea-row.row-between { + -webkit-box-pack: justify; + -moz-box-pack: justify; + -o-box-pack: justify; + -ms-flex-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; +} + +/* 涓婁笅宸﹀彸鍨傜洿灞呬腑 */ +.acea-row.row-center-wrapper { + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; +} + +/* 涓婁笅涓よ竟灞呬腑瀵归綈 */ +.acea-row.row-between-wrapper { + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: justify; + -moz-box-pack: justify; + -o-box-pack: justify; + -ms-flex-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; +} + +.acea-row.row-column-around { + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + justify-content: space-around; + -webkit-justify-content: space-around; +} + +//鐧诲綍椤靛姩鐢� +.index_bg { + width: 100%; + height: 100vh; + background: rgba(0, 0, 0, 0.6) !important; + z-index: 0 !important; +} + +.divBox { + padding: 20px; + // padding: 0 20px 20px; + box-sizing: border-box; + .el-pagination { + display: flex; + justify-content: flex-end; + margin-top: 25px; + } +} + +.el-dialog { + border-radius: 6px; +} + +.fontColor3 { + color: #ed4014; +} + +/* 鍘绘帀婊氬姩鏉� */ +.scrollbarAll::-webkit-scrollbar { + display: none; /* Chrome Safari */ +} + +.scrollbarAll { + scrollbar-width: none; /* firefox */ + -ms-overflow-style: none; /* IE 10+ */ + overflow-x: hidden; + overflow-y: auto; +} + +.seachTiele { + font-size: 12px; + line-height: 29px; +} + +.seachWidth { + //width: 219px !important; +} + +.el-divider--horizontal { + margin: 19px 0; +} + +.suibian-modal { + .el-dialog__footer { + display: none !important; + } +} + +.el-dialog__footer { + border-top: 1px solid #dcdfe6; + padding:15px!important; +} + +.el-message-box__wrapper { + overflow: auto; +} + +.el-message-box { + overflow: auto !important; +} + +.modal-form { + width: 700px; +} + +table .el-image { + width: 30px !important; + height: 30px !important; +} + +.upload-form { + min-width: 1000px; + max-height: 620px; +} + +.upload-form-temp { + min-width: 1000px; + max-height: 700px; +} + +.listPic { + .image-slot { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + } +} + +.switchTable { + .el-switch.is-disabled { + opacity: 1; + } + .el-switch.is-disabled .el-switch__core, + .el-switch.is-disabled .el-switch__label { + cursor: pointer !important; + } +} + +/** + * 涓婁紶鍥剧墖鐨勭収鐩告満 + */ +.upLoadPicBox { + display: inline-block; + cursor: pointer; + .upLoad { + width: 58px; + height: 58px; + line-height: 58px; + border: 1px dotted rgba(0, 0, 0, 0.1); + border-radius: 4px; + background: rgba(0, 0, 0, 0.02); + display: flex; + justify-content: center; + align-items: center; + } +} + +/** + * 鏍囬甯︿笅鍒掔嚎 + */ +.dividerTitle { + .title { + border-bottom: 2px solid #1890ff; + padding: 0 8px 18px 5px; + color: #000; + font-size: 14px; + } +} + +.cameraIconfont { + color: #898989; + font-size: 26px; +} + +.ml10 { + margin-left: 10px; +} + +.mr10 { + margin-right: 10px !important; +} + +.mr15 { + margin-right: 15px; +} + +.mb5 { + margin-bottom: 5px; +} + +.mt20 { + margin-top: 20px; +} + +.mb15 { + margin-bottom: 15px; +} + +.mb20 { + margin-bottom: 20px; +} + +.mb35 { + margin-bottom: 35px !important; +} + +.mt20 { + margin-top: 20px; +} + +.mr50 { + margin-right: 50px; +} + +.mr20 { + margin-right: 20px; +} + +.mr15 { + margin-right: 15px; +} + +.ml40 { + margin-left: 40px !important; +} + +.mr5 { + margin-right: 5px !important; +} + +.font14 { + font-size: 14px; +} + +//琛ㄦ牸鍥剧墖瀹藉害 +.tabBox_img { + width: 36px; + height: 36px; + border-radius: 4px; + display: table-cell; + vertical-align: middle; +} + +.tabBox_img img { + width: 100%; + height: 100%; +} + +.picMiddle { + display: table; +} + +.spBlock { + display: block; +} + +//琛ㄦ牸澶撮儴棰滆壊 +.el-table thead { + color: #333 !important; +} + +// 妯℃�佹 +.creatformModel { + min-width: 700px; + max-height: 620px; +} + +.width100 { + width: 100%; +} + +//dialog澶撮儴鍔犵嚎鏉� +.el-dialog__header { + border-bottom: 1px solid #dcdfe6; +} + +//鐐瑰嚮涓婁紶鍥炬牱寮忥紙寮圭獥锛� +.publicPicBox { + display: inline-block; + cursor: pointer; +} + +.publicPicBox .upLoad { + width: 58px; + height: 58px; + line-height: 58px; + border: 1px dotted rgba(0, 0, 0, 0.1); + border-radius: 4px; + background: rgba(0, 0, 0, 0.02); +} + +.publicPicBox .pictrue { + width: 60px; + height: 60px; + border: 1px dotted rgba(0, 0, 0, 0.1); + margin-right: 10px; +} + +.publicPicBox .pictrue img { + width: 100%; + height: 100%; +} + +.publicPicBox .iconfont { + color: #898989; + font-size: 18px; +} + +//鍏ㄥ眬寮圭獥瀹藉害锛� +.dialogWidth { + width: 80%; +} + +/** + * 琛ㄦ牸涓嬫媺鍐呭 + */ +.demo-table-expand { + font-size: 0; +} + +.demo-table-expand label { + width: 111px; + color: #99a9bf; +} + +.demo-table-expand .el-form-item { + margin-right: 0; + margin-bottom: 0; + width: 33.33%; +} + +/*switch鏍峰紡*/ +.el-switch__label { + position: absolute; + display: none; + color: #fff; + font-size: 12px !important; +} + +/*鎵撳紑鏃舵枃瀛椾綅缃缃�*/ +.el-switch__label--right { + z-index: 1; + margin-left: -4px; + font-size: 12px !important; +} + +/*鍏抽棴鏃舵枃瀛椾綅缃缃�*/ +.el-switch__label--left { + z-index: 1; + left: 8px; + font-size: 12px !important; +} + +/*鏄剧ず鏂囧瓧*/ +.el-switch__label.is-active { + display: block; + color: #fff; + font-size: 12px !important; +} +.el-switch__label * { + font-size: 12px !important; +} + +.selWidth { + width: 300px; +} + +//琛ㄦ牸瀛椾綋 +//.el-table--mini{ +// font-size: 13px !important; +//} + +//瀵屾枃鏈紪杈戝櫒寮规 +#edui_fixedlayer { + z-index: 4000 !important; +} + +.edui-shadow { + //z-index: -1 !important; +} + +.edui-default { + // z-index: 4000 !important; +} + +.edui-dialog { + z-index: 4009 !important; +} + +.maskModel { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 55; + background-color: rgba(0, 0, 0, 0.5); +} + +.line2 { + word-break: break-all; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.el-image-viewer__close { + color: #fff; +} + +.statistical-page .mpvue-calendar { + min-width: 100%; +} + +.statistical-page .mpvue-calendar table { + margin: 0; +} + +.statistical-page .mpvue-calendar td { + border-right: 1px solid #fff; + padding: 0; + width: 14% !important; +} + +.statistical-page .calendar-tools { + box-shadow: unset; + -webkit-box-shadow: unset; + -o-box-shadow: unset; + -moz-box-shadow: unset; +} + +.statistical-page .mc-head-box div { + font-size: 14px; +} + +.statistical-page .mpvue-calendar td:not(.disabled) span.mc-date-red { + color: unset; +} + +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-end span.calendar-date, +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-begin span.calendar-date { + border-radius: 0; + background-color: #2291f8 !important; +} + +.statistical-page .mpvue-calendar td.selected span.mc-date-red { + color: #fff; +} + +.statistical-page .mc-range-mode .selected .mc-range-bg { + background-color: #a0dcf9; +} + +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-row-last .calendar-date, +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-row-first .calendar-date { + background-color: #a0dcf9; +} + +.statistical-page .mpvue-calendar .mc-range-mode .selected.mc-range-second-to-last span { + background-color: #a0dcf9; +} + +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-month-first.selected .calendar-date, +.statistical-page .mpvue-calendar .mc-range-mode .mc-range-month-last.selected .calendar-date { + background-color: #a0dcf9; +} + +.statistical-page .mc-today-element .calendar-date { + border-radius: 0; + background-color: unset; +} + +//寮圭獥鏍峰紡 +.el-message-box__header { + //padding: 30px; +} + +//鎶藉眽鎻愪氦鎸夐挳 +.from-foot-btn { + width: 100%; + padding: 20px; + background: #fff; +} +.witth50 { + width: 50%; +} +.drawer_fix { + z-index: 10; + position: absolute; + left: 0; + bottom: 0px; + padding-bottom: 10px; + background: #fff; +} +.fix { + position: fixed; + bottom: 0; +} +.btn-shadow { + box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.05); +} + +//澶氬浘涓浘鐗囨牱寮� +.pictrue { + width: 60px; + height: 60px; + border: 1px dotted rgba(0, 0, 0, 0.1); + margin-right: 10px; + position: relative; + cursor: pointer; + img { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } +} + +//澶氬浘涓垹闄ゅ浘鐗囨寜閽� +.btndel { + position: absolute; + z-index: 1; + width: 20px !important; + height: 20px !important; + left: 46px; + top: -4px; +} + +/*鎶藉眽slot澶撮儴鏍囬*/ +.demo-drawer_title { + font-size: 19px; + color: #303133; +} diff --git a/project-web/src/styles/transition.scss b/project-web/src/styles/transition.scss new file mode 100644 index 0000000..b02f60b --- /dev/null +++ b/project-web/src/styles/transition.scss @@ -0,0 +1,48 @@ +// global transition css + +/* fade */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/* fade-transform */ +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all 0.5s; +} + +.fade-transform-enter { + opacity: 0; + transform: translateX(-30px); +} + +.fade-transform-leave-to { + opacity: 0; + transform: translateX(30px); +} + +/* breadcrumb transition */ +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all 0.5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all 0.5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/project-web/src/styles/variables.scss b/project-web/src/styles/variables.scss new file mode 100644 index 0000000..3dca7d0 --- /dev/null +++ b/project-web/src/styles/variables.scss @@ -0,0 +1,57 @@ +// base color +$blue: #324157; +$light-blue: #3a71a8; +$red: #c03639; +$pink: #e65d6e; +$green: #30b08f; +$tiffany: #4ab7bd; +$yellow: #fec171; +$panGreen: #30b08f; + +$base-menu-color: #ffffff; //榛樿瀛椾綋棰滆壊 +$base-menu-color-active: #f4f4f5; +$base-menu-background: #304156; //榛樿鑳屾櫙鑹� +$base-logo-title-color: #ffffff; //榛樿logo_title瀛椾綋棰滆壊 + +$base-menu-light-color: #ffffff; //娴呰壊涓婚瀛椾綋棰滆壊 +$base-menu-light-background: #2b68c9; //娴呰壊涓婚鑳屾櫙鑹� +$base-logo-light-title-color: #001529; //娴呰壊涓婚logo_title棰滆壊 + +$base-sub-menu-background: #1f2d3d; +$base-sub-menu-hover: #001528; +// sidebar +// $menuText:#bfcbd9; +$menuActiveText: #0d997c; +// $subMenuActiveText:#f4f4f5; + +// $menuBg:#001529; +// $menuHover:#263445; + +// $subMenuBg:#000c17; +// $subMenuHover:#001528; + +$base-sidebar-width: 0px; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + // menuText: $menuText; + menuActiveText: $menuActiveText; + // menuActiveBg:$menuActiveText; + // subMenuActiveText: $subMenuActiveText; + // menuBg: $menuBg; + // menuHover: $menuHover; + // subMenuBg: $subMenuBg; + // subMenuHover: $subMenuHover; + // sideBarWidth: $sideBarWidth; + menuColor: $base-menu-color; + menuLightColor: $base-menu-light-color; + menuColorActive: $base-menu-color-active; + menuBackground: $base-menu-background; + menuLightBackground: $base-menu-light-background; + subMenuBackground: $base-sub-menu-background; + subMenuHover: $base-sub-menu-hover; + sideBarWidth: $base-sidebar-width; + logoTitleColor: $base-logo-title-color; + logoLightTitleColor: $base-logo-light-title-color; +} diff --git a/project-web/src/utils/DateFormatter.js b/project-web/src/utils/DateFormatter.js new file mode 100644 index 0000000..0212b4e --- /dev/null +++ b/project-web/src/utils/DateFormatter.js @@ -0,0 +1,180 @@ +/** + * @Description 鏃堕棿杞崲涓篖ong绫诲瀷 + * @Author wh + * @Date 2023/7/13 9:10 + */ +export function DateToLong(val) { + if (val == null || val == undefined || val == '' || val == 'null' || val == 'undefined') { + return true; + } + // .replace(/ 杩欓噷濉鍖归厤鐨勫唴瀹�/g,'杩欓噷鏄鏇挎崲涓虹殑鍐呭'锛� + /* + 1. 鏇挎崲- + 2. 鏇挎崲: + 3. 鏇挎崲绌烘牸 + */ + var temp = val.toString().replace(/\s/g, '').replace(/-/g, '').replace(/:/g, '') + return temp; +} + +function padLeftZero(str) { + return ('00' + str).substr(str.length) +} + +/** + * @Description 20230712183150 + * 14 浣嶆椂闂� 杞负 yyyy-MM-dd HH:mm:ss + * @Author wh + * @Date 2023/7/13 9:21 + */ +export function LongToDateTime(val) { + if (val == null || val == undefined || val == '' || val == 'null' || val == 'undefined') { + return true; + } + var temp = val.toString() + // 骞� + var y = temp.slice(0, 4); + // 鏈� + var m = temp.slice(4, 6); + // 鏃� + var d = temp.slice(6, 8); + // 鏃� + var hh = temp.slice(8, 10); + // 鍒� + var mm = temp.slice(10, 12); + // 绉� + var ss = temp.slice(12, 14); + var result = y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss + return result; +} + +export function LongToDate(val) { + if (val == null || val == undefined || val == '' || val == 'null' || val == 'undefined') { + return true; + } + var temp = val.toString() + // 骞� + var y = temp.slice(0, 4); + // 鏈� + var m = temp.slice(4, 6); + // 鏃� + var d = temp.slice(6, 8); + var result = y + '-' + m + '-' + d + return result; +} + +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) { + return '-' + } +} + +/** + * 褰撳墠鏃堕棿 + * yyyy-MM-dd HH:mm:ss + * @returns {string} + */ +export function formattedDate() { + const date = new Date(); + const year = date.getFullYear(); + const month = (date.getMonth() + 1).toString().padStart(2, '0'); + const day = date.getDate().toString().padStart(2, '0'); + const hour = date.getHours().toString().padStart(2, '0'); + const minute = date.getMinutes().toString().padStart(2, '0'); + const second = date.getSeconds().toString().padStart(2, '0'); + return `${year}-${month}-${day} ${hour}:${minute}:${second}`; +} + +/** + * 褰撳墠鏃ユ湡 + * yyyy-MM-dd + * @returns {string} + */ +export function formattedDateDuan() { + const date = new Date(); + const year = date.getFullYear(); + const month = (date.getMonth() + 1).toString().padStart(2, '0'); + const day = date.getDate().toString().padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 浼犲叆鏃堕棿鏍煎紡鐨勬椂闂达紝浠ュ綋鍓嶆椂闂翠负鏍囧噯锛岃繑鍥炶窛绂诲綋鍓嶆椂闂翠箣鍓� + */ +export function timeago(date) { //dateTimeStamp鏄竴涓椂闂存绉掞紝娉ㄦ剰鏃堕棿鎴虫槸绉掔殑褰㈠紡锛屽湪杩欎釜姣鐨勫熀纭�涓婇櫎浠�1000锛屽氨鏄崄浣嶆暟鐨勬椂闂存埑銆�13浣嶆暟鐨勯兘鏄椂闂存绉掋�� + if (!date) { + return + } + if (!(date instanceof Date)) { + date = new Date(date.replace(/-/g, '/')) + } + + var dateTimeStamp = date.getTime() + + var minute = 1000 * 60; //鎶婂垎锛屾椂锛屽ぉ锛屽懆锛屽崐涓湀锛屼竴涓湀鐢ㄦ绉掕〃绀� + var hour = minute * 60; + var day = hour * 24; + var week = day * 7; + var halfamonth = day * 15; + var month = day * 30; + var now = new Date().getTime(); //鑾峰彇褰撳墠鏃堕棿姣 + var diffValue = now - dateTimeStamp; //鏃堕棿宸� + + if (diffValue < 0) { + return; + } + var minC = diffValue / minute; //璁$畻鏃堕棿宸殑鍒嗭紝鏃讹紝澶╋紝鍛紝鏈� + var hourC = diffValue / hour; + var dayC = diffValue / day; + var weekC = diffValue / week; + var monthC = diffValue / month; + var result = ''; + if (monthC >= 1 && monthC <= 3) { + result = " " + parseInt(monthC) + "鏈堝墠" + } else if (weekC >= 1 && weekC <= 3) { + result = " " + parseInt(weekC) + "鍛ㄥ墠" + } else if (dayC >= 1 && dayC <= 6) { + result = " " + parseInt(dayC) + "澶╁墠" + } else if (hourC >= 1 && hourC <= 23) { + result = " " + parseInt(hourC) + "灏忔椂鍓�" + } else if (minC >= 1 && minC <= 59) { + result = " " + parseInt(minC) + "鍒嗛挓鍓�" + } else if (diffValue >= 0 && diffValue <= minute) { + result = "鍒氬垰" + } else { + var datetime = new Date(); + datetime.setTime(dateTimeStamp); + var Nyear = datetime.getFullYear(); + var Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1; + var Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate(); + var Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours(); + var Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes(); + var Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds(); + result = Nyear + "-" + Nmonth + "-" + Ndate + } + return result; +} diff --git a/project-web/src/utils/StringUtils.js b/project-web/src/utils/StringUtils.js new file mode 100644 index 0000000..03accdb --- /dev/null +++ b/project-web/src/utils/StringUtils.js @@ -0,0 +1,14 @@ +/** + * 鍒ゆ柇缁欏畾瀛楃涓叉槸鍚︿负绌� + * @param val + * @returns {boolean} + * @author 鏃跺厠鑻� + * @date 2023-04-18 + */ +export function isEmptyValue(val){ + if(val == null || val == undefined || val == '' || val == 'null' || val == 'undefined'){ + return true; + } + return false; +} + diff --git a/project-web/src/utils/ZBKJIutil.js b/project-web/src/utils/ZBKJIutil.js new file mode 100644 index 0000000..bd7be94 --- /dev/null +++ b/project-web/src/utils/ZBKJIutil.js @@ -0,0 +1,125 @@ + +import store from '@/store'; + +/** + * 鏍规嵁闇�姹傝繃婊ゆ帀treeData涓殑child.length === 0鐨勬暟鎹� + * @param treeData + * @returns {Uint8Array | BigInt64Array | any[] | Float64Array | Int8Array | Float32Array | Int32Array | Uint32Array | Uint8ClampedArray | BigUint64Array | Int16Array | Uint16Array} + */ +export function clearTreeData(treeData) { + return treeData.map((item) => { + if (item.child.length === 0) { + delete item.child; + } else { + clearTreeData(item.child); + } + return item; + }); +} + +export function addTreeListLabel(treeData) { + // 鍥犳爲褰㈡帶浠跺湪slot-scope妯″紡涓嬫樉绀哄瓧娈靛彧鑳戒负label涓烘鑷畾涔夋坊鍔爈abel瀛楁鍜宑hild=children + return treeData.map((item) => { + if ( + (item.name === '璁剧疆' || + item.name === '绠$悊鍛樺垪琛�' || + item.name === '韬唤绠$悊' || + item.name === '绠$悊鏉冮檺' || + item.name === '绠$悊鍛樺垪琛�' || + item.name === '鏉冮檺瑙勫垯') && + store.getters.name !== 'supervisor' + ) { + item.disabled = true; + } + item.label = item.name; + return item; + }); +} + +export function addTreeListLabelForCasCard(treeData, child) { + treeData.map((item) => { + if ( + (item.name === '璁剧疆' || + item.name === '绠$悊鍛樺垪琛�' || + item.name === '韬唤绠$悊' || + item.name === '绠$悊鏉冮檺' || + item.name === '绠$悊鍛樺垪琛�' || + item.name === '鏉冮檺瑙勫垯') && + store.getters.name !== 'admin' + ) { + item.disabled = true; + } + item.label = item.name; + return item; + }); +} + +//鍔犳硶鍑芥暟锛岀敤鏉ュ緱鍒扮簿纭殑鍔犳硶缁撴灉 +//璇存槑锛歫avascript鐨勫姞娉曠粨鏋滀細鏈夎宸紝鍦ㄤ袱涓诞鐐规暟鐩稿姞鐨勬椂鍊欎細姣旇緝鏄庢樉銆傝繖涓嚱鏁拌繑鍥炶緝涓虹簿纭殑鍔犳硶缁撴灉銆� +//璋冪敤锛�$h.Add(arg1,arg2) +//杩斿洖鍊硷細arg1鍔犱笂arg2鐨勭簿纭粨鏋� +export function Add(arg1, arg2) { + arg2 = parseFloat(arg2); + var r1, r2, m; + try { + r1 = arg1.toString().split('.')[1].length; + } catch (e) { + r1 = 0; + } + try { + r2 = arg2.toString().split('.')[1].length; + } catch (e) { + r2 = 0; + } + m = Math.pow(100, Math.max(r1, r2)); + return (this.Mul(arg1, m) + this.Mul(arg2, m)) / m; +} + +//涔樻硶鍑芥暟锛岀敤鏉ュ緱鍒扮簿纭殑涔樻硶缁撴灉 +//璇存槑锛歫avascript鐨勪箻娉曠粨鏋滀細鏈夎宸紝鍦ㄤ袱涓诞鐐规暟鐩镐箻鐨勬椂鍊欎細姣旇緝鏄庢樉銆傝繖涓嚱鏁拌繑鍥炶緝涓虹簿纭殑涔樻硶缁撴灉銆� +//璋冪敤锛�$h.Mul(arg1,arg2) +//杩斿洖鍊硷細arg1涔樹互arg2鐨勭簿纭粨鏋� +export function Mul(arg1, arg2) { + arg1 = parseFloat(arg1); + arg2 = parseFloat(arg2); + var m = 0, + s1 = arg1.toString(), + s2 = arg2.toString(); + try { + m += s1.split('.')[1].length; + } catch (e) {} + try { + m += s2.split('.')[1].length; + } catch (e) {} + return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / Math.pow(10, m); +} + +//鏇挎崲瀹夊叏鍩熷悕 +export function setDomain(url) { + url = url ? url.toString() : ''; + // 姝e垯鏇挎崲瀛樺湪鐨勮浆涔夌 + url = url.replace(/\\/g, ''); + url = window.location.protocol === 'https:' ? url.replace('http://', 'https://') : url; + if (url.startsWith('src="')) { + url = url.replaceAll('src="', ''); + } + if (url.startsWith('//img') && window.location.protocol === 'https:') { + url = url.replace('//img', 'https://img'); + } + return url; +} + +// 杩囨护瀵屾枃鏈腑鐨� img 鐩稿璺緞璁块棶 +export function replaceImgSrcHttps(content) { + return content.replaceAll('src="//', 'src="https://'); +} + +/** + *璁$畻table鍥哄畾楂樺害 + */ +export function getTableHeight(height) { + let windowHeight = document.documentElement.clientHeight || document.body.clientHeight; + let herderHeight = 100; + let footerHeight = 93; + return windowHeight - herderHeight - footerHeight - height; +} diff --git a/project-web/src/utils/auth.js b/project-web/src/utils/auth.js new file mode 100644 index 0000000..3f77cc6 --- /dev/null +++ b/project-web/src/utils/auth.js @@ -0,0 +1,37 @@ +import Cookies from 'js-cookie'; +import storage from 'store'; +const TokenKey = 'iplatform_token'; +const userKey = 'user' +const userInfo = 'userInfo' +export function getToken() { + return storage.get(TokenKey); +} +// 鑾峰彇鐢ㄦ埛鏄惁淇敼鍘熷瀵嗙爜 can 2023/08/04 +export function getCPass() { + return storage.get('forceChangePass'); +} +// 瀛樺偍鐢ㄦ埛鏄惁淇敼鍘熷瀵嗙爜鐘舵�� true false can 2023/08/04 +export function setCPass(val) { + return storage.set('forceChangePass',val); +} +//鑾峰彇鐢ㄦ埛璇︾粏淇℃伅 +export function getUserDetail() { + return storage.get(userInfo) +} +//璁剧疆鐢ㄦ埛璇︾粏淇℃伅 +export function setUserDetail(info) { + return storage.set(userInfo, info); +} +export function getUser() { + return storage.get(userKey) +} +export function setUserInfo(info) { + return storage.set(userKey, info); +} +export function setToken(token) { + return storage.set(TokenKey, token); +} + +export function removeToken() { + return storage.remove(TokenKey); +} diff --git a/project-web/src/utils/base.js b/project-web/src/utils/base.js new file mode 100644 index 0000000..d4980c0 --- /dev/null +++ b/project-web/src/utils/base.js @@ -0,0 +1,91 @@ +import {Message} from 'element-ui' +import SettingIplatform from "../../public/static/config"; +import axios from "axios"; +import store from "@/store"; + +// Base Url +export function getBaseUrl() { + return SettingIplatform.apiBaseURL +} + +// Ftp Url +export function getFtpUrl() { + return SettingIplatform.ftpUrl +} + +// Ftp 涓嬭浇鍦板潃 +export function getDownUrl() { + return getBaseUrl() + '/file/' +} + +// Ftp 涓婁紶鍦板潃 +export function getUploadUrl() { + return getBaseUrl() + '/pc/fin/file/uploadMore' +} + +// 棰勮鏂囦欢 +export function previewDoc(obj) { + const routeUrl = this.$router.resolve({url: '/webOffice/preview'}) + let url = obj.url + const wordLIst = ['doc', 'docm', 'docx', 'docxf', 'dot', 'dotm', 'dotx', 'epub', 'fodt', 'fb2', 'htm', 'html', 'mht', 'odt', 'oform', 'ott', 'oxps', 'pdf', 'rtf', 'txt', 'djvu', 'xml', 'xps', 'csv', 'fods', 'ods', 'ots', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx', 'fodp', 'odp', 'otp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx'] + const arr = url.split('.') + if (arr.length === 2) { + if (wordLIst.includes(arr[arr.length - 1])) { + if (obj.url.indexOf('http') !== 0) { + url = SettingIplatform.ftpUrl + url + } + window.open(routeUrl.href + '?url=' + encodeURIComponent(url) + '&docName=' + encodeURIComponent(encodeURIComponent(obj.fileName)), '_blank') + } else { + Message.warning('鏂囦欢鏍煎紡涓嶆敮鎸侀瑙堬紒') + } + } +} + +// 涓嬭浇鏂囦欢 +export function downLoad(obj) { + let url = obj.url + if (obj.url.indexOf('http') !== 0) { + url = SettingIplatform.ftpUrl + obj.url + } + window.open(decodeURI(url)) + /* var doc = document.createElement('a') + doc.href = url + doc.download = filename + doc.target = '_blank' + doc.click()*/ + /* const loading = Loading.service({ + lock: true, + text: '姝e湪涓嬭浇...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }) + download(obj.url, obj.name, null, loading)*/ +} + +// 涓婁紶鏂囦欢 +export function upLoadFile(formData) { + const token = !store.getters.token ? sessionStorage.getItem('token') : store.getters.token; + return new Promise((resolve, reject) => { + axios.post( + getUploadUrl(), + formData, + { + headers: { + 'Authorization': token + }, + dataType: 'json', + crossDomain: true, + processData: false, + contentType: false, + } + ).then(res => { + if (res.data.code === 1) { + resolve(res.data.data) + } else { + reject() + } + }).catch(err => { + reject(err) + }) + }) +} diff --git a/project-web/src/utils/changeColor.js b/project-web/src/utils/changeColor.js new file mode 100644 index 0000000..6fd3e4f --- /dev/null +++ b/project-web/src/utils/changeColor.js @@ -0,0 +1,8 @@ +function searchInfo(str, selStr,color) { + color=color||'#F3595A' + //str涓鸿鏀瑰彉棰滆壊鐨勫瓧绗︼紙浼犲叆鐨勫弬鏁帮級 + //selStr鏄寚瀹氱殑瀛楃涓� + let res = new RegExp('(' + str + ')', 'g'); + return selStr.replace(res, `<span style='color:${color}'>${str}</span>`); +} +export default searchInfo; diff --git a/project-web/src/utils/clipboard.js b/project-web/src/utils/clipboard.js new file mode 100644 index 0000000..22c16c7 --- /dev/null +++ b/project-web/src/utils/clipboard.js @@ -0,0 +1,42 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import Vue from 'vue'; +import Clipboard from 'clipboard'; + +function clipboardSuccess() { + Vue.prototype.$message({ + message: 'Copy successfully', + type: 'success', + duration: 1500, + }); +} + +function clipboardError() { + Vue.prototype.$message({ + message: 'Copy failed', + type: 'error', + }); +} + +export default function handleClipboard(text, event) { + const clipboard = new Clipboard(event.target, { + text: () => text, + }); + clipboard.on('success', () => { + clipboardSuccess(); + clipboard.destroy(); + }); + clipboard.on('error', () => { + clipboardError(); + clipboard.destroy(); + }); + clipboard.onClick(event); +} diff --git a/project-web/src/utils/constants.js b/project-web/src/utils/constants.js new file mode 100644 index 0000000..7a2a246 --- /dev/null +++ b/project-web/src/utils/constants.js @@ -0,0 +1,144 @@ +/* +/ 鍏ㄥ眬闈欐�佸彉閲忓畾涔� +鍒囧嬁闅忔剰淇敼鏁扮粍娆″簭锛屽緢澶氬湴鏂瑰凡涓嬫爣鏂瑰紡浣跨敤 + */ + +export const page = { + limit: [10, 20, 40, 60, 80, 100], + page: 1, + layout: 'total, sizes, prev, pager, next, jumper', +}; + +/** + * 鏃犻檺鏋佸垎绫籺ype + * @type {{product: number, attachment: number, menu: number, article: number, operator: number}} + */ +export const categoryType = [ + // 1 浜у搧鍒嗙被锛�2 鏂囩珷鍒嗙被 3 闄勪欢鍒嗙被锛� 4 璁剧疆鍒嗙被锛� 5 鑿滃崟鍒嗙被锛� 6 閰嶇疆鍒嗙被锛� 7 绉掓潃閰嶇疆 + { name: '浜у搧鍒嗙被', value: 1, shortName: '浜у搧' }, + { name: '鏂囩珷鍒嗙被', value: 2, shortName: '鏂囩珷' }, + { name: '闄勪欢鍒嗙被', value: 3, shortName: '闄勪欢' }, + { name: '璁剧疆鍒嗙被', value: 4, shortName: '璁剧疆' }, + { name: '鑿滃崟鍒嗙被', value: 5, shortName: '鑿滃崟' }, + { name: '閰嶇疆鍒嗙被', value: 6, shortName: '閰嶇疆' }, + { name: '绉掓潃閰嶇疆', value: 7, shortName: '绉掓潃' }, +]; + +export const roleListStatus = [ + { label: '鍏ㄩ儴', value: '' }, + { label: '鏄剧ず', value: 1 }, + { label: '涓嶆樉绀�', value: 0 }, +]; + +export const showHiddenStatus = [ + { label: '鏄剧ず', value: '鈥�1鈥�' }, + { label: '涓嶆樉绀�', value: '鈥�0鈥�' }, +]; + +export const switchStatus = [ + { label: '寮�鍚�', value: 1 }, + { label: '鍏抽棴', value: 0 }, +]; + +export const deletedOrNormal = [ + { label: '姝e父', value: 0 }, + { label: '宸插垹闄�', value: 1 }, +]; + +// 2023-05-23 +export const normalOrDisabled = [ + { label: '姝e父', value: 0 }, + { label: '绂佺敤', value: 1 }, +]; +export const sysOrgType = [ + { label: '闆嗗洟 (椤剁骇鍗曚綅)', value: 0 }, + { label: '鍏徃 (浜岀骇鍗曚綅)', value: 1 }, + { label: '宸ュ巶 (涓夌骇鍗曚綅)', value: 2 }, + { label: '鍒嗗巶 (鍥涚骇鍗曚綅)', value: 3 }, + { label: '閮ㄩ棬 (鎸傚埌浠绘剰鍗曚綅)', value: 9 }, +]; +export const sex = [ + { label: '鐢�', value: 0 }, + { label: '濂�', value: 1 }, +]; +export const statusOptions = [ + { value: 'M', label: '鐩綍' }, + { value: 'C', label: '鑿滃崟' }, + { value: 'A', label: '鎸夐挳' }, +]; +export const showStatus = [ + { label: '鏄剧ず', value: 1 }, + { label: '闅愯棌', value: 0 }, +]; + +/** + * 鏆傛椂寮冪敤 + * @type {*[]} + */ +export const configCategory = [ + { label: '绯荤粺', value: '0' }, + { label: '搴旂敤', value: '1' }, + { label: '鏀粯', value: '2' }, + { label: '鍏朵粬', value: '3' }, +]; + +/** + * 琛ㄥ崟閰嶇疆闆嗗悎闆嗕腑閰嶇疆 + * @type {{id: number, dis: string}[]} + */ +export const formConfigIds = [ + { id: 84, dis: '寰俊鍏紬鍙疯〃鍗曢厤缃�' }, + { id: 86, dis: '绉掓潃閰嶇疆' }, +]; + +/** + * 鏃堕棿閫夋嫨鍣� + */ +export const fromList = { + title: '閫夋嫨鏃堕棿', + custom: true, + fromTxt: [ + { text: '鍏ㄩ儴', val: '' }, + { text: '浠婂ぉ', val: 'today' }, + { text: '鏄ㄥぉ', val: 'yesterday' }, + { text: '鏈�杩�7澶�', val: 'lately7' }, + { text: '鏈�杩�30澶�', val: 'lately30' }, + { text: '鏈湀', val: 'month' }, + { text: '鏈勾', val: 'year' }, + ], +}; + +/** + * 缁熻绠$悊鏃堕棿閫夋嫨鍣� + */ +export const timeList = { + title: '閫夋嫨鏃堕棿', + custom: true, + fromTxt: [ + { text: '鏄ㄥぉ', val: `` }, + { text: '鏈�杩�7澶�', val: 'lately7' }, + { text: '鏈�杩�30澶�', val: 'lately30' }, + ], +}; + +/** + * 鍟嗘埛瀹℃牳鐘舵�� + */ +export const statusList = { + title: '鐘舵��', + custom: true, + fromTxt: [ + { text: '鍏ㄩ儴', val: '' }, + { text: '寰呭鏍�', val: '1' }, + { text: '瀹℃牳閫氳繃', val: '2' }, + { text: '瀹℃牳鎷掔粷', val: '3' }, + ], +}; + +/** + * 鏁板�艰寖鍥� + */ +export const NUM_Range = { + min: 1, + max: 9999, +}; diff --git a/project-web/src/utils/error-log.js b/project-web/src/utils/error-log.js new file mode 100644 index 0000000..3a04713 --- /dev/null +++ b/project-web/src/utils/error-log.js @@ -0,0 +1,44 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import Vue from 'vue'; +import store from '@/store'; +import { isString, isArray } from '@/utils/validate'; +import settings from '@/settings'; + +// you can set in settings.js +// errorLog:'production' | ['production', 'development'] +const { errorLog: needErrorLog } = settings; + +function checkNeed() { + const env = process.env.NODE_ENV; + if (isString(needErrorLog)) { + return env === needErrorLog; + } + if (isArray(needErrorLog)) { + return needErrorLog.includes(env); + } + return false; +} + +if (checkNeed()) { + Vue.config.errorHandler = function (err, vm, info) { + // Don't ask me why I use Vue.nextTick, it just a hack. + // detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500 + Vue.nextTick(() => { + store.dispatch('errorLog/addErrorLog', { + err, + vm, + info, + url: window.location.href, + }); + }); + }; +} diff --git a/project-web/src/utils/errorCode.js b/project-web/src/utils/errorCode.js new file mode 100644 index 0000000..d2111ee --- /dev/null +++ b/project-web/src/utils/errorCode.js @@ -0,0 +1,6 @@ +export default { + '401': '璁よ瘉澶辫触锛屾棤娉曡闂郴缁熻祫婧�', + '403': '褰撳墠鎿嶄綔娌℃湁鏉冮檺', + '404': '璁块棶璧勬簮涓嶅瓨鍦�', + 'default': '绯荤粺鏈煡閿欒锛岃鍙嶉缁欑鐞嗗憳' +} diff --git a/project-web/src/utils/eventBus.js b/project-web/src/utils/eventBus.js new file mode 100644 index 0000000..b0230b5 --- /dev/null +++ b/project-web/src/utils/eventBus.js @@ -0,0 +1,2 @@ +import Vue from 'vue' +export default new Vue() diff --git a/project-web/src/utils/exportExcel.js b/project-web/src/utils/exportExcel.js new file mode 100644 index 0000000..761a31f --- /dev/null +++ b/project-web/src/utils/exportExcel.js @@ -0,0 +1,19 @@ +import FileSaver from 'file-saver'; +import * as XLSX from 'xlsx' +export default { + // 瀵煎嚭Excel琛ㄦ牸 + exportExcel(excelName, tableName) { + //excelName琛ㄧず鐢熸垚excel鐨勬枃浠跺悕 tableName琛ㄧず琛ㄦ牸鐨刬d + let tables = document.querySelector(tableName).cloneNode(true) // 閲嶇偣 + tables.removeChild(tables.querySelector(".el-table__fixed")) // 閲嶇偣 + var wb = XLSX.utils.table_to_book(tables,{raw:true}) + var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) + try { + FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), excelName) + } catch (e) { + if (typeof console !== 'undefined') console.log(e, wbout) + } + return wbout + } +} + diff --git a/project-web/src/utils/get-page-title.js b/project-web/src/utils/get-page-title.js new file mode 100644 index 0000000..ea3eb75 --- /dev/null +++ b/project-web/src/utils/get-page-title.js @@ -0,0 +1,20 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import defaultSettings from '@/settings'; + +const title = defaultSettings.title || 'Vue Element Admin'; + +export default function getPageTitle(pageTitle) { + if (pageTitle) { + return `${pageTitle} - ${title}`; + } + return `${title}`; +} diff --git a/project-web/src/utils/index.js b/project-web/src/utils/index.js new file mode 100644 index 0000000..fede7c7 --- /dev/null +++ b/project-web/src/utils/index.js @@ -0,0 +1,407 @@ + +import Cookies from 'js-cookie'; +/** + * Created by PanJiaChen on 16/11/18. + */ +/** + * Parse the time to string + * @param {(Object|string|number)} date + * @param {string} fmt + * @returns {string | null} + */ +export function formatDates(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + let o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + }; + for (let k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + let str = o[k] + ''; + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str)); + } + } + return fmt; +} +function padLeftZero(str) { + return ('00' + str).substr(str.length); +} + +/** + * 鏇存敼鏃堕棿鏍煎紡鎴�2010-01-10鏍煎紡 + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string | null} + */ +export function parseTime(time, cFormat) { + if (arguments.length === 0) { + return null; + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'; + let date; + if (typeof time === 'object') { + date = time; + } else { + if (typeof time === 'string') { + if (/^[0-9]+$/.test(time)) { + time = parseInt(time); + } else { + time = time.replace(new RegExp(/-/gm), '/'); + } + } + if (typeof time === 'number' && time.toString().length === 10) { + time = time * 1000; + } + date = new Date(time); + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay(), + }; + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + const value = formatObj[key]; + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�'][value]; + } + return value.toString().padStart(2, '0'); + }); + return time_str; +} + +/** + * @param {number} time + * @param {string} option + * @returns {string} + */ +export function formatTime(time, option) { + if (('' + time).length === 10) { + time = parseInt(time) * 1000; + } else { + time = +time; + } + const d = new Date(time); + const now = Date.now(); + + const diff = (now - d) / 1000; + + if (diff < 30) { + return '鍒氬垰'; + } else if (diff < 3600) { + // less 1 hour + return Math.ceil(diff / 60) + '鍒嗛挓鍓�'; + } else if (diff < 3600 * 24) { + return Math.ceil(diff / 3600) + '灏忔椂鍓�'; + } else if (diff < 3600 * 24 * 2) { + return '1澶╁墠'; + } + if (option) { + return parseTime(time, option); + } else { + return d.getMonth() + 1 + '鏈�' + d.getDate() + '鏃�' + d.getHours() + '鏃�' + d.getMinutes() + '鍒�'; + } +} + +/** + * @param {string} url + * @returns {Object} + */ +export function getQueryObject(url) { + url = url == null ? window.location.href : url; + const search = url.substring(url.lastIndexOf('?') + 1); + const obj = {}; + const reg = /([^?&=]+)=([^?&=]*)/g; + search.replace(reg, (rs, $1, $2) => { + const name = decodeURIComponent($1); + let val = decodeURIComponent($2); + val = String(val); + obj[name] = val; + return rs; + }); + return obj; +} + +/** + * @param {string} input value + * @returns {number} output value + */ +export function byteLength(str) { + // returns the byte length of an utf8 string + let s = str.length; + for (var i = str.length - 1; i >= 0; i--) { + const code = str.charCodeAt(i); + if (code > 0x7f && code <= 0x7ff) s++; + else if (code > 0x7ff && code <= 0xffff) s += 2; + if (code >= 0xdc00 && code <= 0xdfff) i--; + } + return s; +} + +/** + * @param {Array} actual + * @returns {Array} + */ +export function cleanArray(actual) { + const newArray = []; + for (let i = 0; i < actual.length; i++) { + if (actual[i]) { + newArray.push(actual[i]); + } + } + return newArray; +} + +/** + * @param {Object} json + * @returns {Array} + */ +export function param(json) { + if (!json) return ''; + return cleanArray( + Object.keys(json).map((key) => { + if (json[key] === undefined) return ''; + return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]); + }), + ).join('&'); +} + +/** + * @param {string} url + * @returns {Object} + */ +export function param2Obj(url) { + const search = url.split('?')[1]; + if (!search) { + return {}; + } + return JSON.parse( + '{"' + + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"').replace(/\+/g, ' ') + + '"}', + ); +} + +/** + * @param {string} val + * @returns {string} + */ +export function html2Text(val) { + const div = document.createElement('div'); + div.innerHTML = val; + return div.textContent || div.innerText; +} + +/** + * Merges two objects, giving the last one precedence + * @param {Object} target + * @param {(Object|Array)} source + * @returns {Object} + */ +export function objectMerge(target, source) { + if (typeof target !== 'object') { + target = {}; + } + if (Array.isArray(source)) { + return source.slice(); + } + Object.keys(source).forEach((property) => { + const sourceProperty = source[property]; + if (typeof sourceProperty === 'object') { + target[property] = objectMerge(target[property], sourceProperty); + } else { + target[property] = sourceProperty; + } + }); + return target; +} + +/** + * @param {HTMLElement} element + * @param {string} className + */ +export function toggleClass(element, className) { + if (!element || !className) { + return; + } + let classString = element.className; + const nameIndex = classString.indexOf(className); + if (nameIndex === -1) { + classString += '' + className; + } else { + classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length); + } + element.className = classString; +} + +/** + * @param {string} type + * @returns {Date} + */ +export function getTime(type) { + if (type === 'start') { + return new Date().getTime() - 3600 * 1000 * 24 * 90; + } else { + return new Date(new Date().toDateString()); + } +} + +/** + * @param {Function} func + * @param {number} wait + * @param {boolean} immediate + * @return {*} + */ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result; + + const later = function () { + // 鎹笂涓�娆¤Е鍙戞椂闂撮棿闅� + const last = +new Date() - timestamp; + + // 涓婃琚寘瑁呭嚱鏁拌璋冪敤鏃堕棿闂撮殧 last 灏忎簬璁惧畾鏃堕棿闂撮殧 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + // 濡傛灉璁惧畾涓篿mmediate===true锛屽洜涓哄紑濮嬭竟鐣屽凡缁忚皟鐢ㄨ繃浜嗘澶勬棤闇�璋冪敤 + if (!immediate) { + result = func.apply(context, args); + if (!timeout) context = args = null; + } + } + }; + + return function (...args) { + context = this; + timestamp = +new Date(); + const callNow = immediate && !timeout; + // 濡傛灉寤舵椂涓嶅瓨鍦紝閲嶆柊璁惧畾寤舵椂 + if (!timeout) timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; +} + +/** + * This is just a simple version of deep copy + * Has a lot of edge cases bug + * If you want to use a perfect deep copy, use lodash's _.cloneDeep + * @param {Object} source + * @returns {Object} + */ +export function deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone'); + } + const targetObj = source.constructor === Array ? [] : {}; + Object.keys(source).forEach((keys) => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]); + } else { + targetObj[keys] = source[keys]; + } + }); + return targetObj; +} + +/** + * @param {Array} arr + * @returns {Array} + */ +export function uniqueArr(arr) { + return Array.from(new Set(arr)); +} + +/** + * @returns {string} + */ +export function createUniqueString() { + const timestamp = +new Date() + ''; + const randomNum = parseInt((1 + Math.random()) * 65536) + ''; + return (+(randomNum + timestamp)).toString(32); +} + +/** + * Check if an element has a class + * @param {HTMLElement} elm + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele, cls) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); +} + +/** + * Add class to element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function addClass(ele, cls) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls; +} + +/** + * Remove class from element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function removeClass(ele, cls) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); + ele.className = ele.className.replace(reg, ' '); + } +} + +/** + * 鍒ゆ柇鍦板潃 + */ +export function parseQuery() { + const res = {}; + + const query = (location.href.split('?')[1] || '').trim().replace(/^(\?|#|&)/, ''); + + if (!query) { + return res; + } + + query.split('&').forEach((param) => { + const parts = param.replace(/\+/g, ' ').split('='); + const key = decodeURIComponent(parts.shift()); + const val = parts.length > 0 ? decodeURIComponent(parts.join('=')) : null; + + if (res[key] === undefined) { + res[key] = val; + } else if (Array.isArray(res[key])) { + res[key].push(val); + } else { + res[key] = [res[key], val]; + } + }); + + return res; +} + +/** + * 鏄惁鏄牳閿�鍛� + */ +export function isWriteOff() { + if (localStorage.getItem('storeStaffList')) { + let JavaInfo = JSON.parse(Cookies.get('JavaInfo')); + let staff = JSON.parse(localStorage.getItem('storeStaffList')); + return staff.some((item) => item.avatar === JavaInfo.account); + } +} diff --git a/project-web/src/utils/jsencrypt.js b/project-web/src/utils/jsencrypt.js new file mode 100644 index 0000000..de326bb --- /dev/null +++ b/project-web/src/utils/jsencrypt.js @@ -0,0 +1,33 @@ +import JSEncrypt from 'jsencrypt/bin/jsencrypt.min' + +// 瀵嗛挜瀵圭敓鎴� http://web.chacuo.net/netrsakeypair + +const publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDffJ9KczIXi+nsa2Sib3rLnZ5R\n' + + 'yhlY5enEhZTQc1GcTeZb6gqu4HoDJV6lskfexSNCUC/3mmNj2nruWGgRg6iVCAMB\n' + + 'Uf5oMv5nVqIhZ5davy1UZ9yvwL0+yVhBSXmamUmezQlh0H3clUI1N3Hc9aCiulB6\n' + + 'RMIsv1aukBkTBhgQZQIDAQAB' + +// 鏆備笉闇�瑕佺閽ヨВ瀵嗘湇鍔$鏁版嵁銆�2023-05-12 +const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + + '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + + 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' + + 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' + + 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' + + 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' + + 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' + + 'UP8iWi1Qw0Y=' + +// 鍔犲瘑 +export function encrypt(txt) { + const encryptor = new JSEncrypt() + encryptor.setPublicKey(publicKey) // 璁剧疆鍏挜 + return encryptor.encrypt(txt) // 瀵规暟鎹繘琛屽姞瀵� +} + +// 瑙e瘑 +export function decrypt(txt) { + const encryptor = new JSEncrypt() + encryptor.setPrivateKey(privateKey) // 璁剧疆绉侀挜 + return encryptor.decrypt(txt) // 瀵规暟鎹繘琛岃В瀵� +} + diff --git a/project-web/src/utils/newToExcel.js b/project-web/src/utils/newToExcel.js new file mode 100644 index 0000000..79bbb8d --- /dev/null +++ b/project-web/src/utils/newToExcel.js @@ -0,0 +1,30 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +import { export_json_to_excel } from '../vendor/Export1Excel'; + +/** + * @method exportExcel + * @param {Array} header 琛ㄥご + * @param {Array} filterVal 琛ㄥご灞炴�у瓧娈� + * @param {String} filename 鏂囦欢鍚嶇О + * @param {Array} tableData 鍒楄〃鏁版嵁 + **/ +export default function exportExcel(header, filterVal, filename, tableData) { + var data = formatJson(filterVal, tableData); + export_json_to_excel(header, data, filename); +} + +function formatJson(filterVal, tableData) { + return tableData.map((v) => { + return filterVal.map((j) => { + return v[j]; + }); + }); +} diff --git a/project-web/src/utils/open-window.js b/project-web/src/utils/open-window.js new file mode 100644 index 0000000..eeff8c5 --- /dev/null +++ b/project-web/src/utils/open-window.js @@ -0,0 +1,53 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + *Created by PanJiaChen on 16/11/29. + * @param {Sting} url + * @param {Sting} title + * @param {Number} w + * @param {Number} h + */ +export default function openWindow(url, title, w, h) { + // Fixes dual-screen position Most browsers Firefox + const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left; + const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top; + + const width = window.innerWidth + ? window.innerWidth + : document.documentElement.clientWidth + ? document.documentElement.clientWidth + : screen.width; + const height = window.innerHeight + ? window.innerHeight + : document.documentElement.clientHeight + ? document.documentElement.clientHeight + : screen.height; + + const left = width / 2 - w / 2 + dualScreenLeft; + const top = height / 2 - h / 2 + dualScreenTop; + const newWindow = window.open( + url, + title, + 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' + + w + + ', height=' + + h + + ', top=' + + top + + ', left=' + + left, + ); + + // Puts focus on the newWindow + if (window.focus) { + newWindow.focus(); + } +} diff --git a/project-web/src/utils/parsing.js b/project-web/src/utils/parsing.js new file mode 100644 index 0000000..d742ae1 --- /dev/null +++ b/project-web/src/utils/parsing.js @@ -0,0 +1,280 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/** + * 閫氱敤js鏂规硶灏佽澶勭悊 + * Copyright (c) 2019 ruoyi + */ + +// 鏃ユ湡鏍煎紡鍖� +export function parseTime(time, pattern) { + if (arguments.length === 0 || !time) { + return null; + } + const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'; + let date; + if (typeof time === 'object') { + date = time; + } else { + if (typeof time === 'string' && /^[0-9]+$/.test(time)) { + time = parseInt(time); + } else if (typeof time === 'string') { + time = time + .replace(new RegExp(/-/gm), '/') + .replace('T', ' ') + .replace(new RegExp(/\.[\d]{3}/gm), ''); + } + if (typeof time === 'number' && time.toString().length === 10) { + time = time * 1000; + } + date = new Date(time); + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay(), + }; + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { + let value = formatObj[key]; + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�'][value]; + } + if (result.length > 0 && value < 10) { + value = '0' + value; + } + return value || 0; + }); + return time_str; +} + +/** + * @Description 闀挎暣鏁拌浆鎹负鏃堕棿灞曠ず + * @Author wh + * @Date 2023/7/17 13:48 + */ +export function LongToDateTime(val){ + if(val == null || val == undefined || val == '' || val == 'null' || val == 'undefined'){ + return true; + } + var temp = val.toString() + // 骞� + var y = temp.slice(0, 4); + // 鏈� + var m = temp.slice(4, 6); + // 鏃� + var d = temp.slice(6, 8); + // 鏃� + var hh = temp.slice(8, 10); + // 鍒� + var mm = temp.slice(10, 12); + // 绉� + var ss = temp.slice(12, 14); + var result = y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss + return result; +} + +/** + * @Description 鏃堕棿杞崲涓簂ong + * @Author wh + * @Date 2023/7/17 13:49 + */ +export function DateToLong(val){ + if(val == null || val == undefined || val == '' || val == 'null' || val == 'undefined'){ + return true; + } + // .replace(/ 杩欓噷濉鍖归厤鐨勫唴瀹�/g,'杩欓噷鏄鏇挎崲涓虹殑鍐呭'锛� + /* + 1. 鏇挎崲- + 2. 鏇挎崲: + 3. 鏇挎崲绌烘牸 + */ + var temp = val.toString().replace(/\s/g, '').replace(/-/g, '').replace(/:/g, '') + return temp; +} + +// 琛ㄥ崟閲嶇疆 +export function resetForm(refName) { + if (this.$refs[refName]) { + this.$refs[refName].resetFields(); + } +} + +// 娣诲姞鏃ユ湡鑼冨洿 +export function addDateRange(params, dateRange, propName) { + let search = params; + search.params = + typeof search.params === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}; + dateRange = Array.isArray(dateRange) ? dateRange : []; + if (typeof propName === 'undefined') { + search.params['beginTime'] = dateRange[0]; + search.params['endTime'] = dateRange[1]; + } else { + search.params['begin' + propName] = dateRange[0]; + search.params['end' + propName] = dateRange[1]; + } + return search; +} + +// 瀛楃涓叉牸寮忓寲(%s ) +export function sprintf(str) { + var args = arguments, + flag = true, + i = 1; + str = str.replace(/%s/g, function () { + var arg = args[i++]; + if (typeof arg === 'undefined') { + flag = false; + return ''; + } + return arg; + }); + return flag ? str : ''; +} + +// 杞崲瀛楃涓诧紝undefined,null绛夎浆鍖栦负"" +export function praseStrEmpty(str) { + if (!str || str == 'undefined' || str == 'null') { + return ''; + } + return str; +} + +// 鏁版嵁鍚堝苟 +export function mergeRecursive(source, target) { + for (var p in target) { + try { + if (target[p].constructor == Object) { + source[p] = mergeRecursive(source[p], target[p]); + } else { + source[p] = target[p]; + } + } catch (e) { + source[p] = target[p]; + } + } + return source; +} + +/** + * 鏋勯�犳爲鍨嬬粨鏋勬暟鎹� + * @param {*} data 鏁版嵁婧� + * @param {*} id id瀛楁 榛樿 'id' + * @param {*} parentId 鐖惰妭鐐瑰瓧娈� 榛樿 'parentId' + * @param {*} children 瀛╁瓙鑺傜偣瀛楁 榛樿 'children' + */ +export function handleTree(data, id, parentId, children) { + let config = { + id: id || 'id', + parentId: parentId || 'parentId', + childrenList: children || 'children', + }; + + var childrenListMap = {}; + var nodeIds = {}; + var tree = []; + + for (let d of data) { + let parentId = d[config.parentId]; + if (childrenListMap[parentId] == null) { + childrenListMap[parentId] = []; + } + nodeIds[d[config.id]] = d; + childrenListMap[parentId].push(d); + } + + for (let d of data) { + let parentId = d[config.parentId]; + if (nodeIds[parentId] == null) { + tree.push(d); + } + } + + for (let t of tree) { + adaptToChildrenList(t); + } + + function adaptToChildrenList(o) { + if (childrenListMap[o[config.id]] !== null) { + o[config.childrenList] = childrenListMap[o[config.id]]; + } + if (o[config.childrenList]) { + for (let c of o[config.childrenList]) { + adaptToChildrenList(c); + } + } + } + return tree; +} + +/** + * 璺敱鏁版嵁閬嶅巻 + * + */ +export function formatRoutes(routerArr) { + let arr = [], + obj = {}; + routerArr.forEach((tmp) => { + obj = { + id: tmp.id, + pid: tmp.pid, + name: tmp.name, + url: tmp.component, + path: '/' + tmp.pid + '/', + perms: tmp.perms, + child: tmp.childList.length + ? tmp.childList.map((item) => { + return { + id: item.id, + pid: item.pid, + name: item.name, + url: item.component, + path: '/' + tmp.pid + '/' + item.pid + '/', + perms: item.perms, + extra: item.icon, + child: item.childList.length + ? item.childList.map((item1) => { + return { + id: item1.id, + pid: item1.pid, + name: item1.name, + url: item1.component, + path: '/' + tmp.pid + '/' + item.pid + '/' + item1.pid + '/', + perms: item1.perms, + extra: item1.icon, + child: item1.childList.length + ? item1.childList.map((item2) => { + return { + id: item2.id, + pid: item2.pid, + name: item2.name, + url: item2.component, + path: '/' + tmp.pid + '/' + item.pid + '/' + item1.pid + '/' + item2.pid + '/', + perms: item2.perms, + extra: item2.icon, + }; + }) + : [], + }; + }) + : [], + }; + }) + : [], + extra: tmp.icon, + }; + arr.push(obj); + }); + return arr; +} diff --git a/project-web/src/utils/permission.js b/project-web/src/utils/permission.js new file mode 100644 index 0000000..24b1b63 --- /dev/null +++ b/project-web/src/utils/permission.js @@ -0,0 +1,61 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +import store from '@/store'; + +/** + * 瀛楃鏉冮檺鏍¢獙 + * @param {Array} value 鏍¢獙鍊� + * @returns {Boolean} + */ +export function checkPermi(value) { + if (value && value instanceof Array && value.length > 0) { + const permissions = store.getters && store.getters.permissions; + const permissionDatas = value; + const all_permission = '*:*:*'; + + const hasPermission = permissions.some((permission) => { + return all_permission === permission || permissionDatas.includes(permission); + }); + + if (!hasPermission) { + return false; + } + return true; + } else { + console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`); + return false; + } +} + +/** + * 瑙掕壊鏉冮檺鏍¢獙 + * @param {Array} value 鏍¢獙鍊� + * @returns {Boolean} + */ +export function checkRole(value) { + if (value && value instanceof Array && value.length > 0) { + const roles = store.getters && store.getters.roles; + const permissionRoles = value; + const super_admin = 'admin'; + + const hasRole = roles.some((role) => { + return super_admin === role || permissionRoles.includes(role); + }); + + if (!hasRole) { + return false; + } + return true; + } else { + console.error(`need roles! Like checkRole="['admin','editor']"`); + return false; + } +} diff --git a/project-web/src/utils/print.js b/project-web/src/utils/print.js new file mode 100644 index 0000000..8c0b08e --- /dev/null +++ b/project-web/src/utils/print.js @@ -0,0 +1,125 @@ +// 鎵撳嵃绫诲睘鎬с�佹柟娉曞畾涔� +/* eslint-disable */ +const Print = function (dom, options) { + if (!(this instanceof Print)) return new Print(dom, options); + this.options = this.extend({ noPrint: '.no-print' }, options); + if (typeof dom === 'string') { + this.dom = document.querySelector(dom); + } else { + this.isDOM(dom); + this.dom = this.isDOM(dom) ? dom : dom.$el; + } + this.init(); +}; +Print.prototype = { + init: function () { + var content = this.getStyle() + this.getHtml(); + this.writeIframe(content); + }, + extend: function (obj, obj2) { + for (var k in obj2) { + obj[k] = obj2[k]; + } + return obj; + }, + getStyle: function () { + var str = '', + styles = document.querySelectorAll('style,link'); + for (var i = 0; i < styles.length; i++) { + str += styles[i].outerHTML; + } + str += '<style>' + (this.options.noPrint ? this.options.noPrint : '.no-print') + '{display:none;}</style>'; + return str; + }, + getHtml: function () { + var inputs = document.querySelectorAll('input'); + var textareas = document.querySelectorAll('textarea'); + var selects = document.querySelectorAll('select'); + for (var k = 0; k < inputs.length; k++) { + if (inputs[k].type == 'checkbox' || inputs[k].type == 'radio') { + if (inputs[k].checked == true) { + inputs[k].setAttribute('checked', 'checked'); + } else { + inputs[k].removeAttribute('checked'); + } + } else if (inputs[k].type == 'text') { + inputs[k].setAttribute('value', inputs[k].value); + } else { + inputs[k].setAttribute('value', inputs[k].value); + } + } + for (var k2 = 0; k2 < textareas.length; k2++) { + if (textareas[k2].type == 'textarea') { + textareas[k2].innerHTML = textareas[k2].value; + } + } + for (var k3 = 0; k3 < selects.length; k3++) { + if (selects[k3].type == 'select-one') { + var child = selects[k3].children; + for (var i in child) { + if (child[i].tagName == 'OPTION') { + if (child[i].selected == true) { + child[i].setAttribute('selected', 'selected'); + } else { + child[i].removeAttribute('selected'); + } + } + } + } + } + return this.dom.outerHTML; + }, + writeIframe: function (content) { + var w, + doc, + iframe = document.createElement('iframe'), + f = document.body.appendChild(iframe); + iframe.id = 'myIframe'; + iframe.style = 'position:absolute;width:0;height:0;top:-10px;left:-10px;'; + iframe.setAttribute('style', 'position:absolute;width:0;height:0;top:-10px;left:-10px;'); + w = f.contentWindow || f.contentDocument; + doc = f.contentDocument || f.contentWindow.document; + doc.open(); + doc.write(content); + doc.close(); + let _this=this + iframe.onload = function () { + _this.toPrint(w); + + setTimeout(function () { + document.body.removeChild(iframe); + }, 100); + }; + }, + toPrint: function (frameWindow) { + try { + setTimeout(function () { + frameWindow.focus(); + try { + if (!frameWindow.document.execCommand('print', false, null)) { + frameWindow.print(); + } + } catch (e) { + frameWindow.print(); + } + frameWindow.close(); + }, 10); + } catch (err) { + console.log('err', err); + } + }, + isDOM: + typeof HTMLElement === 'object' + ? function (obj) { + return obj instanceof HTMLElement; + } + : function (obj) { + return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string'; + }, +}; +const MyPlugin = {}; +MyPlugin.install = function (Vue, options) { + // 4. 娣诲姞瀹炰緥鏂规硶 + Vue.prototype.$print = Print; +}; +export default MyPlugin; diff --git a/project-web/src/utils/request.js b/project-web/src/utils/request.js new file mode 100644 index 0000000..a843344 --- /dev/null +++ b/project-web/src/utils/request.js @@ -0,0 +1,169 @@ +import axios from 'axios'; +import {Message, MessageBox} from 'element-ui'; +import store from '@/store'; +import {setToken} from '@/utils/auth'; +import errorCode from '@/utils/errorCode' +// import SettingIplatform from '@/utils/settingIplatform'; +import SettingIplatform from '../../public/static/config'; +import {isPhone} from '@/libs/wechat'; + +// 鏄惁鏄剧ず閲嶆柊鐧诲綍 +export let isRelogin = {show: false}; + +axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' + +const service = axios.create({ + baseURL: SettingIplatform.apiBaseURL, + timeout: 60000, // 杩囨湡鏃堕棿 +}); + +// request interceptor +service.interceptors.request.use( + (config) => { + // 鍙戦�佽姹備箣鍓嶅仛鐨� + const token = !store.getters.token ? sessionStorage.getItem('token') : store.getters.token; + if (token) { + config.headers['Authorization'] = token; + } + if (/get/i.test(config.method)) { + config.params = config.params || {}; + config.params.temp = Date.parse(new Date()) / 1000; + } + return config; + }, + (error) => { + return Promise.reject(error); + }, +); + +// response interceptor +service.interceptors.response.use(res => { + if (SettingIplatform.debug) { + console.log('%c璇锋眰鎺ュ彛锛�', 'color: #529b2e', res.config.url) + if (res.config.method.toLowerCase() === 'get') { + console.log('%c璇锋眰鍙傛暟锛�', 'color: #529b2e', res.config.params) + } else { + try{ + console.log('%c璇锋眰鍙傛暟锛�', 'color: #529b2e', JSON.parse(res.config.data)) + } catch (e) { + + } + + } + console.log('%c杩斿洖缁撴灉锛�', 'color: #529b2e', res.data) + } + // 鏈缃姸鎬佺爜鍒欓粯璁ゆ垚鍔熺姸鎬� + // const code = res.data.code || 200; + // 2022-11-08 杩欓噷浣跨敤鑷繁涓氬姟瀹氫箟鐨勬垚鍔熺姸鎬佺爜:1 + // const res = response.data; + let showErrMsg = res.config.showErrMsg; + if (showErrMsg == undefined) { + showErrMsg = true + } + const code = res.data.code; + if (res.headers.hasOwnProperty("tokenrefresh")) { + setToken(res.headers.tokenrefresh); + store.commit('user/SET_TOKEN', res.headers.tokenrefresh); + } + // 鑾峰彇閿欒淇℃伅 + const msg = errorCode[code] || res.data.msg || errorCode['default'] + // 浜岃繘鍒舵暟鎹垯鐩存帴杩斿洖 + if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') { + return res.data + } + if (code === 10) { + // console.log("+++++++++++ token杩囨湡"); + if (!isRelogin.show) { + isRelogin.show = true; + MessageBox.confirm('鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�', '绯荤粺鎻愮ず', { + confirmButtonText: '閲嶆柊鐧诲綍', + cancelButtonText: '鍙栨秷', + type: 'warning' + } + ).then(() => { + isRelogin.show = false; + store.dispatch('user/logout').then(() => { + // 2023-06-07锛岄噸瀹氬悜鍒扮湅鏉块〉闈紝鍘熸潵'/index'涓�鐩存姤404 + // location.href = '/dashboard'; + window.location.reload() + }) + + }).catch(() => { + isRelogin.show = false; + }); + } + return Promise.reject('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�') + } else if (code === 500 && showErrMsg) { + Message({ + message: msg, + type: 'error' + }) + return Promise.reject(new Error(msg)) + } else if (code !== 1) { + // 濡傛灉涓嶆槸瓒呯骇绠$悊鍛� + if (!(store.getters.info && store.getters.info.realName === '瓒呯骇绠$悊鐢ㄦ埛') && showErrMsg) { + Message({ + message: msg, + type: 'error', + duration: 5 * 1000 + }); + } + if (isPhone()) { + //绉诲姩绔� + return Promise.reject(res || 'Error'); + } + return Promise.reject('error') + } else { + // 2023-05-16锛岀粺涓�鎷︽埅鍘婚櫎瀹為檯涓氬姟鏁版嵁銆� + return res.data.data; + } + // if (res.code === 401) { + // // to re-login + // Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呯櫥褰曞凡杩囨湡锛岃閲嶆柊鐧诲綍銆�'); + // if (window.location.pathname !== '/login') location.href = '/login'; + // } else if (res.code === 403) { + // Message.error('娌℃湁鏉冮檺璁块棶銆�'); + // } + // if (res.code !== 200 && res.code !== 401) { + // if (isPhone()) { + // //绉诲姩绔� + // return Promise.reject(res || 'Error'); + // } + // Message({ + // message: res.message || 'Error', + // type: 'error', + // duration: 5 * 1000, + // }); + // return Promise.reject(); + // } else { + // return res.data; + // } + }, + error => { + console.log('err' + error) + let {message} = error; + if (message == "Network Error") { + message = "鍚庣鎺ュ彛杩炴帴寮傚父"; + } else if (message.includes("timeout")) { + message = "绯荤粺鎺ュ彛璇锋眰瓒呮椂"; + } else if (message.includes("Request failed with status code")) { + message = "绯荤粺鎺ュ彛" + message.substr(message.length - 3) + "寮傚父"; + } + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } + // (error) => { + // Message({ + // message: error.message, + // type: 'error', + // duration: 5 * 1000, + // }); + // return Promise.reject(error); + // }, +); + +export default service; diff --git a/project-web/src/utils/scroll-to.js b/project-web/src/utils/scroll-to.js new file mode 100644 index 0000000..5cc8297 --- /dev/null +++ b/project-web/src/utils/scroll-to.js @@ -0,0 +1,75 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +Math.easeInOutQuad = function (t, b, c, d) { + t /= d / 2; + if (t < 1) { + return (c / 2) * t * t + b; + } + t--; + return (-c / 2) * (t * (t - 2) - 1) + b; +}; + +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts +var requestAnimFrame = (function () { + return ( + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + } + ); +})(); + +/** + * Because it's so fucking difficult to detect the scrolling element, just move them all + * @param {number} amount + */ +function move(amount) { + document.documentElement.scrollTop = amount; + document.body.parentNode.scrollTop = amount; + document.body.scrollTop = amount; +} + +function position() { + return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop; +} + +/** + * @param {number} to + * @param {number} duration + * @param {Function} callback + */ +export function scrollTo(to, duration, callback) { + const start = position(); + const change = to - start; + const increment = 20; + let currentTime = 0; + duration = typeof duration === 'undefined' ? 500 : duration; + var animateScroll = function () { + // increment the time + currentTime += increment; + // find the value with the quadratic in-out easing function + var val = Math.easeInOutQuad(currentTime, start, change, duration); + // move the document.body + move(val); + // do the animation unless its over + if (currentTime < duration) { + requestAnimFrame(animateScroll); + } else { + if (callback && typeof callback === 'function') { + // the animation is done so lets callback + callback(); + } + } + }; + animateScroll(); +} diff --git a/project-web/src/utils/settingIplatform.js b/project-web/src/utils/settingIplatform.js new file mode 100644 index 0000000..3743ccf --- /dev/null +++ b/project-web/src/utils/settingIplatform.js @@ -0,0 +1,21 @@ + +// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞 +const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; +const VUE_APP_WS_URL = + process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; + +const SettingIplatform = { + // 鏈嶅姟鍣ㄥ湴鍧� + httpUrl: VUE_APP_API_URL, + // 涓婁紶璺緞 + ftpUrl: 'http://172.16.60.209:8082/progress',//寮�鍙� + // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, +// 鎺ュ彛璇锋眰鍦板潃 +// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡 + apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙� +// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯, + // socket杩炴帴 + wsSocketUrl: VUE_APP_WS_URL, +}; + +export default SettingIplatform; diff --git a/project-web/src/utils/utils.js b/project-web/src/utils/utils.js new file mode 100644 index 0000000..c8af483 --- /dev/null +++ b/project-web/src/utils/utils.js @@ -0,0 +1,58 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +export default { + // 璁剧疆閫変腑鐨勬柟娉� + // 璁板繂閫夋嫨鏍稿績鏂规硶 + changePageCoreRecordData: function (multipleSelectionAll, multipleSelection, tableData, successFn) { + // 鏍囪瘑褰撳墠琛岀殑鍞竴閿殑鍚嶇О + const idKey = 'uid'; + const that = this; + // 濡傛灉鎬昏蹇嗕腑杩樻病鏈夐�夋嫨鐨勬暟鎹紝閭d箞灏辩洿鎺ュ彇褰撳墠椤甸�変腑鐨勬暟鎹紝涓嶉渶瑕佸悗闈竴绯诲垪璁$畻 + if (multipleSelectionAll.length <= 0) { + multipleSelectionAll = multipleSelection; + successFn(multipleSelectionAll); + return; + } + // 鎬婚�夋嫨閲岄潰鐨刱ey闆嗗悎 + const selectAllIds = []; + multipleSelectionAll.forEach((row) => { + selectAllIds.push(row[idKey]); + }); + const selectIds = []; + // 鑾峰彇褰撳墠椤甸�変腑鐨刬d + multipleSelection.forEach((row) => { + selectIds.push(row[idKey]); + // 濡傛灉鎬婚�夋嫨閲岄潰涓嶅寘鍚綋鍓嶉〉閫変腑鐨勬暟鎹紝閭d箞灏卞姞鍏ュ埌鎬婚�夋嫨闆嗗悎閲� + if (selectAllIds.indexOf(row[idKey]) < 0) { + multipleSelectionAll.push(row); + } + }); + const noSelectIds = []; + // 寰楀埌褰撳墠椤垫病鏈夐�変腑鐨刬d + tableData.forEach((row) => { + if (selectIds.indexOf(row[idKey]) < 0) { + noSelectIds.push(row[idKey]); + } + }); + noSelectIds.forEach((uid) => { + if (selectAllIds.indexOf(uid) >= 0) { + for (let i = 0; i < multipleSelectionAll.length; i++) { + if (multipleSelectionAll[i][idKey] == uid) { + // 濡傛灉鎬婚�夋嫨涓湁鏈閫変腑鐨勶紝閭d箞灏卞垹闄よ繖鏉� + multipleSelectionAll.splice(i, 1); + break; + } + } + } + }); + successFn(multipleSelectionAll); + }, +}; diff --git a/project-web/src/utils/validate.js b/project-web/src/utils/validate.js new file mode 100644 index 0000000..75ebaf2 --- /dev/null +++ b/project-web/src/utils/validate.js @@ -0,0 +1,181 @@ + +/** + * Created by PanJiaChen on 16/11/18. + */ +const baseAttr = { + min: '%s鏈�灏忛暱搴︿负:min', + max: '%s鏈�澶ч暱搴︿负:max', + length: '%s闀垮害蹇呴』涓�:length', + range: '%s闀垮害涓�:range', + pattern: '$s鏍煎紡閿欒', +}; + +/** + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path); +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUsername(str) { + const valid_map = ['admin', 'editor']; + return valid_map.indexOf(str.trim()) >= 0; +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validPassword(str) { + const reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,12}$/; + return reg.test(str) +} + +/** + * @param {string} url + * @returns {Boolean} + */ +export function validURL(url) { + const reg = + /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; + return reg.test(url); +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validLowerCase(str) { + const reg = /^[a-z]+$/; + return reg.test(str); +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUpperCase(str) { + const reg = /^[A-Z]+$/; + return reg.test(str); +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validAlphabets(str) { + const reg = /^[A-Za-z]+$/; + return reg.test(str); +} + +/** + * @param {string} email + * @returns {Boolean} + */ +export function validEmail(email) { + // eslint-disable-next-line no-useless-escape + const reg = + /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return reg.test(email); +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function isString(str) { + if (typeof str === 'string' || str instanceof String) { + return true; + } + return false; +} + +/** + * @param {Array} arg + * @returns {Boolean} + */ +export function isArray(arg) { + if (typeof Array.isArray === 'undefined') { + return Object.prototype.toString.call(arg) === '[object Array]'; + } + return Array.isArray(arg); +} + +const bindMessage = (fn, message) => { + fn.message = (field) => message.replace('%s', field || ''); +}; + +export function required(message, opt = {}) { + return { + required: true, + message, + type: 'string', + ...opt, + }; +} +bindMessage(required, '璇疯緭鍏�%s'); + +/** + * 姝g‘鐨勯噾棰� + * + * @param message + * @returns {*} + */ +export function num(message) { + return attrs.pattern(/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, message); +} +bindMessage(num, '%s鏍煎紡涓嶆纭�'); + +const attrs = Object.keys(baseAttr).reduce((attrs, key) => { + attrs[key] = (attr, message = '', opt = {}) => { + const _attr = key === 'range' ? { min: attr[0], max: attr[1] } : { [key]: attr }; + + return { + message: message.replace(`:${key}`, key === 'range' ? `${attr[0]}-${attr[1]}` : attr), + type: 'string', + ..._attr, + ...opt, + }; + }; + bindMessage(attrs[key], baseAttr[key]); + return attrs; +}, {}); +export default attrs; + +export function isEmpty(obj) { + return typeof obj === 'undefined' || obj === null || obj === '' || obj === '[]' || obj === '{}' || obj.length <= 0; +} + +export function isNotEmpty(obj) { + if (typeof obj == 'undefined' || obj == null || obj == '' || obj.length <= 0) { + return false + } else { + return true + } +} +/** + * 鍑芥暟闃叉姈 (鍙墽琛屾渶鍚庝竴娆$偣鍑�) + * @param fn + * @param delay + * @returns {Function} + * @constructor + */ +export const Debounce = (fn, t) => { + const delay = t || 500; + let timer; + return function () { + const args = arguments; + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + timer = null; + fn.apply(this, args); + }, delay); + }; +}; diff --git a/project-web/src/utils/web-connection.js b/project-web/src/utils/web-connection.js new file mode 100644 index 0000000..5b707d3 --- /dev/null +++ b/project-web/src/utils/web-connection.js @@ -0,0 +1,151 @@ +import {isEmptyValue} from '@/utils/StringUtils' +import store from "@/store"; + +/** + * 瀹氫箟'Websocket'杩炴帴瀵硅薄銆� + * @author 鏃跺厠鑻� + * @date 2023-04-17 + */ +class WebConnection { + // static uid; + // static uri; + constructor(_uri, _uid) { + if(isEmptyValue(_uri)){ + throw 'uri鍙傛暟涓虹┖'; + } + if(isEmptyValue(_uid)){ + throw 'uid鍙傛暟涓虹┖'; + } + this.uri = _uri; + this.uid = _uid; + this.socket = null; + this._ws_timer = setInterval(this.timedCheckConnection, 15000); // 瀹氭椂浠诲姟 + } + + shutdown(){ + if(this.socket != null && this.socket != undefined){ + this.socket.close(); + } + } + + startConnect(){ + if('WebSocket' in window){ + this.socket = new WebSocket(this.uri); + this.socket.onopen = this.wsOpen; + this.socket.onmessage = this.wsMessage; + this.socket.onerror = this.wsError; + this.socket.onclose = this.wsClose; + // console.log('寮�濮嬭繛鎺ebSocket id涓�',this.uid) + } else { + this.socket = null; + console.log('鍒涘缓ws閿欒锛屽彲鑳藉綋鍓嶆祻瑙堝櫒涓嶆敮鎸亀ebSocket') + } + } + + timedCheckConnection(){ + let uri = store.state.user.uri; + let uid = store.state.user.uid; + if(!isEmptyValue(uri) && !isEmptyValue(uid)){ + // 2023-04-18锛岃繖閲屼篃鏃犳硶鐩存帴浣跨敤锛歵his.socket锛屽洜涓烘鏃朵负绌猴紙undefined锛� + // console.log("鏄惁杩炴帴 = " + this.socket); + // if(this.socket == null || this.socket == undefined || !this.connected()){ + if(store.state.user.webConnection == null || !store.state.user.webConnection.connected()){ + this.uri = uri; + this.uid = uid; + // console.log("閲嶆柊杩炴帴锛�" + this.uri); + store.state.user.webConnection.shutdown() + store.state.user.webConnection.startConnect(); + } + } else{ + console.error("uri鎴杣id涓虹┖," + this.uid + ", " + this.uri); + } + } + wsOpen(){ + // 2023-04-18锛屾敞鎰忥細杩欓噷鍥炶皟鏂规硶涓棤娉曠洿鎺ヨ幏鍙栵細this.uid锛岀寽娴嬫槸鍥犱负涓婁笅鏂囩幆澧冨凡缁忓彉鍖栵紙绫讳技浜庡尶鍚嶇被鎹㈡垚鐙珛绫荤殑鎯呭喌锛� + // 鍥犳锛岀粡杩囬暱鏃堕棿鐮旂┒锛屽喅瀹氶渶瑕佹斁鍦ㄥ叏灞�store涓�� + let uid = store.state.user.uid; + this.send(JSON.stringify({"protocol":"login", "uid":uid})); + // console.log(this); + } + wsClose(){ + this.uid = store.state.user.uid; + this.uri = store.state.user.uri; + // console.log("娴忚鍣ㄦ柇寮�杩炴帴锛�" + this.uid); + setTimeout(()=>{ + store.state.user.webConnection.startConnect(); + },2000) + // store.state.user.webConnection.shutdown() + // store.state.user.webConnection.startConnect(); + } + wsError(err){ + // console.log('== websocket error ==', err); + // store.state.user.webConnection.shutdown() + // store.state.user.webConnection.startConnect(); + } + wsMessage(event){ + // console.log(event); + if(event.data == null || event.data == "" || event.data == "null"){ + console.log("鎺ユ敹鍒版湇鍔$绌烘暟鎹甛n"); + return; + } + store.commit('user/SET_WS_MSG', event); + } + + processServerRequest(data){ + if(data == null){ + return; + } + if(data.protocol == "heartbeat"){ + return; + } + if(data.protocol == "login"){ + if(data.status == 0){ + // uid = data.uid; + //$("#showText").append("鏈嶅姟宸茶繛鎺ワ紝寮�濮嬫彁闂細" + data.uid + "\n"); + console.log("娴忚鍣ㄨ繛鎺ユ垚鍔�:" + data.uid); + } else { + console.log("鐧诲綍璁よ瘉澶辫触锛�" + data.status + "\n"); + } + return; + } + + if(data.protocol == "chat" || data.protocol == "broadcast"){ + console.log("鎺ユ敹鍒皐eb鎺ㄩ�侊細"); + return JSON.stringify(data.data) + // store.commit('user/SET_WS_MSG', data.data); + // if(data.data.touch == 1){ + // touchEvent(data.data); + // } else { + // voiceEvent(data.data); + // } + } + console.log(data); + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + //~ 鍐呴儴绉佹湁鏂规硶 + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + send(message){ + if(this.socket == null){ + return; + } + if (this.socket.readyState == WebSocket.OPEN) { + this.socket.send(message); + } else { + console.log("connection is not start."); + } + } + + connected(){ + if(this.socket == null || this.socket == undefined){ + return false; + } + if(this.socket.readyState == 1){ + return true; + } + return false; + } + +} + +export default WebConnection; diff --git a/project-web/src/vendor/Blob.js b/project-web/src/vendor/Blob.js new file mode 100644 index 0000000..ec63195 --- /dev/null +++ b/project-web/src/vendor/Blob.js @@ -0,0 +1,182 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +/* eslint-disable */ +/* Blob.js + * A Blob implementation. + * 2014-05-27 + * + * By Eli Grey, http://eligrey.com + * By Devin Samarin, https://github.com/eboyjr + * License: X11/MIT + * See LICENSE.md + */ + +/*global self, unescape */ +/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, + plusplus: true */ + +/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */ + +(function (view) { + 'use strict'; + + view.URL = view.URL || view.webkitURL; + + if (view.Blob && view.URL) { + try { + new Blob(); + return; + } catch (e) {} + } + + // Internally we use a BlobBuilder implementation to base Blob off of + // in order to support older browsers that only have BlobBuilder + var BlobBuilder = + view.BlobBuilder || + view.WebKitBlobBuilder || + view.MozBlobBuilder || + (function (view) { + var get_class = function (object) { + return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1]; + }, + FakeBlobBuilder = function BlobBuilder() { + this.data = []; + }, + FakeBlob = function Blob(data, type, encoding) { + this.data = data; + this.size = data.length; + this.type = type; + this.encoding = encoding; + }, + FBB_proto = FakeBlobBuilder.prototype, + FB_proto = FakeBlob.prototype, + FileReaderSync = view.FileReaderSync, + FileException = function (type) { + this.code = this[(this.name = type)]; + }, + file_ex_codes = ( + 'NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR ' + + 'NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR' + ).split(' '), + file_ex_code = file_ex_codes.length, + real_URL = view.URL || view.webkitURL || view, + real_create_object_URL = real_URL.createObjectURL, + real_revoke_object_URL = real_URL.revokeObjectURL, + URL = real_URL, + btoa = view.btoa, + atob = view.atob, + ArrayBuffer = view.ArrayBuffer, + Uint8Array = view.Uint8Array; + FakeBlob.fake = FB_proto.fake = true; + while (file_ex_code--) { + FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1; + } + if (!real_URL.createObjectURL) { + URL = view.URL = {}; + } + URL.createObjectURL = function (blob) { + var type = blob.type, + data_URI_header; + if (type === null) { + type = 'application/octet-stream'; + } + if (blob instanceof FakeBlob) { + data_URI_header = 'data:' + type; + if (blob.encoding === 'base64') { + return data_URI_header + ';base64,' + blob.data; + } else if (blob.encoding === 'URI') { + return data_URI_header + ',' + decodeURIComponent(blob.data); + } + if (btoa) { + return data_URI_header + ';base64,' + btoa(blob.data); + } else { + return data_URI_header + ',' + encodeURIComponent(blob.data); + } + } else if (real_create_object_URL) { + return real_create_object_URL.call(real_URL, blob); + } + }; + URL.revokeObjectURL = function (object_URL) { + if (object_URL.substring(0, 5) !== 'data:' && real_revoke_object_URL) { + real_revoke_object_URL.call(real_URL, object_URL); + } + }; + FBB_proto.append = function (data /*, endings*/) { + var bb = this.data; + // decode data to a binary string + if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) { + var str = '', + buf = new Uint8Array(data), + i = 0, + buf_len = buf.length; + for (; i < buf_len; i++) { + str += String.fromCharCode(buf[i]); + } + bb.push(str); + } else if (get_class(data) === 'Blob' || get_class(data) === 'File') { + if (FileReaderSync) { + var fr = new FileReaderSync(); + bb.push(fr.readAsBinaryString(data)); + } else { + // async FileReader won't work as BlobBuilder is sync + throw new FileException('NOT_READABLE_ERR'); + } + } else if (data instanceof FakeBlob) { + if (data.encoding === 'base64' && atob) { + bb.push(atob(data.data)); + } else if (data.encoding === 'URI') { + bb.push(decodeURIComponent(data.data)); + } else if (data.encoding === 'raw') { + bb.push(data.data); + } + } else { + if (typeof data !== 'string') { + data += ''; // convert unsupported types to strings + } + // decode UTF-16 to binary string + bb.push(unescape(encodeURIComponent(data))); + } + }; + FBB_proto.getBlob = function (type) { + if (!arguments.length) { + type = null; + } + return new FakeBlob(this.data.join(''), type, 'raw'); + }; + FBB_proto.toString = function () { + return '[object BlobBuilder]'; + }; + FB_proto.slice = function (start, end, type) { + var args = arguments.length; + if (args < 3) { + type = null; + } + return new FakeBlob(this.data.slice(start, args > 1 ? end : this.data.length), type, this.encoding); + }; + FB_proto.toString = function () { + return '[object Blob]'; + }; + FB_proto.close = function () { + this.size = this.data.length = 0; + }; + return FakeBlobBuilder; + })(view); + + view.Blob = function Blob(blobParts, options) { + var type = options ? options.type || '' : ''; + var builder = new BlobBuilder(); + if (blobParts) { + for (var i = 0, len = blobParts.length; i < len; i++) { + builder.append(blobParts[i]); + } + } + return builder.getBlob(type); + }; +})((typeof self !== 'undefined' && self) || (typeof window !== 'undefined' && window) || this.content || this); diff --git a/project-web/src/vendor/Export1Excel.js b/project-web/src/vendor/Export1Excel.js new file mode 100644 index 0000000..0f10824 --- /dev/null +++ b/project-web/src/vendor/Export1Excel.js @@ -0,0 +1,143 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- +/* eslint-disable */ +require('script-loader!file-saver'); //淇濆瓨鏂囦欢鐢� +require('./Blob.js'); //杞簩杩涘埗鐢� +require('script-loader!xlsx/dist/xlsx.core.min'); //xlsx鏍稿績 +function generateArray(table) { + var out = []; + var rows = table.querySelectorAll('tr'); + var ranges = []; + for (var R = 0; R < rows.length; ++R) { + var outRow = []; + var row = rows[R]; + var columns = row.querySelectorAll('td'); + for (var C = 0; C < columns.length; ++C) { + var cell = columns[C]; + var colspan = cell.getAttribute('colspan'); + var rowspan = cell.getAttribute('rowspan'); + var cellValue = cell.innerText; + if (cellValue !== '' && cellValue == +cellValue) cellValue = +cellValue; + + //Skip ranges + ranges.forEach(function (range) { + if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { + for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); + } + }); + + //Handle Row Span + if (rowspan || colspan) { + rowspan = rowspan || 1; + colspan = colspan || 1; + ranges.push({ s: { r: R, c: outRow.length }, e: { r: R + rowspan - 1, c: outRow.length + colspan - 1 } }); + } + //Handle Value + outRow.push(cellValue !== '' ? cellValue : null); + + //Handle Colspan + if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null); + } + out.push(outRow); + } + return [out, ranges]; +} + +function datenum(v, date1904) { + if (date1904) v += 1462; + var epoch = Date.parse(v); + return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); +} + +function sheet_from_array_of_arrays(data, opts) { + var ws = {}; + var range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } }; + for (var R = 0; R != data.length; ++R) { + for (var C = 0; C != data[R].length; ++C) { + if (range.s.r > R) range.s.r = R; + if (range.s.c > C) range.s.c = C; + if (range.e.r < R) range.e.r = R; + if (range.e.c < C) range.e.c = C; + var cell = { v: data[R][C] }; + if (cell.v == null) continue; + var cell_ref = XLSX.utils.encode_cell({ c: C, r: R }); + + if (typeof cell.v === 'number') cell.t = 'n'; + else if (typeof cell.v === 'boolean') cell.t = 'b'; + else if (cell.v instanceof Date) { + cell.t = 'n'; + cell.z = XLSX.SSF._table[14]; + cell.v = datenum(cell.v); + } else cell.t = 's'; + + ws[cell_ref] = cell; + } + } + if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); + return ws; +} + +function Workbook() { + if (!(this instanceof Workbook)) return new Workbook(); + this.SheetNames = []; + this.Sheets = {}; +} + +function s2ab(s) { + var buf = new ArrayBuffer(s.length); + var view = new Uint8Array(buf); + for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff; + return buf; +} + +export function export_table_to_excel(id) { + var theTable = document.getElementById(id); + var oo = generateArray(theTable); + var ranges = oo[1]; + + /* original data */ + var data = oo[0]; + var ws_name = 'SheetJS'; + + var wb = new Workbook(), + ws = sheet_from_array_of_arrays(data); + + /* add ranges to worksheet */ + // ws['!cols'] = ['apple', 'banan']; + ws['!merges'] = ranges; + + /* add worksheet to workbook */ + wb.SheetNames.push(ws_name); + wb.Sheets[ws_name] = ws; + + var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }); + + saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), 'test.xlsx'); +} + +function formatJson(jsonData) {} +export function export_json_to_excel(th, jsonData, defaultTitle) { + /* original data */ + + var data = jsonData; + data.unshift(th); + var ws_name = 'SheetJS'; + + var wb = new Workbook(), + ws = sheet_from_array_of_arrays(data); + + /* add worksheet to workbook */ + wb.SheetNames.push(ws_name); + wb.Sheets[ws_name] = ws; + + var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }); + var title = defaultTitle || '鍒楄〃'; + saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), title + '.xlsx'); +} diff --git a/project-web/src/vendor/Export2Excel.js b/project-web/src/vendor/Export2Excel.js new file mode 100644 index 0000000..c64f4ed --- /dev/null +++ b/project-web/src/vendor/Export2Excel.js @@ -0,0 +1,236 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +---------------------------------------------------------------------- + +/* eslint-disable */ +import { saveAs } from 'file-saver'; +import XLSX from 'xlsx'; + +function generateArray(table) { + var out = []; + var rows = table.querySelectorAll('tr'); + var ranges = []; + for (var R = 0; R < rows.length; ++R) { + var outRow = []; + var row = rows[R]; + var columns = row.querySelectorAll('td'); + for (var C = 0; C < columns.length; ++C) { + var cell = columns[C]; + var colspan = cell.getAttribute('colspan'); + var rowspan = cell.getAttribute('rowspan'); + var cellValue = cell.innerText; + if (cellValue !== '' && cellValue == +cellValue) cellValue = +cellValue; + + //Skip ranges + ranges.forEach(function (range) { + if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { + for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); + } + }); + + //Handle Row Span + if (rowspan || colspan) { + rowspan = rowspan || 1; + colspan = colspan || 1; + ranges.push({ + s: { + r: R, + c: outRow.length, + }, + e: { + r: R + rowspan - 1, + c: outRow.length + colspan - 1, + }, + }); + } + + //Handle Value + outRow.push(cellValue !== '' ? cellValue : null); + + //Handle Colspan + if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null); + } + out.push(outRow); + } + return [out, ranges]; +} + +function datenum(v, date1904) { + if (date1904) v += 1462; + var epoch = Date.parse(v); + return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); +} + +function sheet_from_array_of_arrays(data, opts) { + var ws = {}; + var range = { + s: { + c: 10000000, + r: 10000000, + }, + e: { + c: 0, + r: 0, + }, + }; + for (var R = 0; R != data.length; ++R) { + for (var C = 0; C != data[R].length; ++C) { + if (range.s.r > R) range.s.r = R; + if (range.s.c > C) range.s.c = C; + if (range.e.r < R) range.e.r = R; + if (range.e.c < C) range.e.c = C; + var cell = { + v: data[R][C], + }; + if (cell.v == null) continue; + var cell_ref = XLSX.utils.encode_cell({ + c: C, + r: R, + }); + + if (typeof cell.v === 'number') cell.t = 'n'; + else if (typeof cell.v === 'boolean') cell.t = 'b'; + else if (cell.v instanceof Date) { + cell.t = 'n'; + cell.z = XLSX.SSF._table[14]; + cell.v = datenum(cell.v); + } else cell.t = 's'; + + ws[cell_ref] = cell; + } + } + if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); + return ws; +} + +function Workbook() { + if (!(this instanceof Workbook)) return new Workbook(); + this.SheetNames = []; + this.Sheets = {}; +} + +function s2ab(s) { + var buf = new ArrayBuffer(s.length); + var view = new Uint8Array(buf); + for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff; + return buf; +} + +export function export_table_to_excel(id) { + var theTable = document.getElementById(id); + var oo = generateArray(theTable); + var ranges = oo[1]; + + /* original data */ + var data = oo[0]; + var ws_name = 'SheetJS'; + + var wb = new Workbook(), + ws = sheet_from_array_of_arrays(data); + + /* add ranges to worksheet */ + // ws['!cols'] = ['apple', 'banan']; + ws['!merges'] = ranges; + + /* add worksheet to workbook */ + wb.SheetNames.push(ws_name); + wb.Sheets[ws_name] = ws; + + var wbout = XLSX.write(wb, { + bookType: 'xlsx', + bookSST: false, + type: 'binary', + }); + + saveAs( + new Blob([s2ab(wbout)], { + type: 'application/octet-stream', + }), + 'test.xlsx', + ); +} + +export function export_json_to_excel({ + multiHeader = [], + header, + data, + filename, + merges = [], + autoWidth = true, + bookType = 'xlsx', +} = {}) { + /* original data */ + filename = filename || 'excel-list'; + data = [...data]; + data.unshift(header); + + for (let i = multiHeader.length - 1; i > -1; i--) { + data.unshift(multiHeader[i]); + } + + var ws_name = 'SheetJS'; + var wb = new Workbook(), + ws = sheet_from_array_of_arrays(data); + + if (merges.length > 0) { + if (!ws['!merges']) ws['!merges'] = []; + merges.forEach((item) => { + ws['!merges'].push(XLSX.utils.decode_range(item)); + }); + } + + if (autoWidth) { + /*璁剧疆worksheet姣忓垪鐨勬渶澶у搴�*/ + const colWidth = data.map((row) => + row.map((val) => { + /*鍏堝垽鏂槸鍚︿负null/undefined*/ + if (val == null) { + return { + wch: 10, + }; + } else if (val.toString().charCodeAt(0) > 255) { + /*鍐嶅垽鏂槸鍚︿负涓枃*/ + return { + wch: val.toString().length * 2, + }; + } else { + return { + wch: val.toString().length, + }; + } + }), + ); + /*浠ョ涓�琛屼负鍒濆鍊�*/ + let result = colWidth[0]; + for (let i = 1; i < colWidth.length; i++) { + for (let j = 0; j < colWidth[i].length; j++) { + if (result[j]['wch'] < colWidth[i][j]['wch']) { + result[j]['wch'] = colWidth[i][j]['wch']; + } + } + } + ws['!cols'] = result; + } + + /* add worksheet to workbook */ + wb.SheetNames.push(ws_name); + wb.Sheets[ws_name] = ws; + + var wbout = XLSX.write(wb, { + bookType: bookType, + bookSST: false, + type: 'binary', + }); + saveAs( + new Blob([s2ab(wbout)], { + type: 'application/octet-stream', + }), + `${filename}.${bookType}`, + ); +} diff --git a/project-web/src/vendor/Export2Zip.js b/project-web/src/vendor/Export2Zip.js new file mode 100644 index 0000000..b0d8368 --- /dev/null +++ b/project-web/src/vendor/Export2Zip.js @@ -0,0 +1,39 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +/* eslint-disable */ +import { saveAs } from 'file-saver'; +import JSZip from 'jszip'; + +export function export_txt_to_zip(th, jsonData, txtName, zipName) { + const zip = new JSZip(); + const txt_name = txtName || 'file'; + const zip_name = zipName || 'file'; + const data = jsonData; + let txtData = `${th}\r\n`; + data.forEach((row) => { + let tempStr = ''; + tempStr = row.toString(); + txtData += `${tempStr}\r\n`; + }); + zip.file(`${txt_name}.txt`, txtData); + zip + .generateAsync({ + type: 'blob', + }) + .then( + (blob) => { + saveAs(blob, `${zip_name}.zip`); + }, + (err) => { + alert('瀵煎嚭澶辫触'); + }, + ); +} diff --git a/project-web/src/views/components/myImport.vue b/project-web/src/views/components/myImport.vue new file mode 100644 index 0000000..400e608 --- /dev/null +++ b/project-web/src/views/components/myImport.vue @@ -0,0 +1,161 @@ +<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" + :modal="modal" + :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 + :headers="headers" + :ref="fileSettings.ref" + class="upload-demo" + name="file" + :data="fileSettings.data" + :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> +import { getToken } from '@/utils/auth' +import { sessionToken } from '@/settings' +export default { + props: { + importSetting: { + type: Object, + default: () => { + return {} + } + }, + dialogShow: { + type: Boolean, + default: false + }, + modal: { + type: Boolean, + default: false + }, + dialogTitle: { + type: String, + default: '' + } + }, + data() { + return { + headers: {}, + loading: false, + /* 鏂囦欢涓婁紶 */ + fileSettings: { + ref: 'myFile', + data: {}, //棰濆鍙傛暟 + title: '鐐瑰嚮涓婁紶', + max: 1024, // 鏈�澶уぇ灏忥紝鍗曚綅kb + num: 1, // 鏀寔涓婁紶鏂囦欢涓暟 + accept: '.xlsx', // 闄愬埗鏍煎紡 + uploadUrl: '', // 涓婁紶璺緞 + type: 'text', // text/picture + multiple: false, // 鏄惁鏀寔鎵归噺涓婁紶 + disabled: false, // 鏄惁绂佺敤 + autoUpload: false, // 鏄惁鍦ㄩ�夊彇鏂囦欢鍚庣珛鍗宠繘琛屼笂浼� + onSuccess: null // 涓婁紶鎴愬姛鍥炶皟 + }, + isUpload: false, + /* 妯℃澘涓嬭浇*/ + templateSettings: { + templateName: '妯℃澘涓嬭浇', // 鍚嶇О + templateUrl: null // 涓嬭浇鍦板潃 + } + } + }, + watch: { + dialogShow(val) { + 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 + } + } + }, + mounted() { + this.headers[sessionToken] = getToken() + }, + 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/project-web/src/views/dashboard/components/GDLX.vue b/project-web/src/views/dashboard/components/GDLX.vue new file mode 100644 index 0000000..1d2eda7 --- /dev/null +++ b/project-web/src/views/dashboard/components/GDLX.vue @@ -0,0 +1,124 @@ +<template> + <div style="width: 100%"> + <div id="main3" /> + <p style="text-align: center;font-size: 16px;font-weight: 600">宸ュ崟绫诲瀷</p> + </div> +</template> +<script> +import * as echarts from 'echarts'; + +export default { + name: 'GDLX', + props: { + activeId: { + type: String, + default: '', + }, + }, + data() { + return { + myChart: null, + options: {}, + }; + }, + mounted() { + this.getCenterLine(); + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + window.addEventListener('resize', () => { + this.changeWidth(); + }); + }, + methods: { + + getCenterLine() { + // getCenterLine({ + // id: this.activeId, + // weekFlag: this.weekFlag, + // monthFlag: this.monthFlag, + // startDay: this.value2 ? this.value2[0] : null, + // endDay: this.value2 ? this.value2[1] : null + // }).then(res => { + // const data = res.data + var chartDom = document.getElementById('main3'); + this.myChart = echarts.init(chartDom); + this.options = { + color: [ '#1877FF','#5EDEA5','#F7BE12','#55C6E1','#ED653B'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + }, + + // toolbox: { + // show: true, + // orient: 'vertical', + // left: 'right', + // top: 'center', + // feature: { + // mark: { show: true }, + // dataView: { show: true, readOnly: false }, + // magicType: { show: true, type: ['line', 'bar', 'stack'] }, + // restore: { show: true }, + // saveAsImage: { show: true }, + // }, + // }, + + series: [ + { + + name: 'Access From', + type: 'pie', + radius: ['40%','65%'], + minAngle: 2, // 鏈�灏忕殑鎵囧尯瑙掑害锛�0~360锛夛紝鐢ㄤ簬闃叉鏌愪釜鍊艰繃灏忓鑷存墖鍖哄お灏忓奖鍝嶄氦浜� + avoidLabelOverlap: true, // 鏄惁鍚敤闃叉鏍囩閲嶅彔绛栫暐 + itemStyle: { + normal: { + label: { + show: true, + formatter(param) { + // correct the percentage + return param.name + '\n' + ' ' + param.percent.toFixed(1) + '%'; + } + }, + labelLine: { + show: true, + length: 0.01 + } + } + }, + data: [ + { value: 1048, name: '璁″垝宸ュ崟' }, + { value: 735, name: '鏁呴殰宸ュ崟' }, + { value: 580, name: '鏃ュ父宸ュ崟' }, + + ] + }] + }; + this.options && this.myChart.setOption(this.options); + }, + changeWidth() { + this.myChart.resize(); + }, + }, +}; +</script> +<style lang="scss" scoped> +#main3 { + width: 100%; + height: 300px; +} + +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dashboard/components/SJDJ.vue b/project-web/src/views/dashboard/components/SJDJ.vue new file mode 100644 index 0000000..6ea0f91 --- /dev/null +++ b/project-web/src/views/dashboard/components/SJDJ.vue @@ -0,0 +1,136 @@ +<template> + <div style="width: 100%"> + <div id="main2" /> + <p style="text-align: center;font-size: 16px;font-weight: 600">浜嬩欢绛夌骇</p> + </div> +</template> +<script> +import * as echarts from 'echarts'; +import * as dash from "@/api/dashboard/dash"; + +export default { + name: 'SJDJ', + props: { + activeId: { + type: String, + default: '', + }, + }, + data() { + return { + myChart: null, + options: {}, + }; + }, + mounted() { + this.getCenterLine(); + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + window.addEventListener('resize', () => { + this.changeWidth(); + }); + this.getData(); + }, + methods: { + getData(){ + //鑾峰彇椤圭洰鏁版嵁 + dash.getLVNum().then(res => { + if (res) { + this.projectInfo = res + // 浜嬩欢鏁伴噺 + this.options.series[0].data = this.projectInfo + this.myChart.setOption(this.options) + } + }) + }, + getCenterLine() { + // getCenterLine({ + // id: this.activeId, + // weekFlag: this.weekFlag, + // monthFlag: this.monthFlag, + // startDay: this.value2 ? this.value2[0] : null, + // endDay: this.value2 ? this.value2[1] : null + // }).then(res => { + // const data = res.data + var chartDom = document.getElementById('main2'); + this.myChart = echarts.init(chartDom); + this.options = { + color: [ '#1877FF','#5EDEA5','#F7BE12','#55C6E1','#ED653B'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + }, + + // toolbox: { + // show: true, + // orient: 'vertical', + // left: 'right', + // top: 'center', + // feature: { + // mark: { show: true }, + // dataView: { show: true, readOnly: false }, + // magicType: { show: true, type: ['line', 'bar', 'stack'] }, + // restore: { show: true }, + // saveAsImage: { show: true }, + // }, + // }, + + series: [ + { + + name: 'Access From', + type: 'pie', + radius: ['40%','65%'], + minAngle: 2, // 鏈�灏忕殑鎵囧尯瑙掑害锛�0~360锛夛紝鐢ㄤ簬闃叉鏌愪釜鍊艰繃灏忓鑷存墖鍖哄お灏忓奖鍝嶄氦浜� + avoidLabelOverlap: true, // 鏄惁鍚敤闃叉鏍囩閲嶅彔绛栫暐 + itemStyle: { + normal: { + label: { + show: true, + formatter(param) { + // correct the percentage + return param.name + '\n' + ' ' + param.percent.toFixed(1) + '%'; + } + }, + labelLine: { + show: true, + length: 0.01 + } + } + }, + data: [ + { value: 100, name: '绛夌骇涓�' }, + { value: 100, name: '绛夌骇浜�' }, + { value: 100, name: '绛夌骇涓�' }, + + ] + }] + }; + this.options && this.myChart.setOption(this.options); + }, + changeWidth() { + this.myChart.resize(); + }, + }, +}; +</script> +<style lang="scss" scoped> +#main2 { + width: 100%; + height: 300px; +} + +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dashboard/components/SJGDZB.vue b/project-web/src/views/dashboard/components/SJGDZB.vue new file mode 100644 index 0000000..7a367b1 --- /dev/null +++ b/project-web/src/views/dashboard/components/SJGDZB.vue @@ -0,0 +1,139 @@ +<template> + <div style="width: 100%"> + <div id="main4" /> + <p style="text-align: center;font-size: 16px;font-weight: 600">浜嬩欢宸ュ崟鍗犳瘮</p> + </div> +</template> +<script> +import * as echarts from 'echarts'; +import * as dash from "@/api/dashboard/dash"; + +export default { + name: 'SJGDZB', + props: { + activeId: { + type: String, + default: '', + }, + }, + data() { + return { + myChart: null, + options: {}, + }; + }, + mounted() { + this.getCenterLine(); + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + window.addEventListener('resize', () => { + this.changeWidth(); + }); + this.getData(); + }, + methods: { + getData(){ + //鑾峰彇椤圭洰鏁版嵁 + dash.getEventType().then(res => { + if (res) { + this.projectInfo = res + // 浜嬩欢鏁伴噺 + this.options.series[0].data = this.projectInfo + this.myChart.setOption(this.options) + } + }) + }, + getCenterLine() { + // getCenterLine({ + // id: this.activeId, + // weekFlag: this.weekFlag, + // monthFlag: this.monthFlag, + // startDay: this.value2 ? this.value2[0] : null, + // endDay: this.value2 ? this.value2[1] : null + // }).then(res => { + // const data = res.data + var chartDom = document.getElementById('main4'); + this.myChart = echarts.init(chartDom); + this.options = { + color: [ '#1877FF','#5EDEA5','#F7BE12','#55C6E1','#ED653B'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + }, + + // toolbox: { + // show: true, + // orient: 'vertical', + // left: 'right', + // top: 'center', + // feature: { + // mark: { show: true }, + // dataView: { show: true, readOnly: false }, + // magicType: { show: true, type: ['line', 'bar', 'stack'] }, + // restore: { show: true }, + // saveAsImage: { show: true }, + // }, + // }, + + series: [ + { + + name: 'Access From', + type: 'pie', + radius: ['40%','65%'], + minAngle: 2, // 鏈�灏忕殑鎵囧尯瑙掑害锛�0~360锛夛紝鐢ㄤ簬闃叉鏌愪釜鍊艰繃灏忓鑷存墖鍖哄お灏忓奖鍝嶄氦浜� + avoidLabelOverlap: true, // 鏄惁鍚敤闃叉鏍囩閲嶅彔绛栫暐 + itemStyle: { + normal: { + label: { + show: true, + formatter(param) { + // correct the percentage + return param.name + '\n' + ' ' + param.percent.toFixed(1) + '%'; + } + }, + labelLine: { + show: true, + length: 0.01 + } + } + }, + data: [ + { value: 1048, name: '鍜ㄨ' }, + { value: 735, name: '鍛婅' }, + { value: 580, name: '鏁呴殰' }, + { value: 580, name: '鏈嶅姟璇锋眰' }, + { value: 580, name: '鐢冲憡' }, + + + ] + }] + }; + this.options && this.myChart.setOption(this.options); + }, + changeWidth() { + this.myChart.resize(); + }, + }, +}; +</script> +<style lang="scss" scoped> +#main4 { + width: 100%; + height: 300px; +} + +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dashboard/components/XMGZD.vue b/project-web/src/views/dashboard/components/XMGZD.vue new file mode 100644 index 0000000..0151ea9 --- /dev/null +++ b/project-web/src/views/dashboard/components/XMGZD.vue @@ -0,0 +1,261 @@ +<template> + <div style="width: 100%"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span style="font-weight: 600; font-size: 20px">椤圭洰宸ヤ綔鍗曠粺璁�</span> + <div class="card-title-right"> + <div :style="{ color: weekFlag ? '#378cff' : '' }" @click="changeDate(1)">杩�7澶�</div> + <div :style="{ color: monthFlag ? '#378cff' : '' }" style="margin: 0 30px 0 10px" @click="changeDate(2)"> + 杩�30澶� + </div> + <el-date-picker + v-model="value2" + type="daterange" + :picker-options="pickerOptions" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + align="right" + value-format="yyyyMMdd" + /> + <el-button type="primary" style="margin-left: 10px" @click="searchOnClick">鎼滅储</el-button> + </div> + </div> + <div id="main" /> + </el-card> + </div> +</template> +<script> +import * as echarts from 'echarts'; +import * as dash from '@/api/dashboard/dash'; + +export default { + name: 'XMGZD', + props: { + activeId: { + type: String, + default: '', + }, + }, + data() { + return { + pickerOptions: { + shortcuts: [ + { + text: '鏈�杩戜竴鍛�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜竴涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜笁涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + }, + }, + ], + }, + value2: '', + myChart: null, + weekFlag: 1, // 杩戜竷澶� + monthFlag: null, // 杩�30澶� + options: {}, + }; + }, + mounted() { + this.getCenterLine(); + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + window.addEventListener('resize', () => { + this.changeWidth(); + }); + this.getProjectInfo(); + }, + created() {}, + methods: { + changeDate(type) { + if (type == 1) { + this.monthFlag = null; + if (this.weekFlag) { + this.weekFlag = null; + } else { + this.weekFlag = 1; + } + if (this.weekFlag) { + this.monthFlag = null; + this.value2 = []; + } + this.searchByTime(); + } + if (type == 2) { + this.weekFlag = null; + if (this.monthFlag) { + this.monthFlag = null; + } else { + this.monthFlag = 1; + } + if (this.monthFlag) { + this.weekFlag = null; + this.value2 = []; + } + this.searchByTime(); + } + }, + searchOnClick() { + this.monthFlag = null; + this.weekFlag = null; + this.searchByTime(); + }, + getProjectInfo() { + //鑾峰彇椤圭洰鏁版嵁 + dash.getNumByProject().then((res) => { + if (res) { + this.projectInfo = res; + this.options.xAxis[0].data = this.projectInfo.projjectName; + // 浜嬩欢鏁伴噺 + this.options.series[0].data = this.projectInfo.eventNum; + // 宸ュ崟鏁伴噺 + this.options.series[1].data = this.projectInfo.workNum; + this.myChart.setOption(this.options); + } + }); + }, + searchByTime() { + var param = {}; + if (this.value2 != null && this.value2.length > 0) { + param.begin = this.value2[0]; + param.end = this.value2[1]; + } + + if (this.weekFlag != null) { + param.weekFlag = this.weekFlag; + } + if (this.monthFlag != null) { + param.monthFlag = this.monthFlag; + } + dash.getNumByProject(param).then((res) => { + if (res) { + this.projectInfo = res; + this.options.xAxis[0].data = this.projectInfo.projjectName; + // 浜嬩欢鏁伴噺 + this.options.series[0].data = this.projectInfo.eventNum; + // 宸ュ崟鏁伴噺 + this.options.series[1].data = this.projectInfo.workNum; + this.myChart.setOption(this.options); + } + }); + }, + getCenterLine() { + // getCenterLine({ + // id: this.activeId, + // weekFlag: this.weekFlag, + // monthFlag: this.monthFlag, + // startDay: this.value2 ? this.value2[0] : null, + // endDay: this.value2 ? this.value2[1] : null + // }).then(res => { + // const data = res.data + var chartDom = document.getElementById('main'); + this.myChart = echarts.init(chartDom); + this.options = { + color: ['#5EDEA5', '#1877FF'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + }, + legend: { + data: ['闂宸ュ崟', '浜嬩欢宸ュ崟'], + }, + toolbox: { + show: true, + orient: 'vertical', + left: 'right', + top: 'center', + feature: { + mark: { show: true }, + dataView: { show: true, readOnly: false }, + magicType: { show: true, type: ['line', 'bar', 'stack'] }, + restore: { show: true }, + saveAsImage: { show: true }, + }, + }, + xAxis: [ + { + type: 'category', + axisTick: { show: false }, + data: ['棰勭畻涓�浣撳寲骞冲彴', '涓�鍗¢�氱郴缁�', '棰勭畻涓�浣撳寲骞冲彴', '涓�鍗¢�氱郴缁�'], + }, + ], + yAxis: [ + { + type: 'value', + }, + ], + series: [ + { + name: '浜嬩欢宸ュ崟', + type: 'bar', + barWidth: 20, + barGap: 0, + emphasis: { + focus: 'series', + }, + data: [320, 332, 301, 334], + }, + { + name: '闂宸ュ崟', + type: 'bar', + barWidth: 20, + + emphasis: { + focus: 'series', + }, + data: [220, 182, 191, 234], + }, + ], + }; + + this.options && this.myChart.setOption(this.options); + // }); + }, + changeWidth() { + this.myChart.resize(); + }, + }, +}; +</script> +<style lang="scss" scoped> +#main { + width: 100%; + height: 400px; +} + +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dashboard/components/XYZC.vue b/project-web/src/views/dashboard/components/XYZC.vue new file mode 100644 index 0000000..5066119 --- /dev/null +++ b/project-web/src/views/dashboard/components/XYZC.vue @@ -0,0 +1,243 @@ +<template> + <div style="width: 100%"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span style="font-weight: 600; font-size: 20px">鍝嶅簲鏀寔绫荤粺璁�</span> + <div class="card-title-right"> + <div :style="{ color: weekFlag ? '#378cff' : '' }" @click="changeDate(1)">杩�7澶�</div> + <div :style="{ color: monthFlag ? '#378cff' : '' }" style="margin: 0 30px 0 10px" @click="changeDate(2)"> + 杩�30澶� + </div> + <el-date-picker + v-model="value2" + type="daterange" + :picker-options="pickerOptions" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + align="right" + value-format="yyyyMMdd" + /> + <el-button type="primary" style="margin-left: 10px" @click="getCenterLine">鎼滅储</el-button> + </div> + </div> + <div id="main1" /> + </el-card> + </div> +</template> +<script> +import * as echarts from 'echarts'; + +export default { + name: 'XYZC', + props: { + activeId: { + type: String, + default: '', + }, + }, + data() { + return { + pickerOptions: { + shortcuts: [ + { + text: '鏈�杩戜竴鍛�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜竴涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + }, + }, + { + text: '鏈�杩戜笁涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + }, + }, + ], + }, + value2: '', + myChart: null, + weekFlag: 1, // 杩戜竷澶� + monthFlag: null, // 杩�30澶� + options: {}, + }; + }, + mounted() { + this.getCenterLine(); + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + window.addEventListener('resize', () => { + this.changeWidth(); + }); + }, + methods: { + changeDate(type) { + if (type == 1) { + this.monthFlag = null; + if (this.weekFlag) { + this.weekFlag = null; + } else { + this.weekFlag = 1; + } + if (this.weekFlag) { + this.monthFlag = null; + this.value2 = []; + } + this.getCenterLine(); + } + if (type == 2) { + this.weekFlag = null; + if (this.monthFlag) { + this.monthFlag = null; + } else { + this.monthFlag = 1; + } + if (this.monthFlag) { + this.weekFlag = null; + this.value2 = []; + } + this.getCenterLine(); + } + }, + getCenterLine() { + // getCenterLine({ + // id: this.activeId, + // weekFlag: this.weekFlag, + // monthFlag: this.monthFlag, + // startDay: this.value2 ? this.value2[0] : null, + // endDay: this.value2 ? this.value2[1] : null + // }).then(res => { + // const data = res.data + var chartDom = document.getElementById('main1'); + this.myChart = echarts.init(chartDom); + this.options = { + color: ['#ED653B', '#1877FF'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow', + }, + }, + legend: { + data: ['鍝嶅簲閫熷害', '澶勭悊閫熷害'], + }, + toolbox: { + show: true, + orient: 'vertical', + left: 'right', + top: 'center', + feature: { + mark: { show: true }, + dataView: { show: true, readOnly: false }, + magicType: { show: true, type: ['line', 'bar', 'stack'] }, + restore: { show: true }, + saveAsImage: { show: true }, + }, + }, + xAxis: [ + { + type: 'category', + axisTick: { show: false }, + data: [ + '12-01', + '12-02', + '12-03', + '12-04', + '12-05', + '12-06', + '12-07', + '12-08', + '12-09', + '12-10', + '12-11', + '12-12', + ], + }, + ], + yAxis: [ + { + type: 'value', + }, + ], + dataZoom: [ + { + orient: 'horizontal', + + show: true, //鎺у埗婊氬姩鏉℃樉绀洪殣钘� + + realtime: true, //鎷栧姩婊氬姩鏉℃椂鏄惁鍔ㄦ�佺殑鏇存柊鍥捐〃鏁版嵁 + + height: 15, //婊氬姩鏉¢珮搴� + + start: 0, //婊氬姩鏉″紑濮嬩綅缃紙鍏�100绛変唤锛� + // + // end: 30, //婊氬姩鏉$粨鏉熶綅缃� + bottom: '4%', + zoomLock: true, //鎺у埗闈㈡澘鏄惁杩涜缂╂斁 + } + ], + + series: [ + { + name: '鍝嶅簲閫熷害', + type: 'line', + barGap: 0, + smooth: true, + emphasis: { + focus: 'series', + }, + data: [320, 332, 301, 334, 320, 332, 301, 334, 320, 332, 301, 334], + }, + { + name: '澶勭悊閫熷害', + type: 'line', + smooth: true, + emphasis: { + focus: 'series', + }, + data: [220, 182, 191, 234, 220, 182, 191, 234, 220, 182, 191, 234], + }, + ], + }; + + this.options && this.myChart.setOption(this.options); + // }); + }, + changeWidth() { + this.myChart.resize(); + }, + }, +}; +</script> +<style lang="scss" scoped> +#main1 { + width: 100%; + height: 400px; +} + +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dashboard/components/progressMY.vue b/project-web/src/views/dashboard/components/progressMY.vue new file mode 100644 index 0000000..fbe7ea8 --- /dev/null +++ b/project-web/src/views/dashboard/components/progressMY.vue @@ -0,0 +1,80 @@ +<template> + <div class="container"> + <div class="box"> + <div class="flex"> + <span>寰呭搷搴�</span> + <el-progress style="flex: 1;margin-left: 10px" :text-inside="true" :stroke-width="26" :percentage="this.projectInfo.poolBi"></el-progress> + </div> + <div class="flex"> + <span>杩涜涓�</span> + <el-progress + style="flex: 1;margin-left: 10px" + :text-inside="true" + :stroke-width="24" + :percentage="this.projectInfo.doBi" + status="success" + ></el-progress> + </div> + <div class="flex"> + <span>宸插鐞�</span> + <el-progress + :text-inside="true" + style="flex: 1;margin-left: 10px" + :stroke-width="20" + :percentage="this.projectInfo.doneBi" + status="exception" + ></el-progress> + </div> + <div class="flex"> + <span>宸插彇娑�</span> + <el-progress + :text-inside="true" + style="flex: 1;margin-left: 10px" + :stroke-width="20" + :percentage="this.projectInfo.noBi" + status="warning" + ></el-progress> + </div> + </div> + <p style="text-align: center;font-size: 16px;font-weight: 600">娴佺▼鍗犳瘮</p> + </div> +</template> + +<script> +import * as dash from "@/api/dashboard/dash"; + +export default { + name: 'progressMY', + data() { + return { + projectInfo: {}, + + } + }, + mounted() { + dash.getProcess().then(res => { + if (res) { + this.projectInfo = res + } + }) + } +}; + + + +</script> + +<style scoped> + +.box { + width: 100%; + height: 300px; + + transform: translateY(30%); +} +.flex { + display: flex; + align-items: center; + margin-bottom: 20px; +} +</style> diff --git a/project-web/src/views/dashboard/index.vue b/project-web/src/views/dashboard/index.vue new file mode 100644 index 0000000..c65a195 --- /dev/null +++ b/project-web/src/views/dashboard/index.vue @@ -0,0 +1,302 @@ +<template> + <div class="content"> +<!-- <el-row :gutter="10"> + <el-col :span="12"> + <el-row :gutter="10"> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/qbgd.png"></img> + <span>鍏ㄩ儴宸ュ崟</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">20<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/gdc.png"></img> + <span>宸ュ崟姹�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">2<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/gdc.png"></img> + <span>寰呭搷搴斿伐鍗�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">1<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + </el-row> + </el-col> + <el-col :span="12"> + <el-row :gutter="10"> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/jxzgd.png"></img> + <span>杩涜涓伐鍗�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">3<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/gdc.png"></img> + <span>浜嬩欢姹�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">{{eventInfo.pool}}<span class="font-12">涓�</span> </div> + <div> + <img v-if="eventInfo.poolLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> + <img v-if="eventInfo.poolLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> + 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/dxy.png"></img> + <span>杩涜涓簨浠�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">{{eventInfo.wait}}<span class="font-12">涓�</span> </div> + <div> + <img v-if="eventInfo.waitLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> + <img v-if="eventInfo.waitLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> + 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + </el-row> + </el-col> + </el-row> + + <el-row :gutter="10" style="margin-top: 10px"> + <el-col :span="12"> + <el-row :gutter="10"> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/wtc.png"></img> + <span>闂姹�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">0<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/dxy.png"></img> + <span>寰呭搷搴旈棶棰�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">0<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/gdc.png"></img> + <span>鍙樻洿宸ュ崟</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">0<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + </el-row> + </el-col> + <el-col :span="12"> + <el-row :gutter="10"> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/dxy.png"></img> + <span>寰呭搷搴斿彉鏇�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">0<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/fbgd.png"></img> + <span>鍙戝竷宸ュ崟</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">2<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + <el-col :span="8"> + <div class="flex bg-fff box flex-between"> + <div class="flex f-c f-col"> + <img class="icon" src="@/assets/images/index/dxy.png"></img> + <span>寰呭搷搴斿彂甯�</span> + </div> + <div class="flex f-e f-col"> + <div class="font-28">5<span class="font-12">涓�</span> </div> + <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> + </div> + </div> + </el-col> + </el-row> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12"> + <XMGZD></XMGZD> + </el-col> + <el-col :span="12"> + <XYZC></XYZC> + </el-col> + </el-row> + <el-card class="box-card"> + + <span style="font-weight: 600;font-size: 20px">宸ュ崟缁熻</span> + + <el-row :gutter="10"> + <el-col :span="6"> + <SJDJ></SJDJ> + </el-col> + <el-col :span="6"> + <GDLX></GDLX> + </el-col> + <el-col :span="6"> + <SJGDZB></SJGDZB> + </el-col> + <el-col :span="6"> + <progressMY></progressMY> + </el-col> + </el-row> + + </el-card>--> + </div> +</template> + +<script> +// 鍒涘缓Context +import {formattedDate} from "@/utils/DateFormatter"; +import * as dash from '@/api/dashboard/dash' +// import * as createEvent from "@/api/eventManage/createEvent"; +const ComponentContext = require.context('./components', false, /\.vue$/i); +let res_components = {}; +// 鐢熸垚寰呭緟娉ㄥ唽缁勪欢闆嗗悎 +ComponentContext.keys().forEach((componentFilePath) => { + let comp = ComponentContext(componentFilePath); + res_components[componentFilePath.replace(/^\.\/(.*)\.\w+$/, '$1')] = comp.default; +}); +export default { + name: 'Dashboard', + components: {...res_components}, + data() { + return { + eventInfo:{} + }; + }, + created() { + // this.getEventInfo() + + }, + methods: { + // 鑾峰彇浜嬩欢鏁版嵁 + getEventInfo(){ + dash.getEventInfo().then(res => { + if (res) { + this.eventInfo = res + } + }) + } + } + +}; +</script> +<style lang="scss" scoped> +.content{ + padding:10px +} +.box{ + border-radius: 10px; + padding: 20px 0; + align-items: flex-end; +} +.flex{ + display: flex; +} +.flex-between{ + justify-content: space-around; +} +.f-col{ + flex-direction: column; +} +.f-c{ + align-items: center; +} +.f-e{ + align-items: flex-end; +} +.f-s{ + align-items: flex-start; +} +.c-1{ + color: #11AD6F; +} +.c-f{ + color: #FF4B4B; +} +.font-28{ + font-size: 28px; +} +.font-12{ + font-size: 12px; +} +.icon{ + width: 30px; + height: 30px; + margin-bottom: 10px; +} +.arrow{ + width: 12px; + height: 12px; +} +.box-card { + margin-top: 10px; + width: 100%; + border-radius: 10px; + border: none; + .card-title-right { + display: flex; + align-items: center; + align-self: flex-end; + float: right; + } +} +</style> diff --git a/project-web/src/views/dataV/components/batchPlan.vue b/project-web/src/views/dataV/components/batchPlan.vue new file mode 100644 index 0000000..5f22008 --- /dev/null +++ b/project-web/src/views/dataV/components/batchPlan.vue @@ -0,0 +1,124 @@ +<template> + <div v-loading="loading" style="width: 100%; height: 192px; position: relative"> + <div style="width: 100%; height: 100%" ref="batchPlan"></div> + <div class="title-box"> + <p class="num">100%</p> + <p>鎵规璁″垝</p> + </div> + <div class="tag-box"> + <div class="item-box" v-for="(item, index) in dataList" :key="index"> + <div class="example" :style="{ background: item.color }"></div> + <div class="name">{{ item.name }}</div> + <div class="value">{{ item.value }}%</div> + </div> + </div> + </div> +</template> + +<script> +import dataVRequest from '@/api/dataV.js'; +import echarts from 'echarts'; + +export default { + name: 'batch-plan', + data() { + return { + loading: true, + dataList: [], + colorList: ['#70B1F6', '#077CF2', '#1DD5A5', '#E6C364', '#E56A3D'], + }; + }, + mounted() { + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + const batchPlan = echarts.init(this.$refs.batchPlan); + window.addEventListener('resize', () => { + this.$nextTick(() => { + batchPlan.resize(); + }); + }); + // 鏌ヨ鏁版嵁 + dataVRequest.queryProjectNumByBatch().then((res) => { + this.loading = false; + this.dataList = res.map((item, index) => ({ + ...item, + value: item.num, + name: item.projectBatchName, + color: this.colorList[index], + })); + // 缁樺埗鍥捐〃 + batchPlan.setOption({ + color: this.colorList, + tooltip: { + trigger: 'item', + }, + grid: { + right: 200, + top: 30, + }, + series: [ + { + type: 'pie', + radius: ['60%', '90%'], + center: ['160', '95'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center', + }, + labelLine: { + show: false, + }, + data: this.dataList, + }, + ], + }); + }); + }, +}; +</script> + +<style lang="scss" scoped> +.title-box { + color: #fff; + font-size: 16px; + position: absolute; + left: 127px; + top: 75px; + text-align: center; + + .num { + font-size: 20px; + font-weight: bold; + } +} +.tag-box { + position: absolute; + right: 60px; + top: 50%; + transform: translateY(-50%); + font-size: 18px; + + .item-box { + display: flex; + align-items: center; + margin-bottom: 15px; + } + + .example { + width: 10px; + height: 10px; + margin-right: 10px; + } + + .name { + margin-right: 25px; + color: rgba(255, 255, 255, 0.74); + } + + .value { + color: #cd963f; + } +} +</style> diff --git a/project-web/src/views/dataV/components/cityScore.vue b/project-web/src/views/dataV/components/cityScore.vue new file mode 100644 index 0000000..1d921d1 --- /dev/null +++ b/project-web/src/views/dataV/components/cityScore.vue @@ -0,0 +1,214 @@ +<template> + <div class="module-box"> + <div class="chang-btn" + @click=" + isUp = !isUp; + setOption(); + " + > + {{ isUp ? '鍗囧簭鈻�' : '闄嶅簭鈻�' }} + </div> + <div class="city-score" ref="cityScore"></div> + </div> +</template> + +<script> +import echarts from 'echarts'; +let cityChart = null; +export default { + name: 'city-score', + data() { + return { + isUp: true, // 褰撳墠鏄惁涓哄崌搴� + // 缂撳瓨涓嬫潵鐨勫紓姝ヨ幏鍙栫殑鏁版嵁鍒楄〃 + dataList: [ + { + name: '閮戝窞', + score: 153, + }, + { + name: '娲涢槼', + score: 153, + }, + { + name: '鍗楅槼', + score: 243, + }, + { + name: '淇¢槼', + score: 53, + }, + ], + }; + }, + methods: { + // 缁樺埗鍥捐〃 + setOption() { + if (!cityChart) { + return; + } + const sortArr = this.dataList.sort((a, b) => (this.isUp ? a.score - b.score : b.score - a.score)); // 鎺掑簭鍚庣殑鏁版嵁鍒楄〃 + const nameArr = sortArr.map((i) => i.name); + const dataArr = sortArr.map((i) => i.score); + let maxScore = Math.floor(Math.max(...dataArr) * 1.4); // 涓轰簡瑙嗚闃村奖鏁堟灉 鐣欑偣浣欏湴 + maxScore = sortArr.map(() => maxScore); + cityChart.setOption({ + tooltip: { + trigger: 'axis', + }, + grid: { + right: 20, + left: 50, + top: 30, + bottom: 20, + }, + xAxis: [ + { + type: 'category', + axisLine: { + lineStyle: { + color: '#0D496E', + }, + }, + axisLabel: { + show: true, + textStyle: { + fontSize: 12, + color: '#ADB1B4', + }, + }, + data: nameArr, + }, + // 鐢熸垚鑳屾櫙闃村奖闇�瑕� + { + type: 'category', + show: false, + data: nameArr, + }, + ], + yAxis: { + type: 'value', + splitLine: { + show: false, + }, + axisLine: { + show: false, + }, + axisLabel: { + show: true, + textStyle: { + fontSize: 12, + color: '#ADB1B4', + }, + }, + }, + series: [ + { + name: '璇勫垎', + data: dataArr, + type: 'pictorialBar', + barWidth: 48, + symbol: 'triangle', + label: { + show: true, + position: 'top', + textStyle: { + fontSize: 16, + color: '#fff', + }, + }, + itemStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: 'rgba(30, 231, 231, 0.87)', // 0% 澶勭殑棰滆壊 + }, + { + offset: 1, + color: 'rgba(30, 231, 231, 0)', // 100% 澶勭殑棰滆壊 + }, + ], + global: false, // 缂虹渷涓� false + }, + }, + }, + // 鍒堕�犺儗鏅槾褰� + { + tooltip: { + show: false, + }, + xAxisIndex: 1, + itemStyle: { + color: 'rgba(180, 180, 180, 0.2)', + }, + data: maxScore, + barWidth: 48, + emphasis: { + itemStyle: { + color: { + type: 'linear', + x: 0, + x2: 0, + y: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: 'rgba(64, 247, 176, 0.25)', + }, + { + offset: 1, + color: 'rgba(17, 34, 64, 0.25)', + }, + ], + }, + }, + }, + type: 'bar', + }, + ], + }); + }, + }, + mounted() { + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + cityChart = echarts.init(this.$refs.cityScore); + window.addEventListener('resize', () => { + this.$nextTick(() => { + cityChart.resize(); + }); + }); + this.setOption(); + }, +}; +</script> + +<style lang="scss" scoped> +.module-box { + width: 100%; + height: 100%; + position: relative; +} +.city-score { + width: 100%; + height: 100%; +} + +.chang-btn { + position: absolute; + white-space: nowrap; + right: -5px; + top: -5px; + font-size: 14px; + color: #ADB1B4; + cursor: pointer; + z-index: 9; +} +</style> diff --git a/project-web/src/views/dataV/components/dataProgress.vue b/project-web/src/views/dataV/components/dataProgress.vue new file mode 100644 index 0000000..5795fae --- /dev/null +++ b/project-web/src/views/dataV/components/dataProgress.vue @@ -0,0 +1,59 @@ +<template> + <!-- 杩涘害鏉$粍浠� --> + <div class="progress-box" :style="{ height: strokeWidth + 'px' }"> + <div + v-if="showBlock" + class="the-block" + :style="{ left: percentage + '%', width: strokeWidth + 2 + 'px', height: strokeWidth + 2 + 'px' }" + ></div> + <div :style="{ background: color, width: percentage + '%' }" class="bar"></div> + </div> +</template> + +<script> +export default { + props: { + // 杩涘害鏉¢鑹� + color: { + type: String, + default: '#000', + }, + // 褰撳墠杩涘害 + percentage: { + type: Number, + default: 100, + }, + // 杩涘害鏉″搴� + strokeWidth: { + type: Number, + default: 10, + }, + // 鏄惁鏄剧ず婊戝潡ui + showBlock: { + type: Boolean, + default: false, + }, + }, +}; +</script> + +<style lang="scss" scoped> +.progress-box { + background-color: rgba(208, 222, 238, 0.1); + border-radius: 100px; + position: relative; + .bar { + height: 100%; + border-radius: 100px; + } + + .the-block { + border-radius: 50%; + background-color: #ffffff; + box-shadow: 0px 0px 4px 0px #efd48e; + position: absolute; + top: 50%; + transform: translate(-5%, -50%); + } +} +</style> diff --git a/project-web/src/views/dataV/components/henan.json b/project-web/src/views/dataV/components/henan.json new file mode 100644 index 0000000..4930666 --- /dev/null +++ b/project-web/src/views/dataV/components/henan.json @@ -0,0 +1,26701 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "adcode": 410100, + "name": "閮戝窞甯�", + "center": [ + 113.665412, + 34.757975 + ], + "centroid": [ + 113.477391, + 34.626256 + ], + "childrenNum": 12, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 0, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 114.22071, + 34.919066 + ], + [ + 114.208505, + 34.926602 + ], + [ + 114.200704, + 34.939504 + ], + [ + 114.172834, + 34.931871 + ], + [ + 114.160566, + 34.933496 + ], + [ + 114.120491, + 34.956638 + ], + [ + 114.101869, + 34.954768 + ], + [ + 114.080542, + 34.944527 + ], + [ + 114.051225, + 34.944527 + ], + [ + 114.028451, + 34.959346 + ], + [ + 114.018385, + 34.958608 + ], + [ + 113.985293, + 34.928276 + ], + [ + 113.973654, + 34.910447 + ], + [ + 113.953585, + 34.898082 + ], + [ + 113.905331, + 34.901333 + ], + [ + 113.870163, + 34.885666 + ], + [ + 113.826062, + 34.877683 + ], + [ + 113.800456, + 34.87995 + ], + [ + 113.78649, + 34.890445 + ], + [ + 113.777116, + 34.905028 + ], + [ + 113.766106, + 34.91488 + ], + [ + 113.749057, + 34.919017 + ], + [ + 113.725528, + 34.917392 + ], + [ + 113.716846, + 34.913402 + ], + [ + 113.684824, + 34.906358 + ], + [ + 113.670731, + 34.910299 + ], + [ + 113.665069, + 34.918525 + ], + [ + 113.650348, + 34.928769 + ], + [ + 113.631348, + 34.929311 + ], + [ + 113.592091, + 34.933743 + ], + [ + 113.57479, + 34.950583 + ], + [ + 113.552582, + 34.965155 + ], + [ + 113.543271, + 34.96801 + ], + [ + 113.515086, + 34.965992 + ], + [ + 113.495835, + 34.959937 + ], + [ + 113.477339, + 34.957278 + ], + [ + 113.449658, + 34.960232 + ], + [ + 113.429463, + 34.964761 + ], + [ + 113.427198, + 34.983563 + ], + [ + 113.407821, + 34.989518 + ], + [ + 113.37561, + 34.98002 + ], + [ + 113.362587, + 34.970323 + ], + [ + 113.343462, + 34.950533 + ], + [ + 113.333018, + 34.944871 + ], + [ + 113.315277, + 34.942212 + ], + [ + 113.28986, + 34.952601 + ], + [ + 113.260543, + 34.953586 + ], + [ + 113.243934, + 34.946201 + ], + [ + 113.239342, + 34.939504 + ], + [ + 113.236951, + 34.925174 + ], + [ + 113.227703, + 34.908427 + ], + [ + 113.197631, + 34.900299 + ], + [ + 113.179512, + 34.893697 + ], + [ + 113.139815, + 34.884631 + ], + [ + 113.14793, + 34.856096 + ], + [ + 113.119431, + 34.853977 + ], + [ + 113.107666, + 34.844709 + ], + [ + 113.06023, + 34.83756 + ], + [ + 113.039595, + 34.841948 + ], + [ + 113.025063, + 34.854913 + ], + [ + 113.004364, + 34.864081 + ], + [ + 112.992851, + 34.863539 + ], + [ + 112.989077, + 34.856343 + ], + [ + 112.976117, + 34.847765 + ], + [ + 112.943025, + 34.831102 + ], + [ + 112.938181, + 34.831595 + ], + [ + 112.914148, + 34.84747 + ], + [ + 112.902321, + 34.852301 + ], + [ + 112.884516, + 34.853089 + ], + [ + 112.879106, + 34.849688 + ], + [ + 112.873192, + 34.832827 + ], + [ + 112.866461, + 34.829524 + ], + [ + 112.853501, + 34.810736 + ], + [ + 112.838653, + 34.812116 + ], + [ + 112.827266, + 34.819218 + ], + [ + 112.814118, + 34.811475 + ], + [ + 112.80984, + 34.7951 + ], + [ + 112.810595, + 34.784938 + ], + [ + 112.817263, + 34.778278 + ], + [ + 112.837144, + 34.782915 + ], + [ + 112.846329, + 34.780054 + ], + [ + 112.875017, + 34.779659 + ], + [ + 112.887914, + 34.782718 + ], + [ + 112.89993, + 34.780596 + ], + [ + 112.909367, + 34.771123 + ], + [ + 112.908486, + 34.757405 + ], + [ + 112.902258, + 34.753161 + ], + [ + 112.909933, + 34.737465 + ], + [ + 112.939502, + 34.72384 + ], + [ + 112.931764, + 34.711694 + ], + [ + 112.91635, + 34.710953 + ], + [ + 112.901692, + 34.693521 + ], + [ + 112.893827, + 34.694953 + ], + [ + 112.879735, + 34.705077 + ], + [ + 112.867782, + 34.708089 + ], + [ + 112.8496, + 34.699694 + ], + [ + 112.830223, + 34.694163 + ], + [ + 112.829217, + 34.683346 + ], + [ + 112.835885, + 34.667785 + ], + [ + 112.831041, + 34.656669 + ], + [ + 112.847147, + 34.640362 + ], + [ + 112.841799, + 34.628648 + ], + [ + 112.825001, + 34.628698 + ], + [ + 112.82475, + 34.625188 + ], + [ + 112.840226, + 34.623161 + ], + [ + 112.845574, + 34.609913 + ], + [ + 112.839408, + 34.596514 + ], + [ + 112.846329, + 34.58885 + ], + [ + 112.862183, + 34.590284 + ], + [ + 112.864133, + 34.580146 + ], + [ + 112.877722, + 34.567731 + ], + [ + 112.87898, + 34.560015 + ], + [ + 112.890682, + 34.547102 + ], + [ + 112.910751, + 34.545173 + ], + [ + 112.929562, + 34.547548 + ], + [ + 112.952273, + 34.547647 + ], + [ + 112.967749, + 34.541264 + ], + [ + 112.984736, + 34.539038 + ], + [ + 112.976683, + 34.53117 + ], + [ + 112.947995, + 34.531467 + ], + [ + 112.929813, + 34.526023 + ], + [ + 112.925598, + 34.509789 + ], + [ + 112.927297, + 34.499691 + ], + [ + 112.920125, + 34.482016 + ], + [ + 112.922956, + 34.47657 + ], + [ + 112.905215, + 34.468201 + ], + [ + 112.896155, + 34.475827 + ], + [ + 112.862371, + 34.473648 + ], + [ + 112.856017, + 34.478402 + ], + [ + 112.838024, + 34.477164 + ], + [ + 112.806002, + 34.479243 + ], + [ + 112.798012, + 34.487166 + ], + [ + 112.774609, + 34.500137 + ], + [ + 112.767374, + 34.49479 + ], + [ + 112.740384, + 34.491077 + ], + [ + 112.744285, + 34.4683 + ], + [ + 112.741894, + 34.433973 + ], + [ + 112.736673, + 34.422578 + ], + [ + 112.729626, + 34.416978 + ], + [ + 112.735918, + 34.404242 + ], + [ + 112.733653, + 34.39309 + ], + [ + 112.72409, + 34.388877 + ], + [ + 112.721825, + 34.380152 + ], + [ + 112.730318, + 34.377426 + ], + [ + 112.728117, + 34.361163 + ], + [ + 112.732898, + 34.350898 + ], + [ + 112.756805, + 34.357394 + ], + [ + 112.760076, + 34.346584 + ], + [ + 112.776622, + 34.345046 + ], + [ + 112.787002, + 34.343261 + ], + [ + 112.788953, + 34.331158 + ], + [ + 112.81223, + 34.340037 + ], + [ + 112.824184, + 34.33344 + ], + [ + 112.83318, + 34.333638 + ], + [ + 112.854633, + 34.316325 + ], + [ + 112.842114, + 34.311612 + ], + [ + 112.84117, + 34.297818 + ], + [ + 112.856458, + 34.302185 + ], + [ + 112.87357, + 34.298016 + ], + [ + 112.884516, + 34.30144 + ], + [ + 112.91245, + 34.293749 + ], + [ + 112.936293, + 34.295535 + ], + [ + 112.954097, + 34.302135 + ], + [ + 112.960829, + 34.297867 + ], + [ + 112.992977, + 34.296478 + ], + [ + 113.013235, + 34.300398 + ], + [ + 113.020847, + 34.290424 + ], + [ + 113.027642, + 34.289282 + ], + [ + 113.037142, + 34.280299 + ], + [ + 113.059476, + 34.280944 + ], + [ + 113.075518, + 34.276527 + ], + [ + 113.082439, + 34.26645 + ], + [ + 113.097726, + 34.26223 + ], + [ + 113.109365, + 34.263471 + ], + [ + 113.142583, + 34.272804 + ], + [ + 113.15202, + 34.266351 + ], + [ + 113.175297, + 34.281639 + ], + [ + 113.184356, + 34.290225 + ], + [ + 113.18379, + 34.295634 + ], + [ + 113.196436, + 34.312257 + ], + [ + 113.210276, + 34.312009 + ], + [ + 113.223362, + 34.325057 + ], + [ + 113.224557, + 34.33473 + ], + [ + 113.235567, + 34.339045 + ], + [ + 113.267904, + 34.337805 + ], + [ + 113.276334, + 34.342814 + ], + [ + 113.276586, + 34.351444 + ], + [ + 113.314648, + 34.352287 + ], + [ + 113.314019, + 34.373856 + ], + [ + 113.320436, + 34.383375 + ], + [ + 113.315969, + 34.391157 + ], + [ + 113.32528, + 34.404986 + ], + [ + 113.348809, + 34.404738 + ], + [ + 113.353968, + 34.396411 + ], + [ + 113.370388, + 34.389918 + ], + [ + 113.366991, + 34.379805 + ], + [ + 113.389828, + 34.375988 + ], + [ + 113.401655, + 34.377525 + ], + [ + 113.414867, + 34.374947 + ], + [ + 113.406751, + 34.355213 + ], + [ + 113.414175, + 34.349361 + ], + [ + 113.429085, + 34.350303 + ], + [ + 113.459409, + 34.334432 + ], + [ + 113.471425, + 34.330811 + ], + [ + 113.482875, + 34.342864 + ], + [ + 113.498729, + 34.338598 + ], + [ + 113.510871, + 34.342715 + ], + [ + 113.518169, + 34.335771 + ], + [ + 113.516848, + 34.328579 + ], + [ + 113.529619, + 34.317913 + ], + [ + 113.556608, + 34.311513 + ], + [ + 113.566737, + 34.318359 + ], + [ + 113.579697, + 34.319897 + ], + [ + 113.600836, + 34.313299 + ], + [ + 113.608951, + 34.3132 + ], + [ + 113.624805, + 34.303375 + ], + [ + 113.634494, + 34.290026 + ], + [ + 113.643994, + 34.288488 + ], + [ + 113.658589, + 34.275037 + ], + [ + 113.669851, + 34.275385 + ], + [ + 113.679728, + 34.282532 + ], + [ + 113.70332, + 34.276725 + ], + [ + 113.7003, + 34.289381 + ], + [ + 113.71326, + 34.29092 + ], + [ + 113.713386, + 34.301391 + ], + [ + 113.727227, + 34.305757 + ], + [ + 113.736852, + 34.317863 + ], + [ + 113.756732, + 34.313795 + ], + [ + 113.777242, + 34.314589 + ], + [ + 113.793159, + 34.328083 + ], + [ + 113.791208, + 34.331803 + ], + [ + 113.803791, + 34.33721 + ], + [ + 113.832353, + 34.32342 + ], + [ + 113.848584, + 34.322725 + ], + [ + 113.85022, + 34.32719 + ], + [ + 113.880481, + 34.32972 + ], + [ + 113.885451, + 34.327785 + ], + [ + 113.888093, + 34.348369 + ], + [ + 113.879978, + 34.356056 + ], + [ + 113.885199, + 34.370485 + ], + [ + 113.878531, + 34.394577 + ], + [ + 113.878153, + 34.411478 + ], + [ + 113.891616, + 34.437342 + ], + [ + 113.903507, + 34.454185 + ], + [ + 113.912126, + 34.452352 + ], + [ + 113.915586, + 34.444922 + ], + [ + 113.929993, + 34.443485 + ], + [ + 113.938108, + 34.454729 + ], + [ + 113.948929, + 34.452699 + ], + [ + 113.948615, + 34.435063 + ], + [ + 113.968495, + 34.439324 + ], + [ + 113.990326, + 34.435707 + ], + [ + 114.006557, + 34.439225 + ], + [ + 114.019894, + 34.445368 + ], + [ + 114.021719, + 34.458989 + ], + [ + 114.01851, + 34.46721 + ], + [ + 114.008256, + 34.470082 + ], + [ + 114.009577, + 34.480135 + ], + [ + 114.0226, + 34.488552 + ], + [ + 114.035119, + 34.503998 + ], + [ + 114.062486, + 34.490532 + ], + [ + 114.07035, + 34.481472 + ], + [ + 114.083373, + 34.480927 + ], + [ + 114.094383, + 34.492265 + ], + [ + 114.093942, + 34.50182 + ], + [ + 114.100296, + 34.535178 + ], + [ + 114.107217, + 34.557887 + ], + [ + 114.118478, + 34.570155 + ], + [ + 114.129802, + 34.575348 + ], + [ + 114.127852, + 34.584943 + ], + [ + 114.133451, + 34.591025 + ], + [ + 114.136848, + 34.605711 + ], + [ + 114.125461, + 34.607886 + ], + [ + 114.127726, + 34.61718 + ], + [ + 114.14553, + 34.61456 + ], + [ + 114.145153, + 34.604277 + ], + [ + 114.15459, + 34.60576 + ], + [ + 114.15157, + 34.618268 + ], + [ + 114.157547, + 34.625979 + ], + [ + 114.150375, + 34.656669 + ], + [ + 114.160441, + 34.665611 + ], + [ + 114.157547, + 34.686507 + ], + [ + 114.158113, + 34.704336 + ], + [ + 114.141189, + 34.7191 + ], + [ + 114.138484, + 34.73475 + ], + [ + 114.158364, + 34.759379 + ], + [ + 114.172331, + 34.768311 + ], + [ + 114.161762, + 34.781238 + ], + [ + 114.134143, + 34.802154 + ], + [ + 114.122504, + 34.81833 + ], + [ + 114.133703, + 34.825628 + ], + [ + 114.162517, + 34.828883 + ], + [ + 114.185354, + 34.825628 + ], + [ + 114.199824, + 34.832729 + ], + [ + 114.211085, + 34.860877 + ], + [ + 114.220522, + 34.906801 + ], + [ + 114.22071, + 34.919066 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410200, + "name": "寮�灏佸競", + "center": [ + 114.341447, + 34.797049 + ], + "centroid": [ + 114.541763, + 34.604497 + ], + "childrenNum": 9, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 1, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.885451, + 34.327785 + ], + [ + 113.894573, + 34.323767 + ], + [ + 113.899229, + 34.315879 + ], + [ + 113.896083, + 34.303375 + ], + [ + 113.904702, + 34.294543 + ], + [ + 113.916278, + 34.301688 + ], + [ + 113.934271, + 34.304864 + ], + [ + 113.937354, + 34.298612 + ], + [ + 113.964406, + 34.292954 + ], + [ + 113.96472, + 34.283128 + ], + [ + 113.972459, + 34.283426 + ], + [ + 113.977303, + 34.275583 + ], + [ + 113.992905, + 34.27335 + ], + [ + 113.990577, + 34.261138 + ], + [ + 114.000266, + 34.263471 + ], + [ + 114.00316, + 34.252549 + ], + [ + 114.011275, + 34.242022 + ], + [ + 114.041033, + 34.237851 + ], + [ + 114.050847, + 34.247137 + ], + [ + 114.058837, + 34.244753 + ], + [ + 114.068589, + 34.250265 + ], + [ + 114.076453, + 34.239639 + ], + [ + 114.081926, + 34.24952 + ], + [ + 114.098661, + 34.241923 + ], + [ + 114.10816, + 34.228813 + ], + [ + 114.102058, + 34.224343 + ], + [ + 114.108475, + 34.218929 + ], + [ + 114.109544, + 34.206958 + ], + [ + 114.122882, + 34.204176 + ], + [ + 114.129299, + 34.198214 + ], + [ + 114.155345, + 34.202039 + ], + [ + 114.160503, + 34.213564 + ], + [ + 114.198314, + 34.217737 + ], + [ + 114.202906, + 34.234623 + ], + [ + 114.210267, + 34.241228 + ], + [ + 114.246442, + 34.240433 + ], + [ + 114.259905, + 34.251854 + ], + [ + 114.267517, + 34.256968 + ], + [ + 114.274626, + 34.274889 + ], + [ + 114.287901, + 34.276527 + ], + [ + 114.301175, + 34.26774 + ], + [ + 114.328857, + 34.267294 + ], + [ + 114.344207, + 34.251804 + ], + [ + 114.356412, + 34.247186 + ], + [ + 114.385729, + 34.24386 + ], + [ + 114.405798, + 34.248031 + ], + [ + 114.417689, + 34.265308 + ], + [ + 114.434927, + 34.267145 + ], + [ + 114.440652, + 34.270719 + ], + [ + 114.455688, + 34.294096 + ], + [ + 114.442539, + 34.300696 + ], + [ + 114.430649, + 34.302284 + ], + [ + 114.424546, + 34.309032 + ], + [ + 114.434486, + 34.313894 + ], + [ + 114.436059, + 34.330265 + ], + [ + 114.427692, + 34.333837 + ], + [ + 114.439897, + 34.336366 + ], + [ + 114.438576, + 34.328033 + ], + [ + 114.452857, + 34.319997 + ], + [ + 114.46179, + 34.319947 + ], + [ + 114.462042, + 34.330166 + ], + [ + 114.479343, + 34.32962 + ], + [ + 114.485949, + 34.325057 + ], + [ + 114.493876, + 34.31191 + ], + [ + 114.509855, + 34.309727 + ], + [ + 114.519355, + 34.313448 + ], + [ + 114.524703, + 34.306253 + ], + [ + 114.528603, + 34.282234 + ], + [ + 114.551629, + 34.284964 + ], + [ + 114.551189, + 34.272059 + ], + [ + 114.556662, + 34.267989 + ], + [ + 114.58988, + 34.273747 + ], + [ + 114.602085, + 34.271017 + ], + [ + 114.611459, + 34.261088 + ], + [ + 114.634044, + 34.261883 + ], + [ + 114.647319, + 34.250315 + ], + [ + 114.667514, + 34.250265 + ], + [ + 114.679341, + 34.244307 + ], + [ + 114.702241, + 34.244505 + ], + [ + 114.71388, + 34.241327 + ], + [ + 114.723946, + 34.228018 + ], + [ + 114.730426, + 34.225237 + ], + [ + 114.752697, + 34.23363 + ], + [ + 114.758736, + 34.238397 + ], + [ + 114.76465, + 34.254436 + ], + [ + 114.781196, + 34.255627 + ], + [ + 114.788242, + 34.261138 + ], + [ + 114.812778, + 34.259003 + ], + [ + 114.8314, + 34.268138 + ], + [ + 114.832847, + 34.281937 + ], + [ + 114.845492, + 34.280696 + ], + [ + 114.867763, + 34.271066 + ], + [ + 114.896514, + 34.265804 + ], + [ + 114.901988, + 34.284567 + ], + [ + 114.882674, + 34.301192 + ], + [ + 114.870783, + 34.305608 + ], + [ + 114.862353, + 34.329174 + ], + [ + 114.855558, + 34.33473 + ], + [ + 114.861724, + 34.367014 + ], + [ + 114.879025, + 34.370683 + ], + [ + 114.888461, + 34.383771 + ], + [ + 114.875061, + 34.390612 + ], + [ + 114.874432, + 34.396411 + ], + [ + 114.851658, + 34.399534 + ], + [ + 114.848575, + 34.409942 + ], + [ + 114.854615, + 34.410933 + ], + [ + 114.852413, + 34.42887 + ], + [ + 114.864806, + 34.433726 + ], + [ + 114.856502, + 34.436599 + ], + [ + 114.858893, + 34.451906 + ], + [ + 114.865624, + 34.462902 + ], + [ + 114.872356, + 34.454085 + ], + [ + 114.880786, + 34.450519 + ], + [ + 114.886322, + 34.461317 + ], + [ + 114.896451, + 34.46102 + ], + [ + 114.904001, + 34.467606 + ], + [ + 114.912305, + 34.483601 + ], + [ + 114.918596, + 34.484938 + ], + [ + 114.922371, + 34.498206 + ], + [ + 114.9096, + 34.495137 + ], + [ + 114.917653, + 34.511571 + ], + [ + 114.913752, + 34.518154 + ], + [ + 114.920673, + 34.531417 + ], + [ + 114.91111, + 34.534782 + ], + [ + 114.917841, + 34.541957 + ], + [ + 114.91501, + 34.548686 + ], + [ + 114.906517, + 34.547647 + ], + [ + 114.907398, + 34.573865 + ], + [ + 114.904882, + 34.586179 + ], + [ + 114.897018, + 34.602596 + ], + [ + 114.90117, + 34.613769 + ], + [ + 114.898339, + 34.631762 + ], + [ + 114.901673, + 34.645303 + ], + [ + 114.893494, + 34.652469 + ], + [ + 114.896451, + 34.661363 + ], + [ + 114.905825, + 34.666896 + ], + [ + 114.926649, + 34.668625 + ], + [ + 114.935771, + 34.672182 + ], + [ + 114.936652, + 34.681914 + ], + [ + 114.931682, + 34.686804 + ], + [ + 114.90765, + 34.697916 + ], + [ + 114.891418, + 34.698213 + ], + [ + 114.8677, + 34.688038 + ], + [ + 114.858012, + 34.692286 + ], + [ + 114.855558, + 34.710904 + ], + [ + 114.840648, + 34.715101 + ], + [ + 114.858767, + 34.734256 + ], + [ + 114.859333, + 34.740328 + ], + [ + 114.835678, + 34.746893 + ], + [ + 114.82838, + 34.755332 + ], + [ + 114.829009, + 34.764314 + ], + [ + 114.835615, + 34.767472 + ], + [ + 114.86682, + 34.769199 + ], + [ + 114.867386, + 34.775515 + ], + [ + 114.877578, + 34.775219 + ], + [ + 114.894375, + 34.762833 + ], + [ + 114.922874, + 34.748423 + ], + [ + 114.936841, + 34.747041 + ], + [ + 114.966913, + 34.761106 + ], + [ + 114.980502, + 34.760909 + ], + [ + 114.988366, + 34.76456 + ], + [ + 115.001012, + 34.760662 + ], + [ + 115.030329, + 34.772455 + ], + [ + 115.038885, + 34.773985 + ], + [ + 115.104125, + 34.772357 + ], + [ + 115.119601, + 34.788638 + ], + [ + 115.140048, + 34.793324 + ], + [ + 115.154455, + 34.78178 + ], + [ + 115.163891, + 34.783063 + ], + [ + 115.17553, + 34.790463 + ], + [ + 115.17899, + 34.800279 + ], + [ + 115.198367, + 34.795297 + ], + [ + 115.202897, + 34.805656 + ], + [ + 115.24832, + 34.798109 + ], + [ + 115.253919, + 34.805014 + ], + [ + 115.242658, + 34.813497 + ], + [ + 115.256561, + 34.81187 + ], + [ + 115.267256, + 34.831249 + ], + [ + 115.256058, + 34.845301 + ], + [ + 115.243475, + 34.850181 + ], + [ + 115.239323, + 34.874677 + ], + [ + 115.24077, + 34.883842 + ], + [ + 115.2492, + 34.894534 + ], + [ + 115.252157, + 34.906604 + ], + [ + 115.239323, + 34.911826 + ], + [ + 115.204973, + 34.914239 + ], + [ + 115.202708, + 34.925617 + ], + [ + 115.211768, + 34.943345 + ], + [ + 115.222148, + 34.945561 + ], + [ + 115.219128, + 34.960626 + ], + [ + 115.208245, + 34.958312 + ], + [ + 115.201639, + 34.950977 + ], + [ + 115.175027, + 34.962497 + ], + [ + 115.156908, + 34.958017 + ], + [ + 115.157223, + 34.966976 + ], + [ + 115.146528, + 34.980118 + ], + [ + 115.131177, + 34.983613 + ], + [ + 115.133002, + 34.999655 + ], + [ + 115.128094, + 35.004379 + ], + [ + 115.106138, + 35.000787 + ], + [ + 115.074996, + 35.000393 + ], + [ + 115.051656, + 34.985975 + ], + [ + 115.037564, + 34.981644 + ], + [ + 115.024918, + 34.971849 + ], + [ + 115.016048, + 34.977362 + ], + [ + 115.008121, + 34.988485 + ], + [ + 114.95087, + 34.989813 + ], + [ + 114.934765, + 34.980709 + ], + [ + 114.923818, + 34.968748 + ], + [ + 114.914004, + 34.977903 + ], + [ + 114.907964, + 34.98937 + ], + [ + 114.889657, + 34.993996 + ], + [ + 114.880346, + 35.003493 + ], + [ + 114.884435, + 35.021893 + ], + [ + 114.869965, + 35.024451 + ], + [ + 114.859333, + 35.002656 + ], + [ + 114.827122, + 35.010135 + ], + [ + 114.824668, + 35.0123 + ], + [ + 114.815861, + 35.014022 + ], + [ + 114.800384, + 35.006691 + ], + [ + 114.765908, + 34.977707 + ], + [ + 114.756597, + 34.97559 + ], + [ + 114.741435, + 34.960675 + ], + [ + 114.74175, + 34.948712 + ], + [ + 114.768173, + 34.927882 + ], + [ + 114.778994, + 34.916751 + ], + [ + 114.774779, + 34.901382 + ], + [ + 114.76119, + 34.89148 + ], + [ + 114.733886, + 34.888474 + ], + [ + 114.724323, + 34.885222 + ], + [ + 114.709161, + 34.89212 + ], + [ + 114.695572, + 34.894387 + ], + [ + 114.679593, + 34.909018 + ], + [ + 114.660279, + 34.898722 + ], + [ + 114.633981, + 34.905225 + ], + [ + 114.586608, + 34.912466 + ], + [ + 114.557165, + 34.905521 + ], + [ + 114.540682, + 34.899264 + ], + [ + 114.513378, + 34.895273 + ], + [ + 114.442728, + 34.914486 + ], + [ + 114.417815, + 34.930788 + ], + [ + 114.40064, + 34.939504 + ], + [ + 114.383024, + 34.936894 + ], + [ + 114.367233, + 34.918968 + ], + [ + 114.350499, + 34.908082 + ], + [ + 114.340118, + 34.907146 + ], + [ + 114.284441, + 34.90823 + ], + [ + 114.243988, + 34.905126 + ], + [ + 114.226624, + 34.913156 + ], + [ + 114.22071, + 34.919066 + ], + [ + 114.220522, + 34.906801 + ], + [ + 114.211085, + 34.860877 + ], + [ + 114.199824, + 34.832729 + ], + [ + 114.185354, + 34.825628 + ], + [ + 114.162517, + 34.828883 + ], + [ + 114.133703, + 34.825628 + ], + [ + 114.122504, + 34.81833 + ], + [ + 114.134143, + 34.802154 + ], + [ + 114.161762, + 34.781238 + ], + [ + 114.172331, + 34.768311 + ], + [ + 114.158364, + 34.759379 + ], + [ + 114.138484, + 34.73475 + ], + [ + 114.141189, + 34.7191 + ], + [ + 114.158113, + 34.704336 + ], + [ + 114.157547, + 34.686507 + ], + [ + 114.160441, + 34.665611 + ], + [ + 114.150375, + 34.656669 + ], + [ + 114.157547, + 34.625979 + ], + [ + 114.15157, + 34.618268 + ], + [ + 114.15459, + 34.60576 + ], + [ + 114.145153, + 34.604277 + ], + [ + 114.14553, + 34.61456 + ], + [ + 114.127726, + 34.61718 + ], + [ + 114.125461, + 34.607886 + ], + [ + 114.136848, + 34.605711 + ], + [ + 114.133451, + 34.591025 + ], + [ + 114.127852, + 34.584943 + ], + [ + 114.129802, + 34.575348 + ], + [ + 114.118478, + 34.570155 + ], + [ + 114.107217, + 34.557887 + ], + [ + 114.100296, + 34.535178 + ], + [ + 114.093942, + 34.50182 + ], + [ + 114.094383, + 34.492265 + ], + [ + 114.083373, + 34.480927 + ], + [ + 114.07035, + 34.481472 + ], + [ + 114.062486, + 34.490532 + ], + [ + 114.035119, + 34.503998 + ], + [ + 114.0226, + 34.488552 + ], + [ + 114.009577, + 34.480135 + ], + [ + 114.008256, + 34.470082 + ], + [ + 114.01851, + 34.46721 + ], + [ + 114.021719, + 34.458989 + ], + [ + 114.019894, + 34.445368 + ], + [ + 114.006557, + 34.439225 + ], + [ + 113.990326, + 34.435707 + ], + [ + 113.968495, + 34.439324 + ], + [ + 113.948615, + 34.435063 + ], + [ + 113.948929, + 34.452699 + ], + [ + 113.938108, + 34.454729 + ], + [ + 113.929993, + 34.443485 + ], + [ + 113.915586, + 34.444922 + ], + [ + 113.912126, + 34.452352 + ], + [ + 113.903507, + 34.454185 + ], + [ + 113.891616, + 34.437342 + ], + [ + 113.878153, + 34.411478 + ], + [ + 113.878531, + 34.394577 + ], + [ + 113.885199, + 34.370485 + ], + [ + 113.879978, + 34.356056 + ], + [ + 113.888093, + 34.348369 + ], + [ + 113.885451, + 34.327785 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410300, + "name": "娲涢槼甯�", + "center": [ + 112.434468, + 34.663041 + ], + "centroid": [ + 112.038509, + 34.293198 + ], + "childrenNum": 14, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 2, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 111.260813, + 33.796775 + ], + [ + 111.270816, + 33.781699 + ], + [ + 111.288558, + 33.779702 + ], + [ + 111.304223, + 33.775008 + ], + [ + 111.315044, + 33.764073 + ], + [ + 111.322467, + 33.762974 + ], + [ + 111.336245, + 33.768317 + ], + [ + 111.348387, + 33.764822 + ], + [ + 111.390035, + 33.771264 + ], + [ + 111.398906, + 33.768168 + ], + [ + 111.4342, + 33.747742 + ], + [ + 111.469808, + 33.738052 + ], + [ + 111.484529, + 33.726462 + ], + [ + 111.495476, + 33.725663 + ], + [ + 111.516048, + 33.7405 + ], + [ + 111.523975, + 33.742847 + ], + [ + 111.541402, + 33.733406 + ], + [ + 111.567699, + 33.735005 + ], + [ + 111.59148, + 33.727711 + ], + [ + 111.619476, + 33.730059 + ], + [ + 111.645207, + 33.720517 + ], + [ + 111.665151, + 33.695582 + ], + [ + 111.684968, + 33.677489 + ], + [ + 111.719003, + 33.688885 + ], + [ + 111.728629, + 33.688086 + ], + [ + 111.778078, + 33.666091 + ], + [ + 111.819411, + 33.652892 + ], + [ + 111.82759, + 33.634189 + ], + [ + 111.827716, + 33.606228 + ], + [ + 111.832749, + 33.598723 + ], + [ + 111.843444, + 33.595821 + ], + [ + 111.863953, + 33.599174 + ], + [ + 111.884526, + 33.596121 + ], + [ + 111.899184, + 33.588666 + ], + [ + 111.916359, + 33.572102 + ], + [ + 111.930137, + 33.571051 + ], + [ + 111.994182, + 33.584913 + ], + [ + 112.020353, + 33.587715 + ], + [ + 112.028343, + 33.593019 + ], + [ + 112.024191, + 33.600024 + ], + [ + 112.018655, + 33.59437 + ], + [ + 112.012301, + 33.602626 + ], + [ + 112.014943, + 33.613632 + ], + [ + 112.024757, + 33.622436 + ], + [ + 112.038535, + 33.622386 + ], + [ + 112.059044, + 33.605227 + ], + [ + 112.065713, + 33.607479 + ], + [ + 112.087481, + 33.603076 + ], + [ + 112.092199, + 33.607228 + ], + [ + 112.084146, + 33.628988 + ], + [ + 112.076345, + 33.633689 + ], + [ + 112.071312, + 33.648192 + ], + [ + 112.074018, + 33.653142 + ], + [ + 112.104719, + 33.661392 + ], + [ + 112.120573, + 33.668841 + ], + [ + 112.13089, + 33.676939 + ], + [ + 112.141774, + 33.691634 + ], + [ + 112.15033, + 33.713672 + ], + [ + 112.158509, + 33.720117 + ], + [ + 112.168638, + 33.721766 + ], + [ + 112.17776, + 33.715621 + ], + [ + 112.179207, + 33.703278 + ], + [ + 112.184995, + 33.698731 + ], + [ + 112.214752, + 33.713972 + ], + [ + 112.230103, + 33.71702 + ], + [ + 112.239917, + 33.715321 + ], + [ + 112.249354, + 33.719018 + ], + [ + 112.24797, + 33.72871 + ], + [ + 112.263446, + 33.743596 + ], + [ + 112.266907, + 33.769766 + ], + [ + 112.259168, + 33.776007 + ], + [ + 112.260049, + 33.781849 + ], + [ + 112.277413, + 33.791684 + ], + [ + 112.273953, + 33.801667 + ], + [ + 112.285906, + 33.808755 + ], + [ + 112.301383, + 33.811001 + ], + [ + 112.323402, + 33.828467 + ], + [ + 112.351461, + 33.834605 + ], + [ + 112.363854, + 33.840143 + ], + [ + 112.372222, + 33.838297 + ], + [ + 112.40978, + 33.80591 + ], + [ + 112.42381, + 33.806559 + ], + [ + 112.433687, + 33.810951 + ], + [ + 112.45665, + 33.836451 + ], + [ + 112.462312, + 33.84583 + ], + [ + 112.474643, + 33.855458 + ], + [ + 112.48559, + 33.859848 + ], + [ + 112.512768, + 33.85895 + ], + [ + 112.534095, + 33.880247 + ], + [ + 112.541393, + 33.892165 + ], + [ + 112.536423, + 33.902236 + ], + [ + 112.51497, + 33.906374 + ], + [ + 112.502576, + 33.913004 + ], + [ + 112.497858, + 33.926064 + ], + [ + 112.530761, + 33.937975 + ], + [ + 112.538121, + 33.947344 + ], + [ + 112.539065, + 33.968071 + ], + [ + 112.546803, + 33.979777 + ], + [ + 112.547118, + 33.998304 + ], + [ + 112.56964, + 34.003035 + ], + [ + 112.549383, + 34.016529 + ], + [ + 112.533718, + 34.018122 + ], + [ + 112.538625, + 34.027084 + ], + [ + 112.572346, + 34.043162 + ], + [ + 112.577253, + 34.062373 + ], + [ + 112.601222, + 34.071827 + ], + [ + 112.602544, + 34.088792 + ], + [ + 112.608206, + 34.114209 + ], + [ + 112.616196, + 34.128928 + ], + [ + 112.620285, + 34.143148 + ], + [ + 112.611666, + 34.15816 + ], + [ + 112.595623, + 34.163529 + ], + [ + 112.589395, + 34.18614 + ], + [ + 112.583544, + 34.19096 + ], + [ + 112.559763, + 34.224988 + ], + [ + 112.577819, + 34.246988 + ], + [ + 112.575617, + 34.254336 + ], + [ + 112.557876, + 34.263719 + ], + [ + 112.553724, + 34.27608 + ], + [ + 112.569703, + 34.284815 + ], + [ + 112.573226, + 34.298314 + ], + [ + 112.597133, + 34.317962 + ], + [ + 112.613994, + 34.322328 + ], + [ + 112.607262, + 34.327934 + ], + [ + 112.623682, + 34.337854 + ], + [ + 112.650168, + 34.341078 + ], + [ + 112.659605, + 34.333936 + ], + [ + 112.65734, + 34.320592 + ], + [ + 112.669294, + 34.324908 + ], + [ + 112.688356, + 34.326743 + ], + [ + 112.701001, + 34.335077 + ], + [ + 112.73057, + 34.330414 + ], + [ + 112.741265, + 34.333738 + ], + [ + 112.75693, + 34.330662 + ], + [ + 112.776622, + 34.345046 + ], + [ + 112.760076, + 34.346584 + ], + [ + 112.756805, + 34.357394 + ], + [ + 112.732898, + 34.350898 + ], + [ + 112.728117, + 34.361163 + ], + [ + 112.730318, + 34.377426 + ], + [ + 112.721825, + 34.380152 + ], + [ + 112.72409, + 34.388877 + ], + [ + 112.733653, + 34.39309 + ], + [ + 112.735918, + 34.404242 + ], + [ + 112.729626, + 34.416978 + ], + [ + 112.736673, + 34.422578 + ], + [ + 112.741894, + 34.433973 + ], + [ + 112.744285, + 34.4683 + ], + [ + 112.740384, + 34.491077 + ], + [ + 112.767374, + 34.49479 + ], + [ + 112.774609, + 34.500137 + ], + [ + 112.798012, + 34.487166 + ], + [ + 112.806002, + 34.479243 + ], + [ + 112.838024, + 34.477164 + ], + [ + 112.856017, + 34.478402 + ], + [ + 112.862371, + 34.473648 + ], + [ + 112.896155, + 34.475827 + ], + [ + 112.905215, + 34.468201 + ], + [ + 112.922956, + 34.47657 + ], + [ + 112.920125, + 34.482016 + ], + [ + 112.927297, + 34.499691 + ], + [ + 112.925598, + 34.509789 + ], + [ + 112.929813, + 34.526023 + ], + [ + 112.947995, + 34.531467 + ], + [ + 112.976683, + 34.53117 + ], + [ + 112.984736, + 34.539038 + ], + [ + 112.967749, + 34.541264 + ], + [ + 112.952273, + 34.547647 + ], + [ + 112.929562, + 34.547548 + ], + [ + 112.910751, + 34.545173 + ], + [ + 112.890682, + 34.547102 + ], + [ + 112.87898, + 34.560015 + ], + [ + 112.877722, + 34.567731 + ], + [ + 112.864133, + 34.580146 + ], + [ + 112.862183, + 34.590284 + ], + [ + 112.846329, + 34.58885 + ], + [ + 112.839408, + 34.596514 + ], + [ + 112.845574, + 34.609913 + ], + [ + 112.840226, + 34.623161 + ], + [ + 112.82475, + 34.625188 + ], + [ + 112.825001, + 34.628698 + ], + [ + 112.841799, + 34.628648 + ], + [ + 112.847147, + 34.640362 + ], + [ + 112.831041, + 34.656669 + ], + [ + 112.835885, + 34.667785 + ], + [ + 112.829217, + 34.683346 + ], + [ + 112.830223, + 34.694163 + ], + [ + 112.8496, + 34.699694 + ], + [ + 112.867782, + 34.708089 + ], + [ + 112.879735, + 34.705077 + ], + [ + 112.893827, + 34.694953 + ], + [ + 112.901692, + 34.693521 + ], + [ + 112.91635, + 34.710953 + ], + [ + 112.931764, + 34.711694 + ], + [ + 112.939502, + 34.72384 + ], + [ + 112.909933, + 34.737465 + ], + [ + 112.902258, + 34.753161 + ], + [ + 112.908486, + 34.757405 + ], + [ + 112.909367, + 34.771123 + ], + [ + 112.89993, + 34.780596 + ], + [ + 112.887914, + 34.782718 + ], + [ + 112.875017, + 34.779659 + ], + [ + 112.846329, + 34.780054 + ], + [ + 112.837144, + 34.782915 + ], + [ + 112.817263, + 34.778278 + ], + [ + 112.810595, + 34.784938 + ], + [ + 112.80984, + 34.7951 + ], + [ + 112.814118, + 34.811475 + ], + [ + 112.827266, + 34.819218 + ], + [ + 112.813363, + 34.832877 + ], + [ + 112.78782, + 34.83761 + ], + [ + 112.773288, + 34.835884 + ], + [ + 112.753281, + 34.828587 + ], + [ + 112.72214, + 34.828833 + ], + [ + 112.696723, + 34.840617 + ], + [ + 112.676088, + 34.853188 + ], + [ + 112.656648, + 34.859645 + ], + [ + 112.638215, + 34.854174 + ], + [ + 112.636328, + 34.88266 + ], + [ + 112.642115, + 34.895717 + ], + [ + 112.638152, + 34.896998 + ], + [ + 112.638404, + 34.919756 + ], + [ + 112.618209, + 34.920298 + ], + [ + 112.585369, + 34.926503 + ], + [ + 112.579329, + 34.933398 + ], + [ + 112.578134, + 34.944083 + ], + [ + 112.571654, + 34.948761 + ], + [ + 112.5692, + 34.958608 + ], + [ + 112.563853, + 34.949696 + ], + [ + 112.551207, + 34.938569 + ], + [ + 112.527867, + 34.932019 + ], + [ + 112.519436, + 34.940341 + ], + [ + 112.505155, + 34.942459 + ], + [ + 112.496914, + 34.921726 + ], + [ + 112.511447, + 34.92084 + ], + [ + 112.515976, + 34.929212 + ], + [ + 112.527426, + 34.929163 + ], + [ + 112.537304, + 34.916013 + ], + [ + 112.534221, + 34.893746 + ], + [ + 112.521072, + 34.892761 + ], + [ + 112.505659, + 34.898821 + ], + [ + 112.496536, + 34.895717 + ], + [ + 112.489616, + 34.90286 + ], + [ + 112.462501, + 34.915668 + ], + [ + 112.433247, + 34.920987 + ], + [ + 112.39097, + 34.918574 + ], + [ + 112.384993, + 34.924533 + ], + [ + 112.360268, + 34.931428 + ], + [ + 112.334537, + 34.941425 + ], + [ + 112.3212, + 34.941375 + ], + [ + 112.301068, + 34.945462 + ], + [ + 112.28188, + 34.960232 + ], + [ + 112.267284, + 34.953537 + ], + [ + 112.258099, + 34.942212 + ], + [ + 112.247844, + 34.940735 + ], + [ + 112.226831, + 34.956589 + ], + [ + 112.212047, + 34.965007 + ], + [ + 112.1877, + 34.972981 + ], + [ + 112.169896, + 35.00241 + ], + [ + 112.1514, + 35.015399 + ], + [ + 112.125857, + 35.021204 + ], + [ + 112.108242, + 35.029222 + ], + [ + 112.09352, + 35.029911 + ], + [ + 112.042436, + 35.027845 + ], + [ + 112.035075, + 35.033845 + ], + [ + 112.038912, + 35.045501 + ], + [ + 112.035264, + 35.053714 + ], + [ + 112.023814, + 35.060843 + ], + [ + 112.021171, + 35.067973 + ], + [ + 112.006009, + 35.065367 + ], + [ + 111.973358, + 35.070234 + ], + [ + 111.958699, + 35.062908 + ], + [ + 111.958573, + 35.0486 + ], + [ + 111.939511, + 35.0366 + ], + [ + 111.940203, + 35.030599 + ], + [ + 111.967067, + 35.014169 + ], + [ + 111.991917, + 35.005018 + ], + [ + 111.978139, + 34.997195 + ], + [ + 111.981033, + 34.990059 + ], + [ + 111.967192, + 34.989912 + ], + [ + 111.95763, + 34.986221 + ], + [ + 111.961153, + 34.975689 + ], + [ + 111.983235, + 34.970471 + ], + [ + 111.981914, + 34.960626 + ], + [ + 111.950835, + 34.947776 + ], + [ + 111.933975, + 34.947678 + ], + [ + 111.921707, + 34.934038 + ], + [ + 111.906168, + 34.929606 + ], + [ + 111.890062, + 34.920347 + ], + [ + 111.88396, + 34.911974 + ], + [ + 111.883267, + 34.894239 + ], + [ + 111.898744, + 34.885912 + ], + [ + 111.922336, + 34.883941 + ], + [ + 111.949829, + 34.863391 + ], + [ + 111.948948, + 34.852301 + ], + [ + 111.957944, + 34.851167 + ], + [ + 111.981411, + 34.857624 + ], + [ + 111.990722, + 34.853779 + ], + [ + 111.982858, + 34.846139 + ], + [ + 111.986003, + 34.837856 + ], + [ + 112.01444, + 34.817985 + ], + [ + 112.020731, + 34.811327 + ], + [ + 112.012804, + 34.803781 + ], + [ + 112.016327, + 34.797073 + ], + [ + 112.030105, + 34.792584 + ], + [ + 112.031992, + 34.782965 + ], + [ + 112.031174, + 34.777735 + ], + [ + 112.017459, + 34.769939 + ], + [ + 112.019347, + 34.762587 + ], + [ + 112.011042, + 34.750644 + ], + [ + 111.997831, + 34.750693 + ], + [ + 112.000536, + 34.745017 + ], + [ + 111.995692, + 34.736823 + ], + [ + 112.014125, + 34.731048 + ], + [ + 112.01488, + 34.724235 + ], + [ + 111.997642, + 34.717125 + ], + [ + 111.993238, + 34.693866 + ], + [ + 111.982921, + 34.695052 + ], + [ + 111.984997, + 34.686013 + ], + [ + 111.972855, + 34.66739 + ], + [ + 111.980089, + 34.654 + ], + [ + 111.971408, + 34.65069 + ], + [ + 111.967444, + 34.64308 + ], + [ + 111.953666, + 34.639521 + ], + [ + 111.943223, + 34.629637 + ], + [ + 111.94165, + 34.620492 + ], + [ + 111.928879, + 34.600272 + ], + [ + 111.905664, + 34.6198 + ], + [ + 111.888867, + 34.61891 + ], + [ + 111.863953, + 34.647082 + ], + [ + 111.830736, + 34.649207 + ], + [ + 111.823752, + 34.646242 + ], + [ + 111.821362, + 34.634431 + ], + [ + 111.811296, + 34.633887 + ], + [ + 111.797078, + 34.626028 + ], + [ + 111.778393, + 34.608331 + ], + [ + 111.764112, + 34.609171 + ], + [ + 111.758764, + 34.597454 + ], + [ + 111.740079, + 34.600272 + ], + [ + 111.702835, + 34.584943 + ], + [ + 111.696292, + 34.575744 + ], + [ + 111.687044, + 34.571886 + ], + [ + 111.672008, + 34.572232 + ], + [ + 111.681445, + 34.547647 + ], + [ + 111.692643, + 34.535673 + ], + [ + 111.683584, + 34.533298 + ], + [ + 111.670058, + 34.540571 + ], + [ + 111.619099, + 34.55576 + ], + [ + 111.608089, + 34.56229 + ], + [ + 111.594437, + 34.565308 + ], + [ + 111.584434, + 34.556057 + ], + [ + 111.574305, + 34.564467 + ], + [ + 111.562037, + 34.558728 + ], + [ + 111.544736, + 34.544925 + ], + [ + 111.538634, + 34.543342 + ], + [ + 111.525045, + 34.54829 + ], + [ + 111.5029, + 34.545074 + ], + [ + 111.489437, + 34.533842 + ], + [ + 111.484655, + 34.525528 + ], + [ + 111.45754, + 34.512561 + ], + [ + 111.451689, + 34.505928 + ], + [ + 111.418346, + 34.490829 + ], + [ + 111.394816, + 34.482016 + ], + [ + 111.385065, + 34.473103 + ], + [ + 111.370595, + 34.473301 + ], + [ + 111.358642, + 34.480333 + ], + [ + 111.344424, + 34.472955 + ], + [ + 111.324732, + 34.471717 + ], + [ + 111.306676, + 34.474193 + ], + [ + 111.300008, + 34.488948 + ], + [ + 111.289313, + 34.485581 + ], + [ + 111.271383, + 34.470677 + ], + [ + 111.272012, + 34.447547 + ], + [ + 111.244708, + 34.453788 + ], + [ + 111.227533, + 34.459732 + ], + [ + 111.220235, + 34.457949 + ], + [ + 111.213252, + 34.437441 + ], + [ + 111.21344, + 34.429812 + ], + [ + 111.197712, + 34.418762 + ], + [ + 111.191232, + 34.41792 + ], + [ + 111.188967, + 34.399286 + ], + [ + 111.171415, + 34.394974 + ], + [ + 111.156819, + 34.394677 + ], + [ + 111.147949, + 34.38853 + ], + [ + 111.141217, + 34.373113 + ], + [ + 111.138449, + 34.35675 + ], + [ + 111.141217, + 34.353031 + ], + [ + 111.159839, + 34.350799 + ], + [ + 111.166634, + 34.344798 + ], + [ + 111.16915, + 34.334878 + ], + [ + 111.185444, + 34.31697 + ], + [ + 111.191547, + 34.301837 + ], + [ + 111.181921, + 34.27876 + ], + [ + 111.182488, + 34.256421 + ], + [ + 111.187772, + 34.250265 + ], + [ + 111.180915, + 34.230203 + ], + [ + 111.166571, + 34.228962 + ], + [ + 111.158958, + 34.223101 + ], + [ + 111.175819, + 34.209541 + ], + [ + 111.207401, + 34.197419 + ], + [ + 111.214699, + 34.181221 + ], + [ + 111.234516, + 34.178537 + ], + [ + 111.248671, + 34.162882 + ], + [ + 111.253201, + 34.15309 + ], + [ + 111.267922, + 34.146528 + ], + [ + 111.276856, + 34.148318 + ], + [ + 111.281889, + 34.138524 + ], + [ + 111.296925, + 34.145137 + ], + [ + 111.305292, + 34.140165 + ], + [ + 111.306362, + 34.125149 + ], + [ + 111.313408, + 34.116546 + ], + [ + 111.334735, + 34.115601 + ], + [ + 111.344738, + 34.109037 + ], + [ + 111.358768, + 34.108788 + ], + [ + 111.367198, + 34.092473 + ], + [ + 111.354301, + 34.084464 + ], + [ + 111.342096, + 34.056053 + ], + [ + 111.342285, + 34.037936 + ], + [ + 111.355119, + 34.015185 + ], + [ + 111.353609, + 33.996263 + ], + [ + 111.356, + 33.984509 + ], + [ + 111.344109, + 33.973351 + ], + [ + 111.324795, + 33.963039 + ], + [ + 111.305921, + 33.941364 + ], + [ + 111.303342, + 33.928207 + ], + [ + 111.29013, + 33.926662 + ], + [ + 111.276793, + 33.935533 + ], + [ + 111.259366, + 33.929852 + ], + [ + 111.239989, + 33.933141 + ], + [ + 111.230049, + 33.924768 + ], + [ + 111.226652, + 33.913104 + ], + [ + 111.234768, + 33.901738 + ], + [ + 111.234516, + 33.894857 + ], + [ + 111.212811, + 33.884087 + ], + [ + 111.206017, + 33.891616 + ], + [ + 111.203689, + 33.883438 + ], + [ + 111.21948, + 33.872766 + ], + [ + 111.216397, + 33.865135 + ], + [ + 111.232062, + 33.856805 + ], + [ + 111.240304, + 33.842488 + ], + [ + 111.261568, + 33.822878 + ], + [ + 111.260813, + 33.796775 + ] + ] + ], + [ + [ + [ + 112.028784, + 34.778968 + ], + [ + 112.030231, + 34.782668 + ], + [ + 112.018466, + 34.785678 + ], + [ + 112.021171, + 34.777537 + ], + [ + 112.028784, + 34.778968 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410400, + "name": "骞抽《灞卞競", + "center": [ + 113.307718, + 33.735241 + ], + "centroid": [ + 113.016514, + 33.795715 + ], + "childrenNum": 10, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 3, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.585485, + 33.711024 + ], + [ + 113.580767, + 33.715171 + ], + [ + 113.58775, + 33.727062 + ], + [ + 113.576552, + 33.736304 + ], + [ + 113.573091, + 33.752137 + ], + [ + 113.549373, + 33.750489 + ], + [ + 113.544341, + 33.757131 + ], + [ + 113.51798, + 33.750439 + ], + [ + 113.504014, + 33.751238 + ], + [ + 113.489481, + 33.746094 + ], + [ + 113.451042, + 33.739301 + ], + [ + 113.448211, + 33.75868 + ], + [ + 113.434873, + 33.765371 + ], + [ + 113.425814, + 33.762175 + ], + [ + 113.372401, + 33.785593 + ], + [ + 113.393351, + 33.797873 + ], + [ + 113.386053, + 33.801817 + ], + [ + 113.38102, + 33.815542 + ], + [ + 113.385802, + 33.834854 + ], + [ + 113.384669, + 33.843286 + ], + [ + 113.36762, + 33.862691 + ], + [ + 113.360762, + 33.879997 + ], + [ + 113.365481, + 33.890519 + ], + [ + 113.381586, + 33.912007 + ], + [ + 113.386116, + 33.927808 + ], + [ + 113.410715, + 33.943308 + ], + [ + 113.412665, + 33.952028 + ], + [ + 113.41342, + 33.987049 + ], + [ + 113.402222, + 34.002687 + ], + [ + 113.395742, + 34.031315 + ], + [ + 113.386368, + 34.039827 + ], + [ + 113.368626, + 34.039877 + ], + [ + 113.35466, + 34.043112 + ], + [ + 113.346104, + 34.03928 + ], + [ + 113.345034, + 34.029075 + ], + [ + 113.334528, + 34.027183 + ], + [ + 113.320687, + 34.054858 + ], + [ + 113.331949, + 34.063268 + ], + [ + 113.30043, + 34.082623 + ], + [ + 113.283129, + 34.086802 + ], + [ + 113.278914, + 34.100134 + ], + [ + 113.264381, + 34.098542 + ], + [ + 113.257398, + 34.112319 + ], + [ + 113.252113, + 34.114308 + ], + [ + 113.240097, + 34.108539 + ], + [ + 113.241166, + 34.097945 + ], + [ + 113.235064, + 34.091926 + ], + [ + 113.227137, + 34.092523 + ], + [ + 113.222355, + 34.102422 + ], + [ + 113.210654, + 34.107445 + ], + [ + 113.177876, + 34.101228 + ], + [ + 113.157493, + 34.103118 + ], + [ + 113.150384, + 34.108141 + ], + [ + 113.146483, + 34.117939 + ], + [ + 113.130629, + 34.124105 + ], + [ + 113.126477, + 34.134696 + ], + [ + 113.129811, + 34.145733 + ], + [ + 113.118047, + 34.156818 + ], + [ + 113.103011, + 34.176798 + ], + [ + 113.101941, + 34.18778 + ], + [ + 113.106094, + 34.198115 + ], + [ + 113.103892, + 34.205418 + ], + [ + 113.094203, + 34.21118 + ], + [ + 113.075392, + 34.215502 + ], + [ + 113.066962, + 34.223647 + ], + [ + 113.070171, + 34.247186 + ], + [ + 113.077343, + 34.262677 + ], + [ + 113.082439, + 34.26645 + ], + [ + 113.075518, + 34.276527 + ], + [ + 113.059476, + 34.280944 + ], + [ + 113.037142, + 34.280299 + ], + [ + 113.027642, + 34.289282 + ], + [ + 113.020847, + 34.290424 + ], + [ + 113.013235, + 34.300398 + ], + [ + 112.992977, + 34.296478 + ], + [ + 112.960829, + 34.297867 + ], + [ + 112.954097, + 34.302135 + ], + [ + 112.936293, + 34.295535 + ], + [ + 112.91245, + 34.293749 + ], + [ + 112.884516, + 34.30144 + ], + [ + 112.87357, + 34.298016 + ], + [ + 112.856458, + 34.302185 + ], + [ + 112.84117, + 34.297818 + ], + [ + 112.842114, + 34.311612 + ], + [ + 112.854633, + 34.316325 + ], + [ + 112.83318, + 34.333638 + ], + [ + 112.824184, + 34.33344 + ], + [ + 112.81223, + 34.340037 + ], + [ + 112.788953, + 34.331158 + ], + [ + 112.787002, + 34.343261 + ], + [ + 112.776622, + 34.345046 + ], + [ + 112.75693, + 34.330662 + ], + [ + 112.741265, + 34.333738 + ], + [ + 112.73057, + 34.330414 + ], + [ + 112.701001, + 34.335077 + ], + [ + 112.688356, + 34.326743 + ], + [ + 112.669294, + 34.324908 + ], + [ + 112.65734, + 34.320592 + ], + [ + 112.659605, + 34.333936 + ], + [ + 112.650168, + 34.341078 + ], + [ + 112.623682, + 34.337854 + ], + [ + 112.607262, + 34.327934 + ], + [ + 112.613994, + 34.322328 + ], + [ + 112.597133, + 34.317962 + ], + [ + 112.573226, + 34.298314 + ], + [ + 112.569703, + 34.284815 + ], + [ + 112.553724, + 34.27608 + ], + [ + 112.557876, + 34.263719 + ], + [ + 112.575617, + 34.254336 + ], + [ + 112.577819, + 34.246988 + ], + [ + 112.559763, + 34.224988 + ], + [ + 112.583544, + 34.19096 + ], + [ + 112.589395, + 34.18614 + ], + [ + 112.595623, + 34.163529 + ], + [ + 112.611666, + 34.15816 + ], + [ + 112.620285, + 34.143148 + ], + [ + 112.616196, + 34.128928 + ], + [ + 112.608206, + 34.114209 + ], + [ + 112.602544, + 34.088792 + ], + [ + 112.601222, + 34.071827 + ], + [ + 112.577253, + 34.062373 + ], + [ + 112.572346, + 34.043162 + ], + [ + 112.538625, + 34.027084 + ], + [ + 112.533718, + 34.018122 + ], + [ + 112.549383, + 34.016529 + ], + [ + 112.56964, + 34.003035 + ], + [ + 112.547118, + 33.998304 + ], + [ + 112.546803, + 33.979777 + ], + [ + 112.539065, + 33.968071 + ], + [ + 112.538121, + 33.947344 + ], + [ + 112.530761, + 33.937975 + ], + [ + 112.497858, + 33.926064 + ], + [ + 112.502576, + 33.913004 + ], + [ + 112.51497, + 33.906374 + ], + [ + 112.536423, + 33.902236 + ], + [ + 112.541393, + 33.892165 + ], + [ + 112.534095, + 33.880247 + ], + [ + 112.512768, + 33.85895 + ], + [ + 112.48559, + 33.859848 + ], + [ + 112.474643, + 33.855458 + ], + [ + 112.462312, + 33.84583 + ], + [ + 112.45665, + 33.836451 + ], + [ + 112.433687, + 33.810951 + ], + [ + 112.42381, + 33.806559 + ], + [ + 112.40978, + 33.80591 + ], + [ + 112.372222, + 33.838297 + ], + [ + 112.363854, + 33.840143 + ], + [ + 112.351461, + 33.834605 + ], + [ + 112.323402, + 33.828467 + ], + [ + 112.301383, + 33.811001 + ], + [ + 112.285906, + 33.808755 + ], + [ + 112.273953, + 33.801667 + ], + [ + 112.277413, + 33.791684 + ], + [ + 112.260049, + 33.781849 + ], + [ + 112.259168, + 33.776007 + ], + [ + 112.266907, + 33.769766 + ], + [ + 112.263446, + 33.743596 + ], + [ + 112.24797, + 33.72871 + ], + [ + 112.249354, + 33.719018 + ], + [ + 112.258854, + 33.710624 + ], + [ + 112.278168, + 33.712373 + ], + [ + 112.306541, + 33.69978 + ], + [ + 112.312455, + 33.684887 + ], + [ + 112.332839, + 33.668391 + ], + [ + 112.353285, + 33.669941 + ], + [ + 112.361086, + 33.661242 + ], + [ + 112.375116, + 33.666891 + ], + [ + 112.392479, + 33.666991 + ], + [ + 112.408019, + 33.675439 + ], + [ + 112.420727, + 33.676389 + ], + [ + 112.453756, + 33.645291 + ], + [ + 112.461683, + 33.63994 + ], + [ + 112.477159, + 33.63764 + ], + [ + 112.493202, + 33.63899 + ], + [ + 112.503394, + 33.622185 + ], + [ + 112.524721, + 33.603826 + ], + [ + 112.522771, + 33.595521 + ], + [ + 112.529943, + 33.587915 + ], + [ + 112.548502, + 33.59367 + ], + [ + 112.556869, + 33.588166 + ], + [ + 112.575995, + 33.602275 + ], + [ + 112.588388, + 33.616883 + ], + [ + 112.599775, + 33.618084 + ], + [ + 112.610785, + 33.611431 + ], + [ + 112.611351, + 33.601875 + ], + [ + 112.617705, + 33.597272 + ], + [ + 112.63444, + 33.594821 + ], + [ + 112.646205, + 33.602876 + ], + [ + 112.660234, + 33.605377 + ], + [ + 112.664386, + 33.597673 + ], + [ + 112.683889, + 33.591718 + ], + [ + 112.689174, + 33.587165 + ], + [ + 112.70572, + 33.585263 + ], + [ + 112.725411, + 33.586765 + ], + [ + 112.743215, + 33.578858 + ], + [ + 112.750387, + 33.571151 + ], + [ + 112.760076, + 33.571751 + ], + [ + 112.773413, + 33.56079 + ], + [ + 112.783668, + 33.567747 + ], + [ + 112.81179, + 33.580309 + ], + [ + 112.82022, + 33.574804 + ], + [ + 112.845637, + 33.578107 + ], + [ + 112.85262, + 33.584413 + ], + [ + 112.854822, + 33.603626 + ], + [ + 112.869669, + 33.611531 + ], + [ + 112.887914, + 33.608329 + ], + [ + 112.893513, + 33.616133 + ], + [ + 112.917545, + 33.605627 + ], + [ + 112.94271, + 33.607629 + ], + [ + 112.950134, + 33.590968 + ], + [ + 112.963597, + 33.583662 + ], + [ + 112.972908, + 33.584613 + ], + [ + 112.986497, + 33.575805 + ], + [ + 112.990775, + 33.567797 + ], + [ + 112.997255, + 33.569399 + ], + [ + 113.022861, + 33.56119 + ], + [ + 113.027642, + 33.546874 + ], + [ + 113.036701, + 33.546974 + ], + [ + 113.036261, + 33.539865 + ], + [ + 113.047333, + 33.532204 + ], + [ + 113.04381, + 33.517532 + ], + [ + 113.048214, + 33.508317 + ], + [ + 113.049221, + 33.492087 + ], + [ + 113.053373, + 33.485725 + ], + [ + 113.041168, + 33.473701 + ], + [ + 113.037897, + 33.464331 + ], + [ + 113.041357, + 33.44659 + ], + [ + 113.045698, + 33.439472 + ], + [ + 113.074826, + 33.448444 + ], + [ + 113.110309, + 33.446138 + ], + [ + 113.125659, + 33.439723 + ], + [ + 113.128742, + 33.427642 + ], + [ + 113.141765, + 33.425987 + ], + [ + 113.156109, + 33.433607 + ], + [ + 113.176052, + 33.435713 + ], + [ + 113.192975, + 33.429797 + ], + [ + 113.198134, + 33.420523 + ], + [ + 113.216316, + 33.398861 + ], + [ + 113.230912, + 33.38848 + ], + [ + 113.230534, + 33.374937 + ], + [ + 113.241418, + 33.373733 + ], + [ + 113.245004, + 33.365356 + ], + [ + 113.257964, + 33.366158 + ], + [ + 113.270609, + 33.358834 + ], + [ + 113.277089, + 33.350254 + ], + [ + 113.289923, + 33.351709 + ], + [ + 113.302632, + 33.348999 + ], + [ + 113.312194, + 33.341121 + ], + [ + 113.335472, + 33.35201 + ], + [ + 113.363908, + 33.342476 + ], + [ + 113.400397, + 33.335852 + ], + [ + 113.40738, + 33.323004 + ], + [ + 113.400838, + 33.314722 + ], + [ + 113.403857, + 33.302724 + ], + [ + 113.388318, + 33.299059 + ], + [ + 113.384732, + 33.29203 + ], + [ + 113.400146, + 33.261044 + ], + [ + 113.402851, + 33.235224 + ], + [ + 113.391212, + 33.225928 + ], + [ + 113.384103, + 33.206128 + ], + [ + 113.384417, + 33.196679 + ], + [ + 113.377875, + 33.184313 + ], + [ + 113.370136, + 33.182855 + ], + [ + 113.385802, + 33.169381 + ], + [ + 113.382467, + 33.156156 + ], + [ + 113.385424, + 33.145595 + ], + [ + 113.379888, + 33.135485 + ], + [ + 113.388821, + 33.128393 + ], + [ + 113.397881, + 33.14997 + ], + [ + 113.413105, + 33.156659 + ], + [ + 113.432545, + 33.15681 + ], + [ + 113.449217, + 33.160581 + ], + [ + 113.46029, + 33.156458 + ], + [ + 113.499987, + 33.156206 + ], + [ + 113.514772, + 33.162492 + ], + [ + 113.521378, + 33.154698 + ], + [ + 113.532324, + 33.152736 + ], + [ + 113.541321, + 33.14308 + ], + [ + 113.550254, + 33.140113 + ], + [ + 113.561201, + 33.161134 + ], + [ + 113.573846, + 33.15691 + ], + [ + 113.593601, + 33.157715 + ], + [ + 113.600144, + 33.163146 + ], + [ + 113.617004, + 33.147255 + ], + [ + 113.626001, + 33.150423 + ], + [ + 113.63506, + 33.160833 + ], + [ + 113.64846, + 33.182402 + ], + [ + 113.644623, + 33.186575 + ], + [ + 113.627511, + 33.186475 + ], + [ + 113.613796, + 33.211506 + ], + [ + 113.606875, + 33.237786 + ], + [ + 113.613167, + 33.261798 + ], + [ + 113.618766, + 33.291477 + ], + [ + 113.627448, + 33.312212 + ], + [ + 113.640282, + 33.325162 + ], + [ + 113.642106, + 33.34905 + ], + [ + 113.639149, + 33.355221 + ], + [ + 113.655003, + 33.371175 + ], + [ + 113.676897, + 33.378298 + ], + [ + 113.688347, + 33.407737 + ], + [ + 113.683125, + 33.41952 + ], + [ + 113.659407, + 33.424283 + ], + [ + 113.651669, + 33.418417 + ], + [ + 113.645252, + 33.421776 + ], + [ + 113.620842, + 33.410946 + ], + [ + 113.596809, + 33.41215 + ], + [ + 113.589008, + 33.404728 + ], + [ + 113.574727, + 33.407537 + ], + [ + 113.54736, + 33.406433 + ], + [ + 113.539811, + 33.419019 + ], + [ + 113.526662, + 33.419269 + ], + [ + 113.51754, + 33.407186 + ], + [ + 113.506341, + 33.414607 + ], + [ + 113.483945, + 33.421124 + ], + [ + 113.468846, + 33.422077 + ], + [ + 113.466518, + 33.437367 + ], + [ + 113.473501, + 33.443683 + ], + [ + 113.471803, + 33.463378 + ], + [ + 113.484322, + 33.483721 + ], + [ + 113.478597, + 33.50431 + ], + [ + 113.483001, + 33.500152 + ], + [ + 113.50307, + 33.500252 + ], + [ + 113.510808, + 33.505011 + ], + [ + 113.525278, + 33.505061 + ], + [ + 113.532073, + 33.497347 + ], + [ + 113.537609, + 33.498499 + ], + [ + 113.533708, + 33.514978 + ], + [ + 113.537672, + 33.51633 + ], + [ + 113.545536, + 33.548626 + ], + [ + 113.557363, + 33.553582 + ], + [ + 113.563151, + 33.57055 + ], + [ + 113.554281, + 33.5706 + ], + [ + 113.552267, + 33.586715 + ], + [ + 113.576803, + 33.592619 + ], + [ + 113.579383, + 33.597222 + ], + [ + 113.604673, + 33.613131 + ], + [ + 113.621534, + 33.619885 + ], + [ + 113.628203, + 33.629038 + ], + [ + 113.619143, + 33.63799 + ], + [ + 113.596746, + 33.651892 + ], + [ + 113.587624, + 33.654642 + ], + [ + 113.580515, + 33.681738 + ], + [ + 113.584101, + 33.698131 + ], + [ + 113.576677, + 33.706327 + ], + [ + 113.585485, + 33.711024 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410500, + "name": "瀹夐槼甯�", + "center": [ + 114.352482, + 36.103442 + ], + "centroid": [ + 114.358257, + 35.878529 + ], + "childrenNum": 9, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 4, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 114.419073, + 35.474181 + ], + [ + 114.428573, + 35.468947 + ], + [ + 114.429139, + 35.449523 + ], + [ + 114.412027, + 35.43582 + ], + [ + 114.405043, + 35.426325 + ], + [ + 114.407686, + 35.418004 + ], + [ + 114.415172, + 35.413255 + ], + [ + 114.423666, + 35.380155 + ], + [ + 114.413474, + 35.370163 + ], + [ + 114.411083, + 35.358064 + ], + [ + 114.429076, + 35.342876 + ], + [ + 114.423414, + 35.324842 + ], + [ + 114.404226, + 35.326313 + ], + [ + 114.403659, + 35.316805 + ], + [ + 114.412782, + 35.313521 + ], + [ + 114.416493, + 35.302785 + ], + [ + 114.408189, + 35.29249 + ], + [ + 114.395732, + 35.293078 + ], + [ + 114.407497, + 35.269738 + ], + [ + 114.395481, + 35.26449 + ], + [ + 114.391266, + 35.258114 + ], + [ + 114.396299, + 35.241828 + ], + [ + 114.407497, + 35.236627 + ], + [ + 114.392146, + 35.226912 + ], + [ + 114.394348, + 35.219797 + ], + [ + 114.399696, + 35.225097 + ], + [ + 114.415298, + 35.228188 + ], + [ + 114.431404, + 35.222055 + ], + [ + 114.431781, + 35.208755 + ], + [ + 114.442602, + 35.205958 + ], + [ + 114.4499, + 35.214448 + ], + [ + 114.465376, + 35.216706 + ], + [ + 114.487836, + 35.206645 + ], + [ + 114.494756, + 35.220141 + ], + [ + 114.50413, + 35.228286 + ], + [ + 114.527093, + 35.235646 + ], + [ + 114.541437, + 35.242809 + ], + [ + 114.549364, + 35.261891 + ], + [ + 114.562198, + 35.276064 + ], + [ + 114.5968, + 35.286116 + ], + [ + 114.607495, + 35.292686 + ], + [ + 114.627313, + 35.298275 + ], + [ + 114.642915, + 35.297148 + ], + [ + 114.663173, + 35.291559 + ], + [ + 114.679907, + 35.291166 + ], + [ + 114.688715, + 35.295138 + ], + [ + 114.698341, + 35.306756 + ], + [ + 114.701675, + 35.329008 + ], + [ + 114.697397, + 35.337486 + ], + [ + 114.718598, + 35.343611 + ], + [ + 114.73722, + 35.344689 + ], + [ + 114.754521, + 35.341308 + ], + [ + 114.76163, + 35.345228 + ], + [ + 114.783964, + 35.343023 + ], + [ + 114.808877, + 35.346942 + ], + [ + 114.809632, + 35.354242 + ], + [ + 114.856942, + 35.387794 + ], + [ + 114.879339, + 35.387452 + ], + [ + 114.898087, + 35.390781 + ], + [ + 114.951248, + 35.380791 + ], + [ + 114.967605, + 35.399204 + ], + [ + 114.985787, + 35.414332 + ], + [ + 114.981509, + 35.434107 + ], + [ + 114.96383, + 35.440665 + ], + [ + 114.96188, + 35.446146 + ], + [ + 114.967668, + 35.456716 + ], + [ + 114.970751, + 35.480785 + ], + [ + 114.947347, + 35.478144 + ], + [ + 114.93942, + 35.481225 + ], + [ + 114.940616, + 35.491448 + ], + [ + 114.953324, + 35.501815 + ], + [ + 114.964334, + 35.504749 + ], + [ + 114.969492, + 35.518 + ], + [ + 114.968423, + 35.537554 + ], + [ + 114.962006, + 35.571421 + ], + [ + 114.952884, + 35.581094 + ], + [ + 114.90853, + 35.585979 + ], + [ + 114.884813, + 35.599852 + ], + [ + 114.883051, + 35.616065 + ], + [ + 114.874432, + 35.623878 + ], + [ + 114.875502, + 35.628907 + ], + [ + 114.890034, + 35.646823 + ], + [ + 114.905888, + 35.649606 + ], + [ + 114.911047, + 35.660685 + ], + [ + 114.919226, + 35.664785 + ], + [ + 114.918408, + 35.687962 + ], + [ + 114.910544, + 35.700939 + ], + [ + 114.915514, + 35.706743 + ], + [ + 114.907776, + 35.722594 + ], + [ + 114.889594, + 35.738978 + ], + [ + 114.887832, + 35.753506 + ], + [ + 114.893746, + 35.764132 + ], + [ + 114.908405, + 35.765741 + ], + [ + 114.921365, + 35.780118 + ], + [ + 114.943573, + 35.799754 + ], + [ + 114.948669, + 35.819629 + ], + [ + 114.94546, + 35.82523 + ], + [ + 114.93401, + 35.828055 + ], + [ + 114.933003, + 35.84505 + ], + [ + 114.935646, + 35.853814 + ], + [ + 114.953009, + 35.85766 + ], + [ + 114.959112, + 35.862723 + ], + [ + 114.969996, + 35.881366 + ], + [ + 114.970814, + 35.890223 + ], + [ + 114.97786, + 35.904723 + ], + [ + 114.972324, + 35.923259 + ], + [ + 114.98025, + 35.949814 + ], + [ + 114.988366, + 35.964741 + ], + [ + 114.983333, + 35.982922 + ], + [ + 114.986164, + 35.991865 + ], + [ + 114.980376, + 36.003334 + ], + [ + 114.974274, + 35.999009 + ], + [ + 114.974211, + 36.012226 + ], + [ + 114.983396, + 36.019417 + ], + [ + 114.983962, + 36.02583 + ], + [ + 114.968926, + 36.032971 + ], + [ + 114.94244, + 36.03812 + ], + [ + 114.920798, + 36.048319 + ], + [ + 114.914696, + 36.05201 + ], + [ + 114.92646, + 36.089444 + ], + [ + 114.922057, + 36.103132 + ], + [ + 114.913249, + 36.107645 + ], + [ + 114.907083, + 36.119971 + ], + [ + 114.912431, + 36.140444 + ], + [ + 114.893432, + 36.140056 + ], + [ + 114.89211, + 36.143792 + ], + [ + 114.868518, + 36.146653 + ], + [ + 114.858641, + 36.144325 + ], + [ + 114.857509, + 36.127734 + ], + [ + 114.841655, + 36.131712 + ], + [ + 114.831589, + 36.130354 + ], + [ + 114.825172, + 36.123707 + ], + [ + 114.802775, + 36.130936 + ], + [ + 114.790885, + 36.130014 + ], + [ + 114.778617, + 36.133168 + ], + [ + 114.777987, + 36.128025 + ], + [ + 114.76421, + 36.125551 + ], + [ + 114.762889, + 36.134914 + ], + [ + 114.751564, + 36.138698 + ], + [ + 114.751564, + 36.146605 + ], + [ + 114.734389, + 36.155772 + ], + [ + 114.720674, + 36.140056 + ], + [ + 114.711678, + 36.145441 + ], + [ + 114.692364, + 36.146217 + ], + [ + 114.691106, + 36.138407 + ], + [ + 114.655183, + 36.14025 + ], + [ + 114.63719, + 36.135642 + ], + [ + 114.630395, + 36.124241 + ], + [ + 114.619449, + 36.123513 + ], + [ + 114.61083, + 36.128316 + ], + [ + 114.604664, + 36.121426 + ], + [ + 114.582582, + 36.121329 + ], + [ + 114.58686, + 36.14093 + ], + [ + 114.575473, + 36.143258 + ], + [ + 114.568049, + 36.152328 + ], + [ + 114.558046, + 36.150776 + ], + [ + 114.543639, + 36.161786 + ], + [ + 114.531686, + 36.161931 + ], + [ + 114.532881, + 36.171533 + ], + [ + 114.504948, + 36.172406 + ], + [ + 114.505577, + 36.177497 + ], + [ + 114.489598, + 36.178467 + ], + [ + 114.483873, + 36.183848 + ], + [ + 114.480287, + 36.177788 + ], + [ + 114.466194, + 36.197713 + ], + [ + 114.452291, + 36.202367 + ], + [ + 114.431152, + 36.202609 + ], + [ + 114.4175, + 36.205905 + ], + [ + 114.408441, + 36.224563 + ], + [ + 114.392335, + 36.221123 + ], + [ + 114.367548, + 36.225533 + ], + [ + 114.356098, + 36.23033 + ], + [ + 114.353833, + 36.242636 + ], + [ + 114.346787, + 36.245494 + ], + [ + 114.345151, + 36.255812 + ], + [ + 114.329234, + 36.255909 + ], + [ + 114.328353, + 36.248159 + ], + [ + 114.312814, + 36.251646 + ], + [ + 114.309983, + 36.246754 + ], + [ + 114.298973, + 36.24593 + ], + [ + 114.273871, + 36.254747 + ], + [ + 114.256445, + 36.263998 + ], + [ + 114.241031, + 36.251356 + ], + [ + 114.235558, + 36.252761 + ], + [ + 114.22373, + 36.270875 + ], + [ + 114.210645, + 36.272764 + ], + [ + 114.203095, + 36.245736 + ], + [ + 114.185165, + 36.248449 + ], + [ + 114.181139, + 36.243314 + ], + [ + 114.168871, + 36.243411 + ], + [ + 114.176672, + 36.263126 + ], + [ + 114.164844, + 36.269567 + ], + [ + 114.162831, + 36.26516 + ], + [ + 114.131438, + 36.281674 + ], + [ + 114.121435, + 36.272715 + ], + [ + 114.097528, + 36.275233 + ], + [ + 114.092621, + 36.2778 + ], + [ + 114.085386, + 36.2701 + ], + [ + 114.060536, + 36.276493 + ], + [ + 114.058271, + 36.285354 + ], + [ + 114.042606, + 36.297313 + ], + [ + 114.047953, + 36.310334 + ], + [ + 114.061542, + 36.317982 + ], + [ + 114.055692, + 36.329984 + ], + [ + 114.045185, + 36.325919 + ], + [ + 114.029017, + 36.326548 + ], + [ + 114.025997, + 36.330516 + ], + [ + 114.03254, + 36.339904 + ], + [ + 114.030841, + 36.350742 + ], + [ + 114.024676, + 36.354854 + ], + [ + 114.015176, + 36.352967 + ], + [ + 114.008507, + 36.342517 + ], + [ + 113.985859, + 36.357563 + ], + [ + 113.977932, + 36.358579 + ], + [ + 113.979819, + 36.344113 + ], + [ + 113.994478, + 36.34421 + ], + [ + 113.994352, + 36.337049 + ], + [ + 114.001964, + 36.331339 + ], + [ + 113.991647, + 36.326839 + ], + [ + 113.993849, + 36.314594 + ], + [ + 113.98221, + 36.317692 + ], + [ + 113.977869, + 36.329258 + ], + [ + 113.968495, + 36.33971 + ], + [ + 113.964217, + 36.35258 + ], + [ + 113.953207, + 36.358192 + ], + [ + 113.946727, + 36.354805 + ], + [ + 113.948804, + 36.346097 + ], + [ + 113.960317, + 36.344742 + ], + [ + 113.956101, + 36.335597 + ], + [ + 113.93446, + 36.33613 + ], + [ + 113.931629, + 36.319482 + ], + [ + 113.911182, + 36.314788 + ], + [ + 113.901116, + 36.337001 + ], + [ + 113.881487, + 36.353886 + ], + [ + 113.853617, + 36.350113 + ], + [ + 113.849339, + 36.346823 + ], + [ + 113.853995, + 36.329742 + ], + [ + 113.834177, + 36.334339 + ], + [ + 113.818261, + 36.331146 + ], + [ + 113.801274, + 36.338355 + ], + [ + 113.796808, + 36.347548 + ], + [ + 113.777431, + 36.349822 + ], + [ + 113.778626, + 36.359788 + ], + [ + 113.763401, + 36.356015 + ], + [ + 113.75516, + 36.365931 + ], + [ + 113.7422, + 36.364432 + ], + [ + 113.743269, + 36.357563 + ], + [ + 113.73314, + 36.357079 + ], + [ + 113.731442, + 36.363367 + ], + [ + 113.728736, + 36.341452 + ], + [ + 113.736412, + 36.324709 + ], + [ + 113.723326, + 36.304865 + ], + [ + 113.709045, + 36.299733 + ], + [ + 113.716217, + 36.262593 + ], + [ + 113.709108, + 36.261528 + ], + [ + 113.700552, + 36.252276 + ], + [ + 113.703886, + 36.23784 + ], + [ + 113.695204, + 36.228779 + ], + [ + 113.677274, + 36.222528 + ], + [ + 113.672178, + 36.211963 + ], + [ + 113.682055, + 36.216277 + ], + [ + 113.698476, + 36.21429 + ], + [ + 113.705396, + 36.20067 + ], + [ + 113.691492, + 36.20193 + ], + [ + 113.686334, + 36.195483 + ], + [ + 113.697909, + 36.181861 + ], + [ + 113.672304, + 36.175606 + ], + [ + 113.664503, + 36.177449 + ], + [ + 113.651669, + 36.172212 + ], + [ + 113.659973, + 36.164162 + ], + [ + 113.679287, + 36.159943 + ], + [ + 113.681363, + 36.150728 + ], + [ + 113.695582, + 36.153201 + ], + [ + 113.706843, + 36.147381 + ], + [ + 113.702628, + 36.143209 + ], + [ + 113.705648, + 36.134138 + ], + [ + 113.713763, + 36.132974 + ], + [ + 113.693191, + 36.124192 + ], + [ + 113.673499, + 36.125357 + ], + [ + 113.668529, + 36.129675 + ], + [ + 113.655507, + 36.125114 + ], + [ + 113.673814, + 36.111625 + ], + [ + 113.669284, + 36.104005 + ], + [ + 113.679539, + 36.094007 + ], + [ + 113.684069, + 36.078328 + ], + [ + 113.68237, + 36.066821 + ], + [ + 113.685767, + 36.055992 + ], + [ + 113.668655, + 36.049096 + ], + [ + 113.66142, + 36.04288 + ], + [ + 113.660414, + 36.034671 + ], + [ + 113.670165, + 36.029522 + ], + [ + 113.695141, + 36.026753 + ], + [ + 113.695204, + 36.018202 + ], + [ + 113.680734, + 36.014801 + ], + [ + 113.695896, + 35.999884 + ], + [ + 113.686459, + 35.986421 + ], + [ + 113.678784, + 35.98579 + ], + [ + 113.648901, + 35.994149 + ], + [ + 113.637828, + 35.988463 + ], + [ + 113.636884, + 35.975874 + ], + [ + 113.647831, + 35.967123 + ], + [ + 113.653997, + 35.93143 + ], + [ + 113.654437, + 35.917227 + ], + [ + 113.648712, + 35.908518 + ], + [ + 113.637388, + 35.869928 + ], + [ + 113.644056, + 35.854885 + ], + [ + 113.658212, + 35.853911 + ], + [ + 113.661043, + 35.837259 + ], + [ + 113.700552, + 35.837308 + ], + [ + 113.709108, + 35.833655 + ], + [ + 113.705962, + 35.826594 + ], + [ + 113.711813, + 35.81807 + ], + [ + 113.726786, + 35.823185 + ], + [ + 113.731819, + 35.818752 + ], + [ + 113.742892, + 35.819093 + ], + [ + 113.756229, + 35.793713 + ], + [ + 113.751888, + 35.788304 + ], + [ + 113.757865, + 35.782798 + ], + [ + 113.759752, + 35.767398 + ], + [ + 113.778563, + 35.763206 + ], + [ + 113.776613, + 35.759404 + ], + [ + 113.800205, + 35.740782 + ], + [ + 113.808006, + 35.742488 + ], + [ + 113.801652, + 35.733517 + ], + [ + 113.799953, + 35.713572 + ], + [ + 113.794228, + 35.695329 + ], + [ + 113.777556, + 35.684644 + ], + [ + 113.785546, + 35.674447 + ], + [ + 113.806244, + 35.672983 + ], + [ + 113.811529, + 35.676838 + ], + [ + 113.843677, + 35.677814 + ], + [ + 113.859216, + 35.682351 + ], + [ + 113.868402, + 35.680741 + ], + [ + 113.886332, + 35.684401 + ], + [ + 113.901619, + 35.677423 + ], + [ + 113.923072, + 35.681815 + ], + [ + 113.927476, + 35.686011 + ], + [ + 113.931691, + 35.703963 + ], + [ + 113.949055, + 35.70089 + ], + [ + 113.956227, + 35.691426 + ], + [ + 113.969565, + 35.689572 + ], + [ + 113.98523, + 35.700743 + ], + [ + 113.995988, + 35.704792 + ], + [ + 113.998316, + 35.719814 + ], + [ + 114.002468, + 35.724788 + ], + [ + 114.017567, + 35.72591 + ], + [ + 114.032854, + 35.737028 + ], + [ + 114.042983, + 35.748095 + ], + [ + 114.055377, + 35.749216 + ], + [ + 114.067267, + 35.759112 + ], + [ + 114.066575, + 35.775391 + ], + [ + 114.071357, + 35.779679 + ], + [ + 114.078151, + 35.803018 + ], + [ + 114.069155, + 35.805259 + ], + [ + 114.051414, + 35.797513 + ], + [ + 114.037132, + 35.80331 + ], + [ + 114.025179, + 35.797074 + ], + [ + 114.022537, + 35.804285 + ], + [ + 114.035685, + 35.818411 + ], + [ + 114.035937, + 35.824548 + ], + [ + 114.025619, + 35.829419 + ], + [ + 114.014987, + 35.845001 + ], + [ + 114.013981, + 35.852548 + ], + [ + 114.019957, + 35.858634 + ], + [ + 114.038642, + 35.859461 + ], + [ + 114.056698, + 35.870268 + ], + [ + 114.070287, + 35.873189 + ], + [ + 114.075131, + 35.880928 + ], + [ + 114.07488, + 35.904383 + ], + [ + 114.081611, + 35.915086 + ], + [ + 114.052735, + 35.93109 + ], + [ + 114.040467, + 35.935662 + ], + [ + 114.038768, + 35.944319 + ], + [ + 114.028828, + 35.950494 + ], + [ + 114.030464, + 35.97179 + ], + [ + 114.044619, + 35.972276 + ], + [ + 114.065506, + 35.964109 + ], + [ + 114.073055, + 35.974512 + ], + [ + 114.084002, + 35.974415 + ], + [ + 114.094571, + 35.981075 + ], + [ + 114.108035, + 35.981852 + ], + [ + 114.103505, + 35.995267 + ], + [ + 114.111306, + 36.017085 + ], + [ + 114.121687, + 36.027044 + ], + [ + 114.135716, + 36.031562 + ], + [ + 114.158931, + 36.047299 + ], + [ + 114.175225, + 36.052107 + ], + [ + 114.179251, + 36.039431 + ], + [ + 114.174847, + 36.031319 + ], + [ + 114.178245, + 36.013198 + ], + [ + 114.169877, + 36.000856 + ], + [ + 114.174847, + 35.988803 + ], + [ + 114.181768, + 35.982873 + ], + [ + 114.191771, + 35.981415 + ], + [ + 114.197559, + 35.990115 + ], + [ + 114.205045, + 35.988657 + ], + [ + 114.218005, + 35.997648 + ], + [ + 114.223604, + 35.981707 + ], + [ + 114.251412, + 35.971936 + ], + [ + 114.279974, + 35.972811 + ], + [ + 114.279974, + 35.947382 + ], + [ + 114.296897, + 35.957885 + ], + [ + 114.309291, + 35.952731 + ], + [ + 114.293626, + 35.938288 + ], + [ + 114.303, + 35.930604 + ], + [ + 114.295576, + 35.924621 + ], + [ + 114.290166, + 35.928853 + ], + [ + 114.277206, + 35.924475 + ], + [ + 114.270789, + 35.899858 + ], + [ + 114.280855, + 35.892315 + ], + [ + 114.274626, + 35.882242 + ], + [ + 114.250908, + 35.876791 + ], + [ + 114.244303, + 35.871875 + ], + [ + 114.243044, + 35.863259 + ], + [ + 114.234425, + 35.855956 + ], + [ + 114.229204, + 35.841057 + ], + [ + 114.237005, + 35.809156 + ], + [ + 114.241786, + 35.806526 + ], + [ + 114.24317, + 35.793079 + ], + [ + 114.250845, + 35.793566 + ], + [ + 114.263365, + 35.774416 + ], + [ + 114.25569, + 35.774416 + ], + [ + 114.255249, + 35.767349 + ], + [ + 114.270411, + 35.76072 + ], + [ + 114.284315, + 35.783285 + ], + [ + 114.294632, + 35.794346 + ], + [ + 114.328353, + 35.802141 + ], + [ + 114.350373, + 35.816025 + ], + [ + 114.364717, + 35.818947 + ], + [ + 114.396802, + 35.816804 + ], + [ + 114.408441, + 35.820749 + ], + [ + 114.43845, + 35.817437 + ], + [ + 114.445811, + 35.819191 + ], + [ + 114.451347, + 35.828737 + ], + [ + 114.47085, + 35.827471 + ], + [ + 114.478273, + 35.834824 + ], + [ + 114.509478, + 35.836723 + ], + [ + 114.55295, + 35.828201 + ], + [ + 114.566476, + 35.843735 + ], + [ + 114.57044, + 35.835993 + ], + [ + 114.587552, + 35.840083 + ], + [ + 114.597618, + 35.825181 + ], + [ + 114.611647, + 35.82221 + ], + [ + 114.613849, + 35.808085 + ], + [ + 114.636561, + 35.794054 + ], + [ + 114.658706, + 35.791471 + ], + [ + 114.675252, + 35.782067 + ], + [ + 114.695572, + 35.78733 + ], + [ + 114.709224, + 35.787427 + ], + [ + 114.719857, + 35.778363 + ], + [ + 114.751439, + 35.763352 + ], + [ + 114.753389, + 35.753018 + ], + [ + 114.751439, + 35.737661 + ], + [ + 114.735648, + 35.708645 + ], + [ + 114.727029, + 35.697865 + ], + [ + 114.707903, + 35.694304 + ], + [ + 114.705638, + 35.689523 + ], + [ + 114.687897, + 35.684157 + ], + [ + 114.677454, + 35.671031 + ], + [ + 114.672924, + 35.65395 + ], + [ + 114.660719, + 35.651119 + ], + [ + 114.645243, + 35.654828 + ], + [ + 114.618694, + 35.647458 + ], + [ + 114.615611, + 35.636572 + ], + [ + 114.591704, + 35.629054 + ], + [ + 114.576857, + 35.616798 + ], + [ + 114.558361, + 35.613477 + ], + [ + 114.549301, + 35.614796 + ], + [ + 114.54345, + 35.602635 + ], + [ + 114.502558, + 35.609277 + ], + [ + 114.495008, + 35.600047 + ], + [ + 114.500167, + 35.593404 + ], + [ + 114.497587, + 35.584123 + ], + [ + 114.482677, + 35.584416 + ], + [ + 114.486137, + 35.573033 + ], + [ + 114.476071, + 35.565215 + ], + [ + 114.455499, + 35.557641 + ], + [ + 114.426182, + 35.54425 + ], + [ + 114.416871, + 35.533839 + ], + [ + 114.402275, + 35.526018 + ], + [ + 114.39504, + 35.508857 + ], + [ + 114.409259, + 35.489149 + ], + [ + 114.420394, + 35.483769 + ], + [ + 114.419073, + 35.474181 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410600, + "name": "楣ゅ甯�", + "center": [ + 114.295444, + 35.748236 + ], + "centroid": [ + 114.31602, + 35.721499 + ], + "childrenNum": 5, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 5, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.995988, + 35.704792 + ], + [ + 114.019769, + 35.695621 + ], + [ + 114.026815, + 35.683766 + ], + [ + 114.039838, + 35.681522 + ], + [ + 114.050218, + 35.675667 + ], + [ + 114.059026, + 35.657366 + ], + [ + 114.064311, + 35.637793 + ], + [ + 114.058523, + 35.62671 + ], + [ + 114.060284, + 35.611377 + ], + [ + 114.056195, + 35.594528 + ], + [ + 114.072804, + 35.579629 + ], + [ + 114.080102, + 35.567316 + ], + [ + 114.104889, + 35.554269 + ], + [ + 114.120114, + 35.551142 + ], + [ + 114.139176, + 35.538336 + ], + [ + 114.17145, + 35.523965 + ], + [ + 114.19196, + 35.521862 + ], + [ + 114.202214, + 35.524845 + ], + [ + 114.215615, + 35.51756 + ], + [ + 114.224863, + 35.516533 + ], + [ + 114.259842, + 35.504945 + ], + [ + 114.276325, + 35.501277 + ], + [ + 114.289914, + 35.501815 + ], + [ + 114.283686, + 35.492181 + ], + [ + 114.275822, + 35.490176 + ], + [ + 114.27255, + 35.476187 + ], + [ + 114.275444, + 35.465376 + ], + [ + 114.29803, + 35.458722 + ], + [ + 114.312374, + 35.446978 + ], + [ + 114.324012, + 35.444531 + ], + [ + 114.339426, + 35.450648 + ], + [ + 114.343704, + 35.462147 + ], + [ + 114.360439, + 35.4688 + ], + [ + 114.370001, + 35.461755 + ], + [ + 114.382018, + 35.46655 + ], + [ + 114.38466, + 35.475355 + ], + [ + 114.39504, + 35.478192 + ], + [ + 114.409699, + 35.469191 + ], + [ + 114.419073, + 35.474181 + ], + [ + 114.420394, + 35.483769 + ], + [ + 114.409259, + 35.489149 + ], + [ + 114.39504, + 35.508857 + ], + [ + 114.402275, + 35.526018 + ], + [ + 114.416871, + 35.533839 + ], + [ + 114.426182, + 35.54425 + ], + [ + 114.455499, + 35.557641 + ], + [ + 114.476071, + 35.565215 + ], + [ + 114.486137, + 35.573033 + ], + [ + 114.482677, + 35.584416 + ], + [ + 114.497587, + 35.584123 + ], + [ + 114.500167, + 35.593404 + ], + [ + 114.495008, + 35.600047 + ], + [ + 114.502558, + 35.609277 + ], + [ + 114.54345, + 35.602635 + ], + [ + 114.549301, + 35.614796 + ], + [ + 114.558361, + 35.613477 + ], + [ + 114.576857, + 35.616798 + ], + [ + 114.591704, + 35.629054 + ], + [ + 114.615611, + 35.636572 + ], + [ + 114.618694, + 35.647458 + ], + [ + 114.645243, + 35.654828 + ], + [ + 114.660719, + 35.651119 + ], + [ + 114.672924, + 35.65395 + ], + [ + 114.677454, + 35.671031 + ], + [ + 114.687897, + 35.684157 + ], + [ + 114.705638, + 35.689523 + ], + [ + 114.707903, + 35.694304 + ], + [ + 114.727029, + 35.697865 + ], + [ + 114.735648, + 35.708645 + ], + [ + 114.751439, + 35.737661 + ], + [ + 114.753389, + 35.753018 + ], + [ + 114.751439, + 35.763352 + ], + [ + 114.719857, + 35.778363 + ], + [ + 114.709224, + 35.787427 + ], + [ + 114.695572, + 35.78733 + ], + [ + 114.675252, + 35.782067 + ], + [ + 114.658706, + 35.791471 + ], + [ + 114.636561, + 35.794054 + ], + [ + 114.613849, + 35.808085 + ], + [ + 114.611647, + 35.82221 + ], + [ + 114.597618, + 35.825181 + ], + [ + 114.587552, + 35.840083 + ], + [ + 114.57044, + 35.835993 + ], + [ + 114.566476, + 35.843735 + ], + [ + 114.55295, + 35.828201 + ], + [ + 114.509478, + 35.836723 + ], + [ + 114.478273, + 35.834824 + ], + [ + 114.47085, + 35.827471 + ], + [ + 114.451347, + 35.828737 + ], + [ + 114.445811, + 35.819191 + ], + [ + 114.43845, + 35.817437 + ], + [ + 114.408441, + 35.820749 + ], + [ + 114.396802, + 35.816804 + ], + [ + 114.364717, + 35.818947 + ], + [ + 114.350373, + 35.816025 + ], + [ + 114.328353, + 35.802141 + ], + [ + 114.294632, + 35.794346 + ], + [ + 114.284315, + 35.783285 + ], + [ + 114.270411, + 35.76072 + ], + [ + 114.255249, + 35.767349 + ], + [ + 114.25569, + 35.774416 + ], + [ + 114.263365, + 35.774416 + ], + [ + 114.250845, + 35.793566 + ], + [ + 114.24317, + 35.793079 + ], + [ + 114.241786, + 35.806526 + ], + [ + 114.237005, + 35.809156 + ], + [ + 114.229204, + 35.841057 + ], + [ + 114.234425, + 35.855956 + ], + [ + 114.243044, + 35.863259 + ], + [ + 114.244303, + 35.871875 + ], + [ + 114.250908, + 35.876791 + ], + [ + 114.274626, + 35.882242 + ], + [ + 114.280855, + 35.892315 + ], + [ + 114.270789, + 35.899858 + ], + [ + 114.277206, + 35.924475 + ], + [ + 114.290166, + 35.928853 + ], + [ + 114.295576, + 35.924621 + ], + [ + 114.303, + 35.930604 + ], + [ + 114.293626, + 35.938288 + ], + [ + 114.309291, + 35.952731 + ], + [ + 114.296897, + 35.957885 + ], + [ + 114.279974, + 35.947382 + ], + [ + 114.279974, + 35.972811 + ], + [ + 114.251412, + 35.971936 + ], + [ + 114.223604, + 35.981707 + ], + [ + 114.218005, + 35.997648 + ], + [ + 114.205045, + 35.988657 + ], + [ + 114.197559, + 35.990115 + ], + [ + 114.191771, + 35.981415 + ], + [ + 114.181768, + 35.982873 + ], + [ + 114.174847, + 35.988803 + ], + [ + 114.169877, + 36.000856 + ], + [ + 114.178245, + 36.013198 + ], + [ + 114.174847, + 36.031319 + ], + [ + 114.179251, + 36.039431 + ], + [ + 114.175225, + 36.052107 + ], + [ + 114.158931, + 36.047299 + ], + [ + 114.135716, + 36.031562 + ], + [ + 114.121687, + 36.027044 + ], + [ + 114.111306, + 36.017085 + ], + [ + 114.103505, + 35.995267 + ], + [ + 114.108035, + 35.981852 + ], + [ + 114.094571, + 35.981075 + ], + [ + 114.084002, + 35.974415 + ], + [ + 114.073055, + 35.974512 + ], + [ + 114.065506, + 35.964109 + ], + [ + 114.044619, + 35.972276 + ], + [ + 114.030464, + 35.97179 + ], + [ + 114.028828, + 35.950494 + ], + [ + 114.038768, + 35.944319 + ], + [ + 114.040467, + 35.935662 + ], + [ + 114.052735, + 35.93109 + ], + [ + 114.081611, + 35.915086 + ], + [ + 114.07488, + 35.904383 + ], + [ + 114.075131, + 35.880928 + ], + [ + 114.070287, + 35.873189 + ], + [ + 114.056698, + 35.870268 + ], + [ + 114.038642, + 35.859461 + ], + [ + 114.019957, + 35.858634 + ], + [ + 114.013981, + 35.852548 + ], + [ + 114.014987, + 35.845001 + ], + [ + 114.025619, + 35.829419 + ], + [ + 114.035937, + 35.824548 + ], + [ + 114.035685, + 35.818411 + ], + [ + 114.022537, + 35.804285 + ], + [ + 114.025179, + 35.797074 + ], + [ + 114.037132, + 35.80331 + ], + [ + 114.051414, + 35.797513 + ], + [ + 114.069155, + 35.805259 + ], + [ + 114.078151, + 35.803018 + ], + [ + 114.071357, + 35.779679 + ], + [ + 114.066575, + 35.775391 + ], + [ + 114.067267, + 35.759112 + ], + [ + 114.055377, + 35.749216 + ], + [ + 114.042983, + 35.748095 + ], + [ + 114.032854, + 35.737028 + ], + [ + 114.017567, + 35.72591 + ], + [ + 114.002468, + 35.724788 + ], + [ + 113.998316, + 35.719814 + ], + [ + 113.995988, + 35.704792 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410700, + "name": "鏂颁埂甯�", + "center": [ + 113.883991, + 35.302616 + ], + "centroid": [ + 114.095247, + 35.263966 + ], + "childrenNum": 12, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 6, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 114.951248, + 35.380791 + ], + [ + 114.898087, + 35.390781 + ], + [ + 114.879339, + 35.387452 + ], + [ + 114.856942, + 35.387794 + ], + [ + 114.809632, + 35.354242 + ], + [ + 114.808877, + 35.346942 + ], + [ + 114.783964, + 35.343023 + ], + [ + 114.76163, + 35.345228 + ], + [ + 114.754521, + 35.341308 + ], + [ + 114.73722, + 35.344689 + ], + [ + 114.718598, + 35.343611 + ], + [ + 114.697397, + 35.337486 + ], + [ + 114.701675, + 35.329008 + ], + [ + 114.698341, + 35.306756 + ], + [ + 114.688715, + 35.295138 + ], + [ + 114.679907, + 35.291166 + ], + [ + 114.663173, + 35.291559 + ], + [ + 114.642915, + 35.297148 + ], + [ + 114.627313, + 35.298275 + ], + [ + 114.607495, + 35.292686 + ], + [ + 114.5968, + 35.286116 + ], + [ + 114.562198, + 35.276064 + ], + [ + 114.549364, + 35.261891 + ], + [ + 114.541437, + 35.242809 + ], + [ + 114.527093, + 35.235646 + ], + [ + 114.50413, + 35.228286 + ], + [ + 114.494756, + 35.220141 + ], + [ + 114.487836, + 35.206645 + ], + [ + 114.465376, + 35.216706 + ], + [ + 114.4499, + 35.214448 + ], + [ + 114.442602, + 35.205958 + ], + [ + 114.431781, + 35.208755 + ], + [ + 114.431404, + 35.222055 + ], + [ + 114.415298, + 35.228188 + ], + [ + 114.399696, + 35.225097 + ], + [ + 114.394348, + 35.219797 + ], + [ + 114.392146, + 35.226912 + ], + [ + 114.407497, + 35.236627 + ], + [ + 114.396299, + 35.241828 + ], + [ + 114.391266, + 35.258114 + ], + [ + 114.395481, + 35.26449 + ], + [ + 114.407497, + 35.269738 + ], + [ + 114.395732, + 35.293078 + ], + [ + 114.408189, + 35.29249 + ], + [ + 114.416493, + 35.302785 + ], + [ + 114.412782, + 35.313521 + ], + [ + 114.403659, + 35.316805 + ], + [ + 114.404226, + 35.326313 + ], + [ + 114.423414, + 35.324842 + ], + [ + 114.429076, + 35.342876 + ], + [ + 114.411083, + 35.358064 + ], + [ + 114.413474, + 35.370163 + ], + [ + 114.423666, + 35.380155 + ], + [ + 114.415172, + 35.413255 + ], + [ + 114.407686, + 35.418004 + ], + [ + 114.405043, + 35.426325 + ], + [ + 114.412027, + 35.43582 + ], + [ + 114.429139, + 35.449523 + ], + [ + 114.428573, + 35.468947 + ], + [ + 114.419073, + 35.474181 + ], + [ + 114.409699, + 35.469191 + ], + [ + 114.39504, + 35.478192 + ], + [ + 114.38466, + 35.475355 + ], + [ + 114.382018, + 35.46655 + ], + [ + 114.370001, + 35.461755 + ], + [ + 114.360439, + 35.4688 + ], + [ + 114.343704, + 35.462147 + ], + [ + 114.339426, + 35.450648 + ], + [ + 114.324012, + 35.444531 + ], + [ + 114.312374, + 35.446978 + ], + [ + 114.29803, + 35.458722 + ], + [ + 114.275444, + 35.465376 + ], + [ + 114.27255, + 35.476187 + ], + [ + 114.275822, + 35.490176 + ], + [ + 114.283686, + 35.492181 + ], + [ + 114.289914, + 35.501815 + ], + [ + 114.276325, + 35.501277 + ], + [ + 114.259842, + 35.504945 + ], + [ + 114.224863, + 35.516533 + ], + [ + 114.215615, + 35.51756 + ], + [ + 114.202214, + 35.524845 + ], + [ + 114.19196, + 35.521862 + ], + [ + 114.17145, + 35.523965 + ], + [ + 114.139176, + 35.538336 + ], + [ + 114.120114, + 35.551142 + ], + [ + 114.104889, + 35.554269 + ], + [ + 114.080102, + 35.567316 + ], + [ + 114.072804, + 35.579629 + ], + [ + 114.056195, + 35.594528 + ], + [ + 114.060284, + 35.611377 + ], + [ + 114.058523, + 35.62671 + ], + [ + 114.064311, + 35.637793 + ], + [ + 114.059026, + 35.657366 + ], + [ + 114.050218, + 35.675667 + ], + [ + 114.039838, + 35.681522 + ], + [ + 114.026815, + 35.683766 + ], + [ + 114.019769, + 35.695621 + ], + [ + 113.995988, + 35.704792 + ], + [ + 113.98523, + 35.700743 + ], + [ + 113.969565, + 35.689572 + ], + [ + 113.956227, + 35.691426 + ], + [ + 113.949055, + 35.70089 + ], + [ + 113.931691, + 35.703963 + ], + [ + 113.927476, + 35.686011 + ], + [ + 113.923072, + 35.681815 + ], + [ + 113.901619, + 35.677423 + ], + [ + 113.886332, + 35.684401 + ], + [ + 113.868402, + 35.680741 + ], + [ + 113.859216, + 35.682351 + ], + [ + 113.843677, + 35.677814 + ], + [ + 113.811529, + 35.676838 + ], + [ + 113.806244, + 35.672983 + ], + [ + 113.785546, + 35.674447 + ], + [ + 113.777556, + 35.684644 + ], + [ + 113.794228, + 35.695329 + ], + [ + 113.799953, + 35.713572 + ], + [ + 113.801652, + 35.733517 + ], + [ + 113.808006, + 35.742488 + ], + [ + 113.800205, + 35.740782 + ], + [ + 113.776613, + 35.759404 + ], + [ + 113.778563, + 35.763206 + ], + [ + 113.759752, + 35.767398 + ], + [ + 113.757865, + 35.782798 + ], + [ + 113.751888, + 35.788304 + ], + [ + 113.756229, + 35.793713 + ], + [ + 113.742892, + 35.819093 + ], + [ + 113.731819, + 35.818752 + ], + [ + 113.726786, + 35.823185 + ], + [ + 113.711813, + 35.81807 + ], + [ + 113.705962, + 35.826594 + ], + [ + 113.709108, + 35.833655 + ], + [ + 113.700552, + 35.837308 + ], + [ + 113.661043, + 35.837259 + ], + [ + 113.650285, + 35.826594 + ], + [ + 113.641225, + 35.822503 + ], + [ + 113.623799, + 35.831513 + ], + [ + 113.606057, + 35.82372 + ], + [ + 113.585296, + 35.825766 + ], + [ + 113.582906, + 35.818314 + ], + [ + 113.588945, + 35.813443 + ], + [ + 113.586177, + 35.806136 + ], + [ + 113.604988, + 35.800095 + ], + [ + 113.583472, + 35.794249 + ], + [ + 113.583157, + 35.786794 + ], + [ + 113.592972, + 35.789669 + ], + [ + 113.599137, + 35.775098 + ], + [ + 113.595929, + 35.759063 + ], + [ + 113.586806, + 35.744048 + ], + [ + 113.591147, + 35.727958 + ], + [ + 113.601968, + 35.706402 + ], + [ + 113.59316, + 35.691426 + ], + [ + 113.614928, + 35.682986 + ], + [ + 113.623484, + 35.671665 + ], + [ + 113.61908, + 35.667225 + ], + [ + 113.624994, + 35.652388 + ], + [ + 113.624868, + 35.632032 + ], + [ + 113.591965, + 35.631543 + ], + [ + 113.578565, + 35.633545 + ], + [ + 113.572966, + 35.646775 + ], + [ + 113.565416, + 35.64492 + ], + [ + 113.560069, + 35.660441 + ], + [ + 113.547989, + 35.657562 + ], + [ + 113.547423, + 35.648629 + ], + [ + 113.553337, + 35.63872 + ], + [ + 113.556671, + 35.619776 + ], + [ + 113.547172, + 35.616847 + ], + [ + 113.542453, + 35.596774 + ], + [ + 113.533016, + 35.594039 + ], + [ + 113.529556, + 35.587787 + ], + [ + 113.506719, + 35.565997 + ], + [ + 113.506593, + 35.5486 + ], + [ + 113.49854, + 35.532373 + ], + [ + 113.508669, + 35.523427 + ], + [ + 113.506593, + 35.516484 + ], + [ + 113.491997, + 35.516484 + ], + [ + 113.485392, + 35.520738 + ], + [ + 113.462555, + 35.515555 + ], + [ + 113.440535, + 35.507879 + ], + [ + 113.416629, + 35.516191 + ], + [ + 113.401404, + 35.50695 + ], + [ + 113.391778, + 35.506852 + ], + [ + 113.383159, + 35.495067 + ], + [ + 113.390772, + 35.485774 + ], + [ + 113.392093, + 35.472225 + ], + [ + 113.404046, + 35.46151 + ], + [ + 113.427638, + 35.448887 + ], + [ + 113.447707, + 35.432443 + ], + [ + 113.458843, + 35.413304 + ], + [ + 113.462366, + 35.396853 + ], + [ + 113.482246, + 35.369967 + ], + [ + 113.476207, + 35.363942 + ], + [ + 113.465952, + 35.363844 + ], + [ + 113.469978, + 35.353214 + ], + [ + 113.466581, + 35.349686 + ], + [ + 113.480044, + 35.33974 + ], + [ + 113.478157, + 35.327195 + ], + [ + 113.485014, + 35.316265 + ], + [ + 113.486461, + 35.294108 + ], + [ + 113.511878, + 35.293961 + ], + [ + 113.518798, + 35.288813 + ], + [ + 113.523265, + 35.263656 + ], + [ + 113.538804, + 35.243201 + ], + [ + 113.54044, + 35.228384 + ], + [ + 113.528172, + 35.220141 + ], + [ + 113.52144, + 35.211504 + ], + [ + 113.521063, + 35.192901 + ], + [ + 113.532828, + 35.164572 + ], + [ + 113.534967, + 35.151803 + ], + [ + 113.542642, + 35.144632 + ], + [ + 113.565102, + 35.137461 + ], + [ + 113.564598, + 35.127685 + ], + [ + 113.593852, + 35.131173 + ], + [ + 113.60027, + 35.120709 + ], + [ + 113.607064, + 35.099284 + ], + [ + 113.620464, + 35.068513 + ], + [ + 113.645503, + 35.038075 + ], + [ + 113.645503, + 35.019236 + ], + [ + 113.629964, + 35.016777 + ], + [ + 113.634431, + 35.008167 + ], + [ + 113.644371, + 35.004379 + ], + [ + 113.634494, + 34.997687 + ], + [ + 113.617696, + 34.992175 + ], + [ + 113.60763, + 34.982382 + ], + [ + 113.595299, + 34.961857 + ], + [ + 113.592091, + 34.933743 + ], + [ + 113.631348, + 34.929311 + ], + [ + 113.650348, + 34.928769 + ], + [ + 113.665069, + 34.918525 + ], + [ + 113.670731, + 34.910299 + ], + [ + 113.684824, + 34.906358 + ], + [ + 113.716846, + 34.913402 + ], + [ + 113.725528, + 34.917392 + ], + [ + 113.749057, + 34.919017 + ], + [ + 113.766106, + 34.91488 + ], + [ + 113.777116, + 34.905028 + ], + [ + 113.78649, + 34.890445 + ], + [ + 113.800456, + 34.87995 + ], + [ + 113.826062, + 34.877683 + ], + [ + 113.870163, + 34.885666 + ], + [ + 113.905331, + 34.901333 + ], + [ + 113.953585, + 34.898082 + ], + [ + 113.973654, + 34.910447 + ], + [ + 113.985293, + 34.928276 + ], + [ + 114.018385, + 34.958608 + ], + [ + 114.028451, + 34.959346 + ], + [ + 114.051225, + 34.944527 + ], + [ + 114.080542, + 34.944527 + ], + [ + 114.101869, + 34.954768 + ], + [ + 114.120491, + 34.956638 + ], + [ + 114.160566, + 34.933496 + ], + [ + 114.172834, + 34.931871 + ], + [ + 114.200704, + 34.939504 + ], + [ + 114.208505, + 34.926602 + ], + [ + 114.22071, + 34.919066 + ], + [ + 114.226624, + 34.913156 + ], + [ + 114.243988, + 34.905126 + ], + [ + 114.284441, + 34.90823 + ], + [ + 114.340118, + 34.907146 + ], + [ + 114.350499, + 34.908082 + ], + [ + 114.367233, + 34.918968 + ], + [ + 114.383024, + 34.936894 + ], + [ + 114.40064, + 34.939504 + ], + [ + 114.417815, + 34.930788 + ], + [ + 114.442728, + 34.914486 + ], + [ + 114.513378, + 34.895273 + ], + [ + 114.540682, + 34.899264 + ], + [ + 114.557165, + 34.905521 + ], + [ + 114.586608, + 34.912466 + ], + [ + 114.633981, + 34.905225 + ], + [ + 114.660279, + 34.898722 + ], + [ + 114.679593, + 34.909018 + ], + [ + 114.695572, + 34.894387 + ], + [ + 114.709161, + 34.89212 + ], + [ + 114.724323, + 34.885222 + ], + [ + 114.733886, + 34.888474 + ], + [ + 114.76119, + 34.89148 + ], + [ + 114.774779, + 34.901382 + ], + [ + 114.778994, + 34.916751 + ], + [ + 114.768173, + 34.927882 + ], + [ + 114.74175, + 34.948712 + ], + [ + 114.741435, + 34.960675 + ], + [ + 114.756597, + 34.97559 + ], + [ + 114.765908, + 34.977707 + ], + [ + 114.800384, + 35.006691 + ], + [ + 114.815861, + 35.014022 + ], + [ + 114.824668, + 35.0123 + ], + [ + 114.838635, + 35.018154 + ], + [ + 114.852664, + 35.029124 + ], + [ + 114.850903, + 35.041911 + ], + [ + 114.833979, + 35.042157 + ], + [ + 114.819258, + 35.051796 + ], + [ + 114.83184, + 35.074167 + ], + [ + 114.861158, + 35.082966 + ], + [ + 114.876256, + 35.091126 + ], + [ + 114.882925, + 35.098743 + ], + [ + 114.883554, + 35.109653 + ], + [ + 114.872545, + 35.126015 + ], + [ + 114.860654, + 35.137412 + ], + [ + 114.841718, + 35.151165 + ], + [ + 114.841026, + 35.159219 + ], + [ + 114.850274, + 35.172625 + ], + [ + 114.861661, + 35.182395 + ], + [ + 114.876571, + 35.189023 + ], + [ + 114.909348, + 35.194521 + ], + [ + 114.928285, + 35.194766 + ], + [ + 114.9325, + 35.198644 + ], + [ + 114.929732, + 35.248205 + ], + [ + 114.954645, + 35.255465 + ], + [ + 114.957728, + 35.261155 + ], + [ + 114.975595, + 35.261547 + ], + [ + 114.975784, + 35.270277 + ], + [ + 114.963579, + 35.273759 + ], + [ + 114.98025, + 35.294696 + ], + [ + 115.003151, + 35.316363 + ], + [ + 115.014538, + 35.318128 + ], + [ + 115.017243, + 35.337437 + ], + [ + 114.976979, + 35.352381 + ], + [ + 114.968171, + 35.354389 + ], + [ + 114.960873, + 35.369722 + ], + [ + 114.951248, + 35.380791 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410800, + "name": "鐒︿綔甯�", + "center": [ + 113.238266, + 35.23904 + ], + "centroid": [ + 113.137719, + 35.114644 + ], + "childrenNum": 10, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 7, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 112.827266, + 34.819218 + ], + [ + 112.838653, + 34.812116 + ], + [ + 112.853501, + 34.810736 + ], + [ + 112.866461, + 34.829524 + ], + [ + 112.873192, + 34.832827 + ], + [ + 112.879106, + 34.849688 + ], + [ + 112.884516, + 34.853089 + ], + [ + 112.902321, + 34.852301 + ], + [ + 112.914148, + 34.84747 + ], + [ + 112.938181, + 34.831595 + ], + [ + 112.943025, + 34.831102 + ], + [ + 112.976117, + 34.847765 + ], + [ + 112.989077, + 34.856343 + ], + [ + 112.992851, + 34.863539 + ], + [ + 113.004364, + 34.864081 + ], + [ + 113.025063, + 34.854913 + ], + [ + 113.039595, + 34.841948 + ], + [ + 113.06023, + 34.83756 + ], + [ + 113.107666, + 34.844709 + ], + [ + 113.119431, + 34.853977 + ], + [ + 113.14793, + 34.856096 + ], + [ + 113.139815, + 34.884631 + ], + [ + 113.179512, + 34.893697 + ], + [ + 113.197631, + 34.900299 + ], + [ + 113.227703, + 34.908427 + ], + [ + 113.236951, + 34.925174 + ], + [ + 113.239342, + 34.939504 + ], + [ + 113.243934, + 34.946201 + ], + [ + 113.260543, + 34.953586 + ], + [ + 113.28986, + 34.952601 + ], + [ + 113.315277, + 34.942212 + ], + [ + 113.333018, + 34.944871 + ], + [ + 113.343462, + 34.950533 + ], + [ + 113.362587, + 34.970323 + ], + [ + 113.37561, + 34.98002 + ], + [ + 113.407821, + 34.989518 + ], + [ + 113.427198, + 34.983563 + ], + [ + 113.429463, + 34.964761 + ], + [ + 113.449658, + 34.960232 + ], + [ + 113.477339, + 34.957278 + ], + [ + 113.495835, + 34.959937 + ], + [ + 113.515086, + 34.965992 + ], + [ + 113.543271, + 34.96801 + ], + [ + 113.552582, + 34.965155 + ], + [ + 113.57479, + 34.950583 + ], + [ + 113.592091, + 34.933743 + ], + [ + 113.595299, + 34.961857 + ], + [ + 113.60763, + 34.982382 + ], + [ + 113.617696, + 34.992175 + ], + [ + 113.634494, + 34.997687 + ], + [ + 113.644371, + 35.004379 + ], + [ + 113.634431, + 35.008167 + ], + [ + 113.629964, + 35.016777 + ], + [ + 113.645503, + 35.019236 + ], + [ + 113.645503, + 35.038075 + ], + [ + 113.620464, + 35.068513 + ], + [ + 113.607064, + 35.099284 + ], + [ + 113.60027, + 35.120709 + ], + [ + 113.593852, + 35.131173 + ], + [ + 113.564598, + 35.127685 + ], + [ + 113.565102, + 35.137461 + ], + [ + 113.542642, + 35.144632 + ], + [ + 113.534967, + 35.151803 + ], + [ + 113.532828, + 35.164572 + ], + [ + 113.521063, + 35.192901 + ], + [ + 113.52144, + 35.211504 + ], + [ + 113.528172, + 35.220141 + ], + [ + 113.54044, + 35.228384 + ], + [ + 113.538804, + 35.243201 + ], + [ + 113.523265, + 35.263656 + ], + [ + 113.518798, + 35.288813 + ], + [ + 113.511878, + 35.293961 + ], + [ + 113.486461, + 35.294108 + ], + [ + 113.485014, + 35.316265 + ], + [ + 113.478157, + 35.327195 + ], + [ + 113.480044, + 35.33974 + ], + [ + 113.466581, + 35.349686 + ], + [ + 113.469978, + 35.353214 + ], + [ + 113.465952, + 35.363844 + ], + [ + 113.476207, + 35.363942 + ], + [ + 113.482246, + 35.369967 + ], + [ + 113.462366, + 35.396853 + ], + [ + 113.458843, + 35.413304 + ], + [ + 113.447707, + 35.432443 + ], + [ + 113.427638, + 35.448887 + ], + [ + 113.404046, + 35.46151 + ], + [ + 113.392093, + 35.472225 + ], + [ + 113.390772, + 35.485774 + ], + [ + 113.383159, + 35.495067 + ], + [ + 113.370766, + 35.4801 + ], + [ + 113.357743, + 35.479415 + ], + [ + 113.34818, + 35.46836 + ], + [ + 113.325909, + 35.469289 + ], + [ + 113.31232, + 35.481274 + ], + [ + 113.295522, + 35.47154 + ], + [ + 113.294705, + 35.467284 + ], + [ + 113.309426, + 35.466158 + ], + [ + 113.322197, + 35.461559 + ], + [ + 113.323959, + 35.453339 + ], + [ + 113.315151, + 35.451871 + ], + [ + 113.306406, + 35.460777 + ], + [ + 113.299486, + 35.450208 + ], + [ + 113.297347, + 35.438512 + ], + [ + 113.304393, + 35.42701 + ], + [ + 113.27841, + 35.435135 + ], + [ + 113.265387, + 35.434597 + ], + [ + 113.262116, + 35.440763 + ], + [ + 113.253497, + 35.440274 + ], + [ + 113.244815, + 35.448446 + ], + [ + 113.230031, + 35.453242 + ], + [ + 113.208515, + 35.447272 + ], + [ + 113.190019, + 35.449082 + ], + [ + 113.190962, + 35.434107 + ], + [ + 113.184482, + 35.424759 + ], + [ + 113.188572, + 35.415654 + ], + [ + 113.185237, + 35.409045 + ], + [ + 113.175737, + 35.414528 + ], + [ + 113.164224, + 35.408555 + ], + [ + 113.167056, + 35.400232 + ], + [ + 113.177247, + 35.397833 + ], + [ + 113.170138, + 35.386717 + ], + [ + 113.154662, + 35.380889 + ], + [ + 113.154159, + 35.36933 + ], + [ + 113.148748, + 35.370163 + ], + [ + 113.148874, + 35.351205 + ], + [ + 113.136669, + 35.347334 + ], + [ + 113.13799, + 35.336261 + ], + [ + 113.12654, + 35.332242 + ], + [ + 113.107603, + 35.340818 + ], + [ + 113.096216, + 35.337388 + ], + [ + 113.084074, + 35.340524 + ], + [ + 113.067151, + 35.353557 + ], + [ + 113.060608, + 35.352283 + ], + [ + 113.039658, + 35.360219 + ], + [ + 113.020218, + 35.356006 + ], + [ + 112.998199, + 35.362472 + ], + [ + 112.990838, + 35.355712 + ], + [ + 112.994047, + 35.345424 + ], + [ + 112.985302, + 35.338123 + ], + [ + 112.986309, + 35.316608 + ], + [ + 112.99153, + 35.302344 + ], + [ + 112.988951, + 35.28999 + ], + [ + 112.982785, + 35.287244 + ], + [ + 112.964667, + 35.293127 + ], + [ + 112.948184, + 35.285969 + ], + [ + 112.936042, + 35.2844 + ], + [ + 112.936671, + 35.271895 + ], + [ + 112.929687, + 35.256888 + ], + [ + 112.907102, + 35.245801 + ], + [ + 112.893639, + 35.248647 + ], + [ + 112.884705, + 35.244232 + ], + [ + 112.868096, + 35.243888 + ], + [ + 112.857087, + 35.247371 + ], + [ + 112.855136, + 35.253307 + ], + [ + 112.822233, + 35.258114 + ], + [ + 112.798264, + 35.238688 + ], + [ + 112.784423, + 35.234567 + ], + [ + 112.784926, + 35.222938 + ], + [ + 112.767248, + 35.204093 + ], + [ + 112.758, + 35.204436 + ], + [ + 112.76687, + 35.182985 + ], + [ + 112.761963, + 35.158041 + ], + [ + 112.766304, + 35.107196 + ], + [ + 112.754288, + 35.098891 + ], + [ + 112.753219, + 35.08508 + ], + [ + 112.743341, + 35.06458 + ], + [ + 112.736043, + 35.060008 + ], + [ + 112.735289, + 35.043338 + ], + [ + 112.72711, + 35.035026 + ], + [ + 112.698988, + 35.023221 + ], + [ + 112.684581, + 35.012497 + ], + [ + 112.675962, + 34.993504 + ], + [ + 112.666462, + 34.9875 + ], + [ + 112.653062, + 34.988681 + ], + [ + 112.644695, + 34.978888 + ], + [ + 112.624752, + 34.977903 + ], + [ + 112.614182, + 34.98002 + ], + [ + 112.596001, + 34.971013 + ], + [ + 112.579392, + 34.971751 + ], + [ + 112.5692, + 34.958608 + ], + [ + 112.571654, + 34.948761 + ], + [ + 112.578134, + 34.944083 + ], + [ + 112.579329, + 34.933398 + ], + [ + 112.585369, + 34.926503 + ], + [ + 112.618209, + 34.920298 + ], + [ + 112.638404, + 34.919756 + ], + [ + 112.638152, + 34.896998 + ], + [ + 112.642115, + 34.895717 + ], + [ + 112.636328, + 34.88266 + ], + [ + 112.638215, + 34.854174 + ], + [ + 112.656648, + 34.859645 + ], + [ + 112.676088, + 34.853188 + ], + [ + 112.696723, + 34.840617 + ], + [ + 112.72214, + 34.828833 + ], + [ + 112.753281, + 34.828587 + ], + [ + 112.773288, + 34.835884 + ], + [ + 112.78782, + 34.83761 + ], + [ + 112.813363, + 34.832877 + ], + [ + 112.827266, + 34.819218 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 410900, + "name": "婵槼甯�", + "center": [ + 115.041299, + 35.768234 + ], + "centroid": [ + 115.287416, + 35.809288 + ], + "childrenNum": 6, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 8, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 115.017243, + 35.337437 + ], + [ + 115.025359, + 35.346354 + ], + [ + 115.03511, + 35.368302 + ], + [ + 115.043226, + 35.376971 + ], + [ + 115.057758, + 35.378489 + ], + [ + 115.075437, + 35.375159 + ], + [ + 115.088648, + 35.392985 + ], + [ + 115.084811, + 35.410073 + ], + [ + 115.091605, + 35.416045 + ], + [ + 115.105886, + 35.403953 + ], + [ + 115.11482, + 35.4041 + ], + [ + 115.118343, + 35.416388 + ], + [ + 115.11784, + 35.400134 + ], + [ + 115.126584, + 35.408751 + ], + [ + 115.126459, + 35.418053 + ], + [ + 115.136902, + 35.421528 + ], + [ + 115.167666, + 35.426129 + ], + [ + 115.189497, + 35.42515 + ], + [ + 115.197927, + 35.420696 + ], + [ + 115.209817, + 35.423094 + ], + [ + 115.237373, + 35.423094 + ], + [ + 115.257505, + 35.435576 + ], + [ + 115.272604, + 35.448299 + ], + [ + 115.270842, + 35.456813 + ], + [ + 115.286696, + 35.464495 + ], + [ + 115.307143, + 35.480002 + ], + [ + 115.339102, + 35.490665 + ], + [ + 115.355774, + 35.490127 + ], + [ + 115.357976, + 35.506559 + ], + [ + 115.350301, + 35.52944 + ], + [ + 115.353509, + 35.540585 + ], + [ + 115.360492, + 35.543273 + ], + [ + 115.34596, + 35.546987 + ], + [ + 115.345079, + 35.553634 + ], + [ + 115.357976, + 35.554709 + ], + [ + 115.359234, + 35.56546 + ], + [ + 115.369489, + 35.559743 + ], + [ + 115.370747, + 35.57103 + ], + [ + 115.383267, + 35.56888 + ], + [ + 115.38377, + 35.577674 + ], + [ + 115.389747, + 35.577332 + ], + [ + 115.394465, + 35.586907 + ], + [ + 115.411892, + 35.603612 + ], + [ + 115.416233, + 35.624025 + ], + [ + 115.439384, + 35.643455 + ], + [ + 115.45247, + 35.660734 + ], + [ + 115.461467, + 35.680839 + ], + [ + 115.485939, + 35.710157 + ], + [ + 115.511545, + 35.727129 + ], + [ + 115.524127, + 35.726349 + ], + [ + 115.533249, + 35.734151 + ], + [ + 115.552815, + 35.730347 + ], + [ + 115.562504, + 35.738637 + ], + [ + 115.583076, + 35.730591 + ], + [ + 115.588927, + 35.738539 + ], + [ + 115.619502, + 35.739222 + ], + [ + 115.665114, + 35.751069 + ], + [ + 115.69355, + 35.754091 + ], + [ + 115.698268, + 35.768421 + ], + [ + 115.696255, + 35.788889 + ], + [ + 115.704434, + 35.788938 + ], + [ + 115.706384, + 35.8056 + ], + [ + 115.717394, + 35.802726 + ], + [ + 115.720288, + 35.817096 + ], + [ + 115.7279, + 35.815635 + ], + [ + 115.73482, + 35.832925 + ], + [ + 115.753128, + 35.832925 + ], + [ + 115.752876, + 35.838379 + ], + [ + 115.76376, + 35.838379 + ], + [ + 115.773386, + 35.854155 + ], + [ + 115.816795, + 35.844271 + ], + [ + 115.821325, + 35.852694 + ], + [ + 115.841331, + 35.850016 + ], + [ + 115.840891, + 35.857173 + ], + [ + 115.863099, + 35.855518 + ], + [ + 115.865489, + 35.868613 + ], + [ + 115.872598, + 35.872799 + ], + [ + 115.871403, + 35.858342 + ], + [ + 115.875115, + 35.859218 + ], + [ + 115.876058, + 35.875038 + ], + [ + 115.882853, + 35.879857 + ], + [ + 115.88323, + 35.895381 + ], + [ + 115.889081, + 35.897522 + ], + [ + 115.88474, + 35.909102 + ], + [ + 115.87241, + 35.909346 + ], + [ + 115.875115, + 35.920194 + ], + [ + 115.907829, + 35.926858 + ], + [ + 115.909968, + 35.935759 + ], + [ + 115.906319, + 35.945388 + ], + [ + 115.911856, + 35.960268 + ], + [ + 115.957656, + 35.967998 + ], + [ + 115.985148, + 35.974123 + ], + [ + 116.008489, + 35.973103 + ], + [ + 116.038561, + 35.963428 + ], + [ + 116.04869, + 35.970283 + ], + [ + 116.05259, + 35.999155 + ], + [ + 116.062845, + 36.02889 + ], + [ + 116.073666, + 36.026121 + ], + [ + 116.079517, + 36.042637 + ], + [ + 116.076057, + 36.056915 + ], + [ + 116.087129, + 36.071385 + ], + [ + 116.087758, + 36.080949 + ], + [ + 116.096881, + 36.092163 + ], + [ + 116.099334, + 36.112061 + ], + [ + 116.057435, + 36.104927 + ], + [ + 116.02881, + 36.072308 + ], + [ + 116.016416, + 36.061383 + ], + [ + 115.989804, + 36.045454 + ], + [ + 115.964073, + 36.041617 + ], + [ + 115.935888, + 36.031416 + ], + [ + 115.922928, + 36.021555 + ], + [ + 115.913806, + 36.020243 + ], + [ + 115.896002, + 36.026219 + ], + [ + 115.872221, + 36.016696 + ], + [ + 115.859701, + 36.003723 + ], + [ + 115.846238, + 36.004986 + ], + [ + 115.837493, + 36.011012 + ], + [ + 115.817298, + 36.012761 + ], + [ + 115.797481, + 36.006978 + ], + [ + 115.779866, + 35.99376 + ], + [ + 115.786723, + 35.991233 + ], + [ + 115.774518, + 35.981901 + ], + [ + 115.774707, + 35.974512 + ], + [ + 115.764326, + 35.970964 + ], + [ + 115.736016, + 35.966929 + ], + [ + 115.717897, + 35.971401 + ], + [ + 115.698709, + 35.966053 + ], + [ + 115.687007, + 35.955211 + ], + [ + 115.68405, + 35.944367 + ], + [ + 115.651776, + 35.928901 + ], + [ + 115.642402, + 35.920048 + ], + [ + 115.607297, + 35.925837 + ], + [ + 115.583768, + 35.921702 + ], + [ + 115.548223, + 35.898009 + ], + [ + 115.503429, + 35.888714 + ], + [ + 115.460082, + 35.867737 + ], + [ + 115.433848, + 35.839061 + ], + [ + 115.432841, + 35.83385 + ], + [ + 115.417931, + 35.824987 + ], + [ + 115.407614, + 35.808669 + ], + [ + 115.370936, + 35.78884 + ], + [ + 115.363512, + 35.779923 + ], + [ + 115.335013, + 35.796733 + ], + [ + 115.335705, + 35.81432 + ], + [ + 115.344072, + 35.83872 + ], + [ + 115.349608, + 35.860971 + ], + [ + 115.338158, + 35.864719 + ], + [ + 115.343632, + 35.872118 + ], + [ + 115.356906, + 35.87022 + ], + [ + 115.364267, + 35.894019 + ], + [ + 115.367413, + 35.92034 + ], + [ + 115.364141, + 35.929485 + ], + [ + 115.354138, + 35.93751 + ], + [ + 115.356529, + 35.954628 + ], + [ + 115.363135, + 35.972033 + ], + [ + 115.386286, + 35.974464 + ], + [ + 115.395975, + 35.991671 + ], + [ + 115.419693, + 36.004743 + ], + [ + 115.443096, + 36.008874 + ], + [ + 115.447752, + 36.012664 + ], + [ + 115.448884, + 36.047397 + ], + [ + 115.441586, + 36.05575 + ], + [ + 115.459579, + 36.063374 + ], + [ + 115.455112, + 36.071288 + ], + [ + 115.459768, + 36.080415 + ], + [ + 115.466374, + 36.079687 + ], + [ + 115.484241, + 36.125842 + ], + [ + 115.483549, + 36.148982 + ], + [ + 115.46996, + 36.152862 + ], + [ + 115.46392, + 36.17129 + ], + [ + 115.451275, + 36.169739 + ], + [ + 115.449639, + 36.150146 + ], + [ + 115.431332, + 36.149176 + ], + [ + 115.423656, + 36.140347 + ], + [ + 115.407802, + 36.139571 + ], + [ + 115.404594, + 36.155626 + ], + [ + 115.400127, + 36.14025 + ], + [ + 115.392641, + 36.129189 + ], + [ + 115.377919, + 36.12851 + ], + [ + 115.369237, + 36.102695 + ], + [ + 115.3598, + 36.095318 + ], + [ + 115.341367, + 36.0876 + ], + [ + 115.333251, + 36.090609 + ], + [ + 115.323248, + 36.086775 + ], + [ + 115.307961, + 36.090706 + ], + [ + 115.297517, + 36.104491 + ], + [ + 115.301166, + 36.130111 + ], + [ + 115.279335, + 36.137825 + ], + [ + 115.264111, + 36.158827 + ], + [ + 115.260399, + 36.171581 + ], + [ + 115.242091, + 36.191218 + ], + [ + 115.21334, + 36.203482 + ], + [ + 115.20296, + 36.204063 + ], + [ + 115.201765, + 36.212739 + ], + [ + 115.189245, + 36.19558 + ], + [ + 115.170686, + 36.190975 + ], + [ + 115.156845, + 36.194708 + ], + [ + 115.156657, + 36.201882 + ], + [ + 115.142879, + 36.209686 + ], + [ + 115.124949, + 36.209976 + ], + [ + 115.110416, + 36.19941 + ], + [ + 115.104565, + 36.172212 + ], + [ + 115.099469, + 36.171678 + ], + [ + 115.069523, + 36.179436 + ], + [ + 115.062728, + 36.178224 + ], + [ + 115.048447, + 36.162028 + ], + [ + 115.049391, + 36.147284 + ], + [ + 115.044987, + 36.130839 + ], + [ + 115.045931, + 36.112207 + ], + [ + 115.038381, + 36.106675 + ], + [ + 114.998432, + 36.069734 + ], + [ + 114.98931, + 36.065898 + ], + [ + 114.968675, + 36.070414 + ], + [ + 114.954582, + 36.067792 + ], + [ + 114.933381, + 36.054876 + ], + [ + 114.932123, + 36.050068 + ], + [ + 114.920798, + 36.048319 + ], + [ + 114.94244, + 36.03812 + ], + [ + 114.968926, + 36.032971 + ], + [ + 114.983962, + 36.02583 + ], + [ + 114.983396, + 36.019417 + ], + [ + 114.974211, + 36.012226 + ], + [ + 114.974274, + 35.999009 + ], + [ + 114.980376, + 36.003334 + ], + [ + 114.986164, + 35.991865 + ], + [ + 114.983333, + 35.982922 + ], + [ + 114.988366, + 35.964741 + ], + [ + 114.98025, + 35.949814 + ], + [ + 114.972324, + 35.923259 + ], + [ + 114.97786, + 35.904723 + ], + [ + 114.970814, + 35.890223 + ], + [ + 114.969996, + 35.881366 + ], + [ + 114.959112, + 35.862723 + ], + [ + 114.953009, + 35.85766 + ], + [ + 114.935646, + 35.853814 + ], + [ + 114.933003, + 35.84505 + ], + [ + 114.93401, + 35.828055 + ], + [ + 114.94546, + 35.82523 + ], + [ + 114.948669, + 35.819629 + ], + [ + 114.943573, + 35.799754 + ], + [ + 114.921365, + 35.780118 + ], + [ + 114.908405, + 35.765741 + ], + [ + 114.893746, + 35.764132 + ], + [ + 114.887832, + 35.753506 + ], + [ + 114.889594, + 35.738978 + ], + [ + 114.907776, + 35.722594 + ], + [ + 114.915514, + 35.706743 + ], + [ + 114.910544, + 35.700939 + ], + [ + 114.918408, + 35.687962 + ], + [ + 114.919226, + 35.664785 + ], + [ + 114.911047, + 35.660685 + ], + [ + 114.905888, + 35.649606 + ], + [ + 114.890034, + 35.646823 + ], + [ + 114.875502, + 35.628907 + ], + [ + 114.874432, + 35.623878 + ], + [ + 114.883051, + 35.616065 + ], + [ + 114.884813, + 35.599852 + ], + [ + 114.90853, + 35.585979 + ], + [ + 114.952884, + 35.581094 + ], + [ + 114.962006, + 35.571421 + ], + [ + 114.968423, + 35.537554 + ], + [ + 114.969492, + 35.518 + ], + [ + 114.964334, + 35.504749 + ], + [ + 114.953324, + 35.501815 + ], + [ + 114.940616, + 35.491448 + ], + [ + 114.93942, + 35.481225 + ], + [ + 114.947347, + 35.478144 + ], + [ + 114.970751, + 35.480785 + ], + [ + 114.967668, + 35.456716 + ], + [ + 114.96188, + 35.446146 + ], + [ + 114.96383, + 35.440665 + ], + [ + 114.981509, + 35.434107 + ], + [ + 114.985787, + 35.414332 + ], + [ + 114.967605, + 35.399204 + ], + [ + 114.951248, + 35.380791 + ], + [ + 114.960873, + 35.369722 + ], + [ + 114.968171, + 35.354389 + ], + [ + 114.976979, + 35.352381 + ], + [ + 115.017243, + 35.337437 + ] + ] + ], + [ + [ + [ + 115.504939, + 35.899079 + ], + [ + 115.51079, + 35.907983 + ], + [ + 115.505442, + 35.914405 + ], + [ + 115.490721, + 35.908372 + ], + [ + 115.490343, + 35.899858 + ], + [ + 115.497264, + 35.895041 + ], + [ + 115.504939, + 35.899079 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411000, + "name": "璁告槍甯�", + "center": [ + 113.826063, + 34.022956 + ], + "centroid": [ + 113.715606, + 34.071457 + ], + "childrenNum": 6, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 9, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 114.259905, + 34.251854 + ], + [ + 114.246442, + 34.240433 + ], + [ + 114.210267, + 34.241228 + ], + [ + 114.202906, + 34.234623 + ], + [ + 114.198314, + 34.217737 + ], + [ + 114.160503, + 34.213564 + ], + [ + 114.155345, + 34.202039 + ], + [ + 114.129299, + 34.198214 + ], + [ + 114.122882, + 34.204176 + ], + [ + 114.109544, + 34.206958 + ], + [ + 114.108475, + 34.218929 + ], + [ + 114.102058, + 34.224343 + ], + [ + 114.10816, + 34.228813 + ], + [ + 114.098661, + 34.241923 + ], + [ + 114.081926, + 34.24952 + ], + [ + 114.076453, + 34.239639 + ], + [ + 114.068589, + 34.250265 + ], + [ + 114.058837, + 34.244753 + ], + [ + 114.050847, + 34.247137 + ], + [ + 114.041033, + 34.237851 + ], + [ + 114.011275, + 34.242022 + ], + [ + 114.00316, + 34.252549 + ], + [ + 114.000266, + 34.263471 + ], + [ + 113.990577, + 34.261138 + ], + [ + 113.992905, + 34.27335 + ], + [ + 113.977303, + 34.275583 + ], + [ + 113.972459, + 34.283426 + ], + [ + 113.96472, + 34.283128 + ], + [ + 113.964406, + 34.292954 + ], + [ + 113.937354, + 34.298612 + ], + [ + 113.934271, + 34.304864 + ], + [ + 113.916278, + 34.301688 + ], + [ + 113.904702, + 34.294543 + ], + [ + 113.896083, + 34.303375 + ], + [ + 113.899229, + 34.315879 + ], + [ + 113.894573, + 34.323767 + ], + [ + 113.885451, + 34.327785 + ], + [ + 113.880481, + 34.32972 + ], + [ + 113.85022, + 34.32719 + ], + [ + 113.848584, + 34.322725 + ], + [ + 113.832353, + 34.32342 + ], + [ + 113.803791, + 34.33721 + ], + [ + 113.791208, + 34.331803 + ], + [ + 113.793159, + 34.328083 + ], + [ + 113.777242, + 34.314589 + ], + [ + 113.756732, + 34.313795 + ], + [ + 113.736852, + 34.317863 + ], + [ + 113.727227, + 34.305757 + ], + [ + 113.713386, + 34.301391 + ], + [ + 113.71326, + 34.29092 + ], + [ + 113.7003, + 34.289381 + ], + [ + 113.70332, + 34.276725 + ], + [ + 113.679728, + 34.282532 + ], + [ + 113.669851, + 34.275385 + ], + [ + 113.658589, + 34.275037 + ], + [ + 113.643994, + 34.288488 + ], + [ + 113.634494, + 34.290026 + ], + [ + 113.624805, + 34.303375 + ], + [ + 113.608951, + 34.3132 + ], + [ + 113.600836, + 34.313299 + ], + [ + 113.579697, + 34.319897 + ], + [ + 113.566737, + 34.318359 + ], + [ + 113.556608, + 34.311513 + ], + [ + 113.529619, + 34.317913 + ], + [ + 113.516848, + 34.328579 + ], + [ + 113.518169, + 34.335771 + ], + [ + 113.510871, + 34.342715 + ], + [ + 113.498729, + 34.338598 + ], + [ + 113.482875, + 34.342864 + ], + [ + 113.471425, + 34.330811 + ], + [ + 113.459409, + 34.334432 + ], + [ + 113.429085, + 34.350303 + ], + [ + 113.414175, + 34.349361 + ], + [ + 113.406751, + 34.355213 + ], + [ + 113.414867, + 34.374947 + ], + [ + 113.401655, + 34.377525 + ], + [ + 113.389828, + 34.375988 + ], + [ + 113.366991, + 34.379805 + ], + [ + 113.370388, + 34.389918 + ], + [ + 113.353968, + 34.396411 + ], + [ + 113.348809, + 34.404738 + ], + [ + 113.32528, + 34.404986 + ], + [ + 113.315969, + 34.391157 + ], + [ + 113.320436, + 34.383375 + ], + [ + 113.314019, + 34.373856 + ], + [ + 113.314648, + 34.352287 + ], + [ + 113.276586, + 34.351444 + ], + [ + 113.276334, + 34.342814 + ], + [ + 113.267904, + 34.337805 + ], + [ + 113.235567, + 34.339045 + ], + [ + 113.224557, + 34.33473 + ], + [ + 113.223362, + 34.325057 + ], + [ + 113.210276, + 34.312009 + ], + [ + 113.196436, + 34.312257 + ], + [ + 113.18379, + 34.295634 + ], + [ + 113.184356, + 34.290225 + ], + [ + 113.175297, + 34.281639 + ], + [ + 113.15202, + 34.266351 + ], + [ + 113.142583, + 34.272804 + ], + [ + 113.109365, + 34.263471 + ], + [ + 113.097726, + 34.26223 + ], + [ + 113.082439, + 34.26645 + ], + [ + 113.077343, + 34.262677 + ], + [ + 113.070171, + 34.247186 + ], + [ + 113.066962, + 34.223647 + ], + [ + 113.075392, + 34.215502 + ], + [ + 113.094203, + 34.21118 + ], + [ + 113.103892, + 34.205418 + ], + [ + 113.106094, + 34.198115 + ], + [ + 113.101941, + 34.18778 + ], + [ + 113.103011, + 34.176798 + ], + [ + 113.118047, + 34.156818 + ], + [ + 113.129811, + 34.145733 + ], + [ + 113.126477, + 34.134696 + ], + [ + 113.130629, + 34.124105 + ], + [ + 113.146483, + 34.117939 + ], + [ + 113.150384, + 34.108141 + ], + [ + 113.157493, + 34.103118 + ], + [ + 113.177876, + 34.101228 + ], + [ + 113.210654, + 34.107445 + ], + [ + 113.222355, + 34.102422 + ], + [ + 113.227137, + 34.092523 + ], + [ + 113.235064, + 34.091926 + ], + [ + 113.241166, + 34.097945 + ], + [ + 113.240097, + 34.108539 + ], + [ + 113.252113, + 34.114308 + ], + [ + 113.257398, + 34.112319 + ], + [ + 113.264381, + 34.098542 + ], + [ + 113.278914, + 34.100134 + ], + [ + 113.283129, + 34.086802 + ], + [ + 113.30043, + 34.082623 + ], + [ + 113.331949, + 34.063268 + ], + [ + 113.320687, + 34.054858 + ], + [ + 113.334528, + 34.027183 + ], + [ + 113.345034, + 34.029075 + ], + [ + 113.346104, + 34.03928 + ], + [ + 113.35466, + 34.043112 + ], + [ + 113.368626, + 34.039877 + ], + [ + 113.386368, + 34.039827 + ], + [ + 113.395742, + 34.031315 + ], + [ + 113.402222, + 34.002687 + ], + [ + 113.41342, + 33.987049 + ], + [ + 113.412665, + 33.952028 + ], + [ + 113.410715, + 33.943308 + ], + [ + 113.386116, + 33.927808 + ], + [ + 113.381586, + 33.912007 + ], + [ + 113.365481, + 33.890519 + ], + [ + 113.360762, + 33.879997 + ], + [ + 113.36762, + 33.862691 + ], + [ + 113.384669, + 33.843286 + ], + [ + 113.385802, + 33.834854 + ], + [ + 113.38102, + 33.815542 + ], + [ + 113.386053, + 33.801817 + ], + [ + 113.393351, + 33.797873 + ], + [ + 113.372401, + 33.785593 + ], + [ + 113.425814, + 33.762175 + ], + [ + 113.434873, + 33.765371 + ], + [ + 113.448211, + 33.75868 + ], + [ + 113.451042, + 33.739301 + ], + [ + 113.489481, + 33.746094 + ], + [ + 113.504014, + 33.751238 + ], + [ + 113.51798, + 33.750439 + ], + [ + 113.544341, + 33.757131 + ], + [ + 113.549373, + 33.750489 + ], + [ + 113.573091, + 33.752137 + ], + [ + 113.576552, + 33.736304 + ], + [ + 113.58775, + 33.727062 + ], + [ + 113.580767, + 33.715171 + ], + [ + 113.585485, + 33.711024 + ], + [ + 113.6087, + 33.709175 + ], + [ + 113.596746, + 33.698081 + ], + [ + 113.598256, + 33.687536 + ], + [ + 113.612475, + 33.695732 + ], + [ + 113.629335, + 33.688885 + ], + [ + 113.637954, + 33.695532 + ], + [ + 113.637388, + 33.702679 + ], + [ + 113.645063, + 33.695932 + ], + [ + 113.670983, + 33.699081 + ], + [ + 113.684257, + 33.693833 + ], + [ + 113.701936, + 33.691234 + ], + [ + 113.70678, + 33.693683 + ], + [ + 113.710303, + 33.707876 + ], + [ + 113.716406, + 33.710624 + ], + [ + 113.724018, + 33.695632 + ], + [ + 113.741822, + 33.702329 + ], + [ + 113.74371, + 33.713422 + ], + [ + 113.75906, + 33.717519 + ], + [ + 113.762206, + 33.731808 + ], + [ + 113.750378, + 33.7398 + ], + [ + 113.737167, + 33.741948 + ], + [ + 113.734399, + 33.752337 + ], + [ + 113.742703, + 33.76672 + ], + [ + 113.752895, + 33.771463 + ], + [ + 113.752958, + 33.791484 + ], + [ + 113.761262, + 33.807756 + ], + [ + 113.759312, + 33.827918 + ], + [ + 113.731127, + 33.835652 + ], + [ + 113.729554, + 33.845032 + ], + [ + 113.722445, + 33.848624 + ], + [ + 113.725528, + 33.856406 + ], + [ + 113.735908, + 33.859199 + ], + [ + 113.738802, + 33.868627 + ], + [ + 113.760318, + 33.868477 + ], + [ + 113.773719, + 33.877654 + ], + [ + 113.76554, + 33.883638 + ], + [ + 113.77806, + 33.884934 + ], + [ + 113.78303, + 33.880945 + ], + [ + 113.797814, + 33.883887 + ], + [ + 113.806936, + 33.880995 + ], + [ + 113.811969, + 33.885782 + ], + [ + 113.813353, + 33.88638 + ], + [ + 113.818009, + 33.88663 + ], + [ + 113.820148, + 33.890669 + ], + [ + 113.824363, + 33.89022 + ], + [ + 113.826565, + 33.875808 + ], + [ + 113.853051, + 33.873315 + ], + [ + 113.861481, + 33.884486 + ], + [ + 113.860097, + 33.907222 + ], + [ + 113.871296, + 33.909615 + ], + [ + 113.857455, + 33.939769 + ], + [ + 113.859783, + 33.94859 + ], + [ + 113.870226, + 33.945401 + ], + [ + 113.885765, + 33.948988 + ], + [ + 113.88803, + 33.943407 + ], + [ + 113.90055, + 33.943009 + ], + [ + 113.901305, + 33.94849 + ], + [ + 113.916341, + 33.945849 + ], + [ + 113.922066, + 33.957409 + ], + [ + 113.951949, + 33.97365 + ], + [ + 113.977492, + 33.98152 + ], + [ + 113.99907, + 33.981819 + ], + [ + 114.021971, + 33.987248 + ], + [ + 114.037762, + 33.986053 + ], + [ + 114.053867, + 33.978781 + ], + [ + 114.059152, + 33.96538 + ], + [ + 114.057453, + 33.952875 + ], + [ + 114.064877, + 33.949237 + ], + [ + 114.076704, + 33.952676 + ], + [ + 114.087336, + 33.934686 + ], + [ + 114.103882, + 33.934736 + ], + [ + 114.103757, + 33.925815 + ], + [ + 114.114515, + 33.928058 + ], + [ + 114.125902, + 33.915547 + ], + [ + 114.128418, + 33.885433 + ], + [ + 114.116465, + 33.872068 + ], + [ + 114.115081, + 33.863788 + ], + [ + 114.132445, + 33.853613 + ], + [ + 114.145971, + 33.841939 + ], + [ + 114.159623, + 33.816191 + ], + [ + 114.15503, + 33.809304 + ], + [ + 114.161447, + 33.79982 + ], + [ + 114.178308, + 33.806409 + ], + [ + 114.179503, + 33.799321 + ], + [ + 114.190638, + 33.801917 + ], + [ + 114.19888, + 33.797374 + ], + [ + 114.211525, + 33.798123 + ], + [ + 114.217565, + 33.793131 + ], + [ + 114.242604, + 33.790785 + ], + [ + 114.249776, + 33.779252 + ], + [ + 114.290354, + 33.771813 + ], + [ + 114.309983, + 33.781349 + ], + [ + 114.313066, + 33.80012 + ], + [ + 114.325082, + 33.818337 + ], + [ + 114.323383, + 33.832908 + ], + [ + 114.316085, + 33.833207 + ], + [ + 114.310738, + 33.842637 + ], + [ + 114.301301, + 33.842188 + ], + [ + 114.301112, + 33.852365 + ], + [ + 114.312122, + 33.853263 + ], + [ + 114.315834, + 33.865734 + ], + [ + 114.311304, + 33.87142 + ], + [ + 114.3164, + 33.880446 + ], + [ + 114.305642, + 33.889572 + ], + [ + 114.299917, + 33.953024 + ], + [ + 114.31036, + 33.96 + ], + [ + 114.307026, + 33.978233 + ], + [ + 114.312248, + 33.98162 + ], + [ + 114.311745, + 34.001492 + ], + [ + 114.295324, + 34.007467 + ], + [ + 114.287523, + 34.022902 + ], + [ + 114.281987, + 34.046597 + ], + [ + 114.271103, + 34.053813 + ], + [ + 114.270411, + 34.063219 + ], + [ + 114.262107, + 34.095856 + ], + [ + 114.273431, + 34.102571 + ], + [ + 114.273808, + 34.107545 + ], + [ + 114.285133, + 34.120873 + ], + [ + 114.28746, + 34.137033 + ], + [ + 114.275255, + 34.174661 + ], + [ + 114.276199, + 34.190811 + ], + [ + 114.287649, + 34.206958 + ], + [ + 114.286013, + 34.218234 + ], + [ + 114.273053, + 34.227869 + ], + [ + 114.272676, + 34.24237 + ], + [ + 114.259905, + 34.251854 + ] + ] + ], + [ + [ + [ + 113.813353, + 33.88638 + ], + [ + 113.811969, + 33.885782 + ], + [ + 113.811718, + 33.879449 + ], + [ + 113.826565, + 33.875808 + ], + [ + 113.824363, + 33.89022 + ], + [ + 113.820148, + 33.890669 + ], + [ + 113.818009, + 33.88663 + ], + [ + 113.813353, + 33.88638 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411100, + "name": "婕渤甯�", + "center": [ + 114.026405, + 33.575855 + ], + "centroid": [ + 113.905678, + 33.65448 + ], + "childrenNum": 5, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 10, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.688347, + 33.407737 + ], + [ + 113.693065, + 33.418216 + ], + [ + 113.710429, + 33.417013 + ], + [ + 113.713197, + 33.430249 + ], + [ + 113.721187, + 33.432705 + ], + [ + 113.766861, + 33.432154 + ], + [ + 113.771139, + 33.435713 + ], + [ + 113.799513, + 33.43481 + ], + [ + 113.805804, + 33.446189 + ], + [ + 113.825999, + 33.460723 + ], + [ + 113.847515, + 33.466836 + ], + [ + 113.856134, + 33.47796 + ], + [ + 113.865508, + 33.479362 + ], + [ + 113.914139, + 33.478511 + ], + [ + 113.933768, + 33.465884 + ], + [ + 113.94528, + 33.465633 + ], + [ + 113.95434, + 33.473901 + ], + [ + 113.967929, + 33.477408 + ], + [ + 113.9712, + 33.482619 + ], + [ + 113.981329, + 33.482268 + ], + [ + 113.998693, + 33.500904 + ], + [ + 114.001084, + 33.510671 + ], + [ + 114.01354, + 33.511071 + ], + [ + 114.014924, + 33.522039 + ], + [ + 114.033735, + 33.523892 + ], + [ + 114.038579, + 33.5296 + ], + [ + 114.052168, + 33.528999 + ], + [ + 114.055692, + 33.523942 + ], + [ + 114.075572, + 33.517782 + ], + [ + 114.099101, + 33.503108 + ], + [ + 114.116276, + 33.51027 + ], + [ + 114.118101, + 33.502406 + ], + [ + 114.104071, + 33.499351 + ], + [ + 114.103505, + 33.491586 + ], + [ + 114.115836, + 33.488631 + ], + [ + 114.130683, + 33.495093 + ], + [ + 114.131501, + 33.472298 + ], + [ + 114.151507, + 33.468139 + ], + [ + 114.150312, + 33.460372 + ], + [ + 114.159937, + 33.456713 + ], + [ + 114.171639, + 33.459019 + ], + [ + 114.180384, + 33.453656 + ], + [ + 114.171324, + 33.440926 + ], + [ + 114.190575, + 33.426489 + ], + [ + 114.195294, + 33.447692 + ], + [ + 114.211399, + 33.453757 + ], + [ + 114.230714, + 33.451551 + ], + [ + 114.247574, + 33.45967 + ], + [ + 114.266636, + 33.461625 + ], + [ + 114.284629, + 33.472548 + ], + [ + 114.279785, + 33.489282 + ], + [ + 114.283371, + 33.500353 + ], + [ + 114.281106, + 33.513976 + ], + [ + 114.289348, + 33.522089 + ], + [ + 114.295324, + 33.553782 + ], + [ + 114.282868, + 33.558688 + ], + [ + 114.278653, + 33.57015 + ], + [ + 114.265378, + 33.593219 + ], + [ + 114.265881, + 33.597923 + ], + [ + 114.279659, + 33.604427 + ], + [ + 114.277332, + 33.621735 + ], + [ + 114.264938, + 33.635239 + ], + [ + 114.264183, + 33.654742 + ], + [ + 114.260849, + 33.661942 + ], + [ + 114.259842, + 33.680588 + ], + [ + 114.250783, + 33.693233 + ], + [ + 114.249084, + 33.704328 + ], + [ + 114.214231, + 33.691334 + ], + [ + 114.196489, + 33.690934 + ], + [ + 114.186549, + 33.682538 + ], + [ + 114.186235, + 33.67219 + ], + [ + 114.169563, + 33.664791 + ], + [ + 114.162265, + 33.669941 + ], + [ + 114.152639, + 33.662242 + ], + [ + 114.149745, + 33.650442 + ], + [ + 114.125398, + 33.652842 + ], + [ + 114.116402, + 33.651392 + ], + [ + 114.118226, + 33.67159 + ], + [ + 114.115836, + 33.684587 + ], + [ + 114.097717, + 33.683187 + ], + [ + 114.091489, + 33.71642 + ], + [ + 114.095263, + 33.728061 + ], + [ + 114.106839, + 33.739051 + ], + [ + 114.10319, + 33.756832 + ], + [ + 114.098032, + 33.765072 + ], + [ + 114.133262, + 33.768118 + ], + [ + 114.142007, + 33.765921 + ], + [ + 114.139931, + 33.783097 + ], + [ + 114.133703, + 33.791484 + ], + [ + 114.134772, + 33.806409 + ], + [ + 114.145404, + 33.810551 + ], + [ + 114.15503, + 33.809304 + ], + [ + 114.159623, + 33.816191 + ], + [ + 114.145971, + 33.841939 + ], + [ + 114.132445, + 33.853613 + ], + [ + 114.115081, + 33.863788 + ], + [ + 114.116465, + 33.872068 + ], + [ + 114.128418, + 33.885433 + ], + [ + 114.125902, + 33.915547 + ], + [ + 114.114515, + 33.928058 + ], + [ + 114.103757, + 33.925815 + ], + [ + 114.103882, + 33.934736 + ], + [ + 114.087336, + 33.934686 + ], + [ + 114.076704, + 33.952676 + ], + [ + 114.064877, + 33.949237 + ], + [ + 114.057453, + 33.952875 + ], + [ + 114.059152, + 33.96538 + ], + [ + 114.053867, + 33.978781 + ], + [ + 114.037762, + 33.986053 + ], + [ + 114.021971, + 33.987248 + ], + [ + 113.99907, + 33.981819 + ], + [ + 113.977492, + 33.98152 + ], + [ + 113.951949, + 33.97365 + ], + [ + 113.922066, + 33.957409 + ], + [ + 113.916341, + 33.945849 + ], + [ + 113.901305, + 33.94849 + ], + [ + 113.90055, + 33.943009 + ], + [ + 113.88803, + 33.943407 + ], + [ + 113.885765, + 33.948988 + ], + [ + 113.870226, + 33.945401 + ], + [ + 113.859783, + 33.94859 + ], + [ + 113.857455, + 33.939769 + ], + [ + 113.871296, + 33.909615 + ], + [ + 113.860097, + 33.907222 + ], + [ + 113.861481, + 33.884486 + ], + [ + 113.853051, + 33.873315 + ], + [ + 113.826565, + 33.875808 + ], + [ + 113.811718, + 33.879449 + ], + [ + 113.811969, + 33.885782 + ], + [ + 113.806936, + 33.880995 + ], + [ + 113.797814, + 33.883887 + ], + [ + 113.78303, + 33.880945 + ], + [ + 113.77806, + 33.884934 + ], + [ + 113.76554, + 33.883638 + ], + [ + 113.773719, + 33.877654 + ], + [ + 113.760318, + 33.868477 + ], + [ + 113.738802, + 33.868627 + ], + [ + 113.735908, + 33.859199 + ], + [ + 113.725528, + 33.856406 + ], + [ + 113.722445, + 33.848624 + ], + [ + 113.729554, + 33.845032 + ], + [ + 113.731127, + 33.835652 + ], + [ + 113.759312, + 33.827918 + ], + [ + 113.761262, + 33.807756 + ], + [ + 113.752958, + 33.791484 + ], + [ + 113.752895, + 33.771463 + ], + [ + 113.742703, + 33.76672 + ], + [ + 113.734399, + 33.752337 + ], + [ + 113.737167, + 33.741948 + ], + [ + 113.750378, + 33.7398 + ], + [ + 113.762206, + 33.731808 + ], + [ + 113.75906, + 33.717519 + ], + [ + 113.74371, + 33.713422 + ], + [ + 113.741822, + 33.702329 + ], + [ + 113.724018, + 33.695632 + ], + [ + 113.716406, + 33.710624 + ], + [ + 113.710303, + 33.707876 + ], + [ + 113.70678, + 33.693683 + ], + [ + 113.701936, + 33.691234 + ], + [ + 113.684257, + 33.693833 + ], + [ + 113.670983, + 33.699081 + ], + [ + 113.645063, + 33.695932 + ], + [ + 113.637388, + 33.702679 + ], + [ + 113.637954, + 33.695532 + ], + [ + 113.629335, + 33.688885 + ], + [ + 113.612475, + 33.695732 + ], + [ + 113.598256, + 33.687536 + ], + [ + 113.596746, + 33.698081 + ], + [ + 113.6087, + 33.709175 + ], + [ + 113.585485, + 33.711024 + ], + [ + 113.576677, + 33.706327 + ], + [ + 113.584101, + 33.698131 + ], + [ + 113.580515, + 33.681738 + ], + [ + 113.587624, + 33.654642 + ], + [ + 113.596746, + 33.651892 + ], + [ + 113.619143, + 33.63799 + ], + [ + 113.628203, + 33.629038 + ], + [ + 113.621534, + 33.619885 + ], + [ + 113.604673, + 33.613131 + ], + [ + 113.579383, + 33.597222 + ], + [ + 113.576803, + 33.592619 + ], + [ + 113.552267, + 33.586715 + ], + [ + 113.554281, + 33.5706 + ], + [ + 113.563151, + 33.57055 + ], + [ + 113.557363, + 33.553582 + ], + [ + 113.545536, + 33.548626 + ], + [ + 113.537672, + 33.51633 + ], + [ + 113.533708, + 33.514978 + ], + [ + 113.537609, + 33.498499 + ], + [ + 113.532073, + 33.497347 + ], + [ + 113.525278, + 33.505061 + ], + [ + 113.510808, + 33.505011 + ], + [ + 113.50307, + 33.500252 + ], + [ + 113.483001, + 33.500152 + ], + [ + 113.478597, + 33.50431 + ], + [ + 113.484322, + 33.483721 + ], + [ + 113.471803, + 33.463378 + ], + [ + 113.473501, + 33.443683 + ], + [ + 113.466518, + 33.437367 + ], + [ + 113.468846, + 33.422077 + ], + [ + 113.483945, + 33.421124 + ], + [ + 113.506341, + 33.414607 + ], + [ + 113.51754, + 33.407186 + ], + [ + 113.526662, + 33.419269 + ], + [ + 113.539811, + 33.419019 + ], + [ + 113.54736, + 33.406433 + ], + [ + 113.574727, + 33.407537 + ], + [ + 113.589008, + 33.404728 + ], + [ + 113.596809, + 33.41215 + ], + [ + 113.620842, + 33.410946 + ], + [ + 113.645252, + 33.421776 + ], + [ + 113.651669, + 33.418417 + ], + [ + 113.659407, + 33.424283 + ], + [ + 113.683125, + 33.41952 + ], + [ + 113.688347, + 33.407737 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411200, + "name": "涓夐棬宄″競", + "center": [ + 111.194099, + 34.777338 + ], + "centroid": [ + 111.112608, + 34.36205 + ], + "childrenNum": 6, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 11, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 111.973358, + 35.070234 + ], + [ + 111.963166, + 35.079329 + ], + [ + 111.952156, + 35.082131 + ], + [ + 111.928376, + 35.082032 + ], + [ + 111.917618, + 35.071119 + ], + [ + 111.900065, + 35.07982 + ], + [ + 111.885595, + 35.069988 + ], + [ + 111.86452, + 35.076772 + ], + [ + 111.8615, + 35.074757 + ], + [ + 111.818405, + 35.068464 + ], + [ + 111.8101, + 35.06222 + ], + [ + 111.812051, + 35.04855 + ], + [ + 111.809534, + 35.036846 + ], + [ + 111.793555, + 35.026664 + ], + [ + 111.782419, + 35.030058 + ], + [ + 111.768578, + 35.01535 + ], + [ + 111.749138, + 35.016383 + ], + [ + 111.739324, + 35.004231 + ], + [ + 111.711769, + 35.003641 + ], + [ + 111.69711, + 34.998966 + ], + [ + 111.687107, + 34.988485 + ], + [ + 111.669617, + 34.988189 + ], + [ + 111.665528, + 34.980955 + ], + [ + 111.67572, + 34.971406 + ], + [ + 111.681697, + 34.950927 + ], + [ + 111.66169, + 34.938815 + ], + [ + 111.645082, + 34.93783 + ], + [ + 111.621552, + 34.916308 + ], + [ + 111.617652, + 34.89483 + ], + [ + 111.605824, + 34.892367 + ], + [ + 111.591858, + 34.881625 + ], + [ + 111.589404, + 34.861863 + ], + [ + 111.58305, + 34.852794 + ], + [ + 111.570782, + 34.843329 + ], + [ + 111.561031, + 34.845251 + ], + [ + 111.554488, + 34.852202 + ], + [ + 111.543982, + 34.853286 + ], + [ + 111.527813, + 34.850132 + ], + [ + 111.515356, + 34.840173 + ], + [ + 111.508688, + 34.839187 + ], + [ + 111.502648, + 34.829968 + ], + [ + 111.480126, + 34.826023 + ], + [ + 111.464649, + 34.82691 + ], + [ + 111.45062, + 34.836624 + ], + [ + 111.439358, + 34.838152 + ], + [ + 111.430991, + 34.829277 + ], + [ + 111.415389, + 34.827453 + ], + [ + 111.39532, + 34.814878 + ], + [ + 111.35537, + 34.823064 + ], + [ + 111.3504, + 34.829376 + ], + [ + 111.340334, + 34.831299 + ], + [ + 111.322656, + 34.819711 + ], + [ + 111.30611, + 34.815223 + ], + [ + 111.294157, + 34.807678 + ], + [ + 111.282141, + 34.809453 + ], + [ + 111.268048, + 34.817936 + ], + [ + 111.255214, + 34.819563 + ], + [ + 111.249112, + 34.81404 + ], + [ + 111.239864, + 34.793571 + ], + [ + 111.223443, + 34.789427 + ], + [ + 111.209414, + 34.80097 + ], + [ + 111.177769, + 34.803979 + ], + [ + 111.168144, + 34.813201 + ], + [ + 111.16072, + 34.814582 + ], + [ + 111.148515, + 34.80748 + ], + [ + 111.129767, + 34.779955 + ], + [ + 111.124419, + 34.761698 + ], + [ + 111.118254, + 34.756566 + ], + [ + 111.066414, + 34.751581 + ], + [ + 111.035336, + 34.740871 + ], + [ + 111.018475, + 34.732282 + ], + [ + 110.976324, + 34.70646 + ], + [ + 110.963993, + 34.70641 + ], + [ + 110.952354, + 34.720581 + ], + [ + 110.935494, + 34.730505 + ], + [ + 110.919766, + 34.730258 + ], + [ + 110.915739, + 34.723247 + ], + [ + 110.917438, + 34.71357 + ], + [ + 110.903723, + 34.668823 + ], + [ + 110.893469, + 34.651629 + ], + [ + 110.883717, + 34.644117 + ], + [ + 110.861572, + 34.639719 + ], + [ + 110.853205, + 34.635271 + ], + [ + 110.83452, + 34.617526 + ], + [ + 110.824328, + 34.615845 + ], + [ + 110.816023, + 34.622618 + ], + [ + 110.808222, + 34.6371 + ], + [ + 110.791865, + 34.649751 + ], + [ + 110.76129, + 34.653506 + ], + [ + 110.749148, + 34.652271 + ], + [ + 110.741158, + 34.639225 + ], + [ + 110.732728, + 34.633195 + ], + [ + 110.712659, + 34.607837 + ], + [ + 110.706367, + 34.60398 + ], + [ + 110.653521, + 34.608034 + ], + [ + 110.610992, + 34.607293 + ], + [ + 110.594509, + 34.60314 + ], + [ + 110.547388, + 34.583558 + ], + [ + 110.53317, + 34.583459 + ], + [ + 110.488502, + 34.610753 + ], + [ + 110.475857, + 34.610457 + ], + [ + 110.465602, + 34.605463 + ], + [ + 110.437732, + 34.597849 + ], + [ + 110.424835, + 34.588454 + ], + [ + 110.407723, + 34.589245 + ], + [ + 110.379161, + 34.600519 + ], + [ + 110.367207, + 34.566792 + ], + [ + 110.376141, + 34.563082 + ], + [ + 110.399355, + 34.562834 + ], + [ + 110.404514, + 34.557591 + ], + [ + 110.372744, + 34.544332 + ], + [ + 110.362048, + 34.526419 + ], + [ + 110.360476, + 34.51761 + ], + [ + 110.368843, + 34.493206 + ], + [ + 110.378217, + 34.486423 + ], + [ + 110.379727, + 34.478501 + ], + [ + 110.393442, + 34.464833 + ], + [ + 110.395266, + 34.453937 + ], + [ + 110.401998, + 34.447101 + ], + [ + 110.402941, + 34.433478 + ], + [ + 110.40961, + 34.429069 + ], + [ + 110.409484, + 34.421587 + ], + [ + 110.431, + 34.409446 + ], + [ + 110.458178, + 34.402409 + ], + [ + 110.467427, + 34.409743 + ], + [ + 110.47592, + 34.409149 + ], + [ + 110.473718, + 34.393239 + ], + [ + 110.489446, + 34.355312 + ], + [ + 110.50272, + 34.345195 + ], + [ + 110.503287, + 34.334283 + ], + [ + 110.498128, + 34.320096 + ], + [ + 110.473844, + 34.322973 + ], + [ + 110.465854, + 34.305906 + ], + [ + 110.449308, + 34.291466 + ], + [ + 110.431315, + 34.290374 + ], + [ + 110.426471, + 34.27608 + ], + [ + 110.432573, + 34.272903 + ], + [ + 110.442513, + 34.253989 + ], + [ + 110.439682, + 34.243413 + ], + [ + 110.48976, + 34.232339 + ], + [ + 110.507879, + 34.217588 + ], + [ + 110.52411, + 34.219674 + ], + [ + 110.551414, + 34.212819 + ], + [ + 110.557139, + 34.193395 + ], + [ + 110.589099, + 34.190264 + ], + [ + 110.587715, + 34.178687 + ], + [ + 110.62175, + 34.177444 + ], + [ + 110.634144, + 34.169791 + ], + [ + 110.641945, + 34.160894 + ], + [ + 110.639114, + 34.150903 + ], + [ + 110.624204, + 34.137331 + ], + [ + 110.628545, + 34.133055 + ], + [ + 110.618164, + 34.124055 + ], + [ + 110.614012, + 34.113712 + ], + [ + 110.591804, + 34.101676 + ], + [ + 110.595138, + 34.064761 + ], + [ + 110.58847, + 34.061676 + ], + [ + 110.589728, + 34.038583 + ], + [ + 110.586645, + 34.023997 + ], + [ + 110.612062, + 34.024246 + ], + [ + 110.619486, + 34.035646 + ], + [ + 110.631502, + 34.025541 + ], + [ + 110.628104, + 34.019019 + ], + [ + 110.634459, + 34.01633 + ], + [ + 110.638925, + 34.004977 + ], + [ + 110.649558, + 33.992278 + ], + [ + 110.65176, + 33.969665 + ], + [ + 110.670948, + 33.966427 + ], + [ + 110.675603, + 33.946596 + ], + [ + 110.669564, + 33.939271 + ], + [ + 110.650501, + 33.93673 + ], + [ + 110.626028, + 33.924619 + ], + [ + 110.62584, + 33.90782 + ], + [ + 110.61181, + 33.908069 + ], + [ + 110.592182, + 33.900591 + ], + [ + 110.587274, + 33.887727 + ], + [ + 110.600612, + 33.87127 + ], + [ + 110.612943, + 33.867429 + ], + [ + 110.612125, + 33.852515 + ], + [ + 110.627664, + 33.84573 + ], + [ + 110.649495, + 33.84598 + ], + [ + 110.667928, + 33.852166 + ], + [ + 110.684914, + 33.838796 + ], + [ + 110.712596, + 33.833607 + ], + [ + 110.722725, + 33.818886 + ], + [ + 110.725996, + 33.807707 + ], + [ + 110.741347, + 33.798822 + ], + [ + 110.753677, + 33.799471 + ], + [ + 110.765568, + 33.795028 + ], + [ + 110.782177, + 33.796076 + ], + [ + 110.78419, + 33.782398 + ], + [ + 110.7991, + 33.775508 + ], + [ + 110.80753, + 33.757281 + ], + [ + 110.815898, + 33.753036 + ], + [ + 110.816841, + 33.737353 + ], + [ + 110.832192, + 33.712823 + ], + [ + 110.823195, + 33.692834 + ], + [ + 110.825397, + 33.684137 + ], + [ + 110.833199, + 33.677789 + ], + [ + 110.841818, + 33.663241 + ], + [ + 110.857734, + 33.657792 + ], + [ + 110.87881, + 33.634639 + ], + [ + 110.89976, + 33.632989 + ], + [ + 110.90473, + 33.628638 + ], + [ + 110.940841, + 33.620035 + ], + [ + 110.951411, + 33.609029 + ], + [ + 110.966573, + 33.609179 + ], + [ + 110.979658, + 33.595871 + ], + [ + 111.003691, + 33.578658 + ], + [ + 111.009982, + 33.56054 + ], + [ + 111.025144, + 33.550578 + ], + [ + 111.058425, + 33.555534 + ], + [ + 111.070063, + 33.566346 + ], + [ + 111.089126, + 33.563743 + ], + [ + 111.102903, + 33.573903 + ], + [ + 111.114542, + 33.578758 + ], + [ + 111.123224, + 33.598623 + ], + [ + 111.133982, + 33.612381 + ], + [ + 111.134674, + 33.627437 + ], + [ + 111.143922, + 33.633189 + ], + [ + 111.152101, + 33.645441 + ], + [ + 111.146439, + 33.658592 + ], + [ + 111.140273, + 33.661292 + ], + [ + 111.133164, + 33.678939 + ], + [ + 111.141406, + 33.678739 + ], + [ + 111.151598, + 33.684787 + ], + [ + 111.170471, + 33.682138 + ], + [ + 111.181292, + 33.686886 + ], + [ + 111.186199, + 33.704128 + ], + [ + 111.195196, + 33.713272 + ], + [ + 111.197209, + 33.732207 + ], + [ + 111.194441, + 33.745494 + ], + [ + 111.196077, + 33.757731 + ], + [ + 111.208533, + 33.781948 + ], + [ + 111.222437, + 33.797574 + ], + [ + 111.234831, + 33.801268 + ], + [ + 111.240367, + 33.796925 + ], + [ + 111.260813, + 33.796775 + ], + [ + 111.261568, + 33.822878 + ], + [ + 111.240304, + 33.842488 + ], + [ + 111.232062, + 33.856805 + ], + [ + 111.216397, + 33.865135 + ], + [ + 111.21948, + 33.872766 + ], + [ + 111.203689, + 33.883438 + ], + [ + 111.206017, + 33.891616 + ], + [ + 111.212811, + 33.884087 + ], + [ + 111.234516, + 33.894857 + ], + [ + 111.234768, + 33.901738 + ], + [ + 111.226652, + 33.913104 + ], + [ + 111.230049, + 33.924768 + ], + [ + 111.239989, + 33.933141 + ], + [ + 111.259366, + 33.929852 + ], + [ + 111.276793, + 33.935533 + ], + [ + 111.29013, + 33.926662 + ], + [ + 111.303342, + 33.928207 + ], + [ + 111.305921, + 33.941364 + ], + [ + 111.324795, + 33.963039 + ], + [ + 111.344109, + 33.973351 + ], + [ + 111.356, + 33.984509 + ], + [ + 111.353609, + 33.996263 + ], + [ + 111.355119, + 34.015185 + ], + [ + 111.342285, + 34.037936 + ], + [ + 111.342096, + 34.056053 + ], + [ + 111.354301, + 34.084464 + ], + [ + 111.367198, + 34.092473 + ], + [ + 111.358768, + 34.108788 + ], + [ + 111.344738, + 34.109037 + ], + [ + 111.334735, + 34.115601 + ], + [ + 111.313408, + 34.116546 + ], + [ + 111.306362, + 34.125149 + ], + [ + 111.305292, + 34.140165 + ], + [ + 111.296925, + 34.145137 + ], + [ + 111.281889, + 34.138524 + ], + [ + 111.276856, + 34.148318 + ], + [ + 111.267922, + 34.146528 + ], + [ + 111.253201, + 34.15309 + ], + [ + 111.248671, + 34.162882 + ], + [ + 111.234516, + 34.178537 + ], + [ + 111.214699, + 34.181221 + ], + [ + 111.207401, + 34.197419 + ], + [ + 111.175819, + 34.209541 + ], + [ + 111.158958, + 34.223101 + ], + [ + 111.166571, + 34.228962 + ], + [ + 111.180915, + 34.230203 + ], + [ + 111.187772, + 34.250265 + ], + [ + 111.182488, + 34.256421 + ], + [ + 111.181921, + 34.27876 + ], + [ + 111.191547, + 34.301837 + ], + [ + 111.185444, + 34.31697 + ], + [ + 111.16915, + 34.334878 + ], + [ + 111.166634, + 34.344798 + ], + [ + 111.159839, + 34.350799 + ], + [ + 111.141217, + 34.353031 + ], + [ + 111.138449, + 34.35675 + ], + [ + 111.141217, + 34.373113 + ], + [ + 111.147949, + 34.38853 + ], + [ + 111.156819, + 34.394677 + ], + [ + 111.171415, + 34.394974 + ], + [ + 111.188967, + 34.399286 + ], + [ + 111.191232, + 34.41792 + ], + [ + 111.197712, + 34.418762 + ], + [ + 111.21344, + 34.429812 + ], + [ + 111.213252, + 34.437441 + ], + [ + 111.220235, + 34.457949 + ], + [ + 111.227533, + 34.459732 + ], + [ + 111.244708, + 34.453788 + ], + [ + 111.272012, + 34.447547 + ], + [ + 111.271383, + 34.470677 + ], + [ + 111.289313, + 34.485581 + ], + [ + 111.300008, + 34.488948 + ], + [ + 111.306676, + 34.474193 + ], + [ + 111.324732, + 34.471717 + ], + [ + 111.344424, + 34.472955 + ], + [ + 111.358642, + 34.480333 + ], + [ + 111.370595, + 34.473301 + ], + [ + 111.385065, + 34.473103 + ], + [ + 111.394816, + 34.482016 + ], + [ + 111.418346, + 34.490829 + ], + [ + 111.451689, + 34.505928 + ], + [ + 111.45754, + 34.512561 + ], + [ + 111.484655, + 34.525528 + ], + [ + 111.489437, + 34.533842 + ], + [ + 111.5029, + 34.545074 + ], + [ + 111.525045, + 34.54829 + ], + [ + 111.538634, + 34.543342 + ], + [ + 111.544736, + 34.544925 + ], + [ + 111.562037, + 34.558728 + ], + [ + 111.574305, + 34.564467 + ], + [ + 111.584434, + 34.556057 + ], + [ + 111.594437, + 34.565308 + ], + [ + 111.608089, + 34.56229 + ], + [ + 111.619099, + 34.55576 + ], + [ + 111.670058, + 34.540571 + ], + [ + 111.683584, + 34.533298 + ], + [ + 111.692643, + 34.535673 + ], + [ + 111.681445, + 34.547647 + ], + [ + 111.672008, + 34.572232 + ], + [ + 111.687044, + 34.571886 + ], + [ + 111.696292, + 34.575744 + ], + [ + 111.702835, + 34.584943 + ], + [ + 111.740079, + 34.600272 + ], + [ + 111.758764, + 34.597454 + ], + [ + 111.764112, + 34.609171 + ], + [ + 111.778393, + 34.608331 + ], + [ + 111.797078, + 34.626028 + ], + [ + 111.811296, + 34.633887 + ], + [ + 111.821362, + 34.634431 + ], + [ + 111.823752, + 34.646242 + ], + [ + 111.830736, + 34.649207 + ], + [ + 111.863953, + 34.647082 + ], + [ + 111.888867, + 34.61891 + ], + [ + 111.905664, + 34.6198 + ], + [ + 111.928879, + 34.600272 + ], + [ + 111.94165, + 34.620492 + ], + [ + 111.943223, + 34.629637 + ], + [ + 111.953666, + 34.639521 + ], + [ + 111.967444, + 34.64308 + ], + [ + 111.971408, + 34.65069 + ], + [ + 111.980089, + 34.654 + ], + [ + 111.972855, + 34.66739 + ], + [ + 111.984997, + 34.686013 + ], + [ + 111.982921, + 34.695052 + ], + [ + 111.993238, + 34.693866 + ], + [ + 111.997642, + 34.717125 + ], + [ + 112.01488, + 34.724235 + ], + [ + 112.014125, + 34.731048 + ], + [ + 111.995692, + 34.736823 + ], + [ + 112.000536, + 34.745017 + ], + [ + 111.997831, + 34.750693 + ], + [ + 112.011042, + 34.750644 + ], + [ + 112.019347, + 34.762587 + ], + [ + 112.017459, + 34.769939 + ], + [ + 112.031174, + 34.777735 + ], + [ + 112.028784, + 34.778968 + ], + [ + 112.021171, + 34.777537 + ], + [ + 112.018466, + 34.785678 + ], + [ + 112.030231, + 34.782668 + ], + [ + 112.031992, + 34.782965 + ], + [ + 112.030105, + 34.792584 + ], + [ + 112.016327, + 34.797073 + ], + [ + 112.012804, + 34.803781 + ], + [ + 112.020731, + 34.811327 + ], + [ + 112.01444, + 34.817985 + ], + [ + 111.986003, + 34.837856 + ], + [ + 111.982858, + 34.846139 + ], + [ + 111.990722, + 34.853779 + ], + [ + 111.981411, + 34.857624 + ], + [ + 111.957944, + 34.851167 + ], + [ + 111.948948, + 34.852301 + ], + [ + 111.949829, + 34.863391 + ], + [ + 111.922336, + 34.883941 + ], + [ + 111.898744, + 34.885912 + ], + [ + 111.883267, + 34.894239 + ], + [ + 111.88396, + 34.911974 + ], + [ + 111.890062, + 34.920347 + ], + [ + 111.906168, + 34.929606 + ], + [ + 111.921707, + 34.934038 + ], + [ + 111.933975, + 34.947678 + ], + [ + 111.950835, + 34.947776 + ], + [ + 111.981914, + 34.960626 + ], + [ + 111.983235, + 34.970471 + ], + [ + 111.961153, + 34.975689 + ], + [ + 111.95763, + 34.986221 + ], + [ + 111.967192, + 34.989912 + ], + [ + 111.981033, + 34.990059 + ], + [ + 111.978139, + 34.997195 + ], + [ + 111.991917, + 35.005018 + ], + [ + 111.967067, + 35.014169 + ], + [ + 111.940203, + 35.030599 + ], + [ + 111.939511, + 35.0366 + ], + [ + 111.958573, + 35.0486 + ], + [ + 111.958699, + 35.062908 + ], + [ + 111.973358, + 35.070234 + ] + ] + ], + [ + [ + [ + 112.031992, + 34.782965 + ], + [ + 112.030231, + 34.782668 + ], + [ + 112.028784, + 34.778968 + ], + [ + 112.031174, + 34.777735 + ], + [ + 112.031992, + 34.782965 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411300, + "name": "鍗楅槼甯�", + "center": [ + 112.540918, + 32.999082 + ], + "centroid": [ + 112.288385, + 33.044723 + ], + "childrenNum": 13, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 12, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 111.009982, + 33.56054 + ], + [ + 111.003691, + 33.548075 + ], + [ + 111.003565, + 33.533105 + ], + [ + 111.019482, + 33.520837 + ], + [ + 111.027346, + 33.493139 + ], + [ + 111.027346, + 33.469542 + ], + [ + 111.020866, + 33.45085 + ], + [ + 110.996708, + 33.435963 + ], + [ + 111.011429, + 33.407336 + ], + [ + 111.011052, + 33.398861 + ], + [ + 111.017406, + 33.385019 + ], + [ + 111.026151, + 33.375338 + ], + [ + 111.02722, + 33.365506 + ], + [ + 111.023005, + 33.35487 + ], + [ + 111.029988, + 33.339415 + ], + [ + 111.026025, + 33.330382 + ], + [ + 111.000356, + 33.323957 + ], + [ + 110.999476, + 33.313416 + ], + [ + 111.007969, + 33.303678 + ], + [ + 110.998469, + 33.301418 + ], + [ + 110.997903, + 33.290975 + ], + [ + 110.991297, + 33.276112 + ], + [ + 110.982867, + 33.270085 + ], + [ + 110.997022, + 33.254766 + ], + [ + 110.985006, + 33.255419 + ], + [ + 110.997274, + 33.238941 + ], + [ + 111.01231, + 33.233113 + ], + [ + 111.016714, + 33.223968 + ], + [ + 111.030366, + 33.214571 + ], + [ + 111.032442, + 33.209345 + ], + [ + 111.051441, + 33.20065 + ], + [ + 111.057858, + 33.183609 + ], + [ + 111.037223, + 33.160984 + ], + [ + 111.045527, + 33.158168 + ], + [ + 111.061885, + 33.174006 + ], + [ + 111.073272, + 33.180643 + ], + [ + 111.088811, + 33.182051 + ], + [ + 111.0985, + 33.176923 + ], + [ + 111.106678, + 33.164453 + ], + [ + 111.128257, + 33.154547 + ], + [ + 111.132032, + 33.137749 + ], + [ + 111.139267, + 33.134379 + ], + [ + 111.146313, + 33.123815 + ], + [ + 111.162544, + 33.124268 + ], + [ + 111.179531, + 33.115463 + ], + [ + 111.177014, + 33.101174 + ], + [ + 111.190918, + 33.086731 + ], + [ + 111.192868, + 33.071631 + ], + [ + 111.167829, + 33.06398 + ], + [ + 111.15078, + 33.053206 + ], + [ + 111.148263, + 33.042381 + ], + [ + 111.152982, + 33.039712 + ], + [ + 111.179845, + 33.043942 + ], + [ + 111.189345, + 33.038655 + ], + [ + 111.221682, + 33.042633 + ], + [ + 111.24043, + 33.037194 + ], + [ + 111.240556, + 33.019971 + ], + [ + 111.2588, + 33.006472 + ], + [ + 111.269495, + 32.987831 + ], + [ + 111.273647, + 32.971858 + ], + [ + 111.267797, + 32.963744 + ], + [ + 111.253138, + 32.955781 + ], + [ + 111.245526, + 32.944188 + ], + [ + 111.24282, + 32.930627 + ], + [ + 111.24993, + 32.91424 + ], + [ + 111.246344, + 32.888518 + ], + [ + 111.2549, + 32.884029 + ], + [ + 111.269621, + 32.898455 + ], + [ + 111.280127, + 32.904355 + ], + [ + 111.290697, + 32.892554 + ], + [ + 111.289879, + 32.86506 + ], + [ + 111.293528, + 32.859409 + ], + [ + 111.316365, + 32.85078 + ], + [ + 111.331275, + 32.841142 + ], + [ + 111.358642, + 32.837003 + ], + [ + 111.380032, + 32.828827 + ], + [ + 111.385065, + 32.821305 + ], + [ + 111.396138, + 32.794547 + ], + [ + 111.405637, + 32.782529 + ], + [ + 111.404128, + 32.77561 + ], + [ + 111.41023, + 32.769347 + ], + [ + 111.413564, + 32.757174 + ], + [ + 111.422938, + 32.751011 + ], + [ + 111.437597, + 32.750253 + ], + [ + 111.447285, + 32.754951 + ], + [ + 111.448229, + 32.761467 + ], + [ + 111.46295, + 32.764296 + ], + [ + 111.461063, + 32.771671 + ], + [ + 111.468172, + 32.770862 + ], + [ + 111.475659, + 32.758437 + ], + [ + 111.469808, + 32.753638 + ], + [ + 111.46899, + 32.738633 + ], + [ + 111.456974, + 32.72696 + ], + [ + 111.444391, + 32.736713 + ], + [ + 111.441749, + 32.726758 + ], + [ + 111.431494, + 32.735045 + ], + [ + 111.425455, + 32.73267 + ], + [ + 111.44112, + 32.722816 + ], + [ + 111.464649, + 32.722362 + ], + [ + 111.472639, + 32.717763 + ], + [ + 111.467858, + 32.707351 + ], + [ + 111.479874, + 32.694664 + ], + [ + 111.513029, + 32.673986 + ], + [ + 111.526555, + 32.654163 + ], + [ + 111.524793, + 32.647285 + ], + [ + 111.530267, + 32.628316 + ], + [ + 111.55908, + 32.601095 + ], + [ + 111.57764, + 32.593505 + ], + [ + 111.603685, + 32.610254 + ], + [ + 111.618344, + 32.627608 + ], + [ + 111.634009, + 32.635145 + ], + [ + 111.640804, + 32.634741 + ], + [ + 111.640804, + 32.617338 + ], + [ + 111.646403, + 32.606206 + ], + [ + 111.673015, + 32.61496 + ], + [ + 111.69214, + 32.605953 + ], + [ + 111.713593, + 32.60656 + ], + [ + 111.729258, + 32.594011 + ], + [ + 111.740331, + 32.589253 + ], + [ + 111.747377, + 32.577612 + ], + [ + 111.766817, + 32.56521 + ], + [ + 111.785061, + 32.557312 + ], + [ + 111.809157, + 32.536704 + ], + [ + 111.827024, + 32.538071 + ], + [ + 111.828219, + 32.531285 + ], + [ + 111.858291, + 32.528702 + ], + [ + 111.862758, + 32.513609 + ], + [ + 111.870245, + 32.506315 + ], + [ + 111.889936, + 32.503174 + ], + [ + 111.915353, + 32.507733 + ], + [ + 111.932339, + 32.51523 + ], + [ + 111.948696, + 32.517003 + ], + [ + 111.956434, + 32.512292 + ], + [ + 111.966815, + 32.494916 + ], + [ + 111.977384, + 32.471151 + ], + [ + 111.992861, + 32.467351 + ], + [ + 111.990407, + 32.457468 + ], + [ + 112.001102, + 32.459444 + ], + [ + 112.007079, + 32.45103 + ], + [ + 112.014377, + 32.450321 + ], + [ + 112.032495, + 32.462435 + ], + [ + 112.038095, + 32.470087 + ], + [ + 112.047972, + 32.473736 + ], + [ + 112.064014, + 32.474243 + ], + [ + 112.069865, + 32.460002 + ], + [ + 112.065965, + 32.444643 + ], + [ + 112.07515, + 32.436887 + ], + [ + 112.086034, + 32.435316 + ], + [ + 112.081315, + 32.425682 + ], + [ + 112.084398, + 32.419699 + ], + [ + 112.093646, + 32.418888 + ], + [ + 112.108431, + 32.40474 + ], + [ + 112.12441, + 32.398755 + ], + [ + 112.130261, + 32.403117 + ], + [ + 112.13737, + 32.390589 + ], + [ + 112.156873, + 32.377096 + ], + [ + 112.164485, + 32.385314 + ], + [ + 112.150645, + 32.384198 + ], + [ + 112.161717, + 32.399313 + ], + [ + 112.146555, + 32.403117 + ], + [ + 112.150204, + 32.411637 + ], + [ + 112.164674, + 32.411282 + ], + [ + 112.172475, + 32.405906 + ], + [ + 112.172161, + 32.39835 + ], + [ + 112.178829, + 32.392111 + ], + [ + 112.17279, + 32.385162 + ], + [ + 112.205882, + 32.392973 + ], + [ + 112.229033, + 32.385365 + ], + [ + 112.230921, + 32.377451 + ], + [ + 112.251619, + 32.368116 + ], + [ + 112.255394, + 32.359745 + ], + [ + 112.261999, + 32.358882 + ], + [ + 112.288297, + 32.345587 + ], + [ + 112.299495, + 32.334929 + ], + [ + 112.32812, + 32.321682 + ], + [ + 112.329819, + 32.338178 + ], + [ + 112.338627, + 32.34853 + ], + [ + 112.351146, + 32.350459 + ], + [ + 112.360017, + 32.36563 + ], + [ + 112.368195, + 32.367913 + ], + [ + 112.38795, + 32.363702 + ], + [ + 112.39097, + 32.37116 + ], + [ + 112.414184, + 32.363195 + ], + [ + 112.417519, + 32.357005 + ], + [ + 112.450422, + 32.342847 + ], + [ + 112.445515, + 32.355584 + ], + [ + 112.460236, + 32.368269 + ], + [ + 112.472756, + 32.371769 + ], + [ + 112.477222, + 32.380799 + ], + [ + 112.495656, + 32.374915 + ], + [ + 112.506539, + 32.380749 + ], + [ + 112.521638, + 32.383082 + ], + [ + 112.531201, + 32.377147 + ], + [ + 112.544727, + 32.395509 + ], + [ + 112.545231, + 32.403878 + ], + [ + 112.561714, + 32.398907 + ], + [ + 112.577819, + 32.387952 + ], + [ + 112.57719, + 32.382524 + ], + [ + 112.58908, + 32.381307 + ], + [ + 112.59663, + 32.385568 + ], + [ + 112.61198, + 32.387039 + ], + [ + 112.630477, + 32.379937 + ], + [ + 112.645513, + 32.368472 + ], + [ + 112.672062, + 32.368116 + ], + [ + 112.685651, + 32.357715 + ], + [ + 112.713647, + 32.35259 + ], + [ + 112.719183, + 32.361774 + ], + [ + 112.73359, + 32.366239 + ], + [ + 112.734911, + 32.351677 + ], + [ + 112.754099, + 32.342847 + ], + [ + 112.767877, + 32.344166 + ], + [ + 112.77637, + 32.358375 + ], + [ + 112.804052, + 32.372277 + ], + [ + 112.835634, + 32.381611 + ], + [ + 112.860736, + 32.395814 + ], + [ + 112.870487, + 32.397842 + ], + [ + 112.878603, + 32.392567 + ], + [ + 112.877219, + 32.379531 + ], + [ + 112.888857, + 32.376792 + ], + [ + 112.902384, + 32.388662 + ], + [ + 112.911883, + 32.390741 + ], + [ + 112.948184, + 32.388256 + ], + [ + 112.960389, + 32.385314 + ], + [ + 112.969888, + 32.37116 + ], + [ + 112.98807, + 32.372327 + ], + [ + 112.991908, + 32.378314 + ], + [ + 112.988636, + 32.399567 + ], + [ + 113.00059, + 32.416758 + ], + [ + 113.012543, + 32.417164 + ], + [ + 113.025314, + 32.424618 + ], + [ + 113.05029, + 32.417925 + ], + [ + 113.058846, + 32.404638 + ], + [ + 113.078915, + 32.394393 + ], + [ + 113.107981, + 32.398502 + ], + [ + 113.118739, + 32.375828 + ], + [ + 113.150258, + 32.376284 + ], + [ + 113.155606, + 32.380749 + ], + [ + 113.159695, + 32.400784 + ], + [ + 113.159129, + 32.410673 + ], + [ + 113.172718, + 32.42117 + ], + [ + 113.185678, + 32.42188 + ], + [ + 113.211786, + 32.431969 + ], + [ + 113.226508, + 32.42548 + ], + [ + 113.236322, + 32.406971 + ], + [ + 113.259537, + 32.390589 + ], + [ + 113.273189, + 32.384756 + ], + [ + 113.295397, + 32.367406 + ], + [ + 113.298731, + 32.35396 + ], + [ + 113.325217, + 32.346602 + ], + [ + 113.333333, + 32.335945 + ], + [ + 113.31773, + 32.327012 + ], + [ + 113.31836, + 32.319042 + ], + [ + 113.332074, + 32.316098 + ], + [ + 113.347677, + 32.298633 + ], + [ + 113.365166, + 32.294774 + ], + [ + 113.376679, + 32.298379 + ], + [ + 113.394106, + 32.288072 + ], + [ + 113.397944, + 32.279286 + ], + [ + 113.410023, + 32.278017 + ], + [ + 113.420466, + 32.269535 + ], + [ + 113.428834, + 32.270551 + ], + [ + 113.471048, + 32.299141 + ], + [ + 113.480296, + 32.298989 + ], + [ + 113.500239, + 32.312697 + ], + [ + 113.511689, + 32.316809 + ], + [ + 113.528738, + 32.330362 + ], + [ + 113.542013, + 32.326809 + ], + [ + 113.550066, + 32.328737 + ], + [ + 113.547675, + 32.316047 + ], + [ + 113.55082, + 32.302543 + ], + [ + 113.561516, + 32.307366 + ], + [ + 113.556608, + 32.324169 + ], + [ + 113.551261, + 32.329245 + ], + [ + 113.565227, + 32.340208 + ], + [ + 113.583032, + 32.34305 + ], + [ + 113.579194, + 32.355229 + ], + [ + 113.589637, + 32.349495 + ], + [ + 113.605617, + 32.35056 + ], + [ + 113.593286, + 32.358578 + ], + [ + 113.593727, + 32.365275 + ], + [ + 113.604233, + 32.365174 + ], + [ + 113.611845, + 32.35873 + ], + [ + 113.624994, + 32.363601 + ], + [ + 113.624617, + 32.37948 + ], + [ + 113.63657, + 32.385923 + ], + [ + 113.643302, + 32.402559 + ], + [ + 113.651228, + 32.413412 + ], + [ + 113.662741, + 32.410115 + ], + [ + 113.665006, + 32.422235 + ], + [ + 113.67199, + 32.41762 + ], + [ + 113.683817, + 32.420206 + ], + [ + 113.6908, + 32.415846 + ], + [ + 113.702187, + 32.420206 + ], + [ + 113.70785, + 32.410318 + ], + [ + 113.718608, + 32.417215 + ], + [ + 113.710555, + 32.421221 + ], + [ + 113.725339, + 32.436025 + ], + [ + 113.730875, + 32.449307 + ], + [ + 113.730498, + 32.46061 + ], + [ + 113.73767, + 32.453362 + ], + [ + 113.741319, + 32.465374 + ], + [ + 113.753398, + 32.465425 + ], + [ + 113.761828, + 32.470645 + ], + [ + 113.764219, + 32.489951 + ], + [ + 113.759375, + 32.508797 + ], + [ + 113.768245, + 32.534425 + ], + [ + 113.774285, + 32.537362 + ], + [ + 113.763212, + 32.547895 + ], + [ + 113.769126, + 32.559287 + ], + [ + 113.782023, + 32.566172 + ], + [ + 113.789698, + 32.586368 + ], + [ + 113.805301, + 32.597705 + ], + [ + 113.814423, + 32.600842 + ], + [ + 113.809264, + 32.603828 + ], + [ + 113.799072, + 32.620879 + ], + [ + 113.785169, + 32.631402 + ], + [ + 113.791963, + 32.642075 + ], + [ + 113.781079, + 32.652595 + ], + [ + 113.771894, + 32.655276 + ], + [ + 113.761199, + 32.652697 + ], + [ + 113.729114, + 32.669688 + ], + [ + 113.717727, + 32.683694 + ], + [ + 113.696274, + 32.695624 + ], + [ + 113.668404, + 32.692389 + ], + [ + 113.649089, + 32.708261 + ], + [ + 113.642987, + 32.703106 + ], + [ + 113.623358, + 32.706138 + ], + [ + 113.614676, + 32.711344 + ], + [ + 113.609832, + 32.696484 + ], + [ + 113.616941, + 32.69158 + ], + [ + 113.619332, + 32.667362 + ], + [ + 113.594041, + 32.661092 + ], + [ + 113.596243, + 32.649763 + ], + [ + 113.588882, + 32.650421 + ], + [ + 113.583535, + 32.633577 + ], + [ + 113.571582, + 32.624775 + ], + [ + 113.565416, + 32.602715 + ], + [ + 113.542264, + 32.589152 + ], + [ + 113.524397, + 32.593505 + ], + [ + 113.513513, + 32.579384 + ], + [ + 113.512759, + 32.571538 + ], + [ + 113.492752, + 32.567741 + ], + [ + 113.472621, + 32.578574 + ], + [ + 113.458843, + 32.575689 + ], + [ + 113.458528, + 32.585508 + ], + [ + 113.447393, + 32.584698 + ], + [ + 113.437893, + 32.589203 + ], + [ + 113.422354, + 32.605245 + ], + [ + 113.400712, + 32.61324 + ], + [ + 113.382216, + 32.593353 + ], + [ + 113.372024, + 32.576245 + ], + [ + 113.364537, + 32.569462 + ], + [ + 113.351577, + 32.573664 + ], + [ + 113.342832, + 32.567893 + ], + [ + 113.326349, + 32.577561 + ], + [ + 113.321631, + 32.58733 + ], + [ + 113.315717, + 32.587988 + ], + [ + 113.31037, + 32.579536 + ], + [ + 113.303135, + 32.586723 + ], + [ + 113.282311, + 32.591986 + ], + [ + 113.280486, + 32.595984 + ], + [ + 113.249785, + 32.593555 + ], + [ + 113.243871, + 32.578827 + ], + [ + 113.221286, + 32.570424 + ], + [ + 113.205432, + 32.569969 + ], + [ + 113.198575, + 32.579536 + ], + [ + 113.200651, + 32.585103 + ], + [ + 113.196121, + 32.606156 + ], + [ + 113.201783, + 32.614504 + ], + [ + 113.20279, + 32.632262 + ], + [ + 113.19222, + 32.635398 + ], + [ + 113.186181, + 32.646476 + ], + [ + 113.18788, + 32.652241 + ], + [ + 113.20172, + 32.660333 + ], + [ + 113.210276, + 32.678941 + ], + [ + 113.220594, + 32.684452 + ], + [ + 113.236196, + 32.679143 + ], + [ + 113.243305, + 32.66984 + ], + [ + 113.252679, + 32.666907 + ], + [ + 113.258467, + 32.653961 + ], + [ + 113.269351, + 32.662053 + ], + [ + 113.259914, + 32.677778 + ], + [ + 113.236259, + 32.682581 + ], + [ + 113.241103, + 32.691429 + ], + [ + 113.231226, + 32.701488 + ], + [ + 113.213736, + 32.703055 + ], + [ + 113.207697, + 32.717257 + ], + [ + 113.191528, + 32.717712 + ], + [ + 113.193982, + 32.733378 + ], + [ + 113.201343, + 32.738835 + ], + [ + 113.199959, + 32.750253 + ], + [ + 113.177247, + 32.775307 + ], + [ + 113.185237, + 32.788286 + ], + [ + 113.184294, + 32.801364 + ], + [ + 113.17838, + 32.806665 + ], + [ + 113.187062, + 32.819943 + ], + [ + 113.175737, + 32.83241 + ], + [ + 113.165797, + 32.838063 + ], + [ + 113.167999, + 32.847046 + ], + [ + 113.177059, + 32.852446 + ], + [ + 113.187062, + 32.866422 + ], + [ + 113.195681, + 32.871871 + ], + [ + 113.205558, + 32.884937 + ], + [ + 113.201154, + 32.888821 + ], + [ + 113.208137, + 32.916408 + ], + [ + 113.199015, + 32.920291 + ], + [ + 113.181714, + 32.920644 + ], + [ + 113.161897, + 32.92745 + ], + [ + 113.15592, + 32.936122 + ], + [ + 113.145854, + 32.940306 + ], + [ + 113.140129, + 32.930627 + ], + [ + 113.11553, + 32.932996 + ], + [ + 113.109805, + 32.94202 + ], + [ + 113.097789, + 32.946406 + ], + [ + 113.108799, + 32.97332 + ], + [ + 113.116097, + 32.986421 + ], + [ + 113.120312, + 33.001182 + ], + [ + 113.127358, + 33.010552 + ], + [ + 113.142016, + 33.016647 + ], + [ + 113.161456, + 33.038906 + ], + [ + 113.165546, + 33.048977 + ], + [ + 113.18574, + 33.056932 + ], + [ + 113.190019, + 33.067202 + ], + [ + 113.206124, + 33.070826 + ], + [ + 113.219273, + 33.064584 + ], + [ + 113.237077, + 33.077017 + ], + [ + 113.250477, + 33.077822 + ], + [ + 113.257335, + 33.083409 + ], + [ + 113.271427, + 33.08049 + ], + [ + 113.301436, + 33.080138 + ], + [ + 113.313138, + 33.075608 + ], + [ + 113.325469, + 33.079181 + ], + [ + 113.333836, + 33.085976 + ], + [ + 113.357239, + 33.091613 + ], + [ + 113.386619, + 33.113451 + ], + [ + 113.388821, + 33.128393 + ], + [ + 113.379888, + 33.135485 + ], + [ + 113.385424, + 33.145595 + ], + [ + 113.382467, + 33.156156 + ], + [ + 113.385802, + 33.169381 + ], + [ + 113.370136, + 33.182855 + ], + [ + 113.377875, + 33.184313 + ], + [ + 113.384417, + 33.196679 + ], + [ + 113.384103, + 33.206128 + ], + [ + 113.391212, + 33.225928 + ], + [ + 113.402851, + 33.235224 + ], + [ + 113.400146, + 33.261044 + ], + [ + 113.384732, + 33.29203 + ], + [ + 113.388318, + 33.299059 + ], + [ + 113.403857, + 33.302724 + ], + [ + 113.400838, + 33.314722 + ], + [ + 113.40738, + 33.323004 + ], + [ + 113.400397, + 33.335852 + ], + [ + 113.363908, + 33.342476 + ], + [ + 113.335472, + 33.35201 + ], + [ + 113.312194, + 33.341121 + ], + [ + 113.302632, + 33.348999 + ], + [ + 113.289923, + 33.351709 + ], + [ + 113.277089, + 33.350254 + ], + [ + 113.270609, + 33.358834 + ], + [ + 113.257964, + 33.366158 + ], + [ + 113.245004, + 33.365356 + ], + [ + 113.241418, + 33.373733 + ], + [ + 113.230534, + 33.374937 + ], + [ + 113.230912, + 33.38848 + ], + [ + 113.216316, + 33.398861 + ], + [ + 113.198134, + 33.420523 + ], + [ + 113.192975, + 33.429797 + ], + [ + 113.176052, + 33.435713 + ], + [ + 113.156109, + 33.433607 + ], + [ + 113.141765, + 33.425987 + ], + [ + 113.128742, + 33.427642 + ], + [ + 113.125659, + 33.439723 + ], + [ + 113.110309, + 33.446138 + ], + [ + 113.074826, + 33.448444 + ], + [ + 113.045698, + 33.439472 + ], + [ + 113.041357, + 33.44659 + ], + [ + 113.037897, + 33.464331 + ], + [ + 113.041168, + 33.473701 + ], + [ + 113.053373, + 33.485725 + ], + [ + 113.049221, + 33.492087 + ], + [ + 113.048214, + 33.508317 + ], + [ + 113.04381, + 33.517532 + ], + [ + 113.047333, + 33.532204 + ], + [ + 113.036261, + 33.539865 + ], + [ + 113.036701, + 33.546974 + ], + [ + 113.027642, + 33.546874 + ], + [ + 113.022861, + 33.56119 + ], + [ + 112.997255, + 33.569399 + ], + [ + 112.990775, + 33.567797 + ], + [ + 112.986497, + 33.575805 + ], + [ + 112.972908, + 33.584613 + ], + [ + 112.963597, + 33.583662 + ], + [ + 112.950134, + 33.590968 + ], + [ + 112.94271, + 33.607629 + ], + [ + 112.917545, + 33.605627 + ], + [ + 112.893513, + 33.616133 + ], + [ + 112.887914, + 33.608329 + ], + [ + 112.869669, + 33.611531 + ], + [ + 112.854822, + 33.603626 + ], + [ + 112.85262, + 33.584413 + ], + [ + 112.845637, + 33.578107 + ], + [ + 112.82022, + 33.574804 + ], + [ + 112.81179, + 33.580309 + ], + [ + 112.783668, + 33.567747 + ], + [ + 112.773413, + 33.56079 + ], + [ + 112.760076, + 33.571751 + ], + [ + 112.750387, + 33.571151 + ], + [ + 112.743215, + 33.578858 + ], + [ + 112.725411, + 33.586765 + ], + [ + 112.70572, + 33.585263 + ], + [ + 112.689174, + 33.587165 + ], + [ + 112.683889, + 33.591718 + ], + [ + 112.664386, + 33.597673 + ], + [ + 112.660234, + 33.605377 + ], + [ + 112.646205, + 33.602876 + ], + [ + 112.63444, + 33.594821 + ], + [ + 112.617705, + 33.597272 + ], + [ + 112.611351, + 33.601875 + ], + [ + 112.610785, + 33.611431 + ], + [ + 112.599775, + 33.618084 + ], + [ + 112.588388, + 33.616883 + ], + [ + 112.575995, + 33.602275 + ], + [ + 112.556869, + 33.588166 + ], + [ + 112.548502, + 33.59367 + ], + [ + 112.529943, + 33.587915 + ], + [ + 112.522771, + 33.595521 + ], + [ + 112.524721, + 33.603826 + ], + [ + 112.503394, + 33.622185 + ], + [ + 112.493202, + 33.63899 + ], + [ + 112.477159, + 33.63764 + ], + [ + 112.461683, + 33.63994 + ], + [ + 112.453756, + 33.645291 + ], + [ + 112.420727, + 33.676389 + ], + [ + 112.408019, + 33.675439 + ], + [ + 112.392479, + 33.666991 + ], + [ + 112.375116, + 33.666891 + ], + [ + 112.361086, + 33.661242 + ], + [ + 112.353285, + 33.669941 + ], + [ + 112.332839, + 33.668391 + ], + [ + 112.312455, + 33.684887 + ], + [ + 112.306541, + 33.69978 + ], + [ + 112.278168, + 33.712373 + ], + [ + 112.258854, + 33.710624 + ], + [ + 112.249354, + 33.719018 + ], + [ + 112.239917, + 33.715321 + ], + [ + 112.230103, + 33.71702 + ], + [ + 112.214752, + 33.713972 + ], + [ + 112.184995, + 33.698731 + ], + [ + 112.179207, + 33.703278 + ], + [ + 112.17776, + 33.715621 + ], + [ + 112.168638, + 33.721766 + ], + [ + 112.158509, + 33.720117 + ], + [ + 112.15033, + 33.713672 + ], + [ + 112.141774, + 33.691634 + ], + [ + 112.13089, + 33.676939 + ], + [ + 112.120573, + 33.668841 + ], + [ + 112.104719, + 33.661392 + ], + [ + 112.074018, + 33.653142 + ], + [ + 112.071312, + 33.648192 + ], + [ + 112.076345, + 33.633689 + ], + [ + 112.084146, + 33.628988 + ], + [ + 112.092199, + 33.607228 + ], + [ + 112.087481, + 33.603076 + ], + [ + 112.065713, + 33.607479 + ], + [ + 112.059044, + 33.605227 + ], + [ + 112.038535, + 33.622386 + ], + [ + 112.024757, + 33.622436 + ], + [ + 112.014943, + 33.613632 + ], + [ + 112.012301, + 33.602626 + ], + [ + 112.018655, + 33.59437 + ], + [ + 112.024191, + 33.600024 + ], + [ + 112.028343, + 33.593019 + ], + [ + 112.020353, + 33.587715 + ], + [ + 111.994182, + 33.584913 + ], + [ + 111.930137, + 33.571051 + ], + [ + 111.916359, + 33.572102 + ], + [ + 111.899184, + 33.588666 + ], + [ + 111.884526, + 33.596121 + ], + [ + 111.863953, + 33.599174 + ], + [ + 111.843444, + 33.595821 + ], + [ + 111.832749, + 33.598723 + ], + [ + 111.827716, + 33.606228 + ], + [ + 111.82759, + 33.634189 + ], + [ + 111.819411, + 33.652892 + ], + [ + 111.778078, + 33.666091 + ], + [ + 111.728629, + 33.688086 + ], + [ + 111.719003, + 33.688885 + ], + [ + 111.684968, + 33.677489 + ], + [ + 111.665151, + 33.695582 + ], + [ + 111.645207, + 33.720517 + ], + [ + 111.619476, + 33.730059 + ], + [ + 111.59148, + 33.727711 + ], + [ + 111.567699, + 33.735005 + ], + [ + 111.541402, + 33.733406 + ], + [ + 111.523975, + 33.742847 + ], + [ + 111.516048, + 33.7405 + ], + [ + 111.495476, + 33.725663 + ], + [ + 111.484529, + 33.726462 + ], + [ + 111.469808, + 33.738052 + ], + [ + 111.4342, + 33.747742 + ], + [ + 111.398906, + 33.768168 + ], + [ + 111.390035, + 33.771264 + ], + [ + 111.348387, + 33.764822 + ], + [ + 111.336245, + 33.768317 + ], + [ + 111.322467, + 33.762974 + ], + [ + 111.315044, + 33.764073 + ], + [ + 111.304223, + 33.775008 + ], + [ + 111.288558, + 33.779702 + ], + [ + 111.270816, + 33.781699 + ], + [ + 111.260813, + 33.796775 + ], + [ + 111.240367, + 33.796925 + ], + [ + 111.234831, + 33.801268 + ], + [ + 111.222437, + 33.797574 + ], + [ + 111.208533, + 33.781948 + ], + [ + 111.196077, + 33.757731 + ], + [ + 111.194441, + 33.745494 + ], + [ + 111.197209, + 33.732207 + ], + [ + 111.195196, + 33.713272 + ], + [ + 111.186199, + 33.704128 + ], + [ + 111.181292, + 33.686886 + ], + [ + 111.170471, + 33.682138 + ], + [ + 111.151598, + 33.684787 + ], + [ + 111.141406, + 33.678739 + ], + [ + 111.133164, + 33.678939 + ], + [ + 111.140273, + 33.661292 + ], + [ + 111.146439, + 33.658592 + ], + [ + 111.152101, + 33.645441 + ], + [ + 111.143922, + 33.633189 + ], + [ + 111.134674, + 33.627437 + ], + [ + 111.133982, + 33.612381 + ], + [ + 111.123224, + 33.598623 + ], + [ + 111.114542, + 33.578758 + ], + [ + 111.102903, + 33.573903 + ], + [ + 111.089126, + 33.563743 + ], + [ + 111.070063, + 33.566346 + ], + [ + 111.058425, + 33.555534 + ], + [ + 111.025144, + 33.550578 + ], + [ + 111.009982, + 33.56054 + ] + ] + ], + [ + [ + [ + 111.033889, + 33.178029 + ], + [ + 111.037789, + 33.184816 + ], + [ + 111.032064, + 33.188686 + ], + [ + 111.015833, + 33.174057 + ], + [ + 111.033889, + 33.178029 + ] + ] + ], + [ + [ + [ + 112.734093, + 32.356751 + ], + [ + 112.730885, + 32.363144 + ], + [ + 112.723021, + 32.360962 + ], + [ + 112.734093, + 32.356751 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411400, + "name": "鍟嗕笜甯�", + "center": [ + 115.650497, + 34.437054 + ], + "centroid": [ + 115.702245, + 34.28898 + ], + "childrenNum": 9, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 13, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 115.653601, + 34.060084 + ], + [ + 115.66914, + 34.0567 + ], + [ + 115.681848, + 34.065508 + ], + [ + 115.698205, + 34.066403 + ], + [ + 115.706007, + 34.059835 + ], + [ + 115.735827, + 34.076852 + ], + [ + 115.768856, + 34.062174 + ], + [ + 115.781438, + 34.062223 + ], + [ + 115.780243, + 34.073121 + ], + [ + 115.793455, + 34.063666 + ], + [ + 115.80912, + 34.062472 + ], + [ + 115.815537, + 34.052867 + ], + [ + 115.832209, + 34.038533 + ], + [ + 115.845231, + 34.030867 + ], + [ + 115.845483, + 34.012048 + ], + [ + 115.852718, + 34.003832 + ], + [ + 115.877065, + 34.003135 + ], + [ + 115.876751, + 34.028826 + ], + [ + 115.887257, + 34.032759 + ], + [ + 115.89531, + 34.028727 + ], + [ + 115.899336, + 34.014737 + ], + [ + 115.904369, + 34.009957 + ], + [ + 115.919783, + 34.010803 + ], + [ + 115.926703, + 34.007865 + ], + [ + 115.957593, + 34.007716 + ], + [ + 115.967596, + 34.002089 + ], + [ + 115.984016, + 33.987846 + ], + [ + 115.994963, + 33.975095 + ], + [ + 116.00031, + 33.963238 + ], + [ + 115.995529, + 33.947593 + ], + [ + 115.982695, + 33.917192 + ], + [ + 115.987036, + 33.901189 + ], + [ + 115.999178, + 33.901937 + ], + [ + 116.012515, + 33.8974 + ], + [ + 116.013459, + 33.885732 + ], + [ + 116.034535, + 33.880047 + ], + [ + 116.059196, + 33.860945 + ], + [ + 116.056743, + 33.850919 + ], + [ + 116.06511, + 33.847477 + ], + [ + 116.063474, + 33.826222 + ], + [ + 116.045922, + 33.829016 + ], + [ + 116.045418, + 33.822978 + ], + [ + 116.058064, + 33.821381 + ], + [ + 116.062342, + 33.814494 + ], + [ + 116.055421, + 33.804812 + ], + [ + 116.073351, + 33.79403 + ], + [ + 116.074421, + 33.781549 + ], + [ + 116.099083, + 33.783097 + ], + [ + 116.098894, + 33.774859 + ], + [ + 116.109274, + 33.75818 + ], + [ + 116.131671, + 33.752237 + ], + [ + 116.155389, + 33.709924 + ], + [ + 116.174074, + 33.709025 + ], + [ + 116.197289, + 33.725363 + ], + [ + 116.204964, + 33.726812 + ], + [ + 116.226669, + 33.722466 + ], + [ + 116.230192, + 33.734855 + ], + [ + 116.246046, + 33.72871 + ], + [ + 116.263598, + 33.730059 + ], + [ + 116.284674, + 33.75009 + ], + [ + 116.30814, + 33.757581 + ], + [ + 116.316822, + 33.771313 + ], + [ + 116.328712, + 33.76637 + ], + [ + 116.330663, + 33.77386 + ], + [ + 116.348718, + 33.778753 + ], + [ + 116.361049, + 33.776307 + ], + [ + 116.372499, + 33.780251 + ], + [ + 116.393701, + 33.783097 + ], + [ + 116.408234, + 33.80551 + ], + [ + 116.42176, + 33.796076 + ], + [ + 116.432581, + 33.795328 + ], + [ + 116.436984, + 33.803065 + ], + [ + 116.43365, + 33.812099 + ], + [ + 116.437362, + 33.846529 + ], + [ + 116.453027, + 33.846928 + ], + [ + 116.460199, + 33.859948 + ], + [ + 116.473977, + 33.861294 + ], + [ + 116.484861, + 33.869774 + ], + [ + 116.50191, + 33.864686 + ], + [ + 116.505307, + 33.872317 + ], + [ + 116.521224, + 33.87107 + ], + [ + 116.525187, + 33.880496 + ], + [ + 116.536889, + 33.882291 + ], + [ + 116.53928, + 33.874212 + ], + [ + 116.546641, + 33.882541 + ], + [ + 116.558405, + 33.881493 + ], + [ + 116.555071, + 33.888275 + ], + [ + 116.558342, + 33.901688 + ], + [ + 116.567024, + 33.908219 + ], + [ + 116.58162, + 33.908318 + ], + [ + 116.597096, + 33.904131 + ], + [ + 116.611818, + 33.894658 + ], + [ + 116.627294, + 33.888624 + ], + [ + 116.642708, + 33.892464 + ], + [ + 116.638492, + 33.917192 + ], + [ + 116.64579, + 33.929902 + ], + [ + 116.640002, + 33.948889 + ], + [ + 116.65032, + 33.959103 + ], + [ + 116.648055, + 33.973351 + ], + [ + 116.633522, + 33.977087 + ], + [ + 116.629936, + 33.98406 + ], + [ + 116.607225, + 33.999898 + ], + [ + 116.607414, + 34.007119 + ], + [ + 116.600431, + 34.011749 + ], + [ + 116.604079, + 34.023201 + ], + [ + 116.596593, + 34.038583 + ], + [ + 116.587408, + 34.04575 + ], + [ + 116.57061, + 34.070981 + ], + [ + 116.566898, + 34.083768 + ], + [ + 116.557965, + 34.097796 + ], + [ + 116.539657, + 34.103466 + ], + [ + 116.541482, + 34.109932 + ], + [ + 116.528018, + 34.122862 + ], + [ + 116.534624, + 34.126591 + ], + [ + 116.536008, + 34.151002 + ], + [ + 116.545886, + 34.161043 + ], + [ + 116.565514, + 34.169542 + ], + [ + 116.5596, + 34.186488 + ], + [ + 116.546263, + 34.194686 + ], + [ + 116.542677, + 34.218879 + ], + [ + 116.547144, + 34.228167 + ], + [ + 116.543621, + 34.239539 + ], + [ + 116.553938, + 34.241923 + ], + [ + 116.567653, + 34.251258 + ], + [ + 116.582312, + 34.266499 + ], + [ + 116.582438, + 34.275236 + ], + [ + 116.566458, + 34.284369 + ], + [ + 116.51185, + 34.296478 + ], + [ + 116.490145, + 34.29092 + ], + [ + 116.466302, + 34.271166 + ], + [ + 116.456865, + 34.26913 + ], + [ + 116.448623, + 34.280348 + ], + [ + 116.452775, + 34.286552 + ], + [ + 116.445792, + 34.288141 + ], + [ + 116.430693, + 34.278065 + ], + [ + 116.43321, + 34.270123 + ], + [ + 116.416223, + 34.268237 + ], + [ + 116.406094, + 34.276527 + ], + [ + 116.393952, + 34.276129 + ], + [ + 116.37596, + 34.271315 + ], + [ + 116.372248, + 34.266102 + ], + [ + 116.363251, + 34.276229 + ], + [ + 116.37338, + 34.293947 + ], + [ + 116.365013, + 34.312406 + ], + [ + 116.357652, + 34.319798 + ], + [ + 116.329656, + 34.32972 + ], + [ + 116.301597, + 34.34212 + ], + [ + 116.288826, + 34.358932 + ], + [ + 116.276747, + 34.360419 + ], + [ + 116.270833, + 34.370733 + ], + [ + 116.255608, + 34.376484 + ], + [ + 116.23988, + 34.37455 + ], + [ + 116.213583, + 34.382235 + ], + [ + 116.209934, + 34.390216 + ], + [ + 116.217043, + 34.395569 + ], + [ + 116.215911, + 34.40335 + ], + [ + 116.205278, + 34.41569 + ], + [ + 116.179233, + 34.430505 + ], + [ + 116.174955, + 34.444674 + ], + [ + 116.162058, + 34.459385 + ], + [ + 116.178855, + 34.483551 + ], + [ + 116.178604, + 34.496028 + ], + [ + 116.189487, + 34.497067 + ], + [ + 116.203957, + 34.508651 + ], + [ + 116.203831, + 34.518748 + ], + [ + 116.190997, + 34.535673 + ], + [ + 116.196345, + 34.555661 + ], + [ + 116.197037, + 34.575942 + ], + [ + 116.190117, + 34.570501 + ], + [ + 116.156647, + 34.553732 + ], + [ + 116.146896, + 34.553188 + ], + [ + 116.134565, + 34.559718 + ], + [ + 116.124814, + 34.572331 + ], + [ + 116.117893, + 34.58974 + ], + [ + 116.101284, + 34.60581 + ], + [ + 116.082662, + 34.608331 + ], + [ + 116.055107, + 34.595426 + ], + [ + 116.037554, + 34.593053 + ], + [ + 116.023902, + 34.601953 + ], + [ + 116.010187, + 34.615845 + ], + [ + 116.001568, + 34.619009 + ], + [ + 115.991377, + 34.615351 + ], + [ + 115.984771, + 34.607243 + ], + [ + 115.984016, + 34.589295 + ], + [ + 115.969987, + 34.582619 + ], + [ + 115.946206, + 34.581629 + ], + [ + 115.858317, + 34.569957 + ], + [ + 115.849698, + 34.565604 + ], + [ + 115.838122, + 34.567781 + ], + [ + 115.838814, + 34.560559 + ], + [ + 115.827427, + 34.558283 + ], + [ + 115.795971, + 34.578464 + ], + [ + 115.762061, + 34.587712 + ], + [ + 115.724503, + 34.589196 + ], + [ + 115.71148, + 34.59869 + ], + [ + 115.699086, + 34.598838 + ], + [ + 115.697325, + 34.569017 + ], + [ + 115.684428, + 34.555612 + ], + [ + 115.669455, + 34.556948 + ], + [ + 115.643598, + 34.567731 + ], + [ + 115.639508, + 34.57154 + ], + [ + 115.621893, + 34.574755 + ], + [ + 115.61038, + 34.572084 + ], + [ + 115.585215, + 34.570996 + ], + [ + 115.561183, + 34.572232 + ], + [ + 115.554765, + 34.569067 + ], + [ + 115.535137, + 34.573321 + ], + [ + 115.515634, + 34.582619 + ], + [ + 115.491602, + 34.606996 + ], + [ + 115.479019, + 34.62588 + ], + [ + 115.461404, + 34.637248 + ], + [ + 115.458132, + 34.656175 + ], + [ + 115.444732, + 34.674504 + ], + [ + 115.44706, + 34.698608 + ], + [ + 115.444921, + 34.710311 + ], + [ + 115.433848, + 34.725074 + ], + [ + 115.437308, + 34.734306 + ], + [ + 115.449324, + 34.744277 + ], + [ + 115.436553, + 34.776797 + ], + [ + 115.436113, + 34.785037 + ], + [ + 115.426802, + 34.805409 + ], + [ + 115.413842, + 34.807826 + ], + [ + 115.41617, + 34.8133 + ], + [ + 115.408557, + 34.825924 + ], + [ + 115.394025, + 34.831792 + ], + [ + 115.37924, + 34.828784 + ], + [ + 115.356969, + 34.837314 + ], + [ + 115.346022, + 34.846188 + ], + [ + 115.329602, + 34.851463 + ], + [ + 115.317146, + 34.859201 + ], + [ + 115.302361, + 34.858807 + ], + [ + 115.28959, + 34.85161 + ], + [ + 115.267445, + 34.853533 + ], + [ + 115.256058, + 34.845301 + ], + [ + 115.267256, + 34.831249 + ], + [ + 115.256561, + 34.81187 + ], + [ + 115.242658, + 34.813497 + ], + [ + 115.253919, + 34.805014 + ], + [ + 115.24832, + 34.798109 + ], + [ + 115.202897, + 34.805656 + ], + [ + 115.198367, + 34.795297 + ], + [ + 115.17899, + 34.800279 + ], + [ + 115.17553, + 34.790463 + ], + [ + 115.163891, + 34.783063 + ], + [ + 115.154455, + 34.78178 + ], + [ + 115.140048, + 34.793324 + ], + [ + 115.119601, + 34.788638 + ], + [ + 115.104125, + 34.772357 + ], + [ + 115.038885, + 34.773985 + ], + [ + 115.030329, + 34.772455 + ], + [ + 115.001012, + 34.760662 + ], + [ + 114.988366, + 34.76456 + ], + [ + 114.980502, + 34.760909 + ], + [ + 114.966913, + 34.761106 + ], + [ + 114.936841, + 34.747041 + ], + [ + 114.922874, + 34.748423 + ], + [ + 114.894375, + 34.762833 + ], + [ + 114.877578, + 34.775219 + ], + [ + 114.867386, + 34.775515 + ], + [ + 114.86682, + 34.769199 + ], + [ + 114.835615, + 34.767472 + ], + [ + 114.829009, + 34.764314 + ], + [ + 114.82838, + 34.755332 + ], + [ + 114.835678, + 34.746893 + ], + [ + 114.859333, + 34.740328 + ], + [ + 114.858767, + 34.734256 + ], + [ + 114.840648, + 34.715101 + ], + [ + 114.855558, + 34.710904 + ], + [ + 114.858012, + 34.692286 + ], + [ + 114.8677, + 34.688038 + ], + [ + 114.891418, + 34.698213 + ], + [ + 114.90765, + 34.697916 + ], + [ + 114.931682, + 34.686804 + ], + [ + 114.936652, + 34.681914 + ], + [ + 114.935771, + 34.672182 + ], + [ + 114.926649, + 34.668625 + ], + [ + 114.905825, + 34.666896 + ], + [ + 114.896451, + 34.661363 + ], + [ + 114.893494, + 34.652469 + ], + [ + 114.901673, + 34.645303 + ], + [ + 114.898339, + 34.631762 + ], + [ + 114.90117, + 34.613769 + ], + [ + 114.897018, + 34.602596 + ], + [ + 114.904882, + 34.586179 + ], + [ + 114.907398, + 34.573865 + ], + [ + 114.906517, + 34.547647 + ], + [ + 114.91501, + 34.548686 + ], + [ + 114.917841, + 34.541957 + ], + [ + 114.91111, + 34.534782 + ], + [ + 114.920673, + 34.531417 + ], + [ + 114.913752, + 34.518154 + ], + [ + 114.917653, + 34.511571 + ], + [ + 114.9096, + 34.495137 + ], + [ + 114.922371, + 34.498206 + ], + [ + 114.918596, + 34.484938 + ], + [ + 114.912305, + 34.483601 + ], + [ + 114.904001, + 34.467606 + ], + [ + 114.896451, + 34.46102 + ], + [ + 114.886322, + 34.461317 + ], + [ + 114.880786, + 34.450519 + ], + [ + 114.872356, + 34.454085 + ], + [ + 114.865624, + 34.462902 + ], + [ + 114.858893, + 34.451906 + ], + [ + 114.856502, + 34.436599 + ], + [ + 114.864806, + 34.433726 + ], + [ + 114.852413, + 34.42887 + ], + [ + 114.854615, + 34.410933 + ], + [ + 114.848575, + 34.409942 + ], + [ + 114.851658, + 34.399534 + ], + [ + 114.874432, + 34.396411 + ], + [ + 114.875061, + 34.390612 + ], + [ + 114.888461, + 34.383771 + ], + [ + 114.879025, + 34.370683 + ], + [ + 114.861724, + 34.367014 + ], + [ + 114.855558, + 34.33473 + ], + [ + 114.862353, + 34.329174 + ], + [ + 114.870783, + 34.305608 + ], + [ + 114.882674, + 34.301192 + ], + [ + 114.901988, + 34.284567 + ], + [ + 114.912179, + 34.281837 + ], + [ + 114.933695, + 34.282135 + ], + [ + 114.940804, + 34.274243 + ], + [ + 114.962258, + 34.261883 + ], + [ + 114.98088, + 34.262975 + ], + [ + 114.986605, + 34.253393 + ], + [ + 114.998558, + 34.250116 + ], + [ + 115.012965, + 34.253393 + ], + [ + 115.041087, + 34.246342 + ], + [ + 115.052474, + 34.224641 + ], + [ + 115.082609, + 34.222555 + ], + [ + 115.093556, + 34.219277 + ], + [ + 115.107207, + 34.208845 + ], + [ + 115.12627, + 34.209441 + ], + [ + 115.11872, + 34.189966 + ], + [ + 115.133127, + 34.170835 + ], + [ + 115.133442, + 34.154234 + ], + [ + 115.127906, + 34.146777 + ], + [ + 115.12671, + 34.133652 + ], + [ + 115.119538, + 34.120475 + ], + [ + 115.126144, + 34.105207 + ], + [ + 115.118217, + 34.098642 + ], + [ + 115.120608, + 34.078196 + ], + [ + 115.116707, + 34.066353 + ], + [ + 115.128661, + 34.064164 + ], + [ + 115.140048, + 34.055854 + ], + [ + 115.13967, + 34.050628 + ], + [ + 115.121363, + 34.02569 + ], + [ + 115.107962, + 34.022703 + ], + [ + 115.083364, + 34.024893 + ], + [ + 115.074241, + 34.022802 + ], + [ + 115.074871, + 34.014438 + ], + [ + 115.083238, + 34.003185 + ], + [ + 115.070089, + 33.990635 + ], + [ + 115.062351, + 33.979329 + ], + [ + 115.065748, + 33.97355 + ], + [ + 115.05801, + 33.95721 + ], + [ + 115.049957, + 33.950035 + ], + [ + 115.050398, + 33.941962 + ], + [ + 115.070026, + 33.935583 + ], + [ + 115.085251, + 33.93354 + ], + [ + 115.107207, + 33.936331 + ], + [ + 115.106453, + 33.94844 + ], + [ + 115.115009, + 33.961096 + ], + [ + 115.124257, + 33.963089 + ], + [ + 115.142375, + 33.958306 + ], + [ + 115.148541, + 33.950184 + ], + [ + 115.176474, + 33.950732 + ], + [ + 115.189497, + 33.958106 + ], + [ + 115.204722, + 33.974447 + ], + [ + 115.195473, + 33.987398 + ], + [ + 115.203778, + 33.988942 + ], + [ + 115.23039, + 33.974148 + ], + [ + 115.240959, + 33.975144 + ], + [ + 115.252283, + 33.982467 + ], + [ + 115.254548, + 33.995117 + ], + [ + 115.252975, + 34.008861 + ], + [ + 115.258449, + 34.015334 + ], + [ + 115.288395, + 34.019516 + ], + [ + 115.295441, + 34.018172 + ], + [ + 115.28959, + 34.003981 + ], + [ + 115.292484, + 33.996163 + ], + [ + 115.312742, + 33.995715 + ], + [ + 115.32092, + 34.004828 + ], + [ + 115.33539, + 34.006969 + ], + [ + 115.349042, + 34.018222 + ], + [ + 115.361813, + 34.01628 + ], + [ + 115.375403, + 34.00677 + ], + [ + 115.402581, + 33.993374 + ], + [ + 115.439573, + 33.986053 + ], + [ + 115.458824, + 33.987099 + ], + [ + 115.462599, + 34.006023 + ], + [ + 115.489274, + 34.017575 + ], + [ + 115.502989, + 34.015434 + ], + [ + 115.513369, + 34.019367 + ], + [ + 115.53023, + 34.018819 + ], + [ + 115.53564, + 34.021757 + ], + [ + 115.547782, + 34.037737 + ], + [ + 115.549921, + 34.047542 + ], + [ + 115.547593, + 34.074414 + ], + [ + 115.543693, + 34.084564 + ], + [ + 115.573702, + 34.086404 + ], + [ + 115.619754, + 34.083171 + ], + [ + 115.627555, + 34.087499 + ], + [ + 115.641962, + 34.084166 + ], + [ + 115.653601, + 34.060084 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411500, + "name": "淇¢槼甯�", + "center": [ + 114.075031, + 32.123274 + ], + "centroid": [ + 114.889128, + 32.080437 + ], + "childrenNum": 10, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 14, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.749057, + 32.272684 + ], + [ + 113.749812, + 32.260291 + ], + [ + 113.739369, + 32.257598 + ], + [ + 113.740438, + 32.242815 + ], + [ + 113.748365, + 32.234788 + ], + [ + 113.752643, + 32.216189 + ], + [ + 113.764659, + 32.204195 + ], + [ + 113.777934, + 32.207956 + ], + [ + 113.783344, + 32.189657 + ], + [ + 113.763716, + 32.161694 + ], + [ + 113.766169, + 32.13835 + ], + [ + 113.750315, + 32.116324 + ], + [ + 113.739872, + 32.113067 + ], + [ + 113.736978, + 32.121564 + ], + [ + 113.722445, + 32.12426 + ], + [ + 113.728359, + 32.09938 + ], + [ + 113.728485, + 32.083197 + ], + [ + 113.744905, + 32.076784 + ], + [ + 113.747421, + 32.06976 + ], + [ + 113.763779, + 32.054743 + ], + [ + 113.781331, + 32.048786 + ], + [ + 113.791271, + 32.036006 + ], + [ + 113.779255, + 32.018895 + ], + [ + 113.769881, + 32.01701 + ], + [ + 113.758934, + 32.000915 + ], + [ + 113.759438, + 31.986447 + ], + [ + 113.768623, + 31.979466 + ], + [ + 113.776109, + 31.980434 + ], + [ + 113.788189, + 31.974014 + ], + [ + 113.798506, + 31.974116 + ], + [ + 113.816247, + 31.96688 + ], + [ + 113.807314, + 31.94889 + ], + [ + 113.805112, + 31.931508 + ], + [ + 113.81631, + 31.923249 + ], + [ + 113.832479, + 31.91866 + ], + [ + 113.835876, + 31.910961 + ], + [ + 113.83531, + 31.892858 + ], + [ + 113.831221, + 31.878985 + ], + [ + 113.838204, + 31.868681 + ], + [ + 113.838644, + 31.854702 + ], + [ + 113.858902, + 31.841078 + ], + [ + 113.867206, + 31.845058 + ], + [ + 113.872931, + 31.84067 + ], + [ + 113.896398, + 31.849344 + ], + [ + 113.906589, + 31.868528 + ], + [ + 113.914957, + 31.876995 + ], + [ + 113.93144, + 31.880974 + ], + [ + 113.933516, + 31.869395 + ], + [ + 113.954906, + 31.856334 + ], + [ + 113.956416, + 31.840262 + ], + [ + 113.946979, + 31.826483 + ], + [ + 113.953019, + 31.813518 + ], + [ + 113.952578, + 31.793864 + ], + [ + 113.96535, + 31.785644 + ], + [ + 113.972333, + 31.771653 + ], + [ + 113.972459, + 31.763124 + ], + [ + 113.978939, + 31.753778 + ], + [ + 113.988753, + 31.750202 + ], + [ + 114.015805, + 31.770274 + ], + [ + 114.038328, + 31.768844 + ], + [ + 114.048079, + 31.773389 + ], + [ + 114.059089, + 31.772266 + ], + [ + 114.063744, + 31.781917 + ], + [ + 114.0723, + 31.784878 + ], + [ + 114.086644, + 31.782223 + ], + [ + 114.089853, + 31.794834 + ], + [ + 114.099164, + 31.803411 + ], + [ + 114.119233, + 31.805759 + ], + [ + 114.127915, + 31.82633 + ], + [ + 114.12716, + 31.835363 + ], + [ + 114.13408, + 31.842813 + ], + [ + 114.15006, + 31.839241 + ], + [ + 114.162768, + 31.841078 + ], + [ + 114.166983, + 31.851028 + ], + [ + 114.180258, + 31.854039 + ], + [ + 114.194979, + 31.850161 + ], + [ + 114.208883, + 31.842762 + ], + [ + 114.221277, + 31.832403 + ], + [ + 114.236439, + 31.841895 + ], + [ + 114.235432, + 31.833372 + ], + [ + 114.248518, + 31.810507 + ], + [ + 114.262044, + 31.796315 + ], + [ + 114.264372, + 31.788503 + ], + [ + 114.287523, + 31.762052 + ], + [ + 114.292808, + 31.752296 + ], + [ + 114.313946, + 31.75199 + ], + [ + 114.321496, + 31.755106 + ], + [ + 114.350373, + 31.755412 + ], + [ + 114.373839, + 31.744277 + ], + [ + 114.390007, + 31.741007 + ], + [ + 114.399822, + 31.746933 + ], + [ + 114.416305, + 31.74208 + ], + [ + 114.419136, + 31.73314 + ], + [ + 114.4309, + 31.734928 + ], + [ + 114.446566, + 31.728031 + ], + [ + 114.450844, + 31.737636 + ], + [ + 114.46135, + 31.733242 + ], + [ + 114.471982, + 31.740956 + ], + [ + 114.488843, + 31.735694 + ], + [ + 114.50866, + 31.740701 + ], + [ + 114.504319, + 31.756433 + ], + [ + 114.509667, + 31.766852 + ], + [ + 114.521305, + 31.766903 + ], + [ + 114.530679, + 31.742897 + ], + [ + 114.545275, + 31.746167 + ], + [ + 114.550308, + 31.753165 + ], + [ + 114.54949, + 31.765422 + ], + [ + 114.554963, + 31.768538 + ], + [ + 114.572768, + 31.762562 + ], + [ + 114.582519, + 31.764758 + ], + [ + 114.587615, + 31.754033 + ], + [ + 114.581575, + 31.74254 + ], + [ + 114.584092, + 31.731863 + ], + [ + 114.579751, + 31.724659 + ], + [ + 114.579122, + 31.708154 + ], + [ + 114.59139, + 31.700335 + ], + [ + 114.586168, + 31.692567 + ], + [ + 114.574215, + 31.689142 + ], + [ + 114.570817, + 31.660106 + ], + [ + 114.559179, + 31.656067 + ], + [ + 114.549679, + 31.642465 + ], + [ + 114.55295, + 31.635203 + ], + [ + 114.548295, + 31.625127 + ], + [ + 114.548924, + 31.609782 + ], + [ + 114.561066, + 31.560966 + ], + [ + 114.572453, + 31.554056 + ], + [ + 114.57497, + 31.559533 + ], + [ + 114.587363, + 31.560607 + ], + [ + 114.595605, + 31.576319 + ], + [ + 114.612025, + 31.578469 + ], + [ + 114.616743, + 31.585326 + ], + [ + 114.641719, + 31.582153 + ], + [ + 114.644425, + 31.574682 + ], + [ + 114.653044, + 31.572686 + ], + [ + 114.656944, + 31.562859 + ], + [ + 114.670093, + 31.547043 + ], + [ + 114.678523, + 31.544023 + ], + [ + 114.69985, + 31.546121 + ], + [ + 114.696579, + 31.525847 + ], + [ + 114.717214, + 31.527947 + ], + [ + 114.723317, + 31.520625 + ], + [ + 114.739485, + 31.527179 + ], + [ + 114.747223, + 31.524004 + ], + [ + 114.757038, + 31.52723 + ], + [ + 114.771004, + 31.520522 + ], + [ + 114.778868, + 31.520727 + ], + [ + 114.774024, + 31.512431 + ], + [ + 114.774653, + 31.500909 + ], + [ + 114.783083, + 31.494814 + ], + [ + 114.78302, + 31.48462 + ], + [ + 114.789438, + 31.480522 + ], + [ + 114.81303, + 31.478832 + ], + [ + 114.824165, + 31.469969 + ], + [ + 114.829827, + 31.458902 + ], + [ + 114.841529, + 31.461976 + ], + [ + 114.850651, + 31.476168 + ], + [ + 114.875313, + 31.478268 + ], + [ + 114.87676, + 31.470584 + ], + [ + 114.8867, + 31.469457 + ], + [ + 114.896388, + 31.474375 + ], + [ + 114.925265, + 31.480471 + ], + [ + 114.936464, + 31.469764 + ], + [ + 114.939924, + 31.477141 + ], + [ + 114.964019, + 31.495377 + ], + [ + 114.976098, + 31.495889 + ], + [ + 114.985346, + 31.477705 + ], + [ + 114.998306, + 31.471608 + ], + [ + 115.002018, + 31.485286 + ], + [ + 115.010826, + 31.488206 + ], + [ + 115.001704, + 31.499987 + ], + [ + 115.010008, + 31.504903 + ], + [ + 115.023094, + 31.527588 + ], + [ + 115.030329, + 31.527691 + ], + [ + 115.038444, + 31.51704 + ], + [ + 115.048951, + 31.517552 + ], + [ + 115.066314, + 31.510537 + ], + [ + 115.096198, + 31.508437 + ], + [ + 115.092801, + 31.519088 + ], + [ + 115.102112, + 31.520573 + ], + [ + 115.113373, + 31.528971 + ], + [ + 115.105949, + 31.540029 + ], + [ + 115.110479, + 31.55078 + ], + [ + 115.103055, + 31.555745 + ], + [ + 115.106767, + 31.567466 + ], + [ + 115.127276, + 31.579083 + ], + [ + 115.125389, + 31.599089 + ], + [ + 115.134826, + 31.602415 + ], + [ + 115.164395, + 31.604564 + ], + [ + 115.176851, + 31.598834 + ], + [ + 115.180374, + 31.577752 + ], + [ + 115.192831, + 31.569564 + ], + [ + 115.192957, + 31.564037 + ], + [ + 115.207238, + 31.564241 + ], + [ + 115.212586, + 31.55554 + ], + [ + 115.235611, + 31.556206 + ], + [ + 115.230578, + 31.538238 + ], + [ + 115.218248, + 31.515299 + ], + [ + 115.219506, + 31.506901 + ], + [ + 115.212334, + 31.490101 + ], + [ + 115.216926, + 31.481598 + ], + [ + 115.217052, + 31.462898 + ], + [ + 115.210509, + 31.445476 + ], + [ + 115.220512, + 31.426718 + ], + [ + 115.232969, + 31.427077 + ], + [ + 115.252598, + 31.421695 + ], + [ + 115.260273, + 31.41216 + ], + [ + 115.250459, + 31.391755 + ], + [ + 115.260399, + 31.387396 + ], + [ + 115.281349, + 31.399856 + ], + [ + 115.294057, + 31.395036 + ], + [ + 115.301103, + 31.384063 + ], + [ + 115.31356, + 31.383448 + ], + [ + 115.327212, + 31.391139 + ], + [ + 115.335957, + 31.403394 + ], + [ + 115.355271, + 31.399958 + ], + [ + 115.373641, + 31.405752 + ], + [ + 115.383392, + 31.418671 + ], + [ + 115.385657, + 31.443324 + ], + [ + 115.389809, + 31.450293 + ], + [ + 115.377667, + 31.470532 + ], + [ + 115.371565, + 31.495838 + ], + [ + 115.377164, + 31.502957 + ], + [ + 115.389621, + 31.507566 + ], + [ + 115.398366, + 31.516067 + ], + [ + 115.415918, + 31.52595 + ], + [ + 115.428563, + 31.547196 + ], + [ + 115.431583, + 31.559021 + ], + [ + 115.428249, + 31.563371 + ], + [ + 115.438881, + 31.579953 + ], + [ + 115.440013, + 31.588703 + ], + [ + 115.47537, + 31.606712 + ], + [ + 115.486569, + 31.610089 + ], + [ + 115.490658, + 31.623593 + ], + [ + 115.477132, + 31.645431 + ], + [ + 115.484241, + 31.649061 + ], + [ + 115.486128, + 31.66118 + ], + [ + 115.495376, + 31.672938 + ], + [ + 115.515068, + 31.682855 + ], + [ + 115.531865, + 31.698547 + ], + [ + 115.553507, + 31.695276 + ], + [ + 115.564894, + 31.709023 + ], + [ + 115.582636, + 31.713929 + ], + [ + 115.586977, + 31.721696 + ], + [ + 115.601446, + 31.731659 + ], + [ + 115.619125, + 31.738351 + ], + [ + 115.637243, + 31.755616 + ], + [ + 115.65964, + 31.760213 + ], + [ + 115.676564, + 31.778393 + ], + [ + 115.689775, + 31.776555 + ], + [ + 115.697136, + 31.76864 + ], + [ + 115.710851, + 31.770887 + ], + [ + 115.719407, + 31.76578 + ], + [ + 115.736456, + 31.763277 + ], + [ + 115.734254, + 31.776044 + ], + [ + 115.741992, + 31.782121 + ], + [ + 115.762691, + 31.782325 + ], + [ + 115.767912, + 31.78784 + ], + [ + 115.787226, + 31.780436 + ], + [ + 115.793769, + 31.773593 + ], + [ + 115.808428, + 31.772572 + ], + [ + 115.815348, + 31.762358 + ], + [ + 115.831013, + 31.777576 + ], + [ + 115.837493, + 31.773593 + ], + [ + 115.850264, + 31.786767 + ], + [ + 115.858317, + 31.773695 + ], + [ + 115.885244, + 31.776096 + ], + [ + 115.900783, + 31.792026 + ], + [ + 115.91022, + 31.792333 + ], + [ + 115.915001, + 31.811885 + ], + [ + 115.913114, + 31.820103 + ], + [ + 115.904054, + 31.829392 + ], + [ + 115.892982, + 31.83327 + ], + [ + 115.895687, + 31.867507 + ], + [ + 115.898329, + 31.88026 + ], + [ + 115.910597, + 31.894949 + ], + [ + 115.92016, + 31.920445 + ], + [ + 115.916134, + 31.935994 + ], + [ + 115.909025, + 31.943232 + ], + [ + 115.911352, + 31.958013 + ], + [ + 115.92318, + 31.985479 + ], + [ + 115.924564, + 31.995617 + ], + [ + 115.931107, + 31.994496 + ], + [ + 115.927835, + 32.02358 + ], + [ + 115.919531, + 32.027858 + ], + [ + 115.927709, + 32.036311 + ], + [ + 115.922236, + 32.049652 + ], + [ + 115.925382, + 32.057543 + ], + [ + 115.9396, + 32.065841 + ], + [ + 115.942557, + 32.07765 + ], + [ + 115.932491, + 32.084266 + ], + [ + 115.926577, + 32.105283 + ], + [ + 115.93916, + 32.138961 + ], + [ + 115.937901, + 32.151777 + ], + [ + 115.94155, + 32.166423 + ], + [ + 115.933686, + 32.180456 + ], + [ + 115.923369, + 32.191691 + ], + [ + 115.922865, + 32.203636 + ], + [ + 115.912736, + 32.227623 + ], + [ + 115.914687, + 32.254855 + ], + [ + 115.921481, + 32.268519 + ], + [ + 115.911038, + 32.284161 + ], + [ + 115.90827, + 32.299243 + ], + [ + 115.90028, + 32.301426 + ], + [ + 115.906948, + 32.31158 + ], + [ + 115.904558, + 32.34102 + ], + [ + 115.89921, + 32.344978 + ], + [ + 115.897889, + 32.373596 + ], + [ + 115.899084, + 32.390792 + ], + [ + 115.88927, + 32.413462 + ], + [ + 115.889396, + 32.424263 + ], + [ + 115.87933, + 32.432324 + ], + [ + 115.883356, + 32.438814 + ], + [ + 115.882727, + 32.456099 + ], + [ + 115.864231, + 32.458937 + ], + [ + 115.873479, + 32.470594 + ], + [ + 115.88128, + 32.472469 + ], + [ + 115.883545, + 32.489241 + ], + [ + 115.874486, + 32.497804 + ], + [ + 115.873165, + 32.504694 + ], + [ + 115.853033, + 32.50444 + ], + [ + 115.845735, + 32.501806 + ], + [ + 115.84737, + 32.509557 + ], + [ + 115.856996, + 32.517965 + ], + [ + 115.873039, + 32.525816 + ], + [ + 115.87587, + 32.542477 + ], + [ + 115.899399, + 32.556198 + ], + [ + 115.91022, + 32.566982 + ], + [ + 115.929282, + 32.567235 + ], + [ + 115.911856, + 32.577561 + ], + [ + 115.891535, + 32.576245 + ], + [ + 115.887571, + 32.56764 + ], + [ + 115.8614, + 32.537413 + ], + [ + 115.845986, + 32.53164 + ], + [ + 115.839947, + 32.524803 + ], + [ + 115.841457, + 32.501198 + ], + [ + 115.823841, + 32.502262 + ], + [ + 115.80415, + 32.485441 + ], + [ + 115.788736, + 32.468922 + ], + [ + 115.781313, + 32.468466 + ], + [ + 115.787415, + 32.480121 + ], + [ + 115.785654, + 32.489393 + ], + [ + 115.771498, + 32.505301 + ], + [ + 115.760237, + 32.481996 + ], + [ + 115.741992, + 32.476371 + ], + [ + 115.719344, + 32.485644 + ], + [ + 115.701225, + 32.495321 + ], + [ + 115.692103, + 32.487519 + ], + [ + 115.692229, + 32.480628 + ], + [ + 115.700785, + 32.472874 + ], + [ + 115.698772, + 32.468212 + ], + [ + 115.675872, + 32.466438 + ], + [ + 115.68166, + 32.450473 + ], + [ + 115.68059, + 32.43998 + ], + [ + 115.674425, + 32.430854 + ], + [ + 115.666938, + 32.409405 + ], + [ + 115.656306, + 32.408746 + ], + [ + 115.657816, + 32.428826 + ], + [ + 115.645611, + 32.417519 + ], + [ + 115.627115, + 32.40545 + ], + [ + 115.604529, + 32.425936 + ], + [ + 115.586096, + 32.419243 + ], + [ + 115.563888, + 32.403015 + ], + [ + 115.553633, + 32.407478 + ], + [ + 115.569109, + 32.414629 + ], + [ + 115.5676, + 32.421626 + ], + [ + 115.547279, + 32.424719 + ], + [ + 115.537465, + 32.438966 + ], + [ + 115.523183, + 32.442007 + ], + [ + 115.524127, + 32.447837 + ], + [ + 115.515571, + 32.450625 + ], + [ + 115.502863, + 32.48306 + ], + [ + 115.497515, + 32.492535 + ], + [ + 115.484996, + 32.503934 + ], + [ + 115.485059, + 32.512292 + ], + [ + 115.477635, + 32.511836 + ], + [ + 115.477761, + 32.51989 + ], + [ + 115.465745, + 32.520143 + ], + [ + 115.438944, + 32.532551 + ], + [ + 115.443725, + 32.543287 + ], + [ + 115.434666, + 32.545211 + ], + [ + 115.431646, + 32.5523 + ], + [ + 115.418057, + 32.552958 + ], + [ + 115.410004, + 32.548097 + ], + [ + 115.412772, + 32.559793 + ], + [ + 115.411577, + 32.574777 + ], + [ + 115.403273, + 32.576701 + ], + [ + 115.391948, + 32.566324 + ], + [ + 115.38767, + 32.57088 + ], + [ + 115.329602, + 32.561211 + ], + [ + 115.32048, + 32.562628 + ], + [ + 115.324003, + 32.554831 + ], + [ + 115.304186, + 32.553768 + ], + [ + 115.296511, + 32.562729 + ], + [ + 115.300348, + 32.568399 + ], + [ + 115.310855, + 32.570576 + ], + [ + 115.297769, + 32.576347 + ], + [ + 115.30557, + 32.58318 + ], + [ + 115.299404, + 32.58814 + ], + [ + 115.294812, + 32.581054 + ], + [ + 115.289213, + 32.589861 + ], + [ + 115.267193, + 32.578068 + ], + [ + 115.254737, + 32.585002 + ], + [ + 115.26128, + 32.591683 + ], + [ + 115.2548, + 32.595225 + ], + [ + 115.243538, + 32.593505 + ], + [ + 115.227118, + 32.578624 + ], + [ + 115.229509, + 32.590569 + ], + [ + 115.212145, + 32.588494 + ], + [ + 115.201136, + 32.591834 + ], + [ + 115.192013, + 32.603018 + ], + [ + 115.175341, + 32.605346 + ], + [ + 115.152127, + 32.590012 + ], + [ + 115.145647, + 32.580143 + ], + [ + 115.137028, + 32.587026 + ], + [ + 115.140362, + 32.599223 + ], + [ + 115.12476, + 32.607573 + ], + [ + 115.111548, + 32.607421 + ], + [ + 115.099532, + 32.619868 + ], + [ + 115.098022, + 32.63378 + ], + [ + 115.090599, + 32.637017 + ], + [ + 115.065182, + 32.629075 + ], + [ + 115.05002, + 32.640153 + ], + [ + 115.030077, + 32.6486 + ], + [ + 114.985472, + 32.659322 + ], + [ + 114.957791, + 32.659979 + ], + [ + 114.93357, + 32.649308 + ], + [ + 114.919351, + 32.648903 + ], + [ + 114.911047, + 32.653405 + ], + [ + 114.901296, + 32.648954 + ], + [ + 114.901799, + 32.634741 + ], + [ + 114.89167, + 32.61749 + ], + [ + 114.884875, + 32.616225 + ], + [ + 114.862856, + 32.624117 + ], + [ + 114.856565, + 32.61926 + ], + [ + 114.822404, + 32.622853 + ], + [ + 114.813785, + 32.611165 + ], + [ + 114.806172, + 32.609495 + ], + [ + 114.79403, + 32.613695 + ], + [ + 114.788997, + 32.607168 + ], + [ + 114.791325, + 32.584141 + ], + [ + 114.802649, + 32.583433 + ], + [ + 114.810136, + 32.569007 + ], + [ + 114.808877, + 32.558882 + ], + [ + 114.785789, + 32.545616 + ], + [ + 114.781133, + 32.535539 + ], + [ + 114.786858, + 32.52384 + ], + [ + 114.793527, + 32.521764 + ], + [ + 114.789689, + 32.50824 + ], + [ + 114.774024, + 32.508696 + ], + [ + 114.752319, + 32.523942 + ], + [ + 114.736088, + 32.516901 + ], + [ + 114.729545, + 32.519333 + ], + [ + 114.724512, + 32.541464 + ], + [ + 114.713062, + 32.543743 + ], + [ + 114.702115, + 32.535134 + ], + [ + 114.701927, + 32.517357 + ], + [ + 114.676699, + 32.514977 + ], + [ + 114.666067, + 32.527183 + ], + [ + 114.650338, + 32.527842 + ], + [ + 114.615737, + 32.509911 + ], + [ + 114.606866, + 32.512697 + ], + [ + 114.582393, + 32.51371 + ], + [ + 114.571258, + 32.508088 + ], + [ + 114.569559, + 32.495119 + ], + [ + 114.574781, + 32.486353 + ], + [ + 114.571509, + 32.466793 + ], + [ + 114.585665, + 32.455136 + ], + [ + 114.582142, + 32.445657 + ], + [ + 114.570125, + 32.435721 + ], + [ + 114.576542, + 32.425733 + ], + [ + 114.603595, + 32.41833 + ], + [ + 114.634673, + 32.39982 + ], + [ + 114.647759, + 32.387597 + ], + [ + 114.644551, + 32.375879 + ], + [ + 114.623727, + 32.370602 + ], + [ + 114.620141, + 32.363398 + ], + [ + 114.623349, + 32.352539 + ], + [ + 114.610767, + 32.350002 + ], + [ + 114.607998, + 32.33701 + ], + [ + 114.5929, + 32.321326 + ], + [ + 114.575976, + 32.316402 + ], + [ + 114.582519, + 32.308432 + ], + [ + 114.563645, + 32.306401 + ], + [ + 114.550685, + 32.289036 + ], + [ + 114.535083, + 32.286091 + ], + [ + 114.521934, + 32.298684 + ], + [ + 114.498342, + 32.301527 + ], + [ + 114.492177, + 32.299953 + ], + [ + 114.490856, + 32.28665 + ], + [ + 114.483621, + 32.285177 + ], + [ + 114.468333, + 32.294165 + ], + [ + 114.452479, + 32.281368 + ], + [ + 114.438324, + 32.288478 + ], + [ + 114.429328, + 32.289341 + ], + [ + 114.421589, + 32.279134 + ], + [ + 114.397054, + 32.293353 + ], + [ + 114.376607, + 32.292032 + ], + [ + 114.369813, + 32.298735 + ], + [ + 114.368177, + 32.313407 + ], + [ + 114.349303, + 32.323002 + ], + [ + 114.348422, + 32.347566 + ], + [ + 114.34276, + 32.365021 + ], + [ + 114.315142, + 32.37324 + ], + [ + 114.293877, + 32.36492 + ], + [ + 114.286894, + 32.369892 + ], + [ + 114.28098, + 32.407428 + ], + [ + 114.288467, + 32.418939 + ], + [ + 114.277961, + 32.418888 + ], + [ + 114.269027, + 32.409253 + ], + [ + 114.254117, + 32.424516 + ], + [ + 114.247511, + 32.436583 + ], + [ + 114.249084, + 32.450625 + ], + [ + 114.243485, + 32.458583 + ], + [ + 114.226876, + 32.454122 + ], + [ + 114.221214, + 32.445961 + ], + [ + 114.204479, + 32.445252 + ], + [ + 114.201522, + 32.453514 + ], + [ + 114.210078, + 32.45838 + ], + [ + 114.209135, + 32.468719 + ], + [ + 114.198314, + 32.46877 + ], + [ + 114.197433, + 32.486353 + ], + [ + 114.192274, + 32.492585 + ], + [ + 114.167675, + 32.487012 + ], + [ + 114.163397, + 32.469986 + ], + [ + 114.16497, + 32.461877 + ], + [ + 114.157421, + 32.458279 + ], + [ + 114.136723, + 32.461978 + ], + [ + 114.112564, + 32.447786 + ], + [ + 114.097654, + 32.451639 + ], + [ + 114.085512, + 32.450777 + ], + [ + 114.080731, + 32.454832 + ], + [ + 114.078529, + 32.479614 + ], + [ + 114.087336, + 32.481236 + ], + [ + 114.07639, + 32.493548 + ], + [ + 114.071357, + 32.505909 + ], + [ + 114.072992, + 32.517205 + ], + [ + 114.066638, + 32.527031 + ], + [ + 114.067204, + 32.534881 + ], + [ + 114.056258, + 32.539033 + ], + [ + 114.053867, + 32.523233 + ], + [ + 114.014861, + 32.51599 + ], + [ + 114.007375, + 32.507784 + ], + [ + 113.982147, + 32.503579 + ], + [ + 113.962204, + 32.505403 + ], + [ + 113.95434, + 32.514268 + ], + [ + 113.953837, + 32.526575 + ], + [ + 113.938046, + 32.555996 + ], + [ + 113.940373, + 32.576195 + ], + [ + 113.932824, + 32.578219 + ], + [ + 113.92238, + 32.59396 + ], + [ + 113.919738, + 32.605295 + ], + [ + 113.911811, + 32.607775 + ], + [ + 113.893315, + 32.604891 + ], + [ + 113.886646, + 32.607016 + ], + [ + 113.87268, + 32.622751 + ], + [ + 113.86513, + 32.623814 + ], + [ + 113.850409, + 32.617338 + ], + [ + 113.843614, + 32.622245 + ], + [ + 113.826691, + 32.622397 + ], + [ + 113.820337, + 32.619109 + ], + [ + 113.820211, + 32.601804 + ], + [ + 113.814423, + 32.600842 + ], + [ + 113.805301, + 32.597705 + ], + [ + 113.789698, + 32.586368 + ], + [ + 113.782023, + 32.566172 + ], + [ + 113.769126, + 32.559287 + ], + [ + 113.763212, + 32.547895 + ], + [ + 113.774285, + 32.537362 + ], + [ + 113.768245, + 32.534425 + ], + [ + 113.759375, + 32.508797 + ], + [ + 113.764219, + 32.489951 + ], + [ + 113.761828, + 32.470645 + ], + [ + 113.753398, + 32.465425 + ], + [ + 113.741319, + 32.465374 + ], + [ + 113.73767, + 32.453362 + ], + [ + 113.730498, + 32.46061 + ], + [ + 113.730875, + 32.449307 + ], + [ + 113.725339, + 32.436025 + ], + [ + 113.710555, + 32.421221 + ], + [ + 113.718608, + 32.417215 + ], + [ + 113.735279, + 32.410876 + ], + [ + 113.740753, + 32.393125 + ], + [ + 113.751699, + 32.390031 + ], + [ + 113.753209, + 32.38435 + ], + [ + 113.743835, + 32.369435 + ], + [ + 113.751448, + 32.36081 + ], + [ + 113.760381, + 32.369182 + ], + [ + 113.768874, + 32.369486 + ], + [ + 113.770699, + 32.358628 + ], + [ + 113.758494, + 32.352235 + ], + [ + 113.753838, + 32.342085 + ], + [ + 113.753838, + 32.32823 + ], + [ + 113.7651, + 32.319448 + ], + [ + 113.773907, + 32.306147 + ], + [ + 113.769063, + 32.301324 + ], + [ + 113.768182, + 32.28406 + ], + [ + 113.769944, + 32.275985 + ], + [ + 113.758305, + 32.276747 + ], + [ + 113.749057, + 32.272684 + ] + ] + ], + [ + [ + [ + 113.768182, + 32.28406 + ], + [ + 113.769063, + 32.301324 + ], + [ + 113.748491, + 32.291931 + ], + [ + 113.743898, + 32.283603 + ], + [ + 113.749057, + 32.272684 + ], + [ + 113.758305, + 32.276747 + ], + [ + 113.754027, + 32.288275 + ], + [ + 113.758494, + 32.291931 + ], + [ + 113.768182, + 32.28406 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411600, + "name": "鍛ㄥ彛甯�", + "center": [ + 114.649653, + 33.620357 + ], + "centroid": [ + 114.883192, + 33.721762 + ], + "childrenNum": 10, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 15, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 114.897269, + 33.08658 + ], + [ + 114.897206, + 33.093676 + ], + [ + 114.906266, + 33.11657 + ], + [ + 114.902931, + 33.12955 + ], + [ + 114.910229, + 33.136592 + ], + [ + 114.926649, + 33.138503 + ], + [ + 114.93445, + 33.15329 + ], + [ + 114.966095, + 33.147104 + ], + [ + 114.968863, + 33.133674 + ], + [ + 114.981446, + 33.129097 + ], + [ + 114.99233, + 33.120947 + ], + [ + 114.990505, + 33.102885 + ], + [ + 115.012021, + 33.097651 + ], + [ + 115.023345, + 33.090757 + ], + [ + 115.041275, + 33.08663 + ], + [ + 115.05153, + 33.092468 + ], + [ + 115.057444, + 33.083762 + ], + [ + 115.067636, + 33.086228 + ], + [ + 115.111108, + 33.082956 + ], + [ + 115.153259, + 33.084416 + ], + [ + 115.167918, + 33.088744 + ], + [ + 115.172448, + 33.108067 + ], + [ + 115.197109, + 33.12145 + ], + [ + 115.209817, + 33.113501 + ], + [ + 115.22435, + 33.126229 + ], + [ + 115.236996, + 33.126733 + ], + [ + 115.246307, + 33.136391 + ], + [ + 115.266501, + 33.132719 + ], + [ + 115.269584, + 33.137849 + ], + [ + 115.290345, + 33.132417 + ], + [ + 115.292862, + 33.143382 + ], + [ + 115.301481, + 33.141622 + ], + [ + 115.300159, + 33.162995 + ], + [ + 115.294372, + 33.177878 + ], + [ + 115.296762, + 33.201303 + ], + [ + 115.326394, + 33.211355 + ], + [ + 115.316265, + 33.218391 + ], + [ + 115.316328, + 33.223818 + ], + [ + 115.331741, + 33.235625 + ], + [ + 115.329728, + 33.250546 + ], + [ + 115.340109, + 33.261145 + ], + [ + 115.340927, + 33.271391 + ], + [ + 115.333818, + 33.284749 + ], + [ + 115.335013, + 33.298055 + ], + [ + 115.346966, + 33.301017 + ], + [ + 115.360178, + 33.298105 + ], + [ + 115.358794, + 33.311459 + ], + [ + 115.365022, + 33.336003 + ], + [ + 115.34835, + 33.338963 + ], + [ + 115.34684, + 33.358683 + ], + [ + 115.338536, + 33.362998 + ], + [ + 115.341619, + 33.371175 + ], + [ + 115.316139, + 33.370974 + ], + [ + 115.313245, + 33.377094 + ], + [ + 115.329414, + 33.40167 + ], + [ + 115.317334, + 33.418216 + ], + [ + 115.315636, + 33.431452 + ], + [ + 115.319033, + 33.441477 + ], + [ + 115.316391, + 33.448895 + ], + [ + 115.323877, + 33.449045 + ], + [ + 115.324569, + 33.457615 + ], + [ + 115.335957, + 33.447291 + ], + [ + 115.345771, + 33.449747 + ], + [ + 115.348854, + 33.478962 + ], + [ + 115.343821, + 33.480866 + ], + [ + 115.351244, + 33.490384 + ], + [ + 115.345393, + 33.502707 + ], + [ + 115.366595, + 33.523441 + ], + [ + 115.395094, + 33.506463 + ], + [ + 115.396793, + 33.502006 + ], + [ + 115.405349, + 33.51668 + ], + [ + 115.401763, + 33.524342 + ], + [ + 115.41466, + 33.541617 + ], + [ + 115.421958, + 33.556786 + ], + [ + 115.463731, + 33.567197 + ], + [ + 115.47191, + 33.558037 + ], + [ + 115.484933, + 33.558638 + ], + [ + 115.500598, + 33.564794 + ], + [ + 115.511293, + 33.553331 + ], + [ + 115.528594, + 33.562692 + ], + [ + 115.552752, + 33.565545 + ], + [ + 115.559358, + 33.561941 + ], + [ + 115.56609, + 33.576356 + ], + [ + 115.601132, + 33.578157 + ], + [ + 115.63976, + 33.585113 + ], + [ + 115.625038, + 33.625637 + ], + [ + 115.6173, + 33.633189 + ], + [ + 115.601635, + 33.657692 + ], + [ + 115.602516, + 33.67259 + ], + [ + 115.599622, + 33.688285 + ], + [ + 115.607171, + 33.689035 + ], + [ + 115.596288, + 33.70033 + ], + [ + 115.601572, + 33.71692 + ], + [ + 115.595281, + 33.732957 + ], + [ + 115.583516, + 33.747243 + ], + [ + 115.574834, + 33.752237 + ], + [ + 115.56999, + 33.765321 + ], + [ + 115.563133, + 33.771663 + ], + [ + 115.565209, + 33.780201 + ], + [ + 115.582258, + 33.788738 + ], + [ + 115.590563, + 33.783696 + ], + [ + 115.614218, + 33.775658 + ], + [ + 115.621201, + 33.796775 + ], + [ + 115.62334, + 33.811949 + ], + [ + 115.616608, + 33.820034 + ], + [ + 115.625605, + 33.823627 + ], + [ + 115.626297, + 33.836201 + ], + [ + 115.636111, + 33.84119 + ], + [ + 115.633532, + 33.86733 + ], + [ + 115.620886, + 33.876108 + ], + [ + 115.605724, + 33.867429 + ], + [ + 115.591632, + 33.868327 + ], + [ + 115.579553, + 33.877005 + ], + [ + 115.564202, + 33.87132 + ], + [ + 115.557974, + 33.876108 + ], + [ + 115.546146, + 33.875509 + ], + [ + 115.546587, + 33.888425 + ], + [ + 115.555332, + 33.888574 + ], + [ + 115.55464, + 33.900342 + ], + [ + 115.568543, + 33.910013 + ], + [ + 115.559798, + 33.91455 + ], + [ + 115.562629, + 33.92721 + ], + [ + 115.56999, + 33.932842 + ], + [ + 115.569172, + 33.9455 + ], + [ + 115.57754, + 33.950134 + ], + [ + 115.57905, + 33.973949 + ], + [ + 115.588361, + 33.976987 + ], + [ + 115.591066, + 33.986202 + ], + [ + 115.584083, + 33.988643 + ], + [ + 115.592702, + 34.009857 + ], + [ + 115.606605, + 34.013243 + ], + [ + 115.600943, + 34.023798 + ], + [ + 115.615035, + 34.033356 + ], + [ + 115.62139, + 34.030121 + ], + [ + 115.642214, + 34.032261 + ], + [ + 115.649889, + 34.036194 + ], + [ + 115.648001, + 34.046298 + ], + [ + 115.653601, + 34.060084 + ], + [ + 115.641962, + 34.084166 + ], + [ + 115.627555, + 34.087499 + ], + [ + 115.619754, + 34.083171 + ], + [ + 115.573702, + 34.086404 + ], + [ + 115.543693, + 34.084564 + ], + [ + 115.547593, + 34.074414 + ], + [ + 115.549921, + 34.047542 + ], + [ + 115.547782, + 34.037737 + ], + [ + 115.53564, + 34.021757 + ], + [ + 115.53023, + 34.018819 + ], + [ + 115.513369, + 34.019367 + ], + [ + 115.502989, + 34.015434 + ], + [ + 115.489274, + 34.017575 + ], + [ + 115.462599, + 34.006023 + ], + [ + 115.458824, + 33.987099 + ], + [ + 115.439573, + 33.986053 + ], + [ + 115.402581, + 33.993374 + ], + [ + 115.375403, + 34.00677 + ], + [ + 115.361813, + 34.01628 + ], + [ + 115.349042, + 34.018222 + ], + [ + 115.33539, + 34.006969 + ], + [ + 115.32092, + 34.004828 + ], + [ + 115.312742, + 33.995715 + ], + [ + 115.292484, + 33.996163 + ], + [ + 115.28959, + 34.003981 + ], + [ + 115.295441, + 34.018172 + ], + [ + 115.288395, + 34.019516 + ], + [ + 115.258449, + 34.015334 + ], + [ + 115.252975, + 34.008861 + ], + [ + 115.254548, + 33.995117 + ], + [ + 115.252283, + 33.982467 + ], + [ + 115.240959, + 33.975144 + ], + [ + 115.23039, + 33.974148 + ], + [ + 115.203778, + 33.988942 + ], + [ + 115.195473, + 33.987398 + ], + [ + 115.204722, + 33.974447 + ], + [ + 115.189497, + 33.958106 + ], + [ + 115.176474, + 33.950732 + ], + [ + 115.148541, + 33.950184 + ], + [ + 115.142375, + 33.958306 + ], + [ + 115.124257, + 33.963089 + ], + [ + 115.115009, + 33.961096 + ], + [ + 115.106453, + 33.94844 + ], + [ + 115.107207, + 33.936331 + ], + [ + 115.085251, + 33.93354 + ], + [ + 115.070026, + 33.935583 + ], + [ + 115.050398, + 33.941962 + ], + [ + 115.049957, + 33.950035 + ], + [ + 115.05801, + 33.95721 + ], + [ + 115.065748, + 33.97355 + ], + [ + 115.062351, + 33.979329 + ], + [ + 115.070089, + 33.990635 + ], + [ + 115.083238, + 34.003185 + ], + [ + 115.074871, + 34.014438 + ], + [ + 115.074241, + 34.022802 + ], + [ + 115.083364, + 34.024893 + ], + [ + 115.107962, + 34.022703 + ], + [ + 115.121363, + 34.02569 + ], + [ + 115.13967, + 34.050628 + ], + [ + 115.140048, + 34.055854 + ], + [ + 115.128661, + 34.064164 + ], + [ + 115.116707, + 34.066353 + ], + [ + 115.120608, + 34.078196 + ], + [ + 115.118217, + 34.098642 + ], + [ + 115.126144, + 34.105207 + ], + [ + 115.119538, + 34.120475 + ], + [ + 115.12671, + 34.133652 + ], + [ + 115.127906, + 34.146777 + ], + [ + 115.133442, + 34.154234 + ], + [ + 115.133127, + 34.170835 + ], + [ + 115.11872, + 34.189966 + ], + [ + 115.12627, + 34.209441 + ], + [ + 115.107207, + 34.208845 + ], + [ + 115.093556, + 34.219277 + ], + [ + 115.082609, + 34.222555 + ], + [ + 115.052474, + 34.224641 + ], + [ + 115.041087, + 34.246342 + ], + [ + 115.012965, + 34.253393 + ], + [ + 114.998558, + 34.250116 + ], + [ + 114.986605, + 34.253393 + ], + [ + 114.98088, + 34.262975 + ], + [ + 114.962258, + 34.261883 + ], + [ + 114.940804, + 34.274243 + ], + [ + 114.933695, + 34.282135 + ], + [ + 114.912179, + 34.281837 + ], + [ + 114.901988, + 34.284567 + ], + [ + 114.896514, + 34.265804 + ], + [ + 114.867763, + 34.271066 + ], + [ + 114.845492, + 34.280696 + ], + [ + 114.832847, + 34.281937 + ], + [ + 114.8314, + 34.268138 + ], + [ + 114.812778, + 34.259003 + ], + [ + 114.788242, + 34.261138 + ], + [ + 114.781196, + 34.255627 + ], + [ + 114.76465, + 34.254436 + ], + [ + 114.758736, + 34.238397 + ], + [ + 114.752697, + 34.23363 + ], + [ + 114.730426, + 34.225237 + ], + [ + 114.723946, + 34.228018 + ], + [ + 114.71388, + 34.241327 + ], + [ + 114.702241, + 34.244505 + ], + [ + 114.679341, + 34.244307 + ], + [ + 114.667514, + 34.250265 + ], + [ + 114.647319, + 34.250315 + ], + [ + 114.634044, + 34.261883 + ], + [ + 114.611459, + 34.261088 + ], + [ + 114.602085, + 34.271017 + ], + [ + 114.58988, + 34.273747 + ], + [ + 114.556662, + 34.267989 + ], + [ + 114.551189, + 34.272059 + ], + [ + 114.551629, + 34.284964 + ], + [ + 114.528603, + 34.282234 + ], + [ + 114.524703, + 34.306253 + ], + [ + 114.519355, + 34.313448 + ], + [ + 114.509855, + 34.309727 + ], + [ + 114.493876, + 34.31191 + ], + [ + 114.485949, + 34.325057 + ], + [ + 114.479343, + 34.32962 + ], + [ + 114.462042, + 34.330166 + ], + [ + 114.46179, + 34.319947 + ], + [ + 114.452857, + 34.319997 + ], + [ + 114.438576, + 34.328033 + ], + [ + 114.439897, + 34.336366 + ], + [ + 114.427692, + 34.333837 + ], + [ + 114.436059, + 34.330265 + ], + [ + 114.434486, + 34.313894 + ], + [ + 114.424546, + 34.309032 + ], + [ + 114.430649, + 34.302284 + ], + [ + 114.442539, + 34.300696 + ], + [ + 114.455688, + 34.294096 + ], + [ + 114.440652, + 34.270719 + ], + [ + 114.434927, + 34.267145 + ], + [ + 114.417689, + 34.265308 + ], + [ + 114.405798, + 34.248031 + ], + [ + 114.385729, + 34.24386 + ], + [ + 114.356412, + 34.247186 + ], + [ + 114.344207, + 34.251804 + ], + [ + 114.328857, + 34.267294 + ], + [ + 114.301175, + 34.26774 + ], + [ + 114.287901, + 34.276527 + ], + [ + 114.274626, + 34.274889 + ], + [ + 114.267517, + 34.256968 + ], + [ + 114.259905, + 34.251854 + ], + [ + 114.272676, + 34.24237 + ], + [ + 114.273053, + 34.227869 + ], + [ + 114.286013, + 34.218234 + ], + [ + 114.287649, + 34.206958 + ], + [ + 114.276199, + 34.190811 + ], + [ + 114.275255, + 34.174661 + ], + [ + 114.28746, + 34.137033 + ], + [ + 114.285133, + 34.120873 + ], + [ + 114.273808, + 34.107545 + ], + [ + 114.273431, + 34.102571 + ], + [ + 114.262107, + 34.095856 + ], + [ + 114.270411, + 34.063219 + ], + [ + 114.271103, + 34.053813 + ], + [ + 114.281987, + 34.046597 + ], + [ + 114.287523, + 34.022902 + ], + [ + 114.295324, + 34.007467 + ], + [ + 114.311745, + 34.001492 + ], + [ + 114.312248, + 33.98162 + ], + [ + 114.307026, + 33.978233 + ], + [ + 114.31036, + 33.96 + ], + [ + 114.299917, + 33.953024 + ], + [ + 114.305642, + 33.889572 + ], + [ + 114.3164, + 33.880446 + ], + [ + 114.311304, + 33.87142 + ], + [ + 114.315834, + 33.865734 + ], + [ + 114.312122, + 33.853263 + ], + [ + 114.301112, + 33.852365 + ], + [ + 114.301301, + 33.842188 + ], + [ + 114.310738, + 33.842637 + ], + [ + 114.316085, + 33.833207 + ], + [ + 114.323383, + 33.832908 + ], + [ + 114.325082, + 33.818337 + ], + [ + 114.313066, + 33.80012 + ], + [ + 114.309983, + 33.781349 + ], + [ + 114.290354, + 33.771813 + ], + [ + 114.249776, + 33.779252 + ], + [ + 114.242604, + 33.790785 + ], + [ + 114.217565, + 33.793131 + ], + [ + 114.211525, + 33.798123 + ], + [ + 114.19888, + 33.797374 + ], + [ + 114.190638, + 33.801917 + ], + [ + 114.179503, + 33.799321 + ], + [ + 114.178308, + 33.806409 + ], + [ + 114.161447, + 33.79982 + ], + [ + 114.15503, + 33.809304 + ], + [ + 114.145404, + 33.810551 + ], + [ + 114.134772, + 33.806409 + ], + [ + 114.133703, + 33.791484 + ], + [ + 114.139931, + 33.783097 + ], + [ + 114.142007, + 33.765921 + ], + [ + 114.133262, + 33.768118 + ], + [ + 114.098032, + 33.765072 + ], + [ + 114.10319, + 33.756832 + ], + [ + 114.106839, + 33.739051 + ], + [ + 114.095263, + 33.728061 + ], + [ + 114.091489, + 33.71642 + ], + [ + 114.097717, + 33.683187 + ], + [ + 114.115836, + 33.684587 + ], + [ + 114.118226, + 33.67159 + ], + [ + 114.116402, + 33.651392 + ], + [ + 114.125398, + 33.652842 + ], + [ + 114.149745, + 33.650442 + ], + [ + 114.152639, + 33.662242 + ], + [ + 114.162265, + 33.669941 + ], + [ + 114.169563, + 33.664791 + ], + [ + 114.186235, + 33.67219 + ], + [ + 114.186549, + 33.682538 + ], + [ + 114.196489, + 33.690934 + ], + [ + 114.214231, + 33.691334 + ], + [ + 114.249084, + 33.704328 + ], + [ + 114.250783, + 33.693233 + ], + [ + 114.259842, + 33.680588 + ], + [ + 114.260849, + 33.661942 + ], + [ + 114.264183, + 33.654742 + ], + [ + 114.264938, + 33.635239 + ], + [ + 114.277332, + 33.621735 + ], + [ + 114.279659, + 33.604427 + ], + [ + 114.265881, + 33.597923 + ], + [ + 114.265378, + 33.593219 + ], + [ + 114.278653, + 33.57015 + ], + [ + 114.282868, + 33.558688 + ], + [ + 114.295324, + 33.553782 + ], + [ + 114.289348, + 33.522089 + ], + [ + 114.281106, + 33.513976 + ], + [ + 114.283371, + 33.500353 + ], + [ + 114.279785, + 33.489282 + ], + [ + 114.284629, + 33.472548 + ], + [ + 114.307907, + 33.481316 + ], + [ + 114.347227, + 33.462376 + ], + [ + 114.349429, + 33.452604 + ], + [ + 114.362137, + 33.454057 + ], + [ + 114.368932, + 33.44659 + ], + [ + 114.382143, + 33.454508 + ], + [ + 114.402967, + 33.457064 + ], + [ + 114.407937, + 33.460873 + ], + [ + 114.446628, + 33.464581 + ], + [ + 114.459777, + 33.454458 + ], + [ + 114.464118, + 33.437467 + ], + [ + 114.480098, + 33.443131 + ], + [ + 114.490415, + 33.43481 + ], + [ + 114.488654, + 33.417565 + ], + [ + 114.52313, + 33.418969 + ], + [ + 114.537663, + 33.426589 + ], + [ + 114.554146, + 33.42714 + ], + [ + 114.563016, + 33.42333 + ], + [ + 114.57239, + 33.406835 + ], + [ + 114.572013, + 33.396053 + ], + [ + 114.577423, + 33.390035 + ], + [ + 114.575536, + 33.376392 + ], + [ + 114.585728, + 33.374837 + ], + [ + 114.589314, + 33.362847 + ], + [ + 114.605293, + 33.35778 + ], + [ + 114.615925, + 33.344383 + ], + [ + 114.623664, + 33.341723 + ], + [ + 114.645557, + 33.34624 + ], + [ + 114.654491, + 33.341924 + ], + [ + 114.662481, + 33.322954 + ], + [ + 114.669715, + 33.31944 + ], + [ + 114.665563, + 33.313416 + ], + [ + 114.684122, + 33.314671 + ], + [ + 114.685255, + 33.298205 + ], + [ + 114.705764, + 33.302171 + ], + [ + 114.722373, + 33.301117 + ], + [ + 114.728853, + 33.289368 + ], + [ + 114.73074, + 33.261597 + ], + [ + 114.717529, + 33.221808 + ], + [ + 114.69897, + 33.208139 + ], + [ + 114.697648, + 33.197081 + ], + [ + 114.681354, + 33.170487 + ], + [ + 114.704003, + 33.160531 + ], + [ + 114.705764, + 33.14821 + ], + [ + 114.717592, + 33.144036 + ], + [ + 114.720863, + 33.125626 + ], + [ + 114.731621, + 33.120746 + ], + [ + 114.742757, + 33.106709 + ], + [ + 114.761756, + 33.10535 + ], + [ + 114.765845, + 33.090858 + ], + [ + 114.77069, + 33.087184 + ], + [ + 114.77157, + 33.069517 + ], + [ + 114.7951, + 33.068561 + ], + [ + 114.800447, + 33.05819 + ], + [ + 114.817937, + 33.060456 + ], + [ + 114.833917, + 33.059449 + ], + [ + 114.850022, + 33.052753 + ], + [ + 114.854552, + 33.055421 + ], + [ + 114.857446, + 33.075306 + ], + [ + 114.897206, + 33.080591 + ], + [ + 114.897269, + 33.08658 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 411700, + "name": "椹婚┈搴楀競", + "center": [ + 114.024736, + 32.980169 + ], + "centroid": [ + 114.156353, + 32.922684 + ], + "childrenNum": 10, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 16, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 113.814423, + 32.600842 + ], + [ + 113.820211, + 32.601804 + ], + [ + 113.820337, + 32.619109 + ], + [ + 113.826691, + 32.622397 + ], + [ + 113.843614, + 32.622245 + ], + [ + 113.850409, + 32.617338 + ], + [ + 113.86513, + 32.623814 + ], + [ + 113.87268, + 32.622751 + ], + [ + 113.886646, + 32.607016 + ], + [ + 113.893315, + 32.604891 + ], + [ + 113.911811, + 32.607775 + ], + [ + 113.919738, + 32.605295 + ], + [ + 113.92238, + 32.59396 + ], + [ + 113.932824, + 32.578219 + ], + [ + 113.940373, + 32.576195 + ], + [ + 113.938046, + 32.555996 + ], + [ + 113.953837, + 32.526575 + ], + [ + 113.95434, + 32.514268 + ], + [ + 113.962204, + 32.505403 + ], + [ + 113.982147, + 32.503579 + ], + [ + 114.007375, + 32.507784 + ], + [ + 114.014861, + 32.51599 + ], + [ + 114.053867, + 32.523233 + ], + [ + 114.056258, + 32.539033 + ], + [ + 114.067204, + 32.534881 + ], + [ + 114.066638, + 32.527031 + ], + [ + 114.072992, + 32.517205 + ], + [ + 114.071357, + 32.505909 + ], + [ + 114.07639, + 32.493548 + ], + [ + 114.087336, + 32.481236 + ], + [ + 114.078529, + 32.479614 + ], + [ + 114.080731, + 32.454832 + ], + [ + 114.085512, + 32.450777 + ], + [ + 114.097654, + 32.451639 + ], + [ + 114.112564, + 32.447786 + ], + [ + 114.136723, + 32.461978 + ], + [ + 114.157421, + 32.458279 + ], + [ + 114.16497, + 32.461877 + ], + [ + 114.163397, + 32.469986 + ], + [ + 114.167675, + 32.487012 + ], + [ + 114.192274, + 32.492585 + ], + [ + 114.197433, + 32.486353 + ], + [ + 114.198314, + 32.46877 + ], + [ + 114.209135, + 32.468719 + ], + [ + 114.210078, + 32.45838 + ], + [ + 114.201522, + 32.453514 + ], + [ + 114.204479, + 32.445252 + ], + [ + 114.221214, + 32.445961 + ], + [ + 114.226876, + 32.454122 + ], + [ + 114.243485, + 32.458583 + ], + [ + 114.249084, + 32.450625 + ], + [ + 114.247511, + 32.436583 + ], + [ + 114.254117, + 32.424516 + ], + [ + 114.269027, + 32.409253 + ], + [ + 114.277961, + 32.418888 + ], + [ + 114.288467, + 32.418939 + ], + [ + 114.28098, + 32.407428 + ], + [ + 114.286894, + 32.369892 + ], + [ + 114.293877, + 32.36492 + ], + [ + 114.315142, + 32.37324 + ], + [ + 114.34276, + 32.365021 + ], + [ + 114.348422, + 32.347566 + ], + [ + 114.349303, + 32.323002 + ], + [ + 114.368177, + 32.313407 + ], + [ + 114.369813, + 32.298735 + ], + [ + 114.376607, + 32.292032 + ], + [ + 114.397054, + 32.293353 + ], + [ + 114.421589, + 32.279134 + ], + [ + 114.429328, + 32.289341 + ], + [ + 114.438324, + 32.288478 + ], + [ + 114.452479, + 32.281368 + ], + [ + 114.468333, + 32.294165 + ], + [ + 114.483621, + 32.285177 + ], + [ + 114.490856, + 32.28665 + ], + [ + 114.492177, + 32.299953 + ], + [ + 114.498342, + 32.301527 + ], + [ + 114.521934, + 32.298684 + ], + [ + 114.535083, + 32.286091 + ], + [ + 114.550685, + 32.289036 + ], + [ + 114.563645, + 32.306401 + ], + [ + 114.582519, + 32.308432 + ], + [ + 114.575976, + 32.316402 + ], + [ + 114.5929, + 32.321326 + ], + [ + 114.607998, + 32.33701 + ], + [ + 114.610767, + 32.350002 + ], + [ + 114.623349, + 32.352539 + ], + [ + 114.620141, + 32.363398 + ], + [ + 114.623727, + 32.370602 + ], + [ + 114.644551, + 32.375879 + ], + [ + 114.647759, + 32.387597 + ], + [ + 114.634673, + 32.39982 + ], + [ + 114.603595, + 32.41833 + ], + [ + 114.576542, + 32.425733 + ], + [ + 114.570125, + 32.435721 + ], + [ + 114.582142, + 32.445657 + ], + [ + 114.585665, + 32.455136 + ], + [ + 114.571509, + 32.466793 + ], + [ + 114.574781, + 32.486353 + ], + [ + 114.569559, + 32.495119 + ], + [ + 114.571258, + 32.508088 + ], + [ + 114.582393, + 32.51371 + ], + [ + 114.606866, + 32.512697 + ], + [ + 114.615737, + 32.509911 + ], + [ + 114.650338, + 32.527842 + ], + [ + 114.666067, + 32.527183 + ], + [ + 114.676699, + 32.514977 + ], + [ + 114.701927, + 32.517357 + ], + [ + 114.702115, + 32.535134 + ], + [ + 114.713062, + 32.543743 + ], + [ + 114.724512, + 32.541464 + ], + [ + 114.729545, + 32.519333 + ], + [ + 114.736088, + 32.516901 + ], + [ + 114.752319, + 32.523942 + ], + [ + 114.774024, + 32.508696 + ], + [ + 114.789689, + 32.50824 + ], + [ + 114.793527, + 32.521764 + ], + [ + 114.786858, + 32.52384 + ], + [ + 114.781133, + 32.535539 + ], + [ + 114.785789, + 32.545616 + ], + [ + 114.808877, + 32.558882 + ], + [ + 114.810136, + 32.569007 + ], + [ + 114.802649, + 32.583433 + ], + [ + 114.791325, + 32.584141 + ], + [ + 114.788997, + 32.607168 + ], + [ + 114.79403, + 32.613695 + ], + [ + 114.806172, + 32.609495 + ], + [ + 114.813785, + 32.611165 + ], + [ + 114.822404, + 32.622853 + ], + [ + 114.856565, + 32.61926 + ], + [ + 114.862856, + 32.624117 + ], + [ + 114.884875, + 32.616225 + ], + [ + 114.89167, + 32.61749 + ], + [ + 114.901799, + 32.634741 + ], + [ + 114.901296, + 32.648954 + ], + [ + 114.911047, + 32.653405 + ], + [ + 114.919351, + 32.648903 + ], + [ + 114.93357, + 32.649308 + ], + [ + 114.957791, + 32.659979 + ], + [ + 114.985472, + 32.659322 + ], + [ + 115.030077, + 32.6486 + ], + [ + 115.05002, + 32.640153 + ], + [ + 115.065182, + 32.629075 + ], + [ + 115.090599, + 32.637017 + ], + [ + 115.098022, + 32.63378 + ], + [ + 115.099532, + 32.619868 + ], + [ + 115.111548, + 32.607421 + ], + [ + 115.12476, + 32.607573 + ], + [ + 115.140362, + 32.599223 + ], + [ + 115.137028, + 32.587026 + ], + [ + 115.145647, + 32.580143 + ], + [ + 115.152127, + 32.590012 + ], + [ + 115.175341, + 32.605346 + ], + [ + 115.192013, + 32.603018 + ], + [ + 115.204029, + 32.606662 + ], + [ + 115.209125, + 32.612936 + ], + [ + 115.199437, + 32.619665 + ], + [ + 115.202079, + 32.632464 + ], + [ + 115.19453, + 32.63125 + ], + [ + 115.194907, + 32.642379 + ], + [ + 115.202708, + 32.645515 + ], + [ + 115.209503, + 32.636714 + ], + [ + 115.208874, + 32.649864 + ], + [ + 115.219443, + 32.659221 + ], + [ + 115.203967, + 32.65391 + ], + [ + 115.205162, + 32.672924 + ], + [ + 115.193649, + 32.682885 + ], + [ + 115.189434, + 32.678789 + ], + [ + 115.19692, + 32.672722 + ], + [ + 115.182954, + 32.666755 + ], + [ + 115.18459, + 32.678284 + ], + [ + 115.178487, + 32.682885 + ], + [ + 115.182702, + 32.694512 + ], + [ + 115.179116, + 32.701943 + ], + [ + 115.184338, + 32.720391 + ], + [ + 115.179368, + 32.726354 + ], + [ + 115.189623, + 32.770913 + ], + [ + 115.183583, + 32.776923 + ], + [ + 115.182073, + 32.787326 + ], + [ + 115.19107, + 32.790053 + ], + [ + 115.206923, + 32.785306 + ], + [ + 115.212334, + 32.787175 + ], + [ + 115.206357, + 32.797678 + ], + [ + 115.19692, + 32.802121 + ], + [ + 115.189937, + 32.812522 + ], + [ + 115.195599, + 32.828877 + ], + [ + 115.188868, + 32.840435 + ], + [ + 115.202645, + 32.843514 + ], + [ + 115.198619, + 32.854363 + ], + [ + 115.191132, + 32.857492 + ], + [ + 115.176222, + 32.856281 + ], + [ + 115.159802, + 32.862285 + ], + [ + 115.154958, + 32.877269 + ], + [ + 115.142501, + 32.884332 + ], + [ + 115.140551, + 32.897496 + ], + [ + 115.116141, + 32.90022 + ], + [ + 115.102426, + 32.894268 + ], + [ + 115.086258, + 32.903246 + ], + [ + 115.067321, + 32.903246 + ], + [ + 115.029762, + 32.906827 + ], + [ + 115.027435, + 32.91434 + ], + [ + 115.036746, + 32.916307 + ], + [ + 115.035425, + 32.932341 + ], + [ + 115.023975, + 32.933702 + ], + [ + 115.009253, + 32.940155 + ], + [ + 114.978803, + 32.941314 + ], + [ + 114.959993, + 32.9395 + ], + [ + 114.943573, + 32.935013 + ], + [ + 114.936023, + 32.952152 + ], + [ + 114.924133, + 32.958956 + ], + [ + 114.91608, + 32.971304 + ], + [ + 114.893809, + 32.972664 + ], + [ + 114.886071, + 32.978611 + ], + [ + 114.882799, + 32.990351 + ], + [ + 114.901547, + 33.000326 + ], + [ + 114.891922, + 33.020525 + ], + [ + 114.915388, + 33.016093 + ], + [ + 114.924321, + 33.016697 + ], + [ + 114.936967, + 33.025511 + ], + [ + 114.923, + 33.036087 + ], + [ + 114.922497, + 33.048322 + ], + [ + 114.91501, + 33.059801 + ], + [ + 114.91954, + 33.068812 + ], + [ + 114.914004, + 33.082805 + ], + [ + 114.897269, + 33.08658 + ], + [ + 114.897206, + 33.080591 + ], + [ + 114.857446, + 33.075306 + ], + [ + 114.854552, + 33.055421 + ], + [ + 114.850022, + 33.052753 + ], + [ + 114.833917, + 33.059449 + ], + [ + 114.817937, + 33.060456 + ], + [ + 114.800447, + 33.05819 + ], + [ + 114.7951, + 33.068561 + ], + [ + 114.77157, + 33.069517 + ], + [ + 114.77069, + 33.087184 + ], + [ + 114.765845, + 33.090858 + ], + [ + 114.761756, + 33.10535 + ], + [ + 114.742757, + 33.106709 + ], + [ + 114.731621, + 33.120746 + ], + [ + 114.720863, + 33.125626 + ], + [ + 114.717592, + 33.144036 + ], + [ + 114.705764, + 33.14821 + ], + [ + 114.704003, + 33.160531 + ], + [ + 114.681354, + 33.170487 + ], + [ + 114.697648, + 33.197081 + ], + [ + 114.69897, + 33.208139 + ], + [ + 114.717529, + 33.221808 + ], + [ + 114.73074, + 33.261597 + ], + [ + 114.728853, + 33.289368 + ], + [ + 114.722373, + 33.301117 + ], + [ + 114.705764, + 33.302171 + ], + [ + 114.685255, + 33.298205 + ], + [ + 114.684122, + 33.314671 + ], + [ + 114.665563, + 33.313416 + ], + [ + 114.669715, + 33.31944 + ], + [ + 114.662481, + 33.322954 + ], + [ + 114.654491, + 33.341924 + ], + [ + 114.645557, + 33.34624 + ], + [ + 114.623664, + 33.341723 + ], + [ + 114.615925, + 33.344383 + ], + [ + 114.605293, + 33.35778 + ], + [ + 114.589314, + 33.362847 + ], + [ + 114.585728, + 33.374837 + ], + [ + 114.575536, + 33.376392 + ], + [ + 114.577423, + 33.390035 + ], + [ + 114.572013, + 33.396053 + ], + [ + 114.57239, + 33.406835 + ], + [ + 114.563016, + 33.42333 + ], + [ + 114.554146, + 33.42714 + ], + [ + 114.537663, + 33.426589 + ], + [ + 114.52313, + 33.418969 + ], + [ + 114.488654, + 33.417565 + ], + [ + 114.490415, + 33.43481 + ], + [ + 114.480098, + 33.443131 + ], + [ + 114.464118, + 33.437467 + ], + [ + 114.459777, + 33.454458 + ], + [ + 114.446628, + 33.464581 + ], + [ + 114.407937, + 33.460873 + ], + [ + 114.402967, + 33.457064 + ], + [ + 114.382143, + 33.454508 + ], + [ + 114.368932, + 33.44659 + ], + [ + 114.362137, + 33.454057 + ], + [ + 114.349429, + 33.452604 + ], + [ + 114.347227, + 33.462376 + ], + [ + 114.307907, + 33.481316 + ], + [ + 114.284629, + 33.472548 + ], + [ + 114.266636, + 33.461625 + ], + [ + 114.247574, + 33.45967 + ], + [ + 114.230714, + 33.451551 + ], + [ + 114.211399, + 33.453757 + ], + [ + 114.195294, + 33.447692 + ], + [ + 114.190575, + 33.426489 + ], + [ + 114.171324, + 33.440926 + ], + [ + 114.180384, + 33.453656 + ], + [ + 114.171639, + 33.459019 + ], + [ + 114.159937, + 33.456713 + ], + [ + 114.150312, + 33.460372 + ], + [ + 114.151507, + 33.468139 + ], + [ + 114.131501, + 33.472298 + ], + [ + 114.130683, + 33.495093 + ], + [ + 114.115836, + 33.488631 + ], + [ + 114.103505, + 33.491586 + ], + [ + 114.104071, + 33.499351 + ], + [ + 114.118101, + 33.502406 + ], + [ + 114.116276, + 33.51027 + ], + [ + 114.099101, + 33.503108 + ], + [ + 114.075572, + 33.517782 + ], + [ + 114.055692, + 33.523942 + ], + [ + 114.052168, + 33.528999 + ], + [ + 114.038579, + 33.5296 + ], + [ + 114.033735, + 33.523892 + ], + [ + 114.014924, + 33.522039 + ], + [ + 114.01354, + 33.511071 + ], + [ + 114.001084, + 33.510671 + ], + [ + 113.998693, + 33.500904 + ], + [ + 113.981329, + 33.482268 + ], + [ + 113.9712, + 33.482619 + ], + [ + 113.967929, + 33.477408 + ], + [ + 113.95434, + 33.473901 + ], + [ + 113.94528, + 33.465633 + ], + [ + 113.933768, + 33.465884 + ], + [ + 113.914139, + 33.478511 + ], + [ + 113.865508, + 33.479362 + ], + [ + 113.856134, + 33.47796 + ], + [ + 113.847515, + 33.466836 + ], + [ + 113.825999, + 33.460723 + ], + [ + 113.805804, + 33.446189 + ], + [ + 113.799513, + 33.43481 + ], + [ + 113.771139, + 33.435713 + ], + [ + 113.766861, + 33.432154 + ], + [ + 113.721187, + 33.432705 + ], + [ + 113.713197, + 33.430249 + ], + [ + 113.710429, + 33.417013 + ], + [ + 113.693065, + 33.418216 + ], + [ + 113.688347, + 33.407737 + ], + [ + 113.676897, + 33.378298 + ], + [ + 113.655003, + 33.371175 + ], + [ + 113.639149, + 33.355221 + ], + [ + 113.642106, + 33.34905 + ], + [ + 113.640282, + 33.325162 + ], + [ + 113.627448, + 33.312212 + ], + [ + 113.618766, + 33.291477 + ], + [ + 113.613167, + 33.261798 + ], + [ + 113.606875, + 33.237786 + ], + [ + 113.613796, + 33.211506 + ], + [ + 113.627511, + 33.186475 + ], + [ + 113.644623, + 33.186575 + ], + [ + 113.64846, + 33.182402 + ], + [ + 113.63506, + 33.160833 + ], + [ + 113.626001, + 33.150423 + ], + [ + 113.617004, + 33.147255 + ], + [ + 113.600144, + 33.163146 + ], + [ + 113.593601, + 33.157715 + ], + [ + 113.573846, + 33.15691 + ], + [ + 113.561201, + 33.161134 + ], + [ + 113.550254, + 33.140113 + ], + [ + 113.541321, + 33.14308 + ], + [ + 113.532324, + 33.152736 + ], + [ + 113.521378, + 33.154698 + ], + [ + 113.514772, + 33.162492 + ], + [ + 113.499987, + 33.156206 + ], + [ + 113.46029, + 33.156458 + ], + [ + 113.449217, + 33.160581 + ], + [ + 113.432545, + 33.15681 + ], + [ + 113.413105, + 33.156659 + ], + [ + 113.397881, + 33.14997 + ], + [ + 113.388821, + 33.128393 + ], + [ + 113.386619, + 33.113451 + ], + [ + 113.357239, + 33.091613 + ], + [ + 113.333836, + 33.085976 + ], + [ + 113.325469, + 33.079181 + ], + [ + 113.313138, + 33.075608 + ], + [ + 113.301436, + 33.080138 + ], + [ + 113.271427, + 33.08049 + ], + [ + 113.257335, + 33.083409 + ], + [ + 113.250477, + 33.077822 + ], + [ + 113.237077, + 33.077017 + ], + [ + 113.219273, + 33.064584 + ], + [ + 113.206124, + 33.070826 + ], + [ + 113.190019, + 33.067202 + ], + [ + 113.18574, + 33.056932 + ], + [ + 113.165546, + 33.048977 + ], + [ + 113.161456, + 33.038906 + ], + [ + 113.142016, + 33.016647 + ], + [ + 113.127358, + 33.010552 + ], + [ + 113.120312, + 33.001182 + ], + [ + 113.116097, + 32.986421 + ], + [ + 113.108799, + 32.97332 + ], + [ + 113.097789, + 32.946406 + ], + [ + 113.109805, + 32.94202 + ], + [ + 113.11553, + 32.932996 + ], + [ + 113.140129, + 32.930627 + ], + [ + 113.145854, + 32.940306 + ], + [ + 113.15592, + 32.936122 + ], + [ + 113.161897, + 32.92745 + ], + [ + 113.181714, + 32.920644 + ], + [ + 113.199015, + 32.920291 + ], + [ + 113.208137, + 32.916408 + ], + [ + 113.201154, + 32.888821 + ], + [ + 113.205558, + 32.884937 + ], + [ + 113.195681, + 32.871871 + ], + [ + 113.187062, + 32.866422 + ], + [ + 113.177059, + 32.852446 + ], + [ + 113.167999, + 32.847046 + ], + [ + 113.165797, + 32.838063 + ], + [ + 113.175737, + 32.83241 + ], + [ + 113.187062, + 32.819943 + ], + [ + 113.17838, + 32.806665 + ], + [ + 113.184294, + 32.801364 + ], + [ + 113.185237, + 32.788286 + ], + [ + 113.177247, + 32.775307 + ], + [ + 113.199959, + 32.750253 + ], + [ + 113.201343, + 32.738835 + ], + [ + 113.193982, + 32.733378 + ], + [ + 113.191528, + 32.717712 + ], + [ + 113.207697, + 32.717257 + ], + [ + 113.213736, + 32.703055 + ], + [ + 113.231226, + 32.701488 + ], + [ + 113.241103, + 32.691429 + ], + [ + 113.236259, + 32.682581 + ], + [ + 113.259914, + 32.677778 + ], + [ + 113.269351, + 32.662053 + ], + [ + 113.258467, + 32.653961 + ], + [ + 113.252679, + 32.666907 + ], + [ + 113.243305, + 32.66984 + ], + [ + 113.236196, + 32.679143 + ], + [ + 113.220594, + 32.684452 + ], + [ + 113.210276, + 32.678941 + ], + [ + 113.20172, + 32.660333 + ], + [ + 113.18788, + 32.652241 + ], + [ + 113.186181, + 32.646476 + ], + [ + 113.19222, + 32.635398 + ], + [ + 113.20279, + 32.632262 + ], + [ + 113.201783, + 32.614504 + ], + [ + 113.196121, + 32.606156 + ], + [ + 113.200651, + 32.585103 + ], + [ + 113.198575, + 32.579536 + ], + [ + 113.205432, + 32.569969 + ], + [ + 113.221286, + 32.570424 + ], + [ + 113.243871, + 32.578827 + ], + [ + 113.249785, + 32.593555 + ], + [ + 113.280486, + 32.595984 + ], + [ + 113.282311, + 32.591986 + ], + [ + 113.303135, + 32.586723 + ], + [ + 113.31037, + 32.579536 + ], + [ + 113.315717, + 32.587988 + ], + [ + 113.321631, + 32.58733 + ], + [ + 113.326349, + 32.577561 + ], + [ + 113.342832, + 32.567893 + ], + [ + 113.351577, + 32.573664 + ], + [ + 113.364537, + 32.569462 + ], + [ + 113.372024, + 32.576245 + ], + [ + 113.382216, + 32.593353 + ], + [ + 113.400712, + 32.61324 + ], + [ + 113.422354, + 32.605245 + ], + [ + 113.437893, + 32.589203 + ], + [ + 113.447393, + 32.584698 + ], + [ + 113.458528, + 32.585508 + ], + [ + 113.458843, + 32.575689 + ], + [ + 113.472621, + 32.578574 + ], + [ + 113.492752, + 32.567741 + ], + [ + 113.512759, + 32.571538 + ], + [ + 113.513513, + 32.579384 + ], + [ + 113.524397, + 32.593505 + ], + [ + 113.542264, + 32.589152 + ], + [ + 113.565416, + 32.602715 + ], + [ + 113.571582, + 32.624775 + ], + [ + 113.583535, + 32.633577 + ], + [ + 113.588882, + 32.650421 + ], + [ + 113.596243, + 32.649763 + ], + [ + 113.594041, + 32.661092 + ], + [ + 113.619332, + 32.667362 + ], + [ + 113.616941, + 32.69158 + ], + [ + 113.609832, + 32.696484 + ], + [ + 113.614676, + 32.711344 + ], + [ + 113.623358, + 32.706138 + ], + [ + 113.642987, + 32.703106 + ], + [ + 113.649089, + 32.708261 + ], + [ + 113.668404, + 32.692389 + ], + [ + 113.696274, + 32.695624 + ], + [ + 113.717727, + 32.683694 + ], + [ + 113.729114, + 32.669688 + ], + [ + 113.761199, + 32.652697 + ], + [ + 113.771894, + 32.655276 + ], + [ + 113.781079, + 32.652595 + ], + [ + 113.791963, + 32.642075 + ], + [ + 113.785169, + 32.631402 + ], + [ + 113.799072, + 32.620879 + ], + [ + 113.809264, + 32.603828 + ], + [ + 113.814423, + 32.600842 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "adcode": 419001, + "name": "娴庢簮甯�", + "center": [ + 112.590047, + 35.090378 + ], + "centroid": [ + 112.398673, + 35.099131 + ], + "childrenNum": 0, + "level": "city", + "parent": { + "adcode": 410000 + }, + "subFeatureIndex": 17, + "acroutes": [ + 100000, + 410000 + ] + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 112.758, + 35.204436 + ], + [ + 112.744662, + 35.205123 + ], + [ + 112.735351, + 35.210424 + ], + [ + 112.720315, + 35.206448 + ], + [ + 112.71264, + 35.18701 + ], + [ + 112.703077, + 35.20154 + ], + [ + 112.707418, + 35.216951 + ], + [ + 112.695339, + 35.218718 + ], + [ + 112.684267, + 35.227256 + ], + [ + 112.682694, + 35.233733 + ], + [ + 112.67288, + 35.234272 + ], + [ + 112.655012, + 35.244232 + ], + [ + 112.651426, + 35.259242 + ], + [ + 112.645009, + 35.260566 + ], + [ + 112.639159, + 35.247862 + ], + [ + 112.633056, + 35.265569 + ], + [ + 112.618335, + 35.254043 + ], + [ + 112.617643, + 35.244575 + ], + [ + 112.634188, + 35.239326 + ], + [ + 112.637208, + 35.225686 + ], + [ + 112.619027, + 35.220043 + ], + [ + 112.602544, + 35.22284 + ], + [ + 112.574988, + 35.221122 + ], + [ + 112.567879, + 35.211749 + ], + [ + 112.559071, + 35.21278 + ], + [ + 112.536234, + 35.223429 + ], + [ + 112.513523, + 35.21857 + ], + [ + 112.489805, + 35.229955 + ], + [ + 112.482444, + 35.224655 + ], + [ + 112.472378, + 35.230298 + ], + [ + 112.45772, + 35.226373 + ], + [ + 112.423999, + 35.23805 + ], + [ + 112.401413, + 35.241877 + ], + [ + 112.390718, + 35.238786 + ], + [ + 112.376751, + 35.224115 + ], + [ + 112.367315, + 35.22019 + ], + [ + 112.320697, + 35.21911 + ], + [ + 112.306667, + 35.220975 + ], + [ + 112.288548, + 35.21754 + ], + [ + 112.304465, + 35.251884 + ], + [ + 112.294462, + 35.252816 + ], + [ + 112.282823, + 35.242024 + ], + [ + 112.261307, + 35.24119 + ], + [ + 112.242748, + 35.234812 + ], + [ + 112.21664, + 35.240209 + ], + [ + 112.220792, + 35.247028 + ], + [ + 112.217269, + 35.253258 + ], + [ + 112.191097, + 35.256348 + ], + [ + 112.173545, + 35.263803 + ], + [ + 112.134287, + 35.271258 + ], + [ + 112.120006, + 35.265275 + ], + [ + 112.110947, + 35.27013 + ], + [ + 112.115665, + 35.273072 + ], + [ + 112.093961, + 35.279202 + ], + [ + 112.075842, + 35.277143 + ], + [ + 112.058793, + 35.279889 + ], + [ + 112.055018, + 35.271454 + ], + [ + 112.067978, + 35.265275 + ], + [ + 112.079617, + 35.242367 + ], + [ + 112.08119, + 35.221613 + ], + [ + 112.058919, + 35.206301 + ], + [ + 112.042058, + 35.200264 + ], + [ + 112.041492, + 35.189808 + ], + [ + 112.051935, + 35.177044 + ], + [ + 112.066279, + 35.153522 + ], + [ + 112.060177, + 35.140752 + ], + [ + 112.067223, + 35.136233 + ], + [ + 112.056276, + 35.098449 + ], + [ + 112.056591, + 35.089061 + ], + [ + 112.062756, + 35.078591 + ], + [ + 112.062127, + 35.055779 + ], + [ + 112.053571, + 35.044223 + ], + [ + 112.038912, + 35.045501 + ], + [ + 112.035075, + 35.033845 + ], + [ + 112.042436, + 35.027845 + ], + [ + 112.09352, + 35.029911 + ], + [ + 112.108242, + 35.029222 + ], + [ + 112.125857, + 35.021204 + ], + [ + 112.1514, + 35.015399 + ], + [ + 112.169896, + 35.00241 + ], + [ + 112.1877, + 34.972981 + ], + [ + 112.212047, + 34.965007 + ], + [ + 112.226831, + 34.956589 + ], + [ + 112.247844, + 34.940735 + ], + [ + 112.258099, + 34.942212 + ], + [ + 112.267284, + 34.953537 + ], + [ + 112.28188, + 34.960232 + ], + [ + 112.301068, + 34.945462 + ], + [ + 112.3212, + 34.941375 + ], + [ + 112.334537, + 34.941425 + ], + [ + 112.360268, + 34.931428 + ], + [ + 112.384993, + 34.924533 + ], + [ + 112.39097, + 34.918574 + ], + [ + 112.433247, + 34.920987 + ], + [ + 112.462501, + 34.915668 + ], + [ + 112.489616, + 34.90286 + ], + [ + 112.496536, + 34.895717 + ], + [ + 112.505659, + 34.898821 + ], + [ + 112.521072, + 34.892761 + ], + [ + 112.534221, + 34.893746 + ], + [ + 112.537304, + 34.916013 + ], + [ + 112.527426, + 34.929163 + ], + [ + 112.515976, + 34.929212 + ], + [ + 112.511447, + 34.92084 + ], + [ + 112.496914, + 34.921726 + ], + [ + 112.505155, + 34.942459 + ], + [ + 112.519436, + 34.940341 + ], + [ + 112.527867, + 34.932019 + ], + [ + 112.551207, + 34.938569 + ], + [ + 112.563853, + 34.949696 + ], + [ + 112.5692, + 34.958608 + ], + [ + 112.579392, + 34.971751 + ], + [ + 112.596001, + 34.971013 + ], + [ + 112.614182, + 34.98002 + ], + [ + 112.624752, + 34.977903 + ], + [ + 112.644695, + 34.978888 + ], + [ + 112.653062, + 34.988681 + ], + [ + 112.666462, + 34.9875 + ], + [ + 112.675962, + 34.993504 + ], + [ + 112.684581, + 35.012497 + ], + [ + 112.698988, + 35.023221 + ], + [ + 112.72711, + 35.035026 + ], + [ + 112.735289, + 35.043338 + ], + [ + 112.736043, + 35.060008 + ], + [ + 112.743341, + 35.06458 + ], + [ + 112.753219, + 35.08508 + ], + [ + 112.754288, + 35.098891 + ], + [ + 112.766304, + 35.107196 + ], + [ + 112.761963, + 35.158041 + ], + [ + 112.76687, + 35.182985 + ], + [ + 112.758, + 35.204436 + ] + ] + ] + ] + } + } + ] +} diff --git a/project-web/src/views/dataV/components/map.vue b/project-web/src/views/dataV/components/map.vue new file mode 100644 index 0000000..4508969 --- /dev/null +++ b/project-web/src/views/dataV/components/map.vue @@ -0,0 +1,318 @@ +<template> + <div ref="dataMap" style="width: 100%; height: 100%"></div> +</template> + +<script> +import henan from './henan.json'; +import echarts from 'echarts'; +import dataVRequest from '@/api/dataV.js'; + +echarts.registerMap('娌冲崡', henan); //鍔犺浇json鏁版嵁锛屽苟娉ㄥ唽鍒癳chars涓� +export default { + name: 'data-map', + async mounted() { + const myChart5 = echarts.init(this.$refs.dataMap); + const resData = await dataVRequest.queryProjectMap(); + console.log('resData',resData); + const option = { + backgroundColor: 'rgba(21, 21, 21, 0.2)', //鍦板浘鑳屾櫙鑹� + //鏄剧ず鎮诞绐楀彛--鏍囩 + tooltip: { + trigger: 'item', + confine: true, + backgroundColor: 'rgba(21, 21, 21, 0.82)', //鏍囩鑳屾櫙鑹� + borderColor: '#FFFFCC', + showDelay: 0, + hideDelay: 0, + enterable: true, //榧犳爣鏄惁鍙繘鍏ユ彁绀烘娴眰涓紝榛樿涓篺alse锛屽闇�璇︽儏鍐呬氦浜掞紝濡傛坊鍔犻摼鎺ワ紝鎸夐挳锛屽彲璁剧疆涓� true + transitionDuration: 0, //鎻愮ず妗嗘诞灞傜殑绉诲姩鍔ㄧ敾杩囨浮鏃堕棿锛屽崟浣嶆槸 s锛岃缃负 0 鐨勬椂鍊欎細绱ц窡鐫�榧犳爣绉诲姩 + extraCssText: 'z-index:100;', //淇敼鏍囩澶у皬鏍峰紡绛� + // 鐐瑰嚮浜嬩欢锛岀偣鍑诲渾鐐癸紝璺宠浆 + formatter: function (params, ticket, callback) { + //鏍规嵁涓氬姟鑷繁鎷撳睍瑕佹樉绀虹殑鍐呭 + // ing:杩涜涓� + // wait:鏈紑宸� + // name: 鍩庡競鍚�; + // end: 宸插畬宸�; + // close: 宸插叧闂� + // expired: 宸茶秴鏈� + // planMoney: 璁″垝鎬绘姇璧� + // payMoney: 宸蹭笅杈炬姇璧� + let res = ''; + res = ` + <div style="position: absolute;top: 0;left: 0;background-color: rgba(17, 66, 138,0.7);z-index: 1000;width: 150px; padding: 8px; border: 1px solid #A5EBFF;color: #fff;"> + <div style="font-size: 16px;font-weight: bold;line-height: 20px;margin-bottom: 8px;">${params.name}</div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">杩涜涓�</p> + <p style="font-size: 16px;">${params.value}涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">鏈紑宸�</p> + <p style="font-size: 16px;">${params.data.ywtd}涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">宸插畬宸�</p> + <p style="font-size: 16px;">416涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">宸插叧闂�</p> + <p style="font-size: 16px;">416涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">宸茶秴鏈�</p> + <p style="font-size: 16px;">416涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">璁″垝鎬绘姇璧�</p> + <p style="font-size: 16px;">416涓�</p> + </div> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <p style="font-size: 12px;">宸蹭笅杈炬姇璧�</p> + <p style="font-size: 16px;">416涓�</p> + </div> + </div>`; + return res; + }, + }, + geo: { + map: '娌冲崡', // 鍙�� china world 鐪佷唤锛堟渤鍗楃渷锛� + // 鍏充簬map鐨勫�硷細涓浗銆佷笘鐣屽湴鍥炬槸鑻辨枃锛岀渷浠芥槸涓枃銆傛瘮濡� 鈥榗hina鈥� 锛�'娴欐睙鈥欑瓑锛岃嫢濉啓'zhejiang'鏄壘涓嶅埌鐨勩�傚紩鐢ㄤ箣鍓嶅彲浠ユ煡鐪嬩竴涓媕s鏂囦欢鍟︺�備竴瀹氳寮曞 + zoom: 1.2, // + // center: [113.625351,34.746303, 10],//鍧愭爣瀹氫綅鍜宭eft top bottom right鍐茬獊锛屼娇鐢ㄤ竴涓氨鍙互鍟� + left: 'center', //宸﹀彸灞呬腑 + top: 'middle', //姘村钩灞呬腑 + label: { + // 鏄惁鏄剧ず甯傚尯鍚嶅瓧 + normal: { + show: true, + color: '#fff', + fontSize: 16, + }, + // hover楂樹寒鐨勬椂鍊欐樉绀哄競鍖哄悕瀛� + emphasis: { + show: true, //鍦板浘涓悕绉扮殑鏄剧ず涓庡惁 + color: '#fff', + }, + }, + roam: true, //鏄惁鍏佽缂╂斁 + scaleLimit: { + //鎵�灞炵粍浠剁殑z鍒嗗眰锛寊鍊煎皬鐨勫浘褰細琚珃鍊煎ぇ鐨勫浘褰㈣鐩� + min: 1, //鏈�灏忕殑缂╂斁鍊� + max: 40, //鏈�澶х殑缂╂斁鍊� + }, + // 鍦板浘澶栬瀹氬埗 + itemStyle: { + // 姝e父鏄剧ず鐨勬牱寮� + normal: { + shadowColor: 'rgba(0, 0, 0, 0.5)', + shadowBlur: 10, + shadowOffsetX: -5, + shadowOffsetY: -5, + areaColor: { + type: 'linear', + x: 1, + y: 0, + x2: 0.5, + y2: 1, + colorStops: [ + { + offset: 0, + color: '#5E9BBE', // 0% 澶勭殑棰滆壊 + }, + { + offset: 1, + color: '#2972D6', // 100% 澶勭殑棰滆壊 + }, + ], + global: false, // 缂虹渷涓� false + }, + borderColor: '#8ACFEE', //鐪佸競杈圭晫绾�00fcff 516a89 + borderWidth: 1, + }, + // 榧犳爣鎮诞涓嬫牱寮� + emphasis: { + areaColor: { + type: 'linear', + x: 1, + y: 0, + x2: 0.5, + y2: 1, + colorStops: [ + { + offset: 0, + color: '#F9D746', // 0% 澶勭殑棰滆壊 + }, + { + offset: 1, + color: '#D88B10', // 100% 澶勭殑棰滆壊 + }, + ], + global: false, // 缂虹渷涓� false + }, + }, + }, + }, + series: [ + // 閰嶇疆鏁版嵁鐨勬樉绀� + { + type: 'map', // 绫诲瀷map + map: '娌冲崡', + label: { + show: true, + }, + geoIndex: 0, // 鎸囧畾geo灞炴�у悗锛宻eries-map.map 灞炴�э紝浠ュ強 series-map.itemStyle 绛夋牱寮忛厤缃笉鍐嶈捣浣滅敤锛岃�屾槸閲囩敤 geo 涓殑鐩稿簲灞炴�с�� + data: [ + { + name: '閮戝窞甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '鐒︿綔甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '鏂颁埂甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '鍟嗕笜甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '淇¢槼甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '鍛ㄥ彛甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '寮�灏佸競', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '椹婚┈搴楀競', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '鍗楅槼甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '璁告槍甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '婕渤甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '骞抽《灞卞競', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '瀹夐槼甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '楣ゅ甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '婵槼甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '娴庢簮甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '娲涢槼甯�', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + { + name: '涓夐棬宄″競', + value: 123344, + ywtd: 998, + gdzs: 9802, + jxz: 863, + zsk: 233, + }, + ], + }, + ], + }; + option && myChart5.setOption(option); + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/dataV/components/projectList.vue b/project-web/src/views/dataV/components/projectList.vue new file mode 100644 index 0000000..1e91e48 --- /dev/null +++ b/project-web/src/views/dataV/components/projectList.vue @@ -0,0 +1,115 @@ +<template> + <el-table v-loading="loading" :data="tableData" height="100%" :stripe="true" class="the-table"> + <el-table-column prop="projectName" label="椤圭洰鍚嶇О" width="200"> </el-table-column> + <el-table-column prop="time1" label="鎵瑰鏃堕棿" width="80" align="center"> </el-table-column> + <el-table-column prop="unit" label="寤鸿鍗曚綅"> </el-table-column> + <el-table-column prop="time2" label="椤圭洰寮�宸�" width="95" align="center"> </el-table-column> + <el-table-column prop="time3" label="鍒濇楠屾敹" width="95" align="center"> </el-table-column> + <el-table-column prop="time4" label="绔e伐楠屾敹" width="95" align="center"> </el-table-column> + <el-table-column prop="time5" label="鍐崇畻鎵瑰" width="95" align="center"> </el-table-column> + <el-table-column prop="time6" label="棰勮瀹屽伐" width="95" align="center"> </el-table-column> + <el-table-column prop="unit" label="杩涘害鐜扮姸" align="center" width="95"></el-table-column> + </el-table> +</template> + +<script> +import dataVRequest from '@/api/dataV.js'; + +export default { + data() { + return { + loading: true, + tableData: [ + { + projectName: '娲涢槼閭欢澶勭悊涓績宸ョ▼', + time1: '2022', + unit: '閮戝窞', + time2: '2021.08.30', + time3: '2021.08.30', + time4: '2021.08.30', + time5: '2021.08.30', + time6: '2021.08.30', + }, + ], + }; + }, + created() { + dataVRequest.queryProjectList().then(res=> { + console.log('aaa',res); + this.loading = false; + }) + } +}; +</script> + +<style lang="scss" scoped> +.the-table { + width: 100%; + height: 100%; + background-color: #091959; + font-size: 14px; + border: 2px solid #0C5EB5; + + ::v-deep { + tr { + background-color: #091959; + } + th { + border: 0; + color: #66a6ff; + background: linear-gradient(360deg, #293b89 0%, rgba(13, 25, 79, 0) 50%); + } + tr.hover-row > td.el-table__cell { + background-color: #091959; + } + .el-table__body tr.el-table__row--striped td.el-table__cell { + background: linear-gradient(360deg, #293b89 0%, rgba(13, 25, 79, 0) 50%); + } + th.el-table__cell.is-leaf, + .el-table td.el-table__cell { + border: 0; + } + + td { + border: 0; + color: #E6F8FF; + padding: 5px 0; + } + .el-table__fixed-right-patch { + width: 10px; + background: linear-gradient(360deg, #293b89 0%, rgba(13, 25, 79, 0) 50%) #091959; + } + .el-table__body-wrapper::-webkit-scrollbar { + background-color: #091959; + width: 10px; + } + + .el-table__fixed-right { + right: 9px !important; + } + + .el-table__body-wrapper::-webkit-scrollbar-thumb { + background-color: #08519e; // 婊戝潡棰滆壊 + border-radius: 100px; // 婊戝潡鍦嗚 + } + .el-table__fixed::before, + .el-table__fixed-right::before { + display: none; + } + .el-table__body-wrapper::-webkit-scrollbar-corner { + background-color: #091959; // 婊戝潡棰滆壊 + } + + .el-button--small { + font-size: 14px; + } + + .el-table__body tr:hover>td.el-table__cell { + background-color: #091959; + } + .cell { + line-height: 18px; + } + } +} +</style> diff --git a/project-web/src/views/dataV/components/projectType.vue b/project-web/src/views/dataV/components/projectType.vue new file mode 100644 index 0000000..510b471 --- /dev/null +++ b/project-web/src/views/dataV/components/projectType.vue @@ -0,0 +1,86 @@ +<template> + <div v-loading="loading" style="height: 100%; width: 100%"> + <swiper :options="swiperOptions" style="height: 100%"> + <swiper-slide v-for="(item, index) in serializeList" :key="index"> + <div class="title-box"> + <p class="name">{{ item.projectCategoryName }}</p> + <p> + <span class="num">{{ item.num }}%</span> + </p> + </div> + <DataProgress :stroke-width="6" :color="item.color" :percentage="item.num" /> + </swiper-slide> + </swiper> + </div> +</template> + +<script> +import dataVRequest from '@/api/dataV.js'; + +import DataProgress from './dataProgress.vue'; + +export default { + name: 'project-type', + components: { + DataProgress, + }, + data() { + return { + loading: true, + // 杞挱鍥鹃厤缃� + swiperOptions: { + direction: 'vertical', + autoplay: { + delay: 2000, + disableOnInteraction: false, + }, // 鑷姩杞挱 + slidesPerView: 5, + loop: true, + }, + colorList: [ + 'linear-gradient(270deg, #FFD15C 0%, rgba(200,172,36,0.4) 100%)', + 'linear-gradient(270deg, #5CE4FF 0%, rgba(36,145,200,0.4) 100%)', + 'linear-gradient(270deg, #20E6A4 0%, rgba(32,230,164,0.34) 100%)', + 'linear-gradient(270deg, #FF5C5C 0%, rgba(200,36,36,0.4) 100%)', + 'linear-gradient(270deg, #3E9EFF 0%, rgba(7,124,242,0.79) 100%)', + ], + list: [], + }; + }, + computed: { + serializeList() { + return this.list.map((item, index) => { + return { + ...item, + color: this.colorList[index % this.colorList.length], + }; + }); + }, + }, + created() { + dataVRequest.queryProjectNumByType().then((res) => { + this.list = res; + this.loading = false; + }); + }, +}; +</script> + +<style lang="scss" scoped> +.title-box { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 12px; + color: #fff; + line-height: 22px; + + .name { + opacity: 0.74; + } + + .num { + margin-left: 10px; + } +} +</style> diff --git a/project-web/src/views/dataV/components/projectYear.vue b/project-web/src/views/dataV/components/projectYear.vue new file mode 100644 index 0000000..8d9cabb --- /dev/null +++ b/project-web/src/views/dataV/components/projectYear.vue @@ -0,0 +1,179 @@ +<template> + <div v-loading="loading" style="width: 100%; height: 100%" ref="projectYear"></div> +</template> + +<script> +import echarts from 'echarts'; +import dataVRequest from '@/api/dataV.js'; + +export default { + name: 'project-year', + data() { + return { + loading: true, + }; + }, + mounted() { + // 鐩戝惉灞忓箷瀹藉害鍙樺寲锛氬綋娴忚鍣ㄥ彂鐢焤esize浜嬩欢鐨勬椂鍊欙紝瑙﹀彂echart鐨剅esize浜嬩欢锛岄噸缁榗anvas + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + const projectYear = echarts.init(this.$refs.projectYear); + window.addEventListener('resize', () => { + this.$nextTick(() => { + projectYear.resize(); + }); + }); + dataVRequest.queryProjectYear().then((res) => { + console.log('resqueryProjectYear', res); + this.loading = false; + }); + // 缁樺埗鍥捐〃 + projectYear.setOption({ + tooltip: { + trigger: 'axis', + }, + grid: { + right: 20, + left: 50, + top: 30, + bottom: 20, + }, + legend: { + right: 0, + top: 0, + textStyle: { + color: '#ADB1B4', + fontSize: 13, + }, + }, + xAxis: [ + { + type: 'category', + axisLine: { + lineStyle: { + color: '#0D496E', + }, + }, + axisLabel: { + show: true, + textStyle: { + fontSize: 12, + color: '#ADB1B4', + }, + }, + data: ['2017骞�', '2018骞�', '2018骞�', '2019骞�'], + }, + // 鐢熸垚鑳屾櫙闃村奖闇�瑕� + { + type: 'category', + show: false, + data: ['2017骞�', '2018骞�', '2018骞�', '2019骞�'], + }, + ], + yAxis: { + type: 'value', + splitLine: { + show: false, + }, + axisLine: { + show: false, + }, + axisLabel: { + show: true, + textStyle: { + fontSize: 12, + color: '#ADB1B4', + }, + }, + }, + series: [ + { + name: '瀹屽伐椤圭洰', + data: [256, 856, 354, 26], + type: 'bar', + barWidth: 10, + itemStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: '#E8B351', // 0% 澶勭殑棰滆壊 + }, + { + offset: 1, + color: '#DBA33A', // 100% 澶勭殑棰滆壊 + }, + ], + global: false, // 缂虹渷涓� false + }, + }, + }, + { + name: '鏂板椤圭洰', + data: [56, 856, 54, 26], + type: 'bar', + barWidth: 10, + itemStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: '#00F0FF', // 0% 澶勭殑棰滆壊 + }, + { + offset: 1, + color: '#23ACE6', // 100% 澶勭殑棰滆壊 + }, + ], + global: false, // 缂虹渷涓� false + }, + }, + }, + // 鍒堕�犺儗鏅槾褰� + { + tooltip: { + show: false, + }, + xAxisIndex: 1, + itemStyle: { + color: 'rgba(180, 180, 180, 0.2)', + }, + data: [1000, 1000, 1000, 1000], + barWidth: 48, + emphasis: { + itemStyle: { + color: { + type: 'linear', + x: 0, + x2: 0, + y: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: 'rgba(64, 247, 176, 0.25)', + }, + { + offset: 1, + color: 'rgba(17, 34, 64, 0.25)', + }, + ], + }, + }, + }, + type: 'bar', + }, + ], + }); + }, +}; +</script> diff --git a/project-web/src/views/dataV/static.vue b/project-web/src/views/dataV/static.vue new file mode 100644 index 0000000..1e9747a --- /dev/null +++ b/project-web/src/views/dataV/static.vue @@ -0,0 +1,722 @@ +<template> + <div class="container"> + <div class="box" :style="style"> + <div class="header"> + <div class="timeBox"> + <span class="hms">{{ time }}</span> + <span class="hms">{{ hms }}</span> + <span class="hms">{{ weekNum }}</span> + </div> + </div> + <el-row :gutter="10"> + <el-col :span="7"> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">缁煎悎鏁版嵁鍒嗘瀽</span><span class="eng-title">COMPREHENSIVE DATA ANALYSIS</span> + </p> + <div + class="col-box__content e-flex flex-wrap justify-between" + style="height: 232px" + v-loading="comprehensiveLoading" + > + <div class="item-box item1"> + <div> + <span class="num">{{ comprehensive.sum }}</span + >涓� + </div> + <div>椤圭洰鎬绘暟</div> + </div> + <div class="item-box item2"> + <div> + <span class="num">{{ comprehensive.ongoing }}</span + >涓� + </div> + <div>杩涜涓�</div> + </div> + <div class="item-box item3"> + <div> + <span class="num">{{ comprehensive.notBegin }}</span + >涓� + </div> + <div>鏈紑宸�</div> + </div> + <div class="item-box item4"> + <div> + <span class="num">{{ comprehensive.end }}</span + >涓� + </div> + <div>宸插畬宸�</div> + </div> + <div class="item-box item5"> + <div> + <span class="num">{{ comprehensive.close }}</span + >涓� + </div> + <div>宸插叧闂�</div> + </div> + <div class="item-box item6"> + <div> + <span class="num">{{ comprehensive.overdue }}</span + >涓� + </div> + <div>宸茶秴鏈�</div> + </div> + </div> + </div> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">璁″垝鎶曡祫鏁版嵁鍒嗘瀽</span><span class="eng-title">PLAN INVESTMENT DATA ANALYSIS</span> + </p> + <div v-loading="planLoading" class="col-box__content e-flex justify-between plan-box"> + <swiper :options="swiperOptions"> + <swiper-slide v-for="(item1, index1) in planArrList" :key="index1"> + <div class="plan-flex-box"> + <div v-for="(item2, index2) in item1" :key="index1 + '' + index2" class="content-wrap"> + <div class="e-flex justify-between msg-wrap"> + <div class="city-name" :class="'name' + (index1 * 4 + index2 + 1)"> + <template v-if="index1 === 0 && index2 < 3"> + <img v-if="index2 === 0" style="margin-right: 5px" src="@/assets/dataV/g1.png" alt="1" /> + <img v-if="index2 === 1" style="margin-right: 5px" src="@/assets/dataV/g2.png" alt="2" /> + <img v-if="index2 === 2" style="margin-right: 5px" src="@/assets/dataV/g3.png" alt="3" /> + </template> + <span v-else class="city-rank">{{ index1 * 4 + index2 + 1 }}</span> + <span class="name-txt" :title="item2.orgName">{{ item2.orgName }}</span> + </div> + <div class="desc"> + 璁″垝<span class="num" :title="item2.sumMoney">{{ item2.sumMoney }}</span + >涓� 宸蹭笅杈�<span class="num end" :title="item2.curMoney">{{ item2.curMoney }}</span + >涓� + </div> + </div> + <DataProgress + :stroke-width="8" + :show-block="true" + :color="progressColor(index1, index2)" + :percentage="60" + /> + </div></div + ></swiper-slide> + </swiper> + </div> + </div> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">鍘嗗勾椤圭洰鏁版嵁鍒嗘瀽</span + ><span class="eng-title">PROJECT DATA ANALYSIS OVER THE YEARS</span> + </p> + <div class="col-box__content e-flex justify-between" style="height: 232px"> + <ProjectYear /> + </div> + </div> + </el-col> + <el-col :span="10" style="position: relative"> + <div class="middle-top-box"> + <div class="type-name">椤圭洰鎬绘暟</div> + <div class="num-box"> + <span v-for="(i, index) in numToStrArr(comprehensive.sum)" :key="index" :class="{ nothing: i === '' }">{{ + i === '' ? '-' : i + }}</span> + </div> + <div class="type-name">宸蹭笅杈炬姇璧勶紙涓囧厓锛�</div> + <div class="num-box"> + <span + v-for="(i, index) in numToStrArr(comprehensive.curMoney)" + :key="index" + class="orange" + :class="{ nothing: i === '' }" + >{{ i === '' ? '-' : i }}</span + > + </div> + </div> + <div class="middle-box"> + <MyMap /> + </div> + <div class="middle-bottom-box"> + <ProjectList /> + </div> + </el-col> + <el-col :span="7"> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">椤圭洰绫诲瀷鍗犳瘮鍒嗘瀽</span><span class="eng-title">ANALYSIS OF THE PROPORTION</span> + </p> + <div class="col-box__content" style="height: 231px"> + <ProjectType /> + </div> + </div> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">鎵规璁″垝鏁版嵁鍒嗘瀽</span><span class="eng-title">BATCH PLAN DATA ANALYSIS</span> + </p> + <div class="col-box__content"> + <BatchPlan /> + </div> + </div> + <div class="col-box"> + <p class="col-box__title"> + <span class="tit">鍦板競鑰冩牳璇勫垎鍒嗘瀽</span><span class="eng-title">CITY ASSESSMENT SCORE ANALYSIS</span> + </p> + <div class="col-box__content" style="height: 230px"> + <CityScore /> + </div> + </div> + </el-col> + </el-row> + </div> + </div> +</template> + +<script> +import MyMap from '@/views/dataV/components/map'; +import { formatDate } from '@/utils/DateFormatter'; +import ProjectYear from './components/projectYear.vue'; +import ProjectType from './components/projectType.vue'; +import BatchPlan from './components/batchPlan.vue'; +import ProjectList from './components/projectList.vue'; +import CityScore from './components/cityScore.vue'; +import DataProgress from './components/dataProgress.vue'; + +import dataVRequest from '@/api/dataV.js'; + +export default { + name: 'static', + components: { + MyMap, + ProjectType, + ProjectYear, + BatchPlan, + ProjectList, + CityScore, + DataProgress, + }, + data() { + return { + weekDays: ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�'], + hms: '', + ymd: '', + time: '', + weekNum: '', + timer: null, + style: { + width: `1920px`, + height: `1080px`, + transform: 'scale(1) translate(-50%, -50%)', // 榛樿涓嶇缉鏀撅紝鍨傜洿姘村钩灞呬腑 + }, + // 杞挱鍥鹃厤缃� + swiperOptions: { + autoplay: { + delay: 2000, + disableOnInteraction: false, + }, // 鑷姩杞挱 + slidesPerView: 2, + loop: true, + }, + comprehensiveLoading: true, + //缁煎悎鏁版嵁鍒嗘瀽妯″潡鏁版嵁 + comprehensive: { + sum: 0, // 鎬绘暟閲� + notBegin: 0, // 鏈紑宸� + ongoing: 0, //杩涜涓� + end: 0, // 宸插畬宸� + close: 0, //宸插叧闂� + overdue: 0, //宸茶秴鏈� + sumMoney: 0, //璁″垝鎬绘姇璧勶紙鏆傛椂娌$敤鍒帮級 + curMoney: 0, //宸蹭笅杈炬�绘姇璧� + }, + planLoading: true, + // 璁″垝鎶曡祫鏁版嵁鍒嗘瀽鍒楄〃 + planList: [], + }; + }, + computed: { + // 搴忓垪鍖栫殑浠�4涓负涓�缁勭殑浜岀淮鏁版嵁鍒楄〃 + planArrList() { + const newArr = []; + let cacheArr = []; + this.planList.forEach((item, index) => { + cacheArr.push(item); + if ((index + 1) % 4 === 0) { + newArr.push(cacheArr); + cacheArr = []; + } + }); + // 濡傛灉鏈�鍚庣紦瀛樼殑鏁扮粍涓湁鍊硷紝琛ㄧず鍙兘鏈�鍚庝竴缁勪笉婊�4涓湭琚坊鍔� + if (cacheArr.length) { + newArr.push(cacheArr); + } + + return newArr; + }, + // 杩涘害鏉¢鑹茬殑鍒ゆ柇閫昏緫 + progressColor() { + return (index1, index2) => { + if (index1 === 0 && index2 < 3) { + if (index2 === 0) { + return 'linear-gradient(270deg, #FFD15C 0%, rgba(200,172,36,0.4) 100%)'; + } + if (index2 === 1) { + return 'linear-gradient(270deg, #5CE4FF 0%, rgba(36,145,200,0.4) 100%)'; + } + return 'linear-gradient(270deg, #20E6A4 0%, rgba(32,230,164,0.34) 100%)'; + } else { + return 'linear-gradient(270deg, #42A3FF 0%, rgba(30,30,30,0) 100%)'; + } + }; + }, + }, + methods: { + // 闃叉姈 + debounce(fn, t) { + const delay = t || 500; + let timer; + return function () { + const args = arguments; + if (timer) { + clearTimeout(timer); + } + const context = this; + timer = setTimeout(() => { + timer = null; + fn.apply(context, args); + }, delay); + }; + }, + // 鑾峰彇缂╂斁姣斾緥 + getScale() { + const w = window.innerWidth / 1920; + const h = window.innerHeight / 1080; + return w < h ? w : h; + }, + // 璁剧疆缂╂斁姣斾緥 + setScale() { + this.style.transform = `scale(${this.getScale()}) translate(-50%, -50%)`; + }, + // 鎶婃暟鍊煎簭鍒楀寲鎴愪竴涓暟缁勶紝鐢ㄤ簬ui灞曠ず + numToStrArr(num) { + if (!Number(num)) { + return ['', '', '', '', '', '', '']; + } + let arr = String(num).split(''); + let length = arr.length; // 鎶婃暟鎹繚瀛樹笅鏉� 鍦ㄥ惊鐜腑姝ゅ�间細鍙� + if (length < 7) { + for (let index = 0; index < 7 - length; index++) { + arr.unshift(''); + } + } + + return arr; + }, + }, + created() { + // 鏌ヨ缁煎悎缁熻鍒嗘瀽 + dataVRequest.queryBoardTotalData().then((res) => { + this.comprehensive = res; + this.comprehensiveLoading = false; + }); + // 鏌ヨ璁″垝鎶曡祫鏁版嵁鍒嗘瀽 + dataVRequest.queryPlanMoney().then((res) => { + this.planList = res; + this.planLoading = false; + }); + }, + mounted() { + this.setScale(); + this.onresize = this.debounce(() => this.setScale(), 100); + window.addEventListener('resize', this.onresize); + this.weekNum = this.weekDays[new Date().getDay()]; + const vm = this; + this.timer = function () { + const time = formatDate(new Date()); + vm.time = time.split(' ')[0]; + vm.hms = time.slice(11); + vm.ymd = time.slice(0, 11).replaceAll('-', '.'); + vm.$forceUpdate(); + }; + + setInterval(this.timer, 1000); + }, + beforeDestroy() { + window.removeEventListener('resize', this.onresize); + }, + destroyed() { + clearInterval(this.timer); + this.timer = null; + }, +}; +</script> + +<style lang="scss" scoped> +body { + margin: 0; + padding: 0; +} +* { + box-sizing: border-box; +} +.e-flex { + display: flex; + align-items: center; +} +.e-flex-col { + display: flex; + flex-direction: column; +} +.c-ad { + color: #adb1b4; +} +.c-08 { + color: #08d2fa; +} +.c-20 { + color: #20e6a4; +} +.c-ff { + color: #ffd15c; +} +.c-f9 { + color: #f99806; +} +.c-75 { + color: #75f9fc; +} +.c-7c { + color: #7cbfff; +} +.c-fff { + color: #fff; +} +.flex-1 { + flex-grow: 1; +} +.justify-center { + justify-content: center; +} +.justify-around { + justify-content: space-around; +} +.justify-start { + justify-content: flex-start; +} +.align-center { + align-items: center; +} +.align-end { + align-items: flex-end; +} +.justify-between { + justify-content: space-between; +} +.flex-wrap { + flex-wrap: wrap; +} +.container { + background-image: url('../../assets/dataV/bg.png'); + background-repeat: no-repeat; + width: 100vw; + min-height: 100%; + max-height: 100vh; + overflow: hidden; +} +.box { + transform-origin: 0 0; + position: absolute; + top: 50%; + left: 50%; + padding: 0 20px 20px; + overflow: hidden; + z-index: 10; +} +.header { + width: 100%; + height: 90px; + background-repeat: no-repeat; + background-image: url(../../assets/dataV/header.png); + background-size: 100% 100%; +} +.timeBox { + position: absolute; + top: 0; + left: 39px; + padding-top: 20px; +} +.hms { + letter-spacing: -1px; + font-size: 16px; + margin-right: 1px; + color: #fff; +} +.ymd { + font-size: 14px; +} +.col-box { + background-image: url(../../assets/dataV/boxBG.png); + background-size: 100% 100%; + background-repeat: no-repeat; + height: 308px; + width: 100%; + margin-bottom: 20px; + overflow: hidden; + color: #fff; + .col-box__title { + font-size: 26px; + color: #fff; + font-weight: 600; + margin-top: 24px; + margin-left: 35px; + + .tit { + text-shadow: 0 0 2px #fff; + } + .eng-title { + font-size: 12px; + margin-left: 10px; + vertical-align: middle; + color: #215a8e; + } + } + .item-box { + width: 156px; + height: 76px; + padding-left: 79px; + padding-top: 19px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #2b2e34; + border-radius: 5px; + margin-top: 15px; + font-size: 12px; + color: #adb1b4; + -webkit-box-shadow: inset 0 5px 20px 1px #2b2e34; + box-shadow: inset 0 5px 20px 1px #2b2e34; + background-repeat: no-repeat; + background-size: 100% 100%; + line-height: 17px; + + @for $i from 1 through 6 { + &.item#{$i} { + background-image: url('../../assets/dataV/comprehensive-ico#{$i}.png'); + } + } + + .num { + font-weight: bold; + font-size: 24px; + color: #fff; + } + } + // 鎶曡瘔绫诲瀷 + .tslx-img { + width: 90px; + height: 220px; + } + .tslx { + width: 100%; + position: absolute; + top: 40%; + left: 50%; + z-index: 1; + transform: translate(-50%); + display: flex; + align-items: center; + flex-direction: column; + } +} +.rela { + position: relative; +} +.level-box { + width: 100%; + img { + width: 100%; + height: 160px; + } + .level { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%); + font-size: 18px; + color: #75f9fc; + } +} + +.f-18 { + font-size: 18px; +} +.f-16 { + font-size: 16px; +} +.f-14 { + font-size: 14px; +} +.f-20 { + font-size: 20px; +} +.f-26 { + font-size: 26px; +} +.f-12 { + font-size: 12px; +} +.middle-top-box { + width: 300px; + height: 125px; + position: absolute; + left: 35px; + top: 10px; + z-index: 99; + color: #fff; + + .type-name { + color: #fff; + opacity: 0.74; + font-size: 14px; + line-height: 20px; + } + + .num-box { + margin: 5px 0 20px; + display: flex; + align-items: center; + span { + width: 20px; + height: 34px; + line-height: 34px; + margin-right: 5px; + font-size: 24px; + border: 1px solid #00a0ff; + border-radius: 2px; + text-align: center; + color: #62d0ff; + + &.orange { + color: #ffc303; + } + + &.nothing { + color: rgba(255, 255, 255, 0.2); + } + } + } +} +.middle-box { + width: 100%; + height: 672px; + margin-bottom: 20px; +} +.middle-bottom-box { + width: 100%; + height: 275px; + overflow: hidden; +} +.col-box__content { + background-color: rgba(7, 19, 72, 0.5); + padding: 20px; + margin-top: 20px; +} + +.plan-box { + height: 231px; + padding: 0 10px; + overflow: hidden; +} + +.plan-flex-box { + box-sizing: border-box; + width: 260px; + height: 204px; + padding: 0 10px; + position: relative; + + &::after { + content: ''; + width: 0; + height: 204px; + border-right: 1px dashed #0e9cff; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + } + + .content-wrap { + margin-bottom: 7px; + } + + .msg-wrap { + margin-bottom: 9px; + line-height: 24px; + } + + .city-name { + display: flex; + align-items: center; + font-size: 16px; + color: #fff; + .name-txt { + max-width: 70px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.name1 { + color: #ffd15c; + } + + &.name2 { + color: #07d1fa; + } + + &.name3 { + color: #20e6a4; + } + } + + .city-rank { + font-size: 16px; + font-weight: bold; + padding: 0 5px; + } + + .desc { + font-size: 12px; + color: #c6d1db; + display: flex; + align-items: center; + white-space: nowrap; + + .num { + padding: 0 2px; + font-size: 16px; + color: #fff; + max-width: 30px; + overflow: hidden; + text-overflow: ellipsis; + + &.end { + color: #e6c364; + } + } + } +} +.myd { + width: 28%; + height: 200px; + display: flex; + align-items: center; + flex-direction: column; + border-radius: 6px; + border: 1px solid #4192d9; + box-shadow: inset 0 5px 20px 1px #2b2e34; + img { + margin-top: -30px; + width: 60px; + height: 60px; + } +} + +::v-deep .el-loading-mask { + background-color: rgba(8, 21, 69, 0.9); +} +</style> diff --git a/project-web/src/views/error-log/components/ErrorTestA.vue b/project-web/src/views/error-log/components/ErrorTestA.vue new file mode 100644 index 0000000..bc5c185 --- /dev/null +++ b/project-web/src/views/error-log/components/ErrorTestA.vue @@ -0,0 +1,22 @@ +<template> + <div> + <!--error code--> + {{ a.a }} + <!--error code--> + </div> +</template> + +<script> +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- +export default { + name: 'ErrorTestA', +}; +</script> diff --git a/project-web/src/views/error-log/components/ErrorTestB.vue b/project-web/src/views/error-log/components/ErrorTestB.vue new file mode 100644 index 0000000..b8f9447 --- /dev/null +++ b/project-web/src/views/error-log/components/ErrorTestB.vue @@ -0,0 +1,20 @@ +<template> + <div /> +</template> + +<script> +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- +export default { + created() { + this.b = b; // eslint-disable-line + }, +}; +</script> diff --git a/project-web/src/views/error-log/index.vue b/project-web/src/views/error-log/index.vue new file mode 100644 index 0000000..ac9ced8 --- /dev/null +++ b/project-web/src/views/error-log/index.vue @@ -0,0 +1,47 @@ +<template> + <div class="errPage-container"> + <ErrorA /> + <ErrorB /> + <h3>Please click the bug icon in the upper right corner</h3> + <aside> + Now the management system are basically the form of the spa, it enhances the user experience, but it also + increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately + Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions. + <a + target="_blank" + class="link-type" + href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html" + > + Document introduction + </a> + </aside> + <a href="#"> + <img src="https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif" /> + </a> + </div> +</template> + +<script> +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- +import ErrorA from './components/ErrorTestA'; +import ErrorB from './components/ErrorTestB'; + +export default { + name: 'ErrorLog', + components: { ErrorA, ErrorB }, +}; +</script> + +<style scoped> +.errPage-container { + padding: 30px; +} +</style> diff --git a/project-web/src/views/error-page/401.vue b/project-web/src/views/error-page/401.vue new file mode 100644 index 0000000..bf736bc --- /dev/null +++ b/project-web/src/views/error-page/401.vue @@ -0,0 +1,102 @@ +<template> + <div class="errPage-container"> + <el-button size="mini" icon="el-icon-arrow-left" class="pan-back-btn" @click="back"> 杩斿洖 </el-button> + <el-row> + <el-col :span="12"> + <h1 class="text-jumbo text-ginormous">Oops!</h1> + gif鏉ユ簮<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> 椤甸潰 + <h2>浣犳病鏈夋潈闄愬幓璇ラ〉闈�</h2> + <h6>濡傛湁涓嶆弧璇疯仈绯讳綘棰嗗</h6> + <ul class="list-unstyled"> + <li>鎴栬�呬綘鍙互鍘�:</li> + <li class="link-type"> + <router-link to="/dashboard"> 鍥為椤� </router-link> + </li> + <li class="link-type"> + <a href="https://www.crmeb.com/">闅忎究鐪嬬湅</a> + </li> + <li><a href="#" @click.prevent="dialogVisible = true">鐐规垜鐪嬪浘</a></li> + </ul> + </el-col> + <el-col :span="12"> + <img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream." /> + </el-col> + </el-row> + <el-dialog :visible.sync="dialogVisible" title="闅忎究鐪�"> + <img :src="ewizardClap" class="pan-img" /> + </el-dialog> + </div> +</template> + +<script> +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- +import errGif from '@/assets/401_images/401.gif'; + +export default { + name: 'Page401', + data() { + return { + errGif: errGif + '?' + +new Date(), + ewizardClap: 'https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646', + dialogVisible: false, + }; + }, + methods: { + back() { + if (this.$route.query.noGoBack) { + this.$router.push({ path: '/dashboard' }); + } else { + this.$router.go(-1); + } + }, + }, +}; +</script> + +<style lang="scss" scoped> +.errPage-container { + width: 800px; + max-width: 100%; + margin: 100px auto; + .pan-back-btn { + background: #008489; + color: #fff; + border: none !important; + } + .pan-gif { + margin: 0 auto; + display: block; + } + .pan-img { + display: block; + margin: 0 auto; + width: 100%; + } + .text-jumbo { + font-size: 60px; + font-weight: 700; + color: #484848; + } + .list-unstyled { + font-size: 14px; + li { + padding-bottom: 5px; + } + a { + color: #008489; + text-decoration: none; + &:hover { + text-decoration: underline; + } + } + } +} +</style> diff --git a/project-web/src/views/error-page/404.vue b/project-web/src/views/error-page/404.vue new file mode 100644 index 0000000..0c31195 --- /dev/null +++ b/project-web/src/views/error-page/404.vue @@ -0,0 +1,240 @@ +<template> + <div class="wscn-http404-container"> + <div class="wscn-http404"> + <div class="pic-404"> + <img class="pic-404__parent" src="@/assets/404_images/404.png" alt="404" /> + <img class="pic-404__child left" src="@/assets/404_images/404_cloud.png" alt="404" /> + <img class="pic-404__child mid" src="@/assets/404_images/404_cloud.png" alt="404" /> + <img class="pic-404__child right" src="@/assets/404_images/404_cloud.png" alt="404" /> + </div> + <div class="bullshit"> + <div class="bullshit__oops">OOPS!</div> + <div class="bullshit__headline">{{ message }}</div> + <div class="bullshit__info">璇锋鏌ユ偍杈撳叆鐨刄RL鏄惁姝g‘锛屾垨鍗曞嚮涓嬮潰鐨勬寜閽繑鍥炰富椤�.</div> + <router-link :to="{ path: '/dashboard' }"> + <span class="bullshit__return-home">杩斿洖鎺у埗鍙�</span> + </router-link> + </div> + </div> + </div> +</template> + +<script> +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- +export default { + name: 'Page404', + + data() { + return {}; + }, + computed: { + message() { + return '浣犱笉鑳借繘鍏ヨ繖涓〉闈�...'; + }, + }, + methods: {}, +}; +</script> + +<style lang="scss" scoped> +.wscn-http404-container { + transform: translate(-50%, -50%); + position: absolute; + top: 40%; + left: 50%; +} +.wscn-http404 { + position: relative; + width: 1200px; + padding: 0 50px; + overflow: hidden; + .pic-404 { + position: relative; + float: left; + width: 600px; + overflow: hidden; + &__parent { + width: 100%; + } + &__child { + position: absolute; + &.left { + width: 80px; + top: 17px; + left: 220px; + opacity: 0; + animation-name: cloudLeft; + animation-duration: 2s; + animation-timing-function: linear; + animation-fill-mode: forwards; + animation-delay: 1s; + } + &.mid { + width: 46px; + top: 10px; + left: 420px; + opacity: 0; + animation-name: cloudMid; + animation-duration: 2s; + animation-timing-function: linear; + animation-fill-mode: forwards; + animation-delay: 1.2s; + } + &.right { + width: 62px; + top: 100px; + left: 500px; + opacity: 0; + animation-name: cloudRight; + animation-duration: 2s; + animation-timing-function: linear; + animation-fill-mode: forwards; + animation-delay: 1s; + } + @keyframes cloudLeft { + 0% { + top: 17px; + left: 220px; + opacity: 0; + } + 20% { + top: 33px; + left: 188px; + opacity: 1; + } + 80% { + top: 81px; + left: 92px; + opacity: 1; + } + 100% { + top: 97px; + left: 60px; + opacity: 0; + } + } + @keyframes cloudMid { + 0% { + top: 10px; + left: 420px; + opacity: 0; + } + 20% { + top: 40px; + left: 360px; + opacity: 1; + } + 70% { + top: 130px; + left: 180px; + opacity: 1; + } + 100% { + top: 160px; + left: 120px; + opacity: 0; + } + } + @keyframes cloudRight { + 0% { + top: 100px; + left: 500px; + opacity: 0; + } + 20% { + top: 120px; + left: 460px; + opacity: 1; + } + 80% { + top: 180px; + left: 340px; + opacity: 1; + } + 100% { + top: 200px; + left: 300px; + opacity: 0; + } + } + } + } + .bullshit { + position: relative; + float: left; + width: 300px; + padding: 30px 0; + overflow: hidden; + &__oops { + font-size: 32px; + font-weight: bold; + line-height: 40px; + color: #1482f0; + opacity: 0; + margin-bottom: 20px; + animation-name: slideUp; + animation-duration: 0.5s; + animation-fill-mode: forwards; + } + &__headline { + font-size: 20px; + line-height: 24px; + color: #222; + font-weight: bold; + opacity: 0; + margin-bottom: 10px; + animation-name: slideUp; + animation-duration: 0.5s; + animation-delay: 0.1s; + animation-fill-mode: forwards; + } + &__info { + font-size: 13px; + line-height: 21px; + color: grey; + opacity: 0; + margin-bottom: 30px; + animation-name: slideUp; + animation-duration: 0.5s; + animation-delay: 0.2s; + animation-fill-mode: forwards; + } + &__return-home { + display: block; + float: left; + width: 110px; + height: 36px; + background: #1482f0; + border-radius: 100px; + text-align: center; + color: #ffffff; + opacity: 0; + font-size: 14px; + line-height: 36px; + cursor: pointer; + animation-name: slideUp; + animation-duration: 0.5s; + animation-delay: 0.3s; + animation-fill-mode: forwards; + } + @keyframes slideUp { + 0% { + transform: translateY(60px); + opacity: 0; + } + 100% { + transform: translateY(0); + opacity: 1; + } + } + } +} +</style> diff --git a/project-web/src/views/home/index.vue b/project-web/src/views/home/index.vue new file mode 100644 index 0000000..4d0395e --- /dev/null +++ b/project-web/src/views/home/index.vue @@ -0,0 +1,241 @@ +<template> + <div> + <el-container> + <!--宸︿笂瑙掓暟鎹� --> + <div class="total-main f-r f-r-top"> + <img src="@/assets/images/map/close-total.png" alt="鍏抽棴" v-if="totalShow" @click="totalShow = false" class="open-icon"> + <img src="@/assets/images/map/open-total.png" alt="灞曞紑" v-if="!totalShow" @click="totalShow = true" class="open-icon"> + <transition name="el-zoom-in-left"> + <div class="total-box" v-show="totalShow"> + <div class="font-18 color-333 font-bold">褰撳墠鑼冨洿锛歿{ cityName }}</div> + <div class="f-r total-list"> + <div class="total-item f-r f-r-top" v-for="(t,index) in totalList" :key="index"> + <img :src="typeIcon(t.type)" class="t-icon"/> + <div> + <div class="font-13 color-333">{{t.name}}</div> + <div class="font-20 color-333 font-bold">{{t.num}}</div> + </div> + </div> + </div> + </div> + </transition> + </div> + <div style="position: relative; z-index: 0; width: 100%; height: 100%"> + <div id="home"></div> + </div> + <!-- 鍙充晶鍒楄〃 --> + <div class="toggle-box" :class="projectShow ? 'toggle-box-right' : ''" @click="showProject"> + <i style="font-size: 16px" class="el-icon-arrow-left"/> + </div> + <project-lists v-if="projectShow" @close="projectShow=false"></project-lists> + </el-container> + </div> +</template> + +<script> +import projectLists from "@/views/home/projectList"; + +export default { + name: "index", + components: {projectLists}, + data() { + return { + projectShow: false, + loading: false, + totalShow: false, // 鏄惁鏄剧ず宸︿笂瑙掓�昏 + map: null, + windowHeight: document.documentElement.clientHeight, // 瀹炴椂灞忓箷楂樺害 + cityName: "閮戝窞甯�", + centerLatLng: '', + zoom: 8, + cur: null, // 褰撴湡閫変腑鍦板尯涓嬫爣 + infoWindow: { + show: false, + data: "", // 寮圭獥淇℃伅 + img: '', // 寮圭獥鍥炬爣 + lat: '', + lng: '', + }, + markerArr:[], + totalList: [ + {id: 1, type: 1, num: 6,name:'缁煎悎涓氬姟妤�'}, + {id: 2, type: 2, num: 7,name:'鐪佽涓績'}, + {id: 3, type: 3, num: 8,name:'甯傚鐞嗕腑蹇�'}, + {id: 4, type: 4, num: 9,name:'鍘夸粨閰嶄腑蹇�'}, + {id: 5, type: 5, num: 10,name:'璐疆'}, + {id: 6, type: 6, num: 11,name:'鏀瑰缓'}, + {id: 7, type: 7, num: 12,name:'淇℃伅鍖�'}, + {id: 8, type: 8, num: 13,name:'宸ヨ壓鏀归��'}, + {id: 9, type: 9, num: 14,name:'鍏朵粬'}, + {id: 10, type: 10, num: 15,name:'涓夊啘'}, + {id: 11, type: 11, num: 16,name:'涓夌骇鐗╂祦浣撶郴'}, + ], + projectList: [], // 椤圭洰缁熻鍒楄〃 + cityList: [] // 鍩庡競鍒楄〃 + } + }, + mounted() { + setTimeout(() => { + try { + this.initMap();// 娓叉煋鍦板浘 + } catch (e) { + console.log(e) + } + }, 50); + }, + methods: { + initMap() { + var center = new TMap.LatLng(39.984120, 116.307484) + //瀹氫箟map鍙橀噺锛岃皟鐢� TMap.Map() 鏋勯�犲嚱鏁板垱寤哄湴鍥� + this.map = new TMap.Map(document.getElementById('home'), { + center: center,//璁剧疆鍦板浘涓績鐐瑰潗鏍� + zoom: this.zoom, //璁剧疆鍦板浘缂╂斁绾у埆 + }); + this.map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.SCALE);//绉婚櫎鑵捐鍦板浘姣斾緥灏� + this.map.removeControl(TMap.constants.DEFAULT_CONTROL_ID.ROTATION);//绉婚櫎鑵捐鍦板浘鏃嬭浆鎺т欢 + }, + initMarkerObj() { + var that = this + this.marker = new TMap.MultiMarker({ + id: 'marker_s', + map: this.map, // 鏄剧ずMarker鍥惧眰鐨勫簳鍥� + styles: { + markerStyle: new TMap.MarkerStyle({ // markerStyle鏄懠鍚哥偣鏍峰紡鍚嶇О + // 鐐规爣娉ㄧ殑鐩稿叧鏍峰紡 + width: 78, // 瀹藉害 + height: 100, // 楂樺害 + anchor: { x: 39, y: 50 }, // 鏍囨敞鐐瑰浘鐗囩殑閿氱偣浣嶇疆 + src: require("@/assets/images/map/icon-gj.png"), // 鏍囨敞鐐瑰浘鐗噓rl鎴朾ase64鍦板潃 + color: '#fff', // 鏍囨敞鐐规枃鏈鑹� + size: 18, // 鏍囨敞鐐规枃鏈枃瀛楀ぇ灏� + direction: 'top', // 鏍囨敞鐐规枃鏈枃瀛楃浉瀵逛簬鏍囨敞鐐瑰浘鐗囩殑鏂逛綅 + offset: { x: 0, y: 10 }, // 鏍囨敞鐐规枃鏈枃瀛楀熀浜巇irection鏂逛綅鐨勫亸绉诲睘鎬� + strokeColor: '#fff', // 鏍囨敞鐐规枃鏈弿杈归鑹� + strokeWidth: 0.5, // 鏍囨敞鐐规枃鏈弿杈瑰搴� + }) + }, + enableCollision: true, // 寮�鍚鎾� + geometries: that.markerArr,//浣嶇偣鏁扮粍 + }) + }, + showProject(){ + this.projectShow = !this.projectShow + }, + // 宸︿笂瑙掑睍绀轰笉鍚屽浘鏍� + typeIcon(type) { + // type 1缁煎悎涓氬姟妤� 2 鐪佽涓績 3 甯傚鐞嗕腑蹇� 4鍘夸粨閰嶄腑蹇� 5璐疆 6鏀瑰缓 7淇℃伅鍖� 8 宸ヨ壓鏀归�� 9鍏朵粬 10涓夊啘 11 榛樿 + let src = require('@/assets/images/map/icon-other.png') + switch (type) { + case 1: + src = require("@/assets/images/map/icon-zhywl.png") + break + case 2: + src = require("@/assets/images/map/icon-sjzx.png") + break + case 3: + src = require("@/assets/images/map/icon-sclzx.png") + break + case 4: + src = require("@/assets/images/map/icon-xcpzx.png") + break + case 5: + src = require("@/assets/images/map/icon-gz.png") + break + case 6: + src = require("@/assets/images/map/icon-gj.png") + break + case 7: + src = require("@/assets/images/map/icon-xxh.png") + break + case 8: + src = require("@/assets/images/map/icon-gygz.png") + break + case 9: + src = require("@/assets/images/map/icon-qt.png") + break + case 10: + src = require("@/assets/images/map/icon-sn.png") + break + default: + src = require("@/assets/images/map/icon-other.png") + break + } + return src + }, + // 闅忔満棰滆壊 + ranDombg() { + var r = Math.floor((Math.random() + 0.3) * 256); + var g = Math.floor((Math.random() + 0.3) * 256); + var b = Math.floor((Math.random() + 0.3) * 256); + return "rgb(" + r + "," + g + "," + b + ")"; + } + } +} +</script> + +<style scoped lang="scss"> +.total-main { + position: absolute; + top: 0; + left: 0; + padding: 15px; + z-index: 10; +} +.total-box{ + width: 530px; + margin-left: 15px; + background-color: #FFFFFF; + border-radius: 8px; + padding: 15px 30px; +} +.total-list { + margin-top: 5px; + flex-wrap: wrap; +} + +.total-item { + width: 25%; + margin:10px 0; +} + +.t-icon { + width: 28px; + height: 28px; + margin-right: 8px; +} +.open-icon{ + cursor: pointer; +} +.font-20{ + font-size: 20px; +} +.toggle-box { + cursor: pointer; + width: 23px; + height: 97px; + border-radius: 31px 0 0 31px; + border: 1px solid #eeeeee; + box-sizing: border-box; + background: #0D997C; + position: absolute; + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + top: 50%; + right: 0; + z-index: 2; + transform: rotate(0); + transform: translateY(-50%); + i { + color: #fff; + } +} +.toggle-box-right { + right: 400px; + i { + transform: rotate(180deg); + transition-delay: 0.2s; + } +} +</style> diff --git a/project-web/src/views/home/projectList.vue b/project-web/src/views/home/projectList.vue new file mode 100644 index 0000000..a022e23 --- /dev/null +++ b/project-web/src/views/home/projectList.vue @@ -0,0 +1,172 @@ +<template> + <div> + <transition name="el-zoom-in-right"> + <div class="project-main"> + <div> + <div class="f-r f-r-between project-top"> + <div class="font-14 search-switch" @click="formShow=true"> + 鏉′欢绛涢�� <i style="font-size: 16px" class="el-icon-arrow-down"></i> + </div> + <div class="font-14 color-333">鍏ㄩ儴{{total}}鏉$粨鏋�</div> + </div> + <!-- 鍒楄〃 --> + <div class="com-c-box" :loading="loading"> + <div class="info-main"> + <div class="p-item f-r f-r-top" v-for="(t,index) in projectLists" :key="index"> + <img :src="typeIcon(t.type)" class="t-icon"/> + <div class="f-1"> + <div class="font-18 project-name font-bold">{{t.projectName}}</div> + <div style="color:#235686" class="font-12">{{t.projectCategoryName}}</div> + <div class="f-r f-r-between"> + <div class="font-14 color-999">寤鸿鍗曚綅</div> + <div class="font-14 color-333">{{t.buildOrgName}}</div> + </div> + <div class="f-r f-r-between"> + <div class="font-14 color-999">寤鸿璧锋骞撮檺</div> + <div class="font-14 color-333">{{t.buildYearStart}}-{{t.buildYearEnd}}</div> + </div> + <div class="f-r f-r-between"> + <div class="font-14 color-999">涓昏寤鸿鍐呭</div> + <div class="font-14 color-333">{{t.detail}}</div> + </div> + </div> + </div> + </div> + </div> + <div class="f-r f-r-center btn-bot"> + <!-- 鍒嗛〉--> + <el-pagination + small + :current-page="page.pageNum" + :page-size="page.pageSize" + layout="prev, pager, next" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange"> + </el-pagination> + </div> + </div> + </div> + </transition> + <searchForm v-if="formShow" @close="formShow=false"></searchForm> + </div> +</template> + +<script> +import searchForm from "@/views/home/searchForm"; +export default { + name: "projectList", + components:{ searchForm }, + data(){ + return { + loading:false, // 鍒楄〃鍔犺浇 + formShow:false, // 鍙充晶琛ㄥ崟 + total:23, + page:{ + pageNum:1, + pageSize:10 + }, + projectLists:[ + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + { projectName:'xxxxx鍥哄畾璧勪骇椤圭洰涓�',projectCategoryName:'缁煎悎涓氬姟妤�',buildOrgName:'璁告槍灏夋皬鍘垮垎鍏徃',buildYearStart:2023,buildYearEnd:2025,detail:'寤鸿瑙勬ā5200骞虫硶绫�'}, + ] + } + }, + methods:{ + close(){ + this.$emit('close') + }, + // 灞曠ず涓嶅悓鍥炬爣 + typeIcon(type) { + // type 1 鏈繘琛� 2宸插畬鎴� 3杩涜涓� 4宸插彇娑� + let src = require('@/assets/images/map/wait.png') + switch (type) { + case 1: + src = require("@/assets/images/map/wait.png") + break + case 2: + src = require("@/assets/images/map/end.png") + break + case 3: + src = require("@/assets/images/map/ing.png") + break + default: + src = require("@/assets/images/map/cancel.png") + break + } + return src + }, + search(pageNum){ + if(pageNum){ + this.page.pageNum = pageNum + } + this.loading = true + }, + //鍒嗛〉 + handleSizeChange(pageSize) { + this.page.pageSize = pageSize; + this.search(1); + }, + handleCurrentChange(pageNum) { + this.page.pageNum = pageNum; + this.search(1); + }, + } +} +</script> + +<style scoped> +.project-main{ + position: absolute; + top:0; + right: 0; + bottom: 0; + width: 400px; + background-color: #FFFFFF; +} +.project-top{ + padding:15px; +} +.search-switch{ + width: 100px; + line-height: 32px; + border-radius: 4px; + text-align: center; + cursor: pointer; + border: 1px solid #c8ced5; +} +.com-c-box{ + overflow-y: auto; + max-height: calc(100vh - 240px); +} +>>>.com-c-box::-webkit-scrollbar { + display: none; +} +.info-main{ + padding: 15px; + position: relative; +} +.t-icon{ + min-width: 40px; + max-width: 40px; + height: 40px; + margin-right: 10px; +} +.p-item{ + line-height: 24px; + padding:15px 0; + border-top: 1px solid #eeeeee; +} +.project-name{ + color: #333333; +} +.project-name:hover{ + color: #0D997C; + cursor: pointer; +} +</style> diff --git a/project-web/src/views/home/searchForm.vue b/project-web/src/views/home/searchForm.vue new file mode 100644 index 0000000..299dda6 --- /dev/null +++ b/project-web/src/views/home/searchForm.vue @@ -0,0 +1,222 @@ +<template> + <div> + <transition name="el-zoom-in-top"> + <div class="search-main"> + <div class="info-main"> + <div class="f-r f-r-between topic-title"> + <div class="font-16 color-333">鏉′欢绛涢��</div> + <i class="el-icon-close font-18 pointer" @click="close"></i> + </div> + <div class="com-c-box"> + <el-form ref="dataForm" :model="formData" label-width="90px"> + <el-form-item label="閫夋嫨鍖哄煙"> + <el-cascader + :options="orgOptions" + :show-all-levels="false" + :props="{ value: 'id',label:'label' }" + v-model="formData.orgId" + style="width:100%"></el-cascader> + </el-form-item> + <el-form-item label="椤圭洰鐘舵��"> + <el-checkbox-group v-model="formData.status" size="small"> + <el-checkbox-button v-for="(c,j) in statusList" :label="c.value" :key="c.value">{{c.name}}</el-checkbox-button> + </el-checkbox-group> + </el-form-item> + <el-form-item label="椤圭洰鍒嗙被"> + <el-cascader + :options="categoryOptions" + :show-all-levels="false" + :props="{ value: 'id',label:'label' }" + v-model="formData.projectCategoryId" + style="width:100%"></el-cascader> + </el-form-item> + <el-form-item label="鐩磋惀鍗曚綅"> + <el-cascader + :options="orgZsOptions" + :props="{ value: 'dict_code',label:'dict_label' }" + v-model="formData.directUnitCode" + style="width:100%"></el-cascader> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅"> + <el-cascader + :options="buildOrgOptions" + :props="{ value: 'id',label:'label', checkStrictly: true }" + v-model="formData.buildOrgId" + style="width:100%"></el-cascader> + </el-form-item> + <div class="f-r f-r-between"> + <el-form-item label="寤鸿骞撮檺"> + <el-date-picker + style="width:100%" + v-model="buildDate" + type="daterange" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡"> + </el-date-picker> + </el-form-item> + </div> + <el-form-item label="椤圭洰鎵规"> + <el-select v-model="formData.projectBatchCode" placeholder="璇烽�夋嫨" style="width:100%"> + <el-option + v-for="item in batchOptions" + :label="item.dict_label" + :value="item.dict_code"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鎶曡祫涓撲笟"> + <el-select v-model="formData.investMajorCode" placeholder="璇烽�夋嫨" style="width:100%"> + <el-option + v-for="item in investOptions" + :key="item.dict_code" + :label="item.dict_label" + :value="item.dict_code"> + </el-option> + </el-select> + </el-form-item> + </el-form> + </div> + <div class="f-r f-r-center btn-bot"> + <my-button name="纭畾" site="form" @click="save"/> + <my-button name="閲嶇疆" site="form" @click="reset"/> + </div> + </div> + </div> + </transition> + </div> +</template> + +<script> +import * as finsystenant from "@/api/baseSetting/finsystenant"; +import * as classify from "@/api/projectManage/classify"; +import * as system from "@/api/system/dict/data"; +import myButton from '@/components/myButton/myButton' +export default { + name: "searchForm", + components:{ myButton }, + data(){ + return { + formShow:true, + orgOptions:[], // 閫夋嫨鍖哄煙 + categoryOptions:[], // 椤圭洰鍒嗙被 + orgZsOptions:[], // 鐩磋惀鍗曚綅 + buildOrgOptions:[], // 寤鸿鍗曚綅 + batchOptions:[], // 椤圭洰鎵规 + investOptions:[], // 鎶曡祫涓撲笟 + statusList:[ + {name:'鏈紑濮�',value:1}, + {name:'杩涜涓�',value:2}, + {name:'宸插畬宸�',value:3}, + {name:'宸插彇娑�',value:4}, + // {name:'宸查�炬湡',value:5}, + ], + formData: { + projectCategoryId: '', + planTypeCode: '', + projectName: '', + projectCode: '', + status:[], + directUnitCode: '', + buildOrgId:'', + buildYearStart:'', + buildYearEnd:'', + projectBatchCode:'', + investMajorCode:'', + }, + buildDate:[] + } + }, + created() { + this.getProjectClass() // 鑾峰彇椤圭洰鍒嗙被 + this.getProjectBatch() // 鑾峰彇椤圭洰鎵规 + this.getProjectInvest() // 鑾峰彇鎶曢�掍笓涓� + this.getProjectDirect() // 鑾峰彇鐩磋惀鍗曚綅 + this.getOrg() // 鑾峰彇寤鸿鍗曚綅 + }, + methods:{ + // 鑾峰彇椤圭洰鍒嗙被 + getProjectClass(){ + classify.classifyTree().then(res => { + const content = res || [] + this.categoryOptions = content + }) + }, + // 鑾峰彇椤圭洰鎵规 + getProjectBatch(){ + system.getDicts('project_batch').then(res=>{ + this.batchOptions = res + }) + }, + // 鑾峰彇鎶曢�掍笓涓� + getProjectInvest(){ + system.getDicts('INVEST_MAJOR').then(res=>{ + this.investOptions = res + }) + }, + // 鑾峰彇鐩磋惀鍗曚綅 + getProjectDirect(){ + system.getDicts('DIRECT_UNIT').then(res=>{ + this.orgZsOptions = res + }) + }, + // 鑾峰彇寤鸿鍗曚綅 + getOrg() { + finsystenant.getTree().then(res => { + if (res) { + this.buildOrgOptions = res + } else { + this.buildOrgOptions = [] + } + this.$forceUpdate() + }) + }, + // 纭畾 + save(){}, + // 閲嶇疆 + reset(){}, + close(){ + this.$emit('close') + } + } +} +</script> + +<style scoped> +.search-main{ + position: absolute; + top:0; + right: 0; + bottom: 0; + width: 400px; + z-index: 101; + background-color: #FFFFFF; + box-sizing: border-box; +} +.com-c-box{ + padding-right:15px; + overflow-y: auto; + max-height: calc(100vh - 240px); +} +>>>.com-c-box::-webkit-scrollbar { + display: none; +} +.topic-title{ + padding: 0 20px 20px 20px; +} +.pointer{ + cursor: pointer; +} +.info-main{ + box-sizing: border-box; + padding:20px 0; + position: relative; +} +.btn-bot{ + width: 100%; + padding:15px 0; + background-color: #FFFFFF; + border-top:1px solid #eeeeee; + z-index: 11; +} +</style> diff --git a/project-web/src/views/login/auth-redirect.vue b/project-web/src/views/login/auth-redirect.vue new file mode 100644 index 0000000..ed3a92a --- /dev/null +++ b/project-web/src/views/login/auth-redirect.vue @@ -0,0 +1,16 @@ +<template></template> +<script> +export default { + name: 'AuthRedirect', + created() { + const hash = window.location.search.slice(1); + if (window.localStorage) { + window.localStorage.setItem('x-admin-oauth-code', hash); + window.close(); + } + }, + render: function (h) { + return h(); // avoid warning message + }, +}; +</script> diff --git a/project-web/src/views/login/bak-index.vue b/project-web/src/views/login/bak-index.vue new file mode 100644 index 0000000..90f9eb9 --- /dev/null +++ b/project-web/src/views/login/bak-index.vue @@ -0,0 +1,594 @@ +<template> + <div class="login-bg"> + <img src="@/assets/imgs/login-name.png" alt="涓�浣撳寲杩愮淮鏈嶅姟鏀拺骞冲彴" class="logo-name"/> + <div class="index_from"> + <div class="page-account-top"> + 娆㈣繋鐧诲綍 + </div> + <el-form + ref="loginForm" + :model="loginForm" + :rules="loginRules" + class="login-form" + autocomplete="on" + label-position="left" + @keyup.enter="handleLogin" + > + <el-form-item prop="account"> + <el-input + v-model.trim="loginForm.account" + prefix-icon="el-icon-user" + placeholder="鐢ㄦ埛鍚�" + type="text" + tabindex="1" + autocomplete="off" + /> + </el-form-item> + + <el-form-item prop="password"> + <el-input + :key="passwordType" + v-model.trim="loginForm.password" + prefix-icon="el-icon-lock" + :type="passwordType" + placeholder="瀵嗙爜" + tabindex="2" + auto-complete="off" + /> + <span class="show-pwd" @click="showPwd"> + <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/> + </span> + </el-form-item> + + <el-form-item prop="code" class="captcha" v-if="loginForm.verifyType==='code' && captchaEnabled"> + <div class="captcha"> + <el-input + v-model.trim="loginForm.code" + style="width: 218px" + prefix-icon="el-icon-message" + placeholder="楠岃瘉鐮�" + type="text" + tabindex="3" + autocomplete="off" + /> + <div class="imgs" @click="getCode()"> + <!-- <img :src="captchatImg" />--> + <img :src="codeUrl"/> + <span v-show="showCaptchatImg">宸插け鏁�</span> + </div> + </div> + </el-form-item> + + <div class="acea-row"> + <el-button + :loading="loading" + type="primary" + style="width: 100%; margin-bottom: 80px" + @click.native.prevent="handleLogin" + :disabled="disabled" + >鐧诲綍 + </el-button> + </div> + </el-form> + + </div> + </div> +</template> + +<script> +import {validUsername} from '@/utils/validate'; +import {getCodeImg, getCodeNone} from '@/api/user'; + +export default { + name: 'Login', + data() { + const validateUsername = (rule, value, callback) => { + if (!validUsername(value)) { + callback(new Error('Please enter the correct user name')); + } else { + callback(); + } + }; + const validatePassword = (rule, value, callback) => { + if (value.length < 6 || value.length > 12) { + callback(new Error('瀵嗙爜浣嶆暟涓�6-12浣�')); + } else { + callback(); + } + }; + return { + verify: false, // 婊戝姩鏍¢獙 + showCaptchatImg: false, + // captchatImg: '', + codeUrl: "", + fullWidth: document.body.clientWidth, + swiperOption: { + pagination: { + el: '.pagination', + }, + autoplay: { + enabled: false, + disableOnInteraction: false, + delay: 3000, + }, + }, + loginForm: { + account: 'supervisor', // admin + password: '123456', + // key: '', + uuid: '', + code: '', + loginType: 'user_pass', // 鐢ㄦ埛鍚嶃�佸瘑鐮佹柟寮忕櫥褰� + verifyType: 'code' // 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 + // captcha: { + // captchaVerification: '', + // secretKey: '', + // token: '', + // }, + }, + loginRules: { + account: [{required: true, trigger: 'blur', message: '璇疯緭鍏ョ敤鎴峰悕'}], // validator: validateUsername + password: [{required: true, trigger: 'blur', message: '璇疯緭鍏ュ瘑鐮�'}], + code: [{required: true, message: '璇疯緭鍏ユ纭殑楠岃瘉鐮�', trigger: 'blur'}], + }, + passwordType: 'password', + capsTooltip: false, + loading: false, + showDialog: false, + redirect: undefined, + otherQuery: {}, + disabled: false, + isWeixin: this.$wechat.isWeixin(), + // 楠岃瘉鐮佸紑鍏� + captchaEnabled: true + }; + }, + components: {}, + watch: { + fullWidth(val) { + // 涓轰簡閬垮厤棰戠箒瑙﹀彂resize鍑芥暟瀵艰嚧椤甸潰鍗¢】锛屼娇鐢ㄥ畾鏃跺櫒 + if (!this.timer) { + // 涓�鏃︾洃鍚埌鐨剆creenWidth鍊兼敼鍙橈紝灏卞皢鍏堕噸鏂拌祴缁檇ata閲岀殑screenWidth + this.screenWidth = val; + this.timer = true; + const that = this; + setTimeout(function () { + // 鎵撳嵃screenWidth鍙樺寲鐨勫�� + that.timer = false; + }, 400); + } + }, + $route: { + handler: function (route) { + const query = route.query; + if (query) { + this.redirect = query.redirect; + this.otherQuery = this.getOtherQuery(query); + } + }, + immediate: true, + }, + }, + created() { + const _this = this; + document.onkeydown = function (e) { + if (_this.$route.path.indexOf('login') !== -1) { + const key = window.event.keyCode; + if (key === 13) { + _this.handleLogin(); + } + } + }; + window.addEventListener('resize', this.handleResize); + }, + mounted() { + if (this.loginForm.account === '') { + this.$refs.account.focus(); + } else if (this.loginForm.pwd === '') { + this.$refs.password.focus(); + } + this.getCode(); + }, + methods: { + verifyTrue() { + this.verify = true + }, + verifyFalse() { + this.verify = false + }, + + checkCapslock(e) { + const {key} = e; + this.capsTooltip = key && key.length === 1 && key >= 'A' && key <= 'Z'; + }, + showPwd() { + if (this.passwordType === 'password') { + this.passwordType = ''; + } else { + this.passwordType = 'password'; + } + this.$nextTick(() => { + this.$refs.pwd.focus(); + }); + }, + handleLogin() { + this.$refs.loginForm.validate((valid) => { + if (valid) { + this.success(null); + } else { + return false; + } + }); + }, + success(params) { + this.loginForm.captcha = this.$store.state.user.captcha; + const loading = this.$loading({ + lock: true, + text: '姝e湪鐧诲綍涓�.', + }); + this.$store + .dispatch('user/login', this.loginForm) + .then(() => { + this.$store.dispatch('user/getInfo').then(res => { + this.$router.push({path: this.redirect || '/dashboard', query: this.otherQuery}); + loading.close(); + this.disabled = true; + }).catch((err) => { + loading.close(); + this.disabled = false; + if (this.$wechat.isPhone()) this.$dialog.error(err.message); + this.loginForm.code = null; + this.getCode(); + }) + }) + .catch((err) => { + loading.close(); + this.disabled = false; + if (this.$wechat.isPhone()) this.$dialog.error(err.message); + this.loginForm.code = null; + this.getCode(); + }); + }, + + getCode() { + if (this.loginForm.verifyType === 'code') { + getCodeImg().then(data => { + this.captchaEnabled = data.captchaEnabled === undefined ? true : data.captchaEnabled; + if (this.captchaEnabled) { + this.codeUrl = "data:image/jpeg;base64," + data.img; + } + // 鏈夋病鏈夐獙璇佺爜锛岄兘闇�瑕乽uid浣滀负鍞竴鏍囪瘑锛�2022-12-01 + this.loginForm.uuid = data.uuid; + + // 2023-05-12 鎸夋柊鏂规硶锛屽け璐ヤ細鏄剧ず楠岃瘉鐮佹棤鏁� + this.showCaptchatImg = false; + setTimeout(() => { + this.showCaptchatImg = true; + }, 270000); + + }).catch(err => { + console.log(err); + }); + + } else if (this.loginForm.verifyType === 'jigsaw') { + // 鎷煎浘鏂瑰紡锛岀湅闇�瑕佸暐鍙傛暟锛屾殏鏈疄鐜� + this.loginForm.code = 'jigsaw'; // 濉厖code榛樿鍊硷紝鍚﹀垯楠岃瘉涓嶉�氳繃銆�2023-04-06 + this.loginForm.uuid = ''; // 娓呯┖楠岃瘉鐮侊紝涓轰笅娆¢噸鏂伴獙璇佸噯澶囥��2023-04-16 + + } else if (this.loginForm.verifyType === 'slide' || this.loginForm.verifyType === 'sms') { + // 涓嶉渶瑕侀獙璇佺爜锛屼絾浠嶉渶瑕佽姹傛帴鍙h幏鍙杣uid + getCodeNone().then(data => { + this.loginForm.uuid = data.uuid; + }).catch(err => { + console.error(err); + }); + + } else { + this.$message.error('涓嶆敮鎸佺殑楠岃瘉鐮佺被鍨�:' + this.loginForm.verifyType); + } + }, + getOtherQuery(query) { + return Object.keys(query).reduce((acc, cur) => { + if (cur !== 'redirect') { + acc[cur] = query[cur]; + } + return acc; + }, {}); + } + } +}; +</script> + +<style lang="scss" scoped> +$screen-md: 768px; +$font-size-base: 14px; +$animation-time: 0.3s; +$animation-time-quick: 0.15s; +$transition-time: 0.2s; +$ease-in-out: ease-in-out; +$subsidiary-color: #808695; +.login-bg { + min-width: 1200px; + margin: 0 auto; + height: 100%; + background: url("../../assets/imgs/login-bg.png") center no-repeat; + background-size: 1920px 1080px; +} + +.logo-name { + position: absolute; + top: 20px; + left: 20px; +} + +.wechat { + width: 26px; + height: 26px; + + img { + width: 100%; + height: 100%; + } +} + +.page-account { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + overflow: auto; + + &-container { + flex: 1; + padding: 32px 0; + text-align: center; + width: 384px; + margin: 0 auto; + + &-result { + width: 100%; + } + } + + &-tabs { + .ivu-tabs-bar { + border-bottom: none; + } + + .ivu-tabs-nav-scroll { + text-align: center; + } + + .ivu-tabs-nav { + display: inline-block; + float: none; + } + } + + &-top { + padding: 32px 0; + + &-logo { + img { + max-height: 75px; + } + } + + &-desc { + font-size: $font-size-base; + color: $subsidiary-color; + } + } + + &-auto-login { + margin-bottom: 24px; + text-align: left; + + a { + float: right; + } + } + + &-other { + margin: 24px 0; + text-align: left; + + span { + font-size: $font-size-base; + } + + img { + width: 24px; + margin-left: 16px; + cursor: pointer; + vertical-align: middle; + opacity: 0.7; + transition: all $transition-time $ease-in-out; + + &:hover { + opacity: 1; + } + } + } + + .ivu-poptip, + .ivu-poptip-rel { + display: block; + } + + &-register { + float: right; + + &-tip { + text-align: left; + + &-title { + font-size: $font-size-base; + } + + &-desc { + white-space: initial; + font-size: $font-size-base; + margin-top: 6px; + } + } + } + + &-to-login { + text-align: center; + margin-top: 16px; + } + + &-header { + text-align: right; + position: fixed; + top: 16px; + right: 24px; + } +} + +@media (min-width: $screen-md) { + .page-account { + background-repeat: no-repeat; + background-position: center; + background-size: cover; + } +} + +.page-account { + display: flex; +} + +.page-account .code { + display: flex; + align-items: center; + justify-content: center; +} + +.page-account .code .pictrue { + height: 40px; +} + +.swiperPross { + border-radius: 6px 0px 0px 6px; + overflow: hidden; +} + +.swiperPross, +.swiperPic, +.swiperPic img { + width: 286px; + height: 100%; +} + +.swiperPic img { + width: 100%; + height: 100%; +} + +.container { + padding: 0 !important; + z-index: 1; + display: flex; +} + +.index_from { + width: 400px; + position: absolute; + top: 30%; + right: 24%; + margin: 0 auto; + padding: 30px 50px; + border-radius: 16px; + background: #FFFFFF; +} + +.page-account-top { + padding: 20px 0 !important; + font-size: 18px; + font-weight: bold; + text-align: center; + margin-bottom: 20px; +} + +.btn { + background: linear-gradient(90deg, rgba(25, 180, 241, 1) 0%, rgba(14, 115, 232, 1) 100%) !important; +} +</style> + +<style lang="scss" scoped> +.captcha { + display: flex; + align-items: flex-start; +} + +$bg: #2d3a4b; +$dark_gray: #889aa4; +$light_gray: #eee; +.imgs { + position: relative; + height: 36px; + cursor: pointer; + + img { + height: 100%; + } + + span { + width: 84px; + line-height: 36px; + display: inline-block; + background: rgba(0, 0, 0, 0.4); + position: absolute; + left: 0; + color: #fff; + } +} + +.login-form { + box-sizing: border-box; + border-radius: 8px; + overflow: hidden; +} + +.tips { + font-size: 14px; + color: #fff; + margin-bottom: 10px; + + span { + &:first-of-type { + margin-right: 16px; + } + } +} + +.svg-container { + padding: 6px 5px 6px 15px; + color: $dark_gray; + vertical-align: middle; + width: 30px; + display: inline-block; +} + +.show-pwd { + position: absolute; + right: 10px; + top: 3px; + font-size: 16px; + color: $dark_gray; + cursor: pointer; + user-select: none; + + ::v-deepsvg-icon { + vertical-align: 0.3em; + } +} + +.thirdparty-button { + position: absolute; + right: 0; + bottom: 6px; +} +</style> diff --git a/project-web/src/views/login/index.vue b/project-web/src/views/login/index.vue new file mode 100644 index 0000000..7320b30 --- /dev/null +++ b/project-web/src/views/login/index.vue @@ -0,0 +1,462 @@ +<template> + <div class="login-container"> + <img src="@/assets/images/login-name.png" alt="鍥哄畾璧勪骇椤圭洰寤鸿杩涘害" class="logo-name"/> + <el-row + type="flex" + justify="center" + align="center" + class="flex-1 min-1200" + :gutter="20" + > + <el-col> + <div class="form-main w1050"> + <el-row> + <el-col :span="12"><img src="@/assets/images/form-lf.png" alt="鐧诲綍" class="logo-lf"/></el-col> + <el-col :span="12"> + <div class="login-box"> + <el-form + id="loginForm" + ref="loginForm" + :model="loginForm" + :rules="loginRules"> + <h3 class="title">娆㈣繋鐧诲綍</h3> + <div class="f-lable">璐﹀彿</div> + <el-form-item prop="account"> + <el-input + id="input-b" + ref="account" + v-model="loginForm.account" + placeholder="璇疯緭鍏ヨ处鍙�" + name="account" + type="text" + auto-complete="on" + /> + </el-form-item> + <div class="f-lable">瀵嗙爜</div> + <el-form-item prop="password"> + <el-input + id="input-block" + :key="passwordType" + ref="pwd" + v-model="loginForm.password" + :type="passwordType" + placeholder="璇疯緭鍏ュ瘑鐮�" + name="password" + auto-complete="on" + @keyup.enter.native="handleLogin" + /> + <span + class="show-pwd" + @click="showPwd" + ><svg-icon + :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" + /></span> + </el-form-item> +<!-- <el-form-item prop="code" class="captcha" v-if="loginForm.verifyType==='code' && captchaEnabled">--> +<!-- <div class="captcha">--> +<!-- <el-input--> +<!-- v-model.trim="loginForm.code"--> +<!-- style="width: 218px"--> +<!-- prefix-icon="el-icon-message"--> +<!-- placeholder="楠岃瘉鐮�"--> +<!-- type="text"--> +<!-- tabindex="3"--> +<!-- autocomplete="off"--> +<!-- />--> +<!-- <div class="imgs" @click="getCode()">--> +<!-- <!– <img :src="captchatImg" />–>--> +<!-- <img :src="codeUrl"/>--> +<!-- <span v-show="showCaptchatImg">宸插け鏁�</span>--> +<!-- </div>--> +<!-- </div>--> +<!-- </el-form-item>--> + <el-button + id="loginBtn" + :loading="loading" + class="login-btn" + :disabled="disabled" + @click.native.prevent="handleLogin" + >鐧诲綍 + </el-button> + </el-form> + </div> + </el-col> + </el-row> + </div> + </el-col> + </el-row> + </div> +</template> + +<script> +import {validUsername} from '@/utils/validate'; +import {getCodeImg, getCodeNone} from '@/api/user'; +import router from "@/router"; + +export default { + name: 'Login', + data() { + const validateUsername = (rule, value, callback) => { + if (!validUsername(value)) { + callback(new Error('Please enter the correct user name')); + } else { + callback(); + } + }; + const validatePassword = (rule, value, callback) => { + if (value.length < 6 || value.length > 12) { + callback(new Error('瀵嗙爜浣嶆暟涓�6-12浣�')); + } else { + callback(); + } + }; + return { + verify: false, // 婊戝姩鏍¢獙 + showCaptchatImg: false, + // captchatImg: '', + codeUrl: "", + fullWidth: document.body.clientWidth, + swiperOption: { + pagination: { + el: '.pagination', + }, + autoplay: { + enabled: false, + disableOnInteraction: false, + delay: 3000, + }, + }, + loginForm: { + account: '', // admin + password: '', + // key: '', + uuid: '', + code: '', + loginType: 'user_pass', // 鐢ㄦ埛鍚嶃�佸瘑鐮佹柟寮忕櫥褰� + verifyType: 'code' // 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 + // captcha: { + // captchaVerification: '', + // secretKey: '', + // token: '', + // }, + }, + loginRules: { + account: [{required: true, trigger: 'blur', message: '璇疯緭鍏ョ敤鎴峰悕'}], // validator: validateUsername + password: [{required: true, trigger: 'blur', message: '璇疯緭鍏ュ瘑鐮�'}], + code: [{required: true, message: '璇疯緭鍏ユ纭殑楠岃瘉鐮�', trigger: 'blur'}], + }, + passwordType: 'password', + capsTooltip: false, + loading: false, + showDialog: false, + redirect: undefined, + otherQuery: {}, + disabled: false, + isWeixin: this.$wechat.isWeixin(), + // 楠岃瘉鐮佸紑鍏� + captchaEnabled: true + }; + }, + components: {}, + watch: { + fullWidth(val) { + // 涓轰簡閬垮厤棰戠箒瑙﹀彂resize鍑芥暟瀵艰嚧椤甸潰鍗¢】锛屼娇鐢ㄥ畾鏃跺櫒 + if (!this.timer) { + // 涓�鏃︾洃鍚埌鐨剆creenWidth鍊兼敼鍙橈紝灏卞皢鍏堕噸鏂拌祴缁檇ata閲岀殑screenWidth + this.screenWidth = val; + this.timer = true; + const that = this; + setTimeout(function () { + // 鎵撳嵃screenWidth鍙樺寲鐨勫�� + that.timer = false; + }, 400); + } + }, + $route: { + handler: function (route) { + const query = route.query; + if (query) { + this.redirect = query.redirect; + this.otherQuery = this.getOtherQuery(query); + } + }, + immediate: true, + }, + }, + created() { + const _this = this; + document.onkeydown = function (e) { + if (_this.$route.path.indexOf('login') !== -1) { + const key = window.event.keyCode; + if (key === 13) { + _this.handleLogin(); + } + } + }; + window.addEventListener('resize', this.handleResize); + }, + mounted() { + if (this.loginForm.account === '') { + this.$refs.account.focus(); + } else if (this.loginForm.pwd === '') { + this.$refs.password.focus(); + } + this.getCode(); + }, + methods: { + verifyTrue() { + this.verify = true + }, + verifyFalse() { + this.verify = false + }, + checkCapslock(e) { + const {key} = e; + this.capsTooltip = key && key.length === 1 && key >= 'A' && key <= 'Z'; + }, + showPwd() { + if (this.passwordType === 'password') { + this.passwordType = ''; + } else { + this.passwordType = 'password'; + } + this.$nextTick(() => { + this.$refs.pwd.focus(); + }); + }, + handleLogin() { + this.$refs.loginForm.validate((valid) => { + if (valid) { + this.success(null); + } else { + return false; + } + }); + }, + success(params) { + this.loginForm.captcha = this.$store.state.user.captcha; + const loading = this.$loading({ + lock: true, + text: '姝e湪鐧诲綍涓�.', + }); + this.$store + .dispatch('user/login', this.loginForm) + .then(() => { + this.$store.dispatch('user/getInfo').then(res => { + // 鑾峰彇璺敱鏉冮檺 + this.$store.dispatch('permission/generateRoutes', res.roles).then(res => { + router.options.routes = res // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� + router.addRoutes(res); + this.$router.push({path: this.redirect || '/dashboard', query: this.otherQuery}); + loading.close(); + this.disabled = true; + }) + }).catch((err) => { + loading.close(); + this.disabled = false; + if (this.$wechat.isPhone()) this.$dialog.error(err.message); + this.loginForm.code = null; + this.getCode(); + }) + }) + .catch((err) => { + loading.close(); + this.disabled = false; + if (this.$wechat.isPhone()) this.$dialog.error(err.message); + this.loginForm.code = null; + this.getCode(); + }); + }, + + getCode() { + if (this.loginForm.verifyType === 'code') { + getCodeImg().then(data => { + this.captchaEnabled = data.captchaEnabled === undefined ? true : data.captchaEnabled; + console.log("captchaEnabled = " + this.captchaEnabled); + if (this.captchaEnabled) { + this.codeUrl = "data:image/jpeg;base64," + data.img; + } + // 鏈夋病鏈夐獙璇佺爜锛岄兘闇�瑕乽uid浣滀负鍞竴鏍囪瘑锛�2022-12-01 + this.loginForm.uuid = data.uuid; + + // 2023-05-12 鎸夋柊鏂规硶锛屽け璐ヤ細鏄剧ず楠岃瘉鐮佹棤鏁� + this.showCaptchatImg = false; + setTimeout(() => { + this.showCaptchatImg = true; + }, 270000); + + }).catch(err => { + console.log(err); + }); + + } else if (this.loginForm.verifyType === 'jigsaw') { + // 鎷煎浘鏂瑰紡锛岀湅闇�瑕佸暐鍙傛暟锛屾殏鏈疄鐜� + this.loginForm.code = 'jigsaw'; // 濉厖code榛樿鍊硷紝鍚﹀垯楠岃瘉涓嶉�氳繃銆�2023-04-06 + this.loginForm.uuid = ''; // 娓呯┖楠岃瘉鐮侊紝涓轰笅娆¢噸鏂伴獙璇佸噯澶囥��2023-04-16 + + } else if (this.loginForm.verifyType === 'slide' || this.loginForm.verifyType === 'sms') { + // 涓嶉渶瑕侀獙璇佺爜锛屼絾浠嶉渶瑕佽姹傛帴鍙h幏鍙杣uid + getCodeNone().then(data => { + this.loginForm.uuid = data.uuid; + }).catch(err => { + console.error(err); + }); + + } else { + this.$message.error('涓嶆敮鎸佺殑楠岃瘉鐮佺被鍨�:' + this.loginForm.verifyType); + } + }, + getOtherQuery(query) { + return Object.keys(query).reduce((acc, cur) => { + if (cur !== 'redirect') { + acc[cur] = query[cur]; + } + return acc; + }, {}); + } + } +}; +</script> + +<style lang="scss"> +$bg: #283443; +$light_gray: #fff; +$cursor: #fff; + +@supports (-webkit-mask: none) and (not (cater-color: $cursor)) { + .login-container .el-input input { + color: $cursor; + } +} +.flex-1 { + flex: 1; +} +.min-1200 { + min-width: 1200px; +} +/* reset element-ui css */ +.login-container { + padding:50px; + line-height: 54px; + .el-form-item__content { + display: flex; + flex: 1; + line-height: 45px; + align-items: center; + border: 1px solid #eeeeee; + background-color: #F1F3F5; + border-radius: 4px; + } + .el-input { + flex: 1; + margin-left: 6px; + position: relative; + background-color: #F1F3F5; + top: 3px; + input { + border: none; + padding: 0; + font-size: 16px; + line-height: 54px; + background: #F1F3F5; + color: #333333; + } + } +} +</style> + +<style lang="scss" scoped> +$bg: #2d3a4b; +$dark_gray: #889aa4; +$light_gray: #eee; +.login-container { + height: 100%; + width: 100%; + background-image: url("../../assets/images/login_img.png"); + overflow: hidden; + background-size: cover; + position: relative; +} +.school-logo{ + position: absolute; + top:30px; + left: 40px; +} +.form-main{ + background-color: #FFFFFF; + overflow: hidden; + border-radius: 8px; +} +>>>.el-button{ + font-size: 16px; +} +.logo-name{ + margin-bottom: 30px; +} +.logo-lf{ + width:100%; +} +.login-box{ + padding:100px; + .title{ + font-size: 22px; + font-weight: bold; + } + .f-lable{ + line-height: 20px; + margin-bottom: 10px; + font-size: 14px; + color: #333333; + } +} +.w1050 { + width: 1050px; + margin: 0 auto; + overflow: hidden; +} +.login-btn { + width: 100%; + height: 45px; + margin: 0 auto; + display: block; + color: #FFFFFF; + background-color: #0d997c; +} +.logo-txt { + position: absolute; + top: 5%; + left: 2%; +} +.txtBox { + color: #fff; + opacity: 0.7; + font-size: 12px; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: 20px; + text-align: center; + line-height: 30px; + width: 610px; +} +.show-pwd{ + position: relative; + top:5px; + right: 5px; + cursor: pointer; +} +.td-outer-wrapper { + width: 1200px !important; + margin: 0 auto !important; +} +@media screen and(max-width: 1400px) { + .w1050 { + width: 850px; + margin: 0 auto; + overflow: hidden; + } + .login-box{ + padding:40px; + } +} +</style> diff --git a/project-web/src/views/login/mixins.js b/project-web/src/views/login/mixins.js new file mode 100644 index 0000000..11918f0 --- /dev/null +++ b/project-web/src/views/login/mixins.js @@ -0,0 +1,19 @@ +// +--------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮�鍙戣�咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +--------------------------------------------------------------------- +// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. +// +--------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +--------------------------------------------------------------------- +// | Author: CRMEB Team <admin@crmeb.com> +// +--------------------------------------------------------------------- + +// import iHeaderI18n from '@/layouts/basic-layout/header-i18n'; +import { mapState } from 'vuex'; + +export default { + // components: { iHeaderI18n }, + computed: { + ...mapState('admin/layout', ['showI18n']), + }, +}; diff --git a/project-web/src/views/login/resetPassword.vue b/project-web/src/views/login/resetPassword.vue new file mode 100644 index 0000000..05491d1 --- /dev/null +++ b/project-web/src/views/login/resetPassword.vue @@ -0,0 +1,172 @@ +<template> + <div class="page-main"> + <div class="form-box"> + <div class="top-title">璇峰厛淇敼鍒濆瀵嗙爜</div> + <el-form :rules="loginRules" :model="formData" ref="loginForm"> + <el-form-item prop="password" label="鏂板瘑鐮侊細" style="position: relative"> + <el-input + v-model.trim="formData.oldPassword" + prefix-icon="el-icon-lock" + :type="passwordNewType" + placeholder="璇峰~鍐欐柊瀵嗙爜" + auto-complete="off" + ref="newPwd" + maxlength="15" + class="h-60" + /> + <span class="show-pwd" @click="showNewPwd"> + <svg-icon :icon-class="passwordNewType === 'password' ? 'eye' : 'eye-open'"/> + </span> + <div style="font-size: 12px;color: #999"><span style="color: red;margin-right: 4px">*</span>瀵嗙爜闀垮害鍦� 8 鍒� 12 涓瓧绗﹂棿,蹇呴』鍖呭惈鏁板瓧銆佸ぇ灏忓啓瀛楁瘝銆佺壒娈婂瓧绗�</div> + </el-form-item> + + <el-form-item prop="password" label="纭鏂板瘑鐮侊細" style="position: relative"> + <el-input + v-model.trim="formData.newPassword" + prefix-icon="el-icon-lock" + :type="passwordType" + placeholder="璇风‘璁ゆ柊瀵嗙爜" + auto-complete="off" + ref="subimtPwd" + maxlength="15" + class="h-60" + /> + <span class="show-pwd" @click="showPwd"> + <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"/> + </span> + </el-form-item> + </el-form> + <div class="f-r f-r-center m-b-20"> + <el-button type="primary" class="sub-btn" @click="updatePassword">鎻愪氦</el-button> + </div> + </div> + </div> +</template> + +<script> +import {encrypt} from '@/utils/jsencrypt' +import {getChangePass} from '@/api/user' + +export default { + name: "resetPassword", + data() { + return { + formData: { + oldPassword: '', + newPassword: '' + }, + passwordNewType: 'password', + passwordType: 'password', + loginRules: { + oldPassword: [ + {required: true, trigger: 'blur', message: '璇疯緭鍏ュ瘑鐮�'}, + {min: 6, message: '闀垮害涓嶅皬浜�6瀛楃', trigger: 'blur'} + ], + newPassword: [ + {required: true, trigger: 'blur', message: '璇疯緭鍏ョ‘璁ゅ瘑鐮�'}, + {min: 6, message: '闀垮害涓嶅皬浜�6瀛楃', trigger: 'blur'} + ] + }, + } + }, + methods: { + showPwd() { + if (this.passwordType === 'password') { + this.passwordType = ''; + } else { + this.passwordType = 'password'; + } + this.$nextTick(() => { + this.$refs.subimtPwd.focus(); + }); + }, + showNewPwd() { + if (this.passwordNewType === 'password') { + this.passwordNewType = ''; + } else { + this.passwordNewType = 'password'; + } + this.$nextTick(() => { + this.$refs.newPwd.focus(); + }); + }, + updatePassword() { + this.$refs.loginForm.validate((valid) => { + if (valid) { + if (this.formData.oldPassword !== this.formData.newPassword) { + this.$message.error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�') + return + } + let formData = { + encryptPassword: encrypt(this.formData.newPassword) + } + getChangePass(formData).then(res => { + this.$message.success('淇敼瀵嗙爜鎴愬姛~璺宠浆棣栭〉') + // 鏇存柊鐢ㄦ埛淇℃伅锛岃烦杞富椤甸潰 + this.$store.dispatch('user/getInfo').then(res => { + this.$store.commit('user/SET_ROLES',[]) + this.$router.push({path: this.redirect || '/dashboard', query: this.otherQuery}); + }).catch((err) => { + + }) + }) + } else { + return false; + } + }); + } + } +} +</script> + +<style scoped lang="scss"> +.page-main { + width: 100vw; + height: 100vh; + display: flex; + align-items: flex-start; +} + +.form-box { + width: 500px; + margin: 100px auto; + padding: 30px 50px; + border-radius: 16px; + background: #FFFFFF; +} + +.top-title { + padding: 20px 0 !important; + font-size: 18px; + font-weight: bold; + text-align: center; + margin-bottom: 20px; +} + +.show-pwd { + position: absolute; + right: 10px; + top: 40px; + font-size: 16px; + color: #333; + cursor: pointer; + user-select: none; + + ::v-deepsvg-icon { + vertical-align: 0.3em; + } +} + +.h-60 > > > .el-input__inner { + height: 40px; +} + +.sub-btn { + width: 80%; + height: 40px; +} + +.m-b-20 { + margin-bottom: 20px; +} +</style> diff --git a/project-web/src/views/projectConfig/buildPlan/detail.vue b/project-web/src/views/projectConfig/buildPlan/detail.vue new file mode 100644 index 0000000..e215bb9 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/detail.vue @@ -0,0 +1,142 @@ +<template> + <win-lg :title="setting.title" @close="close" :width="'800px'"> + <el-table + v-loading="loading" + border + height="calc(100vh - 400px)" + :span-method="spanMethod" + :data="tableData" + style="width: 100%"> + <el-table-column + prop="stageName" + align="center" + label="闃舵"/> + <el-table-column + prop="nodeName" + align="center" + label="鑺傜偣"/> + <el-table-column + prop="nodeTimeStart" + align="center" + label="鑷」鐩紑濮嬬n澶�" + width="130"/> + <el-table-column + prop="nodeTimeDays" + align="center" + label="鎸佺画澶╂暟" + width="80"/> + <el-table-column + align="center" + label="瀹屾垚鍚庢彁閱�" + width="95"> + <template slot-scope="{row}"> + {{ row.completeNotifyStatus === 1 ? '鏄�' : '鍚�' }} + </template> + </el-table-column> + <el-table-column + align="center" + label="鎻愰啋鑺傜偣" + width="240"> + <template slot-scope="{row,$index}"> + <div>闃舵锛歿{ row.notifyStage.join("銆�") }}</div> + <div>鑺傜偣锛歿{ row.notifyNode.join("銆�") }}</div> + </template> + </el-table-column> + <el-table-column + align="center" + label="涓存湡棰勮" + width="80"> + <template slot-scope="{row}"> + {{ row.warnNeed === 1 ? '鏄�' : '鍚�' }} + </template> + </el-table-column> + <el-table-column + align="center" + label="闄勪欢蹇呬紶" + width="80"> + <template slot-scope="{row}"> + {{ row.fileNeed === 1 ? '鏄�' : '鍚�' }} + </template> + </el-table-column> + </el-table> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + </div> + </win-lg> +</template> + +<script> +import winLg from '@/components/win/win-lg' +import {getStageNode} from "@/api/projectConfig/buildPlanNode"; +import myButton from "@/components/myButton/myButton"; + +export default { + name: 'detail', + components: {winLg, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + tableData: [], + spanArr: [], + pos: 0 + } + }, + mounted() { + this.loading = true + getStageNode({id: this.setting.id}).then(res => { + this.loading = false + this.tableData = res + this.getSpanArr(res) + }).catch(() => { + this.loading = false + }) + }, + methods: { + close() { + this.$emit('close') + }, + spanMethod({row, column, rowIndex, columnIndex}) { + if (columnIndex === 0) { + const rowspan = this.spanArr[rowIndex] + const colspan = rowspan > 0 ? 1 : 0 + return { + rowspan, //琛� + colspan //鍒� + }; + } + }, + getSpanArr(data) { + this.spanArr = []; + for (let i = 0; i < data.length; i++) { + if (i === 0) { + this.spanArr.push(1); + this.pos = 0; + } else { + // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚� + if (data[i].id === data[i - 1].id && data[i].id) { + this.spanArr[this.pos] += 1; + this.spanArr.push(0); + } else { + this.spanArr.push(1); + this.pos = i; + } + } + } + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectConfig/buildPlan/edit.vue b/project-web/src/views/projectConfig/buildPlan/edit.vue new file mode 100644 index 0000000..6087c95 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/edit.vue @@ -0,0 +1,143 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="璁″垝绫诲瀷" prop="planTypeCode"> + <el-select v-model="formData.planTypeCode" placeholder="" clearable style="width: 100%"> + <el-option + v-for="item in options" + :key="item.dict_code" + :label="item.dict_label" + :value="item.dict_code"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璁″垝鍚嶇О" prop="projectName"> + <el-input v-model="formData.projectName" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="缂栧彿" prop="projectCode"> + <el-input v-model="formData.projectCode" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + v-model="formData.remark" + type="textarea" + :rows="3" + maxlength="200" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as api from "@/api/projectConfig/buildPlan"; +import {getDicts} from "@/api/system/dict/data"; + +export default { + name: 'edit', + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + options: [], + formData: { + planTypeCode: '', + projectName: '', + projectCode: '', + status: 1, + remark: '', + }, + rules: { + planTypeCode: [ + {required: true, message: '璇烽�夋嫨璁″垝绫诲瀷', trigger: 'blur'}, + ], + projectName: [ + {required: true, message: '璇疯緭鍏ヨ鍒掑悕绉�', trigger: 'blur'}, + ], + projectCode: [ + {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'}, + ] + } + } + }, + created() { + this.loading = true + this.getInfo() + this.getPlanType() + }, + methods: { + getPlanType() { + getDicts('PLAN_TYPE').then(res => { + this.options = res + }) + }, + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + api.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + }else{ + this.loading = false + } + }, + close() { + this.formData = { + planTypeCode: '', + projectName: '', + projectCode: '', + status: 1, + remark: '', + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + this.loading = true + api[params.id?'upd':'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(()=>{ + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/buildPlan/index.vue b/project-web/src/views/projectConfig/buildPlan/index.vue new file mode 100644 index 0000000..31c9c5d --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/index.vue @@ -0,0 +1,210 @@ +<template> + <div class="app-container"> + <el-card class="box-card" shadow="never"> + <div class="filter-container" style="margin-bottom: 10px"> + <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> + </div> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-card> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> + <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" @search="search"></detail> + <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose> + </div> +</template> + +<script> +import MyTableV2 from '@/components/myTable/myTableV2'; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit' +import detail from "@/views/projectConfig/buildPlan/detail"; +import nodeChoose from './nodeChoose/index' +import {del, updStatus} from "@/api/projectConfig/buildPlan"; + +export default { + components: {MyTableV2, edit,detail,nodeChoose}, + data() { + return { + // 鎼滅储鏉′欢 + items: items, + filterFrom: { + projectName: '', + projectCode: '', + planTypeCode: '', + status: '1', + }, + //鏂板缂栬緫 + editSetting: { + title: '', + id: '', + show: false, + }, + //璇︽儏 + detailSetting: { + title: '闃舵鑺傜偣棰勮', + id: '', + show: false, + }, + //鑺傜偣璁剧疆 + nodeSetting: { + title: '鑺傜偣閫夋嫨', + stageId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + { + title: '妯℃澘鍚嶇О', field: 'projectName', align: 'left', + formatter: (row) => { + return { + value: row.projectName, + type: 'primary', + click: () => { + // 鐐瑰嚮浜嬩欢 + this.shoDetail(row.id); + }, + } + } + }, + {title: '缂栧彿', field: 'projectCode', align: 'left', width: 200}, + {title: '璁″垝绫诲瀷', field: 'planTypeName', align: 'left', width: 300}, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + return { + value: row.status === 1, // 寮� + label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + }; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '200', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '鑺傜偣閫夋嫨', + type: 'success', + events: (row) => { + this.showNode(row.id); + }, + }, + ], + }, + paging: { + show: false, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + mounted() { + }, + methods: { + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + filterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + //娣诲姞銆佺紪杈� + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + this.editSetting.id = id; + this.editSetting.title = title; + this.editSetting.show = true; + }, + updState(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.projectName + '"鍚楋紵').then(() => { + let status = row.status === 1 ? 0 : 1 + updStatus({ + id: row.id, + status + }).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + this.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) + }, + showNode(id) { + this.nodeSetting.stageId = id; + this.nodeSetting.show = true; + }, + shoDetail(id) { + this.detailSetting.id = id; + this.detailSetting.show = true; + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', { + type: 'warning' + }).then(() => { + del({id: row.id}).then(res => { + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.search() + }) + }) + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/projectConfig/buildPlan/items.js b/project-web/src/views/projectConfig/buildPlan/items.js new file mode 100644 index 0000000..2b060c9 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/items.js @@ -0,0 +1,48 @@ +import SettingIplatform from "@/utils/settingIplatform"; + +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '妯℃澘鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '妯℃澘缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'planTypeCode', + label: '璁″垝绫诲瀷', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [], + optionsConfig: { + label: 'dict_label', + value: 'dict_code', + url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/PLAN_TYPE' + } + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue b/project-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue new file mode 100644 index 0000000..836143c --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue @@ -0,0 +1,117 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="闃舵鍚嶇О" prop="nodeName"> + <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="灞曠ず椤哄簭" prop="sort"> + <el-input-number v-model="formData.sort" clearable :min="1"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + v-model="formData.remark" + type="textarea" + :rows="3" + maxlength="200" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as node from "@/api/projectConfig/stageNode"; + +export default { + name: 'edit', + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + formData: { + nodeName: '', + sort: 1, + status: 1, + remark: '', + }, + rules: { + nodeName: [ + {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'} + ], + } + } + }, + created() { + this.loading = true + this.getInfo() + }, + methods: { + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + node.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + }else{ + this.loading = false + } + }, + close() { + this.formData = { + nodeName: '', + sort: 1, + status: 1, + remark: '', + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + this.loading = true + node[params.id?'upd':'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(()=>{ + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue b/project-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue new file mode 100644 index 0000000..ef976e8 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue @@ -0,0 +1,106 @@ +<template> + <win-lg :title="setting.title" @close="close" :width="'800px'"> + <el-tabs v-loading="loading" v-model="activeName" :before-leave="beforeLeave"> + <el-tab-pane label="閫夋嫨鑺傜偣" name="first"> + <div class="box"> + <stageNode :tempProjectId="setting.stageId" ref="stageNode"></stageNode> + </div> + </el-tab-pane> + <el-tab-pane label="鑺傜偣鍛ㄦ湡璁剧疆" name="second"> + <div class="box"> + <nodeCycle ref="nodeCycle"/> + </div> + </el-tab-pane> + <el-tab-pane label="棰勮" name="third"> + <div class="box"> + <preview ref="preview" :tempProjectStages="tempProjectStages"/> + </div> + </el-tab-pane> + </el-tabs> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <template v-if="activeName === 'first'"> + <my-button key="4" name="涓嬩竴姝�" type="primary" site="form" @click="activeName = 'second'"/> + </template> + <my-button v-if="activeName === 'second'" key="1" name="涓婁竴姝�" type="primary" site="form" @click="activeName = 'first'"/> + <my-button v-if="activeName === 'second'" key="2" name="淇濆瓨" site="form" @click="doSave" /> + <my-button @click="activeName='third'" v-if="activeName === 'second'" key="3" name="棰勮" type="warning" site="form"/> + <my-button v-if="activeName === 'third'" name="杩斿洖" site="form" @click="activeName='second'"/> + </div> + </win-lg> +</template> + +<script> +import winLg from '@/components/win/win-lg' +import myButton from '@/components/myButton/myButton' +import stageNode from "@/views/projectConfig/buildPlan/nodeChoose/stageNode"; +import nodeCycle from "@/views/projectConfig/buildPlan/nodeChoose/nodeCycle"; +import preview from "@/views/projectConfig/buildPlan/nodeChoose/preview"; +import {updPStageNode} from '@/api/projectConfig/buildPlanNode' +export default { + name: 'nodeChoose', + components: {winLg, myButton,stageNode,nodeCycle,preview}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + activeName: 'first', + tempProjectStages: [] + }; + }, + mounted() { + }, + methods: { + doSave(){ + console.log(this.$refs.nodeCycle.getSelectTree()) + this.loading = true + updPStageNode({ + tempProjectId:this.setting.stageId, + tempProjectStages:this.$refs.nodeCycle.getSelectTree() + }).then(res=>{ + this.loading = false + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + }).catch(()=>{ + this.loading = false + }) + }, + close() { + this.$emit('close') + }, + beforeLeave(activeName, oldActiveName) { + let checked = this.$refs.stageNode.tree.some(item=>item.checked) + if(activeName==='second'&&checked){ + this.$refs.stageNode.setNodeCycleData() + } + if(activeName==='third'&&checked){ + this.$EventBus.$emit('clearData') + this.tempProjectStages = this.$refs.nodeCycle.getSelectTree() + } + if(activeName!=='first'&&!checked){ + this.$modal.msgError('璇峰厛閫夋嫨闃舵鑺傜偣') + this.activeName = oldActiveName + } + return checked + // return false + }, + }, +}; +</script> + +<style scoped> +.box { + height: calc(100vh - 450px); + overflow-y: auto; +} +</style> diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/items.js b/project-web/src/views/projectConfig/buildPlan/nodeChoose/items.js new file mode 100644 index 0000000..cd07526 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'nodeName', + label: '鑺傜偣鍚嶇О', + placeholder: '鑺傜偣鍚嶇О', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue b/project-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue new file mode 100644 index 0000000..601d0fe --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue @@ -0,0 +1,215 @@ +<template> + <div> + <el-tabs tab-position="left" style=""> + <template v-for="(stage,i) in tree"> + <el-tab-pane v-if="stage.checked" :key="i" :label="stage.name"> + <el-form :model="{tableData: tree}" ref="ruleForm" label-width="120px" class="demo-dynamic"> + <el-form-item label="闃舵鎬诲懆鏈�(澶�)"> + <el-input-number v-model="stage.stageTimeDays" :controls="false" :min="1" :step="1" step-strictly style="width: 400px;text-align: left"></el-input-number> + </el-form-item> + <el-table + border + height="calc(100vh - 501px)" + :data="stage.children.filter(item=>item.checked)" + style="width: 100%"> + <el-table-column + prop="name" + align="center" + label="鑺傜偣"/> + <el-table-column + align="center" + label="鑷」鐩紑濮嬬n澶�" + width="180"> + <template slot-scope="{row}"> + <el-input-number v-model="row.nodeTimeStart" :controls="false" :min="getStageStart(i)" :max="getStageEnd(i)" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number> + </template> + </el-table-column> + <el-table-column + align="center" + label="鎸佺画澶╂暟" + width="180"> + <template slot-scope="{row}"> + <el-input-number v-model="row.nodeTimeDays" :controls="false" :min="1" :max="stage.stageTimeDays||Infinity" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number> + </template> + </el-table-column> + <el-table-column + align="center" + label="瀹屾垚鍚庢彁閱�" + width="95"> + <template slot-scope="{row}"> + <el-switch + @change="notifyChange($event,row)" + v-model="row.completeNotifyStatus" + active-color="#13ce66" + :active-value="1" + :inactive-value="0"> + </el-switch> + </template> + </el-table-column> + <el-table-column + align="center" + label="鎻愰啋鑺傜偣" + width="180"> + <template slot-scope="{row,$index}"> + <el-cascader + v-model="row.notifyTempStageNodeId" + :ref="'cascade'+i+$index" + :disabled="row.completeNotifyStatus===0" + @change="cascadeChange($event,row,'cascade'+i+$index)" + :options="options" + :show-all-levels="false" + :props="{ multiple: true, checkStrictly: true, emitPath: false }" + clearable></el-cascader> + </template> + </el-table-column> + <el-table-column + align="center" + label="涓存湡棰勮" + width="80"> + <template slot-scope="{row}"> + <el-switch + v-model="row.warnNeed" + active-color="#13ce66" + :active-value="1" + :inactive-value="0"> + </el-switch> + </template> + </el-table-column> + <el-table-column + align="center" + label="闄勪欢蹇呬紶" + width="80"> + <template slot-scope="{row}"> + <el-switch + v-model="row.fileNeed" + active-color="#13ce66" + :active-value="1" + :inactive-value="0"> + </el-switch> + </template> + </el-table-column> + </el-table> + </el-form> + </el-tab-pane> + </template> + </el-tabs> + </div> +</template> + +<script> +export default { + data() { + return { + options: [], + tree: [] + } + }, + mounted() { + this.$EventBus.$on('setTree', data => { + this.tree = data + let arr = [] + data.map(item => { + if (item.checked) { + let stage = { + value: item.id, + label: item.name, + notifyTempType: 0, // 0闃舵 1鑺傜偣 + children: [] + } + item.children.map(node => { + if (node.checked) { + stage.children.push({ + value: node.id, + label: node.name, + notifyTempType: 1, // 0闃舵 1鑺傜偣 + }) + } + }) + arr.push(stage) + } + }) + this.options = arr //鍙�夋嫨涓烘彁閱掕妭鐐圭殑鍒楄〃 + }) + }, + computed:{ + getStageStart(){ + return (i)=>{ + let num = 0 + this.tree.map((item,idx)=>{ + if(idx<i){ + num+=(item.stageTimeDays||0) + } + }) + return num+1 + } + + }, + getStageEnd(){ + return (i)=>{ + let num = 0 + this.tree.map((item,idx)=>{ + if(idx<i+1){ + num+=(item.stageTimeDays||0) + } + }) + return num+1 + } + + } + }, + beforeDestroy() { + this.$EventBus.$off('setTree') + }, + methods: { + getSelectTree(){ + let arr = [] + this.tree.map(item => { + if (item.checked) { + let stage = JSON.parse(JSON.stringify(item)) + delete stage.checked + delete stage.checkedList + delete stage.name + let children =[] + stage.children.map(node => { + if (node.checked) { + let item = JSON.parse(JSON.stringify(node)) + delete item.checked + delete item.notifyTempStageNodeId + delete item.name + children.push(item) + } + }) + stage.children = children + arr.push(stage) + } + }) + return arr + }, + notifyChange(e,row){ + row.notify = [] + row.notifyStageNodes = [] + }, + cascadeChange(e, row, ref) { + let nodes = this.$refs[ref][0].getCheckedNodes(false) + let arr = [] + nodes.map(item => { + if (item.checked) { + arr.push({ + tempStageNodeId: row.id, + notifyTempType: item.level - 1, + notifyTempStageNodeId: item.value + }) + } + }) + row.notify = arr + } + } +} +</script> + +<style scoped> +.tab-content { + height: calc(100vh - 450px); + overflow-y: auto; +} +</style> diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue b/project-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue new file mode 100644 index 0000000..3018bc8 --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue @@ -0,0 +1,205 @@ +<template> + <div class="box"> + <div class="f-r"> + <div>璁剧疆寮�濮嬫椂闂�</div> + <el-date-picker + style="margin: 0 10px" + v-model="startTime" + type="date" + value-format="yyyyMMddHHmmss" + placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> + <my-button @click="doPreview" name="鐢熸垚棰勮" type="warning" site="form"/> + </div> + <el-table + v-loading="loading" + border + height="calc(100vh - 505px)" + :data="tableData" + :span-method="spanMethod" + style="width: 100%;margin-top: 15px"> + <el-table-column + prop="stageName" + align="center" + width="130" + label="闃舵"/> + <el-table-column + prop="nodeName" + align="center" + width="110" + label="鑺傜偣"/> + <el-table-column + prop="startDate" + align="center" + label="寮�濮嬫椂闂�" + width="110"> + <template slot-scope="scope"> + <span>{{ longToDate(scope.row.startDate) }}</span> + </template> + </el-table-column> + <el-table-column + prop="endDate" + align="center" + label="鎴鏃堕棿" + width="110"> + <template slot-scope="scope"> + <span>{{ longToDate(scope.row.endDate) }}</span> + </template> + </el-table-column> + <el-table-column :width="dates.length*100+2" class-name="my-col"> + <template slot="header" slot-scope="scope"> + <span v-for="(item,i) in dates" :key="i" class="item">{{ longToDate(item) }}</span> + </template> + <template slot-scope="{row,$index}"> + <!-- <span v-for="(item,i) in dates" :key="i" class="progress" :class="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)?'act':''"><span class="act"></span></span>--> + <span v-for="(item,i) in dates" :key="i" class="progress"> + <span v-if="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)" class="act"></span> + </span> + </template> + </el-table-column> + </el-table> + </div> +</template> + +<script> +import {getPreview} from "@/api/projectConfig/buildPlanNode"; +import myButton from '@/components/myButton/myButton' +import * as DateFormatter from '@/utils/DateFormatter'; + +export default { + name: 'preview', + components: {myButton}, + props: ['tempProjectStages'], + data() { + return { + loading: false, + startTime: '', + tableData: [], + spanArr: [], + pos: 0, + dates: [] + } + }, + mounted() { + this.$EventBus.$on('clearData', data => { + this.startTime = '' + this.tableData = [] + this.spanArr = [] + this.pos = 0 + this.dates = [] + }) + }, + methods: { + doPreview() { + this.loading = true + getPreview({ + startDate: this.startTime, + tempProjectStages: this.tempProjectStages + }).then(res => { + let arr = [] + res.map(item => { + arr.push(item.startDate) + arr.push(item.endDate) + }) + let newArr = arr.filter((value, index, self) => { + return self.indexOf(value) === index; + }); + this.dates = newArr.sort() + this.tableData = res + this.getSpanArr(res) + this.loading = false + }).catch(() => { + this.loading = false + }) + }, + spanMethod({row, column, rowIndex, columnIndex}) { + if (columnIndex === 0) { + const rowspan = this.spanArr[rowIndex] + const colspan = rowspan > 0 ? 1 : 0 + return { + rowspan, //琛� + colspan //鍒� + }; + } + }, + getSpanArr(data) { + this.spanArr = []; + for (let i = 0; i < data.length; i++) { + if (i === 0) { + this.spanArr.push(1); + this.pos = 0; + } else { + // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚� + if (data[i].id === data[i - 1].id && data[i].id) { + this.spanArr[this.pos] += 1; + this.spanArr.push(0); + } else { + this.spanArr.push(1); + this.pos = i; + } + } + } + }, + longToDate(long) { + return DateFormatter.LongToDate(long) + } + } +} +</script> +<style> +.my-col { + padding: 0 !important; +} + +.my-col .cell { + padding: 0 !important; +} + +.el-table__row .my-col { + border: none !important; +} +</style> +<style scoped lang="scss"> +.item { + display: inline-block; + text-align: center; + width: 100px; +} + +.progress { + position: relative; + //left: -50px; + display: inline-block; + width: 100px; + height: 24px; + margin-top: 8px; + + &::after { + content: ''; + position: absolute; + width: 1px; + height: 40px; + left: 100px; + top: -8px; + border-right: 1px dashed #dfe6ec; + } +} + +.act { + position: absolute; + display: inline-block; + width: 100px; + height: 24px; + background-color: #0c8aff; + //left: -50px; +} + +.rt { + //left: -50px; +} + +.lt { + +} + +</style> diff --git a/project-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue b/project-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue new file mode 100644 index 0000000..3c289fd --- /dev/null +++ b/project-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue @@ -0,0 +1,85 @@ +<template> + <div class="box" v-loading="loading"> + <div v-for="(stage,i) in tree" :key="i"> + <el-checkbox @change="stageChange($event,stage)" v-model="stage.checked">{{ stage.name }}</el-checkbox> + <div style="margin: 15px 0;"></div> + <div style="margin: 15px 0 15px 20px"> + <el-checkbox-group @change="nodesChange($event,stage)" v-model="stage.checkedList"> + <el-checkbox @change="nodeChange($event,stage,node)" v-for="(node,k) in stage.children" :label="node.id" :key="k">{{ node.name }}</el-checkbox> + </el-checkbox-group> + </div> + </div> + </div> +</template> + +<script> +import {getPStageNode} from "@/api/projectConfig/buildPlanNode"; + +export default { + props: ['tempProjectId'], + name: 'stageNode', + data() { + return { + loading: true, + tree: [], + checkAll: false, + checkedCities: [], + } + }, + mounted() { + this.getTree() + }, + methods: { + setNodeCycleData() { + this.$EventBus.$emit('setTree', this.tree) + }, + setPreviewData() { + this.$EventBus.$emit('setPreviewData', this.tree) + }, + stageChange(e, stage) { + if (e) { + stage.checkedList = stage.children.map(item => { + item.checked = true + return item.id + }) + } else { + stage.checkedList = [] + } + }, + nodesChange(e, stage) { + stage.checked = e.length > 0 + }, + nodeChange(e, stage, node) { + node.checked = e + }, + getTree() { + getPStageNode({tempProjectId: this.tempProjectId}).then(res => { + this.loading = false + res.map((stage, i) => { + stage.checked = stage.children.some(item => item.isDelete === 0) + stage.stageTimeDays = stage.stageTimeDays || undefined + let checkedList = [] + stage.children.map(node => { + if (node.isDelete === 0) { + checkedList.push(node.id) + } + node.checked = node.isDelete === 0 + node.nodeTimeStart = node.nodeTimeStart || undefined //鑷」鐩紑濮嬬N澶� + node.nodeTimeDays = node.nodeTimeDays || undefined //鎸佺画澶╂暟 + if(node.notify){ + node.notifyTempStageNodeId = node.notify.map(n=>n.notifyTempStageNodeId) + } + + }) + stage.checkedList = checkedList + }) + this.tree = res + }) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectConfig/kanbanConfig/edit.vue b/project-web/src/views/projectConfig/kanbanConfig/edit.vue new file mode 100644 index 0000000..c8d1761 --- /dev/null +++ b/project-web/src/views/projectConfig/kanbanConfig/edit.vue @@ -0,0 +1,115 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="120px"> + <el-form-item label="鍏抽敭鑺傜偣鍚嶇О" prop="boardName"> + <el-input v-model="formData.boardName" placeholder="璇疯緭鍏ュ叧閿妭鐐瑰悕绉�" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> +<!-- <el-form-item label="缂栧彿" prop="boardCode"> + <el-input v-model="formData.boardCode" placeholder="璇疯緭鍏ョ紪鍙�" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item>--> + <el-form-item label="灞曠ず椤哄簭" prop="sort"> + <el-input-number v-model="formData.sort" clearable :min="1"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as api from "@/api/projectConfig/kanbanConfig"; + +export default { + name: 'edit', + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + formData: { + boardName: '', + boardCode: '', + sort: '', + status: 1 + }, + rules: { + boardName: [ + {required: true, message: '璇疯緭鍏ュ叧閿妭鐐瑰悕绉�', trigger: 'blur'}, + ], + boardCode: [ + {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'}, + ] + } + } + }, + created() { + this.loading = true + this.getInfo() + }, + methods: { + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + api.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + }else{ + this.loading = false + } + }, + close() { + this.formData = { + planTypeCode: '', + projectName: '', + projectCode: '', + status: 1, + remark: '', + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + this.loading = true + api[params.id?'upd':'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(()=>{ + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/kanbanConfig/index.vue b/project-web/src/views/projectConfig/kanbanConfig/index.vue new file mode 100644 index 0000000..89ad20c --- /dev/null +++ b/project-web/src/views/projectConfig/kanbanConfig/index.vue @@ -0,0 +1,166 @@ +<template> + <div class="app-container"> + <el-card class="box-card" shadow="never"> + <div class="filter-container" style="margin-bottom: 10px"> + <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> + </div> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-card> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> + <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose> + </div> +</template> + +<script> +import MyTableV2 from '@/components/myTable/myTableV2'; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit' +import nodeChoose from "@/views/projectConfig/kanbanConfig/nodeChoose"; +import {updStatus} from "@/api/projectConfig/kanbanConfig"; + +export default { + components: {MyTableV2, edit,nodeChoose}, + data() { + return { + // 鎼滅储鏉′欢 + items: items, + filterFrom: { + boardName: '', + status: '1', + }, + //鏂板缂栬緫 + editSetting: { + title: '', + id: '', + show: false, + }, + //鑺傜偣璁剧疆 + nodeSetting: { + title: '妯℃澘鑺傜偣璁剧疆', + stageId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/board/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [], + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍏抽敭鑺傜偣鍚嶇О', field: 'boardName', align: 'left'}, + // {title: '缂栧彿', field: 'boardCode', align: 'center'}, + {title: '椤哄簭鍙�', field: 'sort', align: 'left'}, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + return { + value: row.status === 1, // 寮� + label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + }; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '妯℃澘鑺傜偣璁剧疆', + type: 'success', + events: (row) => { + this.showNode(row.id); + }, + }, + ], + }, + paging: { + show: false, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + mounted() { + }, + methods: { + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + filterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + //娣诲姞銆佺紪杈� + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + this.editSetting.id = id; + this.editSetting.title = title; + this.editSetting.show = true; + }, + updState(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.boardName + '"鑺傜偣鍚楋紵').then(() => { + let status = row.status === 1 ? 0 : 1 + updStatus({ + id: row.id, + status + }).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + this.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) + }, + showNode(id) { + this.nodeSetting.id = id; + this.nodeSetting.show = true; + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/projectConfig/kanbanConfig/items.js b/project-web/src/views/projectConfig/kanbanConfig/items.js new file mode 100644 index 0000000..bebbf01 --- /dev/null +++ b/project-web/src/views/projectConfig/kanbanConfig/items.js @@ -0,0 +1,33 @@ +export default [ + { + type: 'text', + dataIndex: 'boardName', + label: '鍏抽敭鑺傜偣鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + /*{ + type: 'text', + dataIndex: 'boardCode', + label: '妯℃澘缂栧彿', + placeholder: '妯℃澘缂栧彿', + defaultValue: '' + },*/ + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue b/project-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue new file mode 100644 index 0000000..054bfa3 --- /dev/null +++ b/project-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue @@ -0,0 +1,129 @@ +<template> + <win-md :title="setting.title" @close="close" :width="'800px'"> + <div style="min-height: 300px"> + <el-table + v-loading="loading" + border + :data="tableData" + style="width: 100%;margin-top: 15px"> + <el-table-column + prop="tempProjectName" + align="center" + width="200" + label="妯℃澘"/> + <el-table-column + align="center" + label="閫夋嫨鑺傜偣"> + <template slot-scope="{row,$index}"> + <el-cascader + :key="$index" + style="width: 100%;" + v-model="row.tempStageNodeIds" + :options="row.options" + :show-all-levels="false" + :props="{ multiple: true, emitPath: false,value:'id', label:'name'}" + clearable></el-cascader> + </template> + </el-table-column> + </el-table> + </div> + + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-md> +</template> + +<script> +import winMd from '@/components/win/win-md' +import myButton from '@/components/myButton/myButton' +import {getList, getTree, upd} from "@/api/projectConfig/kanbanNode"; + +export default { + name: 'nodeChoose', + components: {winMd, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + options: [], + tableData: [] + } + }, + mounted() { + }, + created() { + this.getList() + }, + methods: { + getList() { + this.loading = true + getList({id: this.setting.id}).then(res => { + let count = res.length + res.map((item) => { + getTree({tempProjectId: item.id}).then(ret => { + item.options = ret + count-- + if (count < 1) { + this.tableData = res + this.loading = false + } + }) + }) + }) + }, + close() { + this.loading = false + this.tableData = [] + this.$emit('close') + }, + save() { + let arr = [] + if (this.tableData.every(item => item.tempStageNodeIds.length === 0)) { + this.$modal.msgError('璇烽�夋嫨鑺傜偣') + return; + } + for (let i = 0; i < this.tableData.length; i++) { + const item = this.tableData[i] + item.tempStageNodeIds.map(node => { + item.tempStageNodeId = node + arr.push({...item}) + }) + } + arr.map(item => { + item.tempProjectId = item.id + delete item.tempStageNodeIds + delete item.id + delete item.options + delete item.tempProjectName + }) + this.loading = true + upd({ + id: this.setting.id, + tempProjectBoardNode: arr + }).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(() => { + this.loading = false + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/stageConfig/edit.vue b/project-web/src/views/projectConfig/stageConfig/edit.vue new file mode 100644 index 0000000..c99c81b --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/edit.vue @@ -0,0 +1,116 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="闃舵鍚嶇О" prop="stageName"> + <el-input v-model="formData.stageName" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="灞曠ず椤哄簭" prop="sort"> + <el-input-number v-model="formData.sort" clearable :min="1"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + v-model="formData.remark" + type="textarea" + :rows="3" + maxlength="200" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as stage from "@/api/projectConfig/stageConfig"; + +export default { + name: 'edit', + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + formData: { + stageName: '', + sort: 1, + status: 1, + remark: '', + }, + rules: { + stageName: [ + {required: true, message: '璇疯緭鍏ラ樁娈靛悕绉�', trigger: 'blur'} + ], + } + } + }, + created() { + this.loading = true + this.getInfo() + }, + methods: { + getInfo() { + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + stage.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + }else{ + this.loading = false + } + }, + close() { + this.formData = { + stageName: '', + sort: 1, + status: 1, + remark: '', + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + this.loading = true + stage[params.id?'upd':'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(()=>{ + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/stageConfig/index.vue b/project-web/src/views/projectConfig/stageConfig/index.vue new file mode 100644 index 0000000..8440bb1 --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/index.vue @@ -0,0 +1,191 @@ +<template> + <div class="app-container"> + <el-card class="box-card" shadow="never"> + <div class="filter-container" style="margin-bottom: 10px"> + <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> + </div> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-card> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> + <nodeConfig v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeConfig> + </div> +</template> + +<script> +import MyTableV2 from '@/components/myTable/myTableV2'; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit' +import nodeConfig from './node/node' +import {del, updStatus} from "@/api/projectConfig/stageConfig"; + +export default { + components: {MyTableV2, edit, nodeConfig}, + data() { + return { + // 鎼滅储鏉′欢 + items: items, + filterFrom: { + stageName: '', + status: '1', + }, + //鏂板缂栬緫 + editSetting: { + title: '', + id: '', + show: false, + }, + //鑺傜偣璁剧疆 + nodeSetting: { + title: '鑺傜偣璁剧疆', + stageId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + {title: '闃舵鍚嶇О', field: 'stageName', align: 'left', width: '200px'}, + {title: '椤哄簭鍙�', field: 'sort', align: 'center', width: '80px'}, + {title: '鍖呭惈鑺傜偣', field: 'nodeName', align: 'left'}, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + return { + value: row.status === 1, // 寮� + label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + }; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '鑺傜偣璁剧疆', + type: 'warning', + events: (row) => { + this.showNode(row.id); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.handleDelete(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + mounted() { + }, + methods: { + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + filterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + //娣诲姞銆佺紪杈� + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + this.editSetting.id = id; + this.editSetting.title = title; + this.editSetting.show = true; + }, + updState(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.stageName + '"鍚楋紵').then(() => { + let status = row.status === 1 ? 0 : 1 + updStatus({ + id: row.id, + status + }).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + this.$modal.msgSuccess(text + "鎴愬姛"); + this.search() + } + }) + }) + }, + showNode(id) { + this.nodeSetting.stageId = id; + this.nodeSetting.show = true; + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', { + type: 'warning' + }).then(() => { + del({id: row.id}).then(res => { + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.search() + }) + }) + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/projectConfig/stageConfig/items.js b/project-web/src/views/projectConfig/stageConfig/items.js new file mode 100644 index 0000000..acdebae --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'stageName', + label: '闃舵鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectConfig/stageConfig/node/edit.vue b/project-web/src/views/projectConfig/stageConfig/node/edit.vue new file mode 100644 index 0000000..d8624c2 --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/node/edit.vue @@ -0,0 +1,118 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="鑺傜偣鍚嶇О" prop="nodeName"> + <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="灞曠ず椤哄簭" prop="sort"> + <el-input-number v-model="formData.sort" clearable :min="1"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + v-model="formData.remark" + type="textarea" + :rows="3" + maxlength="200" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as node from "@/api/projectConfig/stageNode"; + +export default { + name: 'edit', + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading: false, + formData: { + nodeName: '', + sort: 1, + status: 1, + remark: '', + }, + rules: { + nodeName: [ + {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'} + ], + } + } + }, + created() { + this.loading = true + this.getInfo() + }, + methods: { + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + node.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + }else{ + this.loading = false + } + }, + close() { + this.formData = { + nodeName: '', + sort: 1, + status: 1, + remark: '', + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + params.stageId = this.setting.stageId + this.loading = true + node[params.id?'upd':'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(()=>{ + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectConfig/stageConfig/node/items.js b/project-web/src/views/projectConfig/stageConfig/node/items.js new file mode 100644 index 0000000..3b75f44 --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/node/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'nodeName', + label: '鑺傜偣鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectConfig/stageConfig/node/node.vue b/project-web/src/views/projectConfig/stageConfig/node/node.vue new file mode 100644 index 0000000..75a2212 --- /dev/null +++ b/project-web/src/views/projectConfig/stageConfig/node/node.vue @@ -0,0 +1,192 @@ +<template> + <win-lg :title="setting.title" @close="close" :width="'800px'"> + <el-card class="box-card" shadow="never"> + <div class="filter-container" style="margin-bottom: 10px"> + <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> + </div> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-card> + <edit v-if="editSetting.show" :setting="editSetting" @close="closeNode" @search="search"></edit> + </win-lg> +</template> + +<script> +import MyTableV2 from '@/components/myTable/myTableV2'; +import winLg from '@/components/win/win-lg' +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit' +import {del, updStatus} from "@/api/projectConfig/stageNode"; + +export default { + name: 'nodeConfig', + components: {MyTableV2, winLg, edit}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + // 鎼滅储鏉′欢 + items: items, + filterFrom: { + nodeName: '', + status: '1', + }, + //鏂板缂栬緫 + editSetting: { + title: '', + id: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/node/list?stageId='+this.setting.stageId, // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + {title: '鑺傜偣鍚嶇О', field: 'nodeName', align: 'center'}, + {title: '椤哄簭鍙�', field: 'sort', align: 'center'}, + {title: '璇存槑', field: 'remark', align: 'center'}, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + return { + value: row.status === 1, // 寮� + label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + }; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '200', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.handleDelete(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + mounted() { + }, + methods: { + close() { + this.$emit('close') + }, + closeNode() { + this.editSetting.show = false + this.$emit('search') + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + filterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + //娣诲姞銆佺紪杈� + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + this.editSetting.id = id||this.setting.id; + this.editSetting.stageId = this.setting.stageId; + this.editSetting.title = title; + this.editSetting.show = true; + }, + updState(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.nodeName + '"鍚楋紵').then(() => { + let status = row.status === 1 ? 0 : 1 + updStatus({ + id: row.id, + status + }).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + this.$modal.msgSuccess(text + "鎴愬姛"); + this.search() + } + }) + }) + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$confirm('鏄惁纭鍒犻櫎"' + row.nodeName + '"闃舵锛�', { + type: 'warning' + }).then(() => { + del({id:row.id}).then(res=>{ + this.$modal.msgSuccess( "鍒犻櫎鎴愬姛"); + this.search() + }) + }) + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/projectConfig/warningConfig/chooseItems.js b/project-web/src/views/projectConfig/warningConfig/chooseItems.js new file mode 100644 index 0000000..e478dfd --- /dev/null +++ b/project-web/src/views/projectConfig/warningConfig/chooseItems.js @@ -0,0 +1,16 @@ +export default [ + { + type: 'text', + dataIndex: 'userName', + label: '浜哄憳濮撳悕', + placeholder: "璇疯緭鍏�", + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'userPhone', + label: '鎵嬫満鍙�', + placeholder: "璇疯緭鍏�", + defaultValue: '' + } +] diff --git a/project-web/src/views/projectConfig/warningConfig/chooseUser.vue b/project-web/src/views/projectConfig/warningConfig/chooseUser.vue new file mode 100644 index 0000000..6e0140f --- /dev/null +++ b/project-web/src/views/projectConfig/warningConfig/chooseUser.vue @@ -0,0 +1,206 @@ +<template> + <win-md :title="setting.title" @close="close" width="1000px"> + <el-row :gutter="15"> + <!--宸︿晶鏍戝舰寮�濮�--> + <el-col :span="6"> + <el-card style="height: calc(100vh - 400px);overflow-y: auto" shadow="never"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + </el-col> + <!--宸︿晶鏍戝舰缁撴潫--> + <!--鍙充晶鍒楄〃寮�濮�--> + <el-col :span="18"> + <el-card class="box-card" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="chooseItems" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table ref="myTable" :parentSelectionsObject="setting.selections" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + </el-card> + </el-col> + </el-row> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-md> +</template> + +<script> +import winMd from '@/components/win/win-md' +import myButton from '@/components/myButton/myButton' +import myTree from '@/components/myTree/index'; +import MyTable from '@/components/myTable/myTable'; +import SettingIplatform from "@/utils/settingIplatform"; +import * as DateFormatter from "@/utils/DateFormatter"; +import {getTree} from "@/api/baseSetting/finsystenant"; +import chooseItems from './chooseItems' + +export default { + name: "chooseUser", + components: {winMd, myButton, MyTable, myTree}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + chooseItems: chooseItems, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantCode: 0, + trnantId: 0, + userName: null, + userPhone: null, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + showCheckBox: true, + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/user/select/list?status=1', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + {title: '浜哄憳濮撳悕', field: 'userName', align: 'left'}, + {title: '鍛樺伐缂栧彿', field: 'userCode', align: 'left'}, + {title: '鎵嬫満鍙�', field: 'userPhone', align: 'center', width: 120}, + { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + align: 'center', + width: 160, + formatter: (row) => { + return {value: DateFormatter.LongToDateTime(row.createTime)}; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: false, // 鏄剧ず鎿嶄綔鍒� + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData(); + }, + mounted() { + }, + methods: { + close() { + this.$emit('close') + }, + save() { + let checkUsers = this.$refs.myTable.getChedkObject() + if (checkUsers.length === 0) { + this.$message.error('璇烽�夋嫨浜哄憳') + return false + } + this.$emit('checkUsers', checkUsers.map(item => { + return { + id: item.id, + userName: item.userName + } + })) + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + getTree().then((res) => { + const content = res || []; + this.treeDataList.splice(0, this.treeDataList.length); + this.treeDataList = content; + if (this.treeDataList && this.treeDataList.length > 0) { + this.tenantId = this.treeDataList[0].id; + this.tenantCode = this.treeDataList[0].code; + } + }); + }, + nodeClick(param) { + param = param || {}; + this.p = Object.assign( + {}, + { + id: param.id, + name: param.name, + code: param.code, + }, + ); + if (this.p.code != undefined && this.p.code != null) { + this.filterFrom.tenantCode = this.p.code; + this.tenantId = this.p.id; + } else { + this.filterFrom.tenantCode = 0; + } + this.table.paging.page.pageNum = 1; + this.search(1); + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + // 閲嶇疆 + reset() { + this.filterFrom.tenantCode = null; + this.filterFrom.userName = null; + this.filterFrom.userPhone = null; + this.search(1); + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectConfig/warningConfig/edit.vue b/project-web/src/views/projectConfig/warningConfig/edit.vue new file mode 100644 index 0000000..6d0dcc8 --- /dev/null +++ b/project-web/src/views/projectConfig/warningConfig/edit.vue @@ -0,0 +1,330 @@ +<template> + <win-md :title="setting.title" @close="close" :width="'800px'"> + <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="妯℃澘鍚嶇О" prop="tempExpirationNotifyName"> + <el-input v-model="formData.tempExpirationNotifyName" placeholder="" clearable maxlength="32" show-word-limit style="width: 400px"/> + </el-form-item> + <h1>涓存湡鍓嶉璀�</h1> + <el-form-item label="涓存湡鍓�" prop="expireBefore1"> + <el-input-number v-model="formData.expireBefore1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.beforeManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser1"> + <el-button @click="chooseUser('beforeManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.beforeManagerNotifyUser1" + :key="item.id" + type="danger" + closable + @close="closeUser('beforeManagerNotifyUser1',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <el-form-item label="涓存湡鍓�" prop="expireBefore2"> + <el-input-number v-model="formData.expireBefore2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.beforeManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser2"> + <el-button @click="chooseUser('beforeManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.beforeManagerNotifyUser2" + :key="item.id" + type="danger" + closable + @close="closeUser('beforeManagerNotifyUser2',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <el-form-item label="涓存湡鍓�" prop="expireBefore3"> + <el-input-number v-model="formData.expireBefore3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.beforeManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser3"> + <el-button @click="chooseUser('beforeManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.beforeManagerNotifyUser3" + :key="item.id" + type="danger" + closable + @close="closeUser('beforeManagerNotifyUser3',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <h1>瓒呮湡鍚庨璀�</h1> + <el-form-item label="瓒呮湡鍚�" prop="expireAfter1"> + <el-input-number v-model="formData.expireAfter1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.afterManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser1"> + <el-button @click="chooseUser('afterManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.afterManagerNotifyUser1" + :key="item.id" + type="danger" + closable + @close="closeUser('afterManagerNotifyUser1',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <el-form-item label="瓒呮湡鍚�" prop="expireAfter2"> + <el-input-number v-model="formData.expireAfter2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.afterManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser2"> + <el-button @click="chooseUser('afterManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.afterManagerNotifyUser2" + :key="item.id" + type="danger" + closable + @close="closeUser('afterManagerNotifyUser2',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <el-form-item label="瓒呮湡鍚�" prop="expireAfter3"> + <el-input-number v-model="formData.expireAfter3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number> + <span style="margin-right: 10px">澶�</span> + <el-checkbox v-model="formData.afterManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox> + </el-form-item> + <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser3"> + <el-button @click="chooseUser('afterManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button> + <el-tag + v-for="(item,i) in formData.afterManagerNotifyUser3" + :key="item.id" + type="danger" + closable + @close="closeUser('afterManagerNotifyUser3',i)" + effect="plain"> + {{ item.userName }} + </el-tag> + </el-form-item> + <h1>棰勮鏂瑰紡</h1> + <div style="margin-left: 50px;margin-bottom: 20px"> + <el-checkbox v-model="formData.notifyWx" :true-label="1" :false-label="0">寰俊娑堟伅</el-checkbox> + <div style="margin-top: 20px"> + <el-checkbox v-model="formData.notifyMobMsg" :true-label="1" :false-label="0">鐭俊</el-checkbox> + <el-radio v-model="formData.notifyMobMsgWay" :label="0">鑷姩鍙戦��</el-radio> + <el-radio v-model="formData.notifyMobMsgWay" :label="1">鎵嬪姩鍙戦��</el-radio> + </div> + </div> + <template v-if="formData.notifyMobMsg===1"> + <el-form-item label="鎵嬫満鍙�" prop="notifyMob"> + <el-input + v-model="formData.notifyMob" + type="textarea" + :rows="3" + maxlength="1024" + show-word-limit + /> + </el-form-item> + </template> + <el-form-item label="鍙戦�佹椂闂�" prop="notifyTime"> + <el-select v-model="formData.notifyTime" placeholder=""> + <el-option + v-for="i in 24" + :key="i" + :label="(i-1)+'鐐�'" + :value="i-1"> + </el-option> + </el-select> + </el-form-item> + + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + <chooseUser v-if="chooseSetting.show" :setting="chooseSetting" @close="chooseSetting.show = false" @checkUsers="checkUsers"></chooseUser> + </win-md> +</template> + +<script> +import winMd from '@/components/win/win-md' +import myButton from '@/components/myButton/myButton' +import chooseUser from "@/views/projectConfig/warningConfig/chooseUser"; +import * as api from "@/api/projectConfig/warningConfig"; + +export default { + name: 'edit', + components: {winMd, myButton, chooseUser}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + chooseSetting: { + title: '閫夋嫨浜哄憳', + setting: [], + show: false + }, + loading: false, + formData: { + tempExpirationNotifyName: '', + expireBefore1: undefined, + beforeManagerNotify1: '', + beforeManagerNotifyUser1: [], + expireBefore2: undefined, + beforeManagerNotify2: '', + beforeManagerNotifyUser2: [], + expireBefore3: undefined, + beforeManagerNotify3: '', + beforeManagerNotifyUser3: [], + expireAfter1: undefined, + afterManagerNotify1: '', + afterManagerNotifyUser1: [], + expireAfter2: undefined, + afterManagerNotify2: '', + afterManagerNotifyUser2: [], + expireAfter3: undefined, + afterManagerNotify3: '', + afterManagerNotifyUser3: [], + notifyWx: 0, + notifyMobMsg: 0, + notifyMobMsgWay: '', + notifyMob: '', + notifyTime: '' + }, + rules: { + tempExpirationNotifyName: [ + {required: true, message: '璇疯緭鍏ユā鏉垮悕绉�', trigger: 'blur'}, + ], + notifyTime: [ + {required: true, message: '璇烽�夋嫨鍙戦�佹椂闂�', trigger: 'blur'}, + ] + }, + cur: '' + } + }, + created() { + this.loading = true + this.getInfo() + }, + methods: { + chooseUser(cur) { + this.cur = cur + this.chooseSetting.selections = this.formData[cur] + this.chooseSetting.show = true + }, + closeUser(key, i) { + this.formData[key].splice(i, 1) + }, + checkUsers(users) { + console.log(users) + this.formData[this.cur] = users + this.chooseSetting.show = false + this.cur = '' + }, + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + api.getDetail({id: this.setting.id}).then(res => { + this.loading = false + this.formData = Object.assign(this.formData, res) + }) + } else { + this.loading = false + } + }, + close() { + this.formData = { + tempExpirationNotifyName: '', + expireBefore1: undefined, + beforeManagerNotify1: '', + beforeManagerNotifyUser1: [], + expireBefore2: undefined, + beforeManagerNotify2: '', + beforeManagerNotifyUser2: [], + expireBefore3: undefined, + beforeManagerNotify3: '', + beforeManagerNotifyUser3: [], + expireAfter1: undefined, + afterManagerNotify1: '', + afterManagerNotifyUser1: [], + expireAfter2: undefined, + afterManagerNotify2: '', + afterManagerNotifyUser2: [], + expireAfter3: undefined, + afterManagerNotify3: '', + afterManagerNotifyUser3: [], + notifyWx: 0, + notifyMobMsg: 0, + notifyMobMsgWay: '', + notifyMob: '', + notifyTime: '' + } + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + let check1 = ['expireBefore1','expireBefore2','expireBefore3','expireAfter1','expireAfter2','expireAfter3'] + let check2 = ['beforeManagerNotifyUser1','beforeManagerNotifyUser2','beforeManagerNotifyUser3','afterManagerNotifyUser1','afterManagerNotifyUser2','afterManagerNotifyUser3'] + if(!check1.some(key=>params[key])){ + this.$message.error('璇峰~鍐欓璀︽椂闂�') + return + } + if(params.notifyWx===0&¶ms.notifyMobMsg===0){ + this.$message.error('璇疯缃璀︽柟寮�') + return + } + if(params.notifyMobMsg===1&&!check2.some(key=>params[key].length>0)&¶ms.notifyMob===''){ + this.$message.error('璇疯缃�氱煡浜哄憳') + return + } + if(params.notifyMobMsg===0&&!check2.some(key=>params[key].length>0)){ + this.$message.error('璇疯缃�氱煡浜哄憳') + return + } + if(params.notifyMobMsg===1&¶ms.notifyMobMsgWay===''){ + this.$message.error('璇疯缃煭淇″彂閫佹柟寮�') + return + } + this.loading = true + api[params.id ? 'upd' : 'add'](params).then(res => { + this.loading = false + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }).catch(() => { + this.loading = false + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> +<style scoped lang="scss"> +h1 { + font-size: 18px; + color: #000; + font-weight: bold; + margin-bottom: 20px; + padding-left: 20px; +} +</style> diff --git a/project-web/src/views/projectConfig/warningConfig/index.vue b/project-web/src/views/projectConfig/warningConfig/index.vue new file mode 100644 index 0000000..2363542 --- /dev/null +++ b/project-web/src/views/projectConfig/warningConfig/index.vue @@ -0,0 +1,209 @@ +<template> + <div class="app-container"> + <el-card class="box-card" shadow="never"> + <div class="filter-container" style="margin-bottom: 10px"> + <my-search ref="searchBar" :items="items" @search="filterForm"></my-search> + </div> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-card> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit> + </div> +</template> + +<script> +import MyTableV2 from '@/components/myTable/myTableV2'; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit' +import {del, updStatus} from "@/api/projectConfig/warningConfig"; + +export default { + components: {MyTableV2, edit}, + data() { + return { + // 鎼滅储鏉′欢 + items: items, + filterFrom: { + projectName: '', + projectCode: '', + planTypeCode: '', + status: '1', + }, + //鏂板缂栬緫 + editSetting: { + title: '', + id: '', + show: false, + }, + //鑺傜偣璁剧疆 + nodeSetting: { + title: '鑺傜偣璁剧疆', + stageId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/temp/expiration/notify/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + { + title: '妯℃澘鍚嶇О', field: 'tempExpirationNotifyName', align: 'left', + /*formatter: (row) => { + return { + value: row.projectName, + type: 'primary', + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + } + }*/ + }, + {title: '缂栧彿', field: 'tempExpirationNotifyCode', align: 'center'}, + {title: '鎵�灞炴満鏋�', field: 'createOrgName', align: 'left'}, + { + title: '寰俊娑堟伅', field: 'notifyWx', align: 'center',width: 80, + formatter: (row) => { + return { + value: row.notifyWx === 1 ? '寮�' : '鍏�' + } + } + }, + { + title: '鐭俊', field: 'notifyMobMsg', align: 'center',width: 80, + formatter: (row) => { + return { + value: row.notifyMobMsg === 1 ? row.notifyMobMsgWay === 1 ? '鎵嬪姩' : '鑷姩' : '鍏�', + } + } + }, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + return { + value: row.status === 1, // 寮� + label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row); + }, + }; + }, + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: 180, // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.handleDelete(row); + }, + }, + ], + }, + paging: { + show: false, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + mounted() { + }, + methods: { + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + /*鎼滅储*/ + filterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + //娣诲姞銆佺紪杈� + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + this.editSetting.id = id; + this.editSetting.title = title; + this.editSetting.show = true; + }, + /*寮�鍚叧闂�*/ + updState(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.tempExpirationNotifyName + '"妯℃澘鍚楋紵').then(() => { + let status = row.status === 1 ? 0 : 1 + updStatus({ + id: row.id, + status + }).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + this.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$confirm('鏄惁纭鍒犻櫎"' + row.tempExpirationNotifyName + '"妯$増锛�', { + type: 'warning' + }).then(() => { + del({id: row.id}).then(res => { + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.search() + }) + }) + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/projectConfig/warningConfig/items.js b/project-web/src/views/projectConfig/warningConfig/items.js new file mode 100644 index 0000000..c2f2b21 --- /dev/null +++ b/project-web/src/views/projectConfig/warningConfig/items.js @@ -0,0 +1,45 @@ + +import SettingIplatform from '@/utils/settingIplatform'; +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '妯℃澘鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '妯℃澘缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'cascader', + dataIndex: 'planTypeCode', + label: '鎵�灞炴満鏋�', + placeholder: '璇烽�夋嫨', + options: [], + optionsConfig: { + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/tree_fin_tenant' + } + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/projectManage/audit/audit.vue b/project-web/src/views/projectManage/audit/audit.vue new file mode 100644 index 0000000..1a05b2a --- /dev/null +++ b/project-web/src/views/projectManage/audit/audit.vue @@ -0,0 +1,80 @@ +<template> + <win-sm :title="setting.title" @close="close"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="瀹℃牳缁撴灉" prop="auditStatus"> + <el-radio-group v-model="formData.auditStatus"> + <el-radio :label="2" border>閫氳繃</el-radio> + <el-radio :label="1" border>涓嶉�氳繃</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="auditReason"> + <el-input + v-model="formData.auditReason" + type="textarea" + :rows="3" + maxlength="200" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="鎻愪氦" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as audit from '@/api/projectManage/audit' +export default { + name: 'edit', + components: { winSm, myButton }, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + formData: { + id: null, + sourceStatus: null, + auditStatus: 2, + auditReason: '', + }, + rules: { + auditStatus: [ + {required: true, message: '璇烽�夋嫨瀹℃牳缁撴灉', trigger: 'change'} + ], + } + } + }, + created() { + this.formData.id = this.setting.id + this.formData.sourceStatus = this.setting.sourceStatus + }, + methods: { + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = this.formData + audit.auditUpd(params).then(res=>{ + this.$message.success('鎻愪氦鎴愬姛') + this.close() + this.$emit('search') + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/projectManage/audit/chooseUser.vue b/project-web/src/views/projectManage/audit/chooseUser.vue new file mode 100644 index 0000000..319df26 --- /dev/null +++ b/project-web/src/views/projectManage/audit/chooseUser.vue @@ -0,0 +1,157 @@ +<template> + <div> + <win-md :title="'椤圭洰鎴愬憳'" @close="close"> + <table class="myTable" bordercolor="#E5E6ED" border="1" cellpadding="0" cellspacing="0"> + <tr v-for="(org,i) in dataList" :key="i"> + <td class="bg-f6f"> + <el-checkbox @change="checkAllChange($event,i)" v-model="org.checked">{{ org.orgName }}</el-checkbox> + </td> + <td> + <div v-if="org.userList.length>0"> + <el-checkbox-group v-model="org.checkUsers" @change="checkedUsersChange(i)"> + <el-checkbox v-for="(r,rIndex) in org.userList" :label="JSON.stringify(r)" :key="r.id">{{r.userName}}</el-checkbox> + </el-checkbox-group> + </div> + </td> + </tr> + </table> + <el-form ref="form" :model="formData" :rules="rules" label-width="80px" v-if="manageList.length>0" style="margin-top: 15px"> + <el-form-item label="椤圭洰缁忕悊" prop="managerId"> + <el-select v-model="formData.managerId" placeholder="璇烽�夋嫨椤圭洰缁忕悊"> + <el-option v-for="user in manageList" :label="user.userName" :value="user.id"></el-option> + </el-select> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-md> + </div> +</template> + +<script> +import winMd from '@/components/win/win-md' +import myButton from '@/components/myButton/myButton' +import * as finsystenant from '@/api/baseSetting/finsystenant' +export default { + name: "chooseUser", + components: { winMd, myButton }, + props: { + orgId: { + type: String, + default: '' + }, + // 琚�変腑鐨勯」鐩粡鐞唅d + projectManager: { + type: String, + default: '' + }, + // 琚�変腑鐨勪汉鍛榠d + checkIds: { + type: Array, + default: [] + }, + }, + computed:{ + manageList(){ + let arr = [] + this.dataList.map((c,j)=>{ + c.checkUsers.map((x,i)=>{ + arr.push(JSON.parse(x)) + }) + }) + return arr + } + }, + data() { + return { + formData:{ + managerId:'' // 椤圭洰缁忕悊id + }, + dataList:[], + rules: { + managerId: [ + {required: true, message: '璇烽�夋嫨椤圭洰缁忕悊', trigger: 'change'} + ], + } + } + }, + created() { + if(this.projectManager){ + this.formData.managerId = this.projectManager + } + this.getTableInfo(this.orgId) + }, + methods:{ + // 鑾峰彇浜哄憳 + getTableInfo(orgId){ + finsystenant.getUserByOrgId({orgId: orgId}).then(res => { + if (res) { + res.map(i=>{ + i.checkUsers = [] + i.checked = false + }) + if(this.checkIds.length>0 ){ + res.map((c,j)=>{ + c.checkUsers = this.checkIds[j] + c.checked = this.checkIds[j].length===c.userList.length + }) + } + this.dataList = res.reverse() + } + }) + }, + // 宸︿晶鍏ㄩ�� + checkAllChange(val,index){ + this.dataList[index].checkUsers = [] + if(val){ + this.dataList[index].userList.map(x=>{ + this.dataList[index].checkUsers.push(JSON.stringify(x)) + }) + } + }, + // 鍙充晶閫夋嫨鍗曠嫭椤� + checkedUsersChange(index){ + let val = this.dataList[index].checkUsers.length===this.dataList[index].userList.length + this.$set(this.dataList[index],'checked',val) + this.$forceUpdate() + }, + // 淇濆瓨鎴愬憳 + save(){ + if(!this.manageList.length > 0){ + this.$message.error('璇烽�夋嫨椤圭洰鎴愬憳') + return + } + this.$refs.form.validate((valid) => { + if (valid) { + let params = Object.assign({},this.formData) + params.checkUsers = [] + this.dataList.map(x=>{ + params.checkUsers.push(x.checkUsers) + }) + this.$emit('save',params) + this.close() + } + }) + }, + close(){ + this.$emit('close') + } + } +} +</script> + +<style scoped> +.myTable { + width: 100%; +} +.bg-f6f { + background-color: #F6F8FC; +} +.myTable td, .myTable th { + min-width: 100px; + padding: 15px 10px; + font-size: 14px; +} +</style> diff --git a/project-web/src/views/projectManage/audit/detail.vue b/project-web/src/views/projectManage/audit/detail.vue new file mode 100644 index 0000000..1ea2e19 --- /dev/null +++ b/project-web/src/views/projectManage/audit/detail.vue @@ -0,0 +1,362 @@ +<template> + <win2 :title="setting.title" @close="close"> + <div class="app-container" v-loading="loading"> + <el-row :gutter="15"> + <el-col :span="7"> + <el-card shadow="never" class="com-box"> + <div> + <div class="f-r"> + <div class="img-box f-r f-r-center"> + <img src="@/assets/images/project/icon-gj-lv.png" alt="" class="type-img"/> + </div> + <div> + <div class="font-18 font-bold color-333">{{info.projectName}}</div> + <el-progress :percentage="info.progressRate" style="width: 100%;margin-top: 5px" + :show-text="false"></el-progress> + <div class="m-t-10 f-r f-r-between"> + <el-tag :type="getStatusText(info.status).type">{{ getStatusText(info.status).text }}</el-tag> + <div class="font-13 color-999"> + 褰撳墠杩涘害 + <span class="color-red">{{ info.progressRate }}%</span> + </div> + </div> + </div> + </div> + <div class="cont-box"> + <div class="font-14 color-666">涓昏寤鸿鍐呭</div> + <div class="font-14 color-333 m-t-5 line-24"> + {{info.detail}} + </div> + </div> + <div class="e-p-v-15"> + <el-form label-width="80px" label-position="left"> + <el-form-item label="寤鸿鍦板潃"> + <div class="font-14 color-333 line-24">{{info.addr}}</div> + </el-form-item> + <el-form-item label="椤圭洰缂栧彿"> + <div class="font-14 color-333 line-24">{{info.projectCode}}</div> + </el-form-item> + <el-form-item label="椤圭洰鍒嗙被"> + <div class="font-14 color-333 line-24" style="color: #235686">{{info.projectCategoryName}}</div> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅"> + <div class="font-14 color-333 line-24">{{info.buildOrgName}}</div> + </el-form-item> + <el-form-item label="椤圭洰缁忕悊"> + <div class="font-14 color-333 line-24">{{info.projectManager}}</div> + </el-form-item> + <el-form-item label="璧锋骞撮檺"> + <div class="font-14 color-333 line-24">{{info.buildYearStart}}-{{info.buildYearEnd}}</div> + </el-form-item> + <el-form-item label="椤圭洰鎵规"> + <div class="font-14 color-333 line-24">{{info.projectBatchName}}</div> + </el-form-item> + <el-form-item label="鎵瑰鏃堕棿"> + <div class="font-14 color-333 line-24">{{info.approvalDate}}</div> + </el-form-item> + <el-form-item label="鍒涘缓鏃堕棿"> + <div class="font-14 color-333 line-24">{{info.createTime}}</div> + </el-form-item> + <el-form-item label="鎶曡祫涓撲笟"> + <div class="font-14 color-333 line-24">{{info.investMajorName}}</div> + </el-form-item> + <el-form-item label="椤圭洰鎶曡祫"> + <div class="font-14 color-333 line-24">鎬昏祫浜{info.totalInvest}}涓囧厓 / 宸蹭笅杈�<span class="color-red">{{info.totalReleaseInvest}}</span>涓囧厓</div> + <div v-for="(item, i) in info.pReleaseInvestInfoList" + :key="item.id" + class="font-14 color-333 line-24"> + 绗瑊{i + 1}}娆′笅杈�<span class="color-red">{{item.releaseInvest}}</span>涓囧厓 + </div> + </el-form-item> + </el-form> + </div> + </div> + </el-card> + </el-col> + <el-col :span="14" class="com-box"> + <el-card shadow="never"> + <div class="font-18 color-333 font-bold m-b-15">鑺傜偣杩涘害</div> + <div class="f-r f-r-between f-r-top"> + <!--宸︿晶--> + <div class="com-c-box"> + <div v-for="(c,j) in projectStage" :key="j" class="jd-item" :class="{'jd-active':c.pstageId===curId}" @click="changeJd(c,j)"> + {{ c.pstageName }} + </div> + </div> + <!--鍙充晶--> + <div class="f-1 node-list com-c-box"> + <el-timeline> + <el-timeline-item + v-for="(node, index) in nodeList" + :key="index" + icon="el-icon-check" + type="success" + size="large" + :hide-timestamp="false"> + <div class="node-item f-r f-r-between"> + <div> + <div class="font-16 color-333">{{ node.nodeName }}</div> + <div class="m-t-5 font-14 color-333">{{ formatterDate(node.nodeStart) }}鑷硔{ formatterDate(node.nodeEnd) }}</div> + </div> + <div> +<!-- <div class="font-12 color-999">{{ node.nodeCompleteDate }}</div>--> +<!-- <el-button type="primary" size="mini" class="m-t-5 float-right" @click="lookNode(node.nodeId)">鏌ョ湅</el-button>--> + </div> + </div> + </el-timeline-item> + </el-timeline> + </div> + </div> + </el-card> + </el-col> + </el-row> + </div> + </win2> +</template> + +<script> +import win2 from '@/components/win2/index' +import {getDownUrl} from '@/utils/base'; +import * as info from '@/api/projectManage/info' +import * as DateFormatter from '@/utils/DateFormatter'; +export default { + name: "detail", + components: {win2}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + info: {}, + projectStage: [], // 鑺傜偣鍒楄〃 + curId: null, // 褰撳墠閫変腑闃舵id + nodeId: null, // 褰撳墠閫変腑鑺傜偣id + nodeList: [], + loading:false + } + }, + created() { + if (this.setting.id) { + this.getInfo(this.setting.id) + } + }, + methods: { + formatterDate(time){ + return DateFormatter.LongToDate(time) + }, + getInfo(id) { + this.loading = true + info.getInfo({id: id}).then(res => { + if (res) { + this.info = res + this.info.approvalDate = DateFormatter.LongToDate(this.info.approvalDate) + this.info.createTime = DateFormatter.LongToDateTime(this.info.createTime) + this.projectStage = res.pTempStageResults + if(this.projectStage && this.projectStage.length>0){ + this.curId = this.projectStage[0].pstageId + this.nodeList = this.projectStage[0].pStageNodeResults + } + this.loading = false + } + }) + }, + // 鏌ョ湅鑺傜偣杩涘害 + lookNode(nodeId){ + this.nodeId = nodeId + this.nodeShow = true + }, + // 鍒囨崲鑺傜偣 + changeJd(c,index){ + this.curId = c.pstageId + this.nodeList = this.projectStage[index].pStageNodeResults + this.$forceUpdate() + }, + getStatusText(state) { + // 0 鏈紑宸� 1 杩涜涓� 2 宸插畬鎴� 3 宸插彇娑� 4 宸插欢鏈� + let obj = { + text: '', + type: 'success' + } + switch (state) { + case 0: + obj.text = '鏈紑宸�' + obj.type = 'info' + break + case 1: + obj.text = '杩涜涓�' + obj.type = 'primary' + break + case 2: + obj.text = '宸插畬鎴�' + obj.type = 'success' + break + case 3: + obj.text = '宸插彇娑�' + obj.type = 'warning' + break + case 4: + obj.text = '宸插欢鏈�' + obj.type = 'danger' + break + } + return obj + }, + close() { + this.$emit('close') + } + }, +} +</script> + +<style scoped> +.com-box { + overflow-y: auto; + max-height: calc(100vh - 256px); +} + +.com-c-box { + overflow-y: auto; + max-height: calc(100vh - 310px); +} + +.com-c-box::-webkit-scrollbar { + display: none; +} + +.com-box::-webkit-scrollbar { + width: 4px; +} + +.com-box::-webkit-scrollbar-thumb { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +.m-t-10 { + margin-top: 10px; +} + +.m-t-5 { + margin-top: 5px; +} + +.m-b-15 { + margin-bottom: 15px; +} + +.img-box { + min-width: 56px; + max-width: 56px; + height: 56px; + border-radius: 4px; + border: 1px solid #eeeeee; + margin-right: 5px; +} + +.type-img { + width: 38px; + height: 38px; +} + +.cont-box { + padding: 15px 0; + border-bottom: 1px solid #f5f5f5; +} + +.line-24 { + line-height: 24px; +} + +>>> .el-form-item__label { + line-height: 24px; +} + +>>> .el-form-item { + margin-bottom: 10px; +} + +.e-p-v-15 { + padding: 15px 0; +} + +.jd-item { + width: 150px; + height: 45px; + line-height: 45px; + text-align: center; + border-radius: 4px; + font-size: 16px; + border: 1px solid #e6e6e6; + cursor: pointer; + margin-bottom: 15px; +} + +.jd-item:hover { + color: #FFFFFF; + background-color: #0d997c; +} + +.jd-active { + color: #FFFFFF; + background-color: #0d997c; +} + +.node-list { + padding-left: 25px; +} + +.node-item { + padding-top: 5px; +} + +.float-right { + float: right; +} + +.color-0D9 { + color: #0D997C; +} + +.info-item { + padding-top: 5px; +} + +.info-box { + padding: 8px; + border-radius: 4px; + background: #f8faf9; +} + +.info-img { + width: 92px; + height: 92px; + border-radius: 4px; + margin-right: 10px; +} + +.file-item { + padding: 10px 0; +} +.file-icon{ + width: 16px; + height: 16px; + margin-right: 5px; +} +.file-name{ + font-size: 14px; + color: #333333; +} +.file-name:hover{ + cursor: pointer; + color: #0d997c; +} +.down-enter{ + cursor: pointer; + color: #1890ff; + font-size: 14px; + text-decoration: underline; +} +</style> diff --git a/project-web/src/views/projectManage/audit/edit.vue b/project-web/src/views/projectManage/audit/edit.vue new file mode 100644 index 0000000..9a846ec --- /dev/null +++ b/project-web/src/views/projectManage/audit/edit.vue @@ -0,0 +1,393 @@ +<template> + <win-sm :title="setting.title" @close="close"> + <el-form ref="dataForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="110px"> + <el-form-item label="椤圭洰鍒嗙被" prop="projectCategoryId"> + <el-cascader + :options="categoryOptions" + :show-all-levels="false" + :props="{ value: 'id',label:'label' }" + v-model="formData.projectCategoryId" + style="width: 100%"></el-cascader> + </el-form-item> + <el-form-item label="璁″垝绫诲瀷" prop="planTypeCode"> + <el-cascader + :options="planTypeOptions" + :show-all-levels="false" + :props="{ value: 'dict_code',label:'dict_label' }" + v-model="formData.planTypeCode" + @change="getTemp()" + style="width: 100%"></el-cascader> + </el-form-item> + <el-form-item label="璁″垝妯℃澘" prop="tempProjectId"> + <el-select v-model="formData.tempProjectId" placeholder="" style="width: 100%"> + <el-option + v-for="item in tempOptions" + :key="item.id" + :label="item.projectName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="椤圭洰鍚嶇О" prop="projectName"> + <el-input v-model="formData.projectName" maxlength="50"></el-input> + </el-form-item> + <el-form-item label="椤圭洰缂栧彿" prop="projectCode"> + <el-input v-model="formData.projectCode"></el-input> + </el-form-item> + <el-form-item label="鐩磋惀鍗曚綅" prop="directUnitCode"> + <el-cascader + :options="orgZsOptions" + :props="{ value: 'dict_code',label:'dict_label' }" + v-model="formData.directUnitCode" + style="width: 100%"></el-cascader> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅" prop="buildOrgId"> + <el-cascader + :options="buildOrgOptions" + :props="{ value: 'id',label:'label', checkStrictly: true }" + v-model="formData.buildOrgId" + style="width: 100%" + @change="changeBuildOrg"></el-cascader> + </el-form-item> + <el-form-item label="椤圭洰鎴愬憳" prop="projectUsersName"> + <div style="position: relative;"> + <div @click="chooseUsers" class="mask-div"></div> + <el-input v-model="formData.projectUsersName" readonly></el-input> + </div> + </el-form-item> + <el-form-item label="椤圭洰鍦板潃" prop="addr"> + <div class="f-r"> + <el-input v-model="formData.addr"></el-input> + <el-button size="small" type="primary" style="margin-left: 15px">鍧愭爣鎷惧彇</el-button> + </div> + </el-form-item> + <div class="f-r f-r-between"> + <el-form-item label="寤鸿璧锋骞撮檺" prop="buildYearStart" style="width: 49%"> + <el-input v-model="formData.buildYearStart" type="number"> + <template slot="append">骞�</template> + </el-input> + </el-form-item> + <div class="font-14 color-333 pos-year">鑷�</div> + <el-form-item label="" prop="buildYearEnd" style="width: 49%"> + <el-input v-model="formData.buildYearEnd" type="number"> + <template slot="append">骞�</template> + </el-input> + </el-form-item> + </div> + <el-form-item label="椤圭洰鎵规" prop="projectBatchCode"> + <el-select v-model="formData.projectBatchCode" placeholder="" style="width: 100%"> + <el-option + v-for="item in batchOptions" + :label="item.dict_label" + :value="item.dict_code"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鎵瑰鏃堕棿" prop="approvalDate"> + <el-date-picker + v-model="formData.approvalDate" + type="date" + placeholder="" + value-format="yyyy-MM-dd" + format="yyyy-MM-dd" + style="width: 100%"> + </el-date-picker> + </el-form-item> + <el-form-item label="鎬绘姇璧�" prop="totalInvest"> + <el-input v-model="formData.totalInvest" type="number" > + <template slot="append">涓囧厓</template> + </el-input> + </el-form-item> + <el-form-item label="宸蹭笅杈炬姇璧�" prop="totalReleaseInvest"> + <el-input v-model="formData.totalReleaseInvest" type="number"> + <template slot="append">涓囧厓</template> + </el-input> + </el-form-item> + <el-form-item label="鎶曡祫涓撲笟" prop="investMajorCode"> + <el-select v-model="formData.investMajorCode" placeholder="" style="width: 100%"> + <el-option + v-for="item in investOptions" + :key="item.dict_code" + :label="item.dict_label" + :value="item.dict_code"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="涓昏寤鸿鍐呭" prop="detail"> + <el-input + v-model="formData.detail" + type="textarea" + :rows="2" + maxlength="120" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="鎻愪氦" site="form" @click="save"/> + </div> + <chooseUser v-if="userShow" :projectManager="projectManager" :checkIds="checkIds" :orgId="tarOrgId" @close="userShow=false" @save="getUsers"></chooseUser> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as system from '@/api/system/dict/data' +import * as buildPlan from "@/api/projectConfig/buildPlan"; +import * as finsystenant from '@/api/baseSetting/finsystenant' +import * as DateFormatter from '@/utils/DateFormatter'; +import * as info from '@/api/projectManage/info' +import chooseUser from './chooseUser' +import * as classify from "@/api/projectManage/classify"; +export default { + name: 'edit', + components: { winSm, myButton,chooseUser }, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + tarOrgId: '', // 閫夋嫨鐨勬満鏋処D + planTypeOptions: [], // 妯℃澘鍒嗙被 + categoryOptions:[], // 椤圭洰鍒嗙被 + tempOptions:[], // 椤圭洰妯℃澘 + orgZsOptions:[], // 鐩磋惀鍗曚綅 + buildOrgOptions:[], // 寤鸿鍗曚綅 + batchOptions:[], // 椤圭洰鎵规 + investOptions:[], // 鎶曡祫涓撲笟 + formData: { + projectCategoryId: '', + planTypeCode: '', + tempProjectId: '', + projectName: '', + projectCode: '', + directUnitCode: '', + buildOrgId:'', + projectUsersName:'', + projectUsersIds:'', + addr:'', + buildYearStart:'', + buildYearEnd:'', + projectBatchCode:'', + approvalDate:'', + totalInvest:'', + totalReleaseInvest:'', + investMajorCode:'', + detail:'', + }, + rules: { + projectCategoryId: [ + {required: true, message: '璇烽�夋嫨椤圭洰鍒嗙被', trigger: 'change'} + ], + planTypeCode: [ + {required: true, message: '璇烽�夋嫨璁″垝绫诲瀷', trigger: 'change'} + ], + tempProjectId: [ + {required: true, message: '璇烽�夎鍒掓ā鏉�', trigger: 'change'} + ], + projectName: [ + {required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur'} + ], + projectCode: [ + {required: true, message: '璇疯緭鍏ラ」鐩紪鍙�', trigger: 'blur'} + ], + directUnitCode: [ + {required: true, message: '璇烽�夋嫨鐩磋惀鍗曚綅', trigger: 'change'} + ], + buildOrgId: [ + {required: true, message: '璇烽�夋嫨寤鸿鍗曚綅', trigger: 'change'} + ], + projectUsersIds: [ + {required: true, message: '璇烽�夋嫨椤圭洰浜哄憳', trigger: 'change'} + ], + addr: [ + {required: true, message: '璇烽�夋嫨椤圭洰鍦板潃', trigger: 'change'} + ], + buildYearStart: [ + {required: true, message: '璇疯緭鍏ュ紑濮嬫椂闂�', trigger: 'blur'} + ], + buildYearEnd: [ + {required: true, message: '璇疯緭鍏ョ粨鏉熸椂闂�', trigger: 'blur'} + ], + projectBatchCode: [ + {required: true, message: '璇烽�夋嫨椤圭洰鎵规', trigger: 'change'} + ], + approvalDate: [ + {required: true, message: '璇烽�夋嫨鎵瑰鏃堕棿', trigger: 'change'} + ], + totalInvest: [ + {required: true, message: '璇疯緭鍏ユ�绘姇璧勯噾棰�', trigger: 'blur'} + ], + totalReleaseInvest: [ + {required: true, message: '璇疯緭鍏ュ凡涓嬭揪鎶曡祫閲戦', trigger: 'blur'} + ], + investMajorCode: [ + {required: true, message: '璇烽�夋嫨鎶曡祫涓撲笟', trigger: 'change'} + ] + + }, + userShow:false, + checkIds:[], // 琚�変腑鐨勪汉鍛樺悕鍗� 闇�瑕侀亶鍘嗭紝鏄釜鏁扮粍 + projectManager:'', // 琚�変腑鐨勯」鐩粡鐞唅d + } + }, + created() { + this.getProjectType() // 鑾峰彇妯℃澘鍒嗙被 + this.getProjectClass() // 鑾峰彇椤圭洰鍒嗙被 + this.getProjectBatch() // 鑾峰彇椤圭洰鎵规 + this.getProjectInvest() // 鑾峰彇鎶曢�掍笓涓� + this.getProjectDirect() // 鑾峰彇鐩磋惀鍗曚綅 + this.getOrg() // 鑾峰彇寤鸿鍗曚綅 + }, + methods: { + // 閫夋嫨椤圭洰鎴愬憳 + chooseUsers(){ + if (this.formData.buildOrgId) { + this.tarOrgId = this.formData.buildOrgId[this.formData.buildOrgId.length - 1].toString() + this.userShow = true + } else { + this.userShow = false + this.$message.warning('璇峰厛閫夋嫨寤鸿鍗曚綅锛�') + } + }, + // 鑾峰彇閫夋嫨鐨勬垚鍛� + getUsers(info){ + let userNames = [] + let userIds = [] + info.checkUsers.map(x=>{ + x.map(j=>{ + let item = JSON.parse(j) + userNames.push(item.userName) + userIds.push(item.id) + }) + }) + this.formData.projectUsersIds = userIds.join(',') + this.formData.projectUsersName = userNames.join(',') + this.checkIds = info.checkUsers + this.projectManager = info.managerId + }, + // 鑾峰彇寤鸿鍗曚綅 + getOrg() { + finsystenant.getTree().then(res => { + if (res) { + this.buildOrgOptions = res + } else { + this.buildOrgOptions = [] + } + this.$forceUpdate() + }) + }, + // 淇敼寤鸿鍗曚綅 娓呯┖ 椤圭洰浜哄憳 + changeBuildOrg(){ + this.formData.projectUsersIds = '' + this.formData.projectUsersName = '' + this.checkIds = [] + this.projectManager = '' + }, + close() { + this.$emit('close') + }, + getProjectType () { + buildPlan.getPlanType().then(res => { + if (res) { + this.planTypeOptions = res + } else { + this.planTypeOptions = [] + } + this.$forceUpdate() + }) + }, + // 鑾峰彇璁″垝妯℃澘 + getTemp() { + if (this.formData.planTypeCode) { + buildPlan.getList({planTypeCode: this.formData.planTypeCode, status: 1}).then(res => { + if (res) { + this.tempOptions = res + } else { + this.tempOptions = [] + } + }) + } else { + this.tempOptions = [] + } + this.$forceUpdate() + }, + // 鑾峰彇椤圭洰鍒嗙被 + getProjectClass(){ + classify.classifyTree().then(res => { + const content = res || [] + this.categoryOptions = content + }) + }, + // 鑾峰彇椤圭洰鎵规 + getProjectBatch(){ + system.getDicts('project_batch').then(res=>{ + this.batchOptions = res + }) + }, + // 鑾峰彇鎶曢�掍笓涓� + getProjectInvest(){ + system.getDicts('INVEST_MAJOR').then(res=>{ + this.investOptions = res + }) + }, + // 鑾峰彇鐩磋惀鍗曚綅 + getProjectDirect(){ + system.getDicts('DIRECT_UNIT').then(res=>{ + this.orgZsOptions = res + }) + }, + save() { + this.$refs.dataForm.validate((valid) => { + if (valid) { + const params = this.formData + if (params.buildOrgId.length > 0) { + params.buildOrgId = this.formData.buildOrgId[this.formData.buildOrgId.length - 1].toString() + } + if (params.planTypeCode.length > 0) { + params.planTypeCode = this.formData.planTypeCode[this.formData.planTypeCode.length - 1].toString() + } + if (params.projectCategoryId.length > 0) { + params.projectCategoryId = this.formData.projectCategoryId[this.formData.projectCategoryId.length - 1].toString() + } + if (params.directUnitCode.length > 0) { + params.directUnitCode = this.formData.directUnitCode[this.formData.directUnitCode.length - 1].toString() + } + if (params.approvalDate) { + params.approvalDate = DateFormatter.DateToLong(params.approvalDate) + } + params.projectManager = this.projectManager + info.add(params).then(res=>{ + this.$message.success('鎻愪氦鎴愬姛') + this.close() + this.$emit('search') + }) + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> +<style scoped lang="scss"> +.pos-year{ + margin-bottom: 18px; + position: relative; + left:55px; +} +.mask-div{ + position: absolute; + top:0; + left: 0; + right: 0; + bottom: 0; + z-index: 10; +} +</style> diff --git a/project-web/src/views/projectManage/audit/index.vue b/project-web/src/views/projectManage/audit/index.vue new file mode 100644 index 0000000..cdce267 --- /dev/null +++ b/project-web/src/views/projectManage/audit/index.vue @@ -0,0 +1,229 @@ +<template> + <div class="app-container"> + <el-card class="box-card" style="width: 100%;margin-top: 15px" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + </el-card> + <!-- 瀹℃牳--> + <audit v-if="auditShow" :setting="setting" @close="auditShow=false" @search="search"/> + <!-- 鏂板--> + <edit v-if="editShow" :setting="setting" @close="editShow=false" @search="search"/> + <!-- 璇︽儏 --> + <detail v-if="detailShow" :setting="setting" @close="detailShow=false"></detail> + </div> +</template> + +<script> +import MyTable from "@/components/myTable/myTable"; +import SettingIplatform from '@/utils/settingIplatform'; +import detail from '@/views/projectManage/audit/detail' +import * as DateFormatter from '@/utils/DateFormatter'; +import items from './items' +import audit from './audit' +import edit from './edit' +export default { + name: "index", + components: { MyTable,audit, edit,detail }, + data() { + return { + // 鎼滅储妗� + items: items, + // 鎼滅储鏉′欢 + filterFrom: { + projectName: null, // 椤圭洰鎬绘暟 + projectCode: null, // 椤圭洰缂栧彿 + projectCategoryId: null, // 鍒嗙被 + buildOrgId: null, // 寤鸿鍗曚綅 + auditStatus: null, // 鐘舵�� 0鏈鏍� 1涓嶉�氳繃 2閫氳繃 + sourceStatus: null, // 绫诲瀷 0褰掓。 1鏂板 + approvalDate: null, // 鎵瑰鏃堕棿 + createTime: null // 鍒涘缓鏃堕棿 + }, + auditShow:false, + editShow:false, + detailShow:false, + setting:{ + id:null, + title:'瀹℃牳' + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/project/info/audit/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null) + } + }, + { + name: '椤圭洰瀵煎叆', + click: () => { + + } + }, + { + name: '瀵煎叆璁板綍', + click: () => { + + } + } + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '椤圭洰鍚嶇О', field: 'projectName', align: 'left', width: '240px'}, + {title: '缂栧彿', field: 'projectCode', align: 'center', width: '180px'}, + {title: '鍒嗙被', field: 'projectCategoryName', align: 'center', width: '150px'}, + {title: '寤鸿鍗曚綅', field: 'buildOrgName', align: 'center', width: '200px'}, + {title: '鎵瑰鏃堕棿', field: 'approvalDate', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDate(row.approvalDate) } + } + }, + {title: '鍒涘缓鏃堕棿', field: 'createTime', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDateTime(row.createTime) } + } + }, + { + title: '绫诲瀷', field: 'sourceStatus', align: 'center', width: '120px', + formatter: row => { + return {value: row.sourceStatus == 0 ? '褰掓。' : '鏂板'} + } + }, + { + title: '鐘舵��', field: 'auditStatus', align: 'center', width: '120px', + formatter: row => { + let value = '' + if (row.sourceStatus == 0) { + // 褰掓。 + if (row.archiveStatus == 0) { + value = '鏈鏍�' + } else if (row.archiveStatus == 1) { + value = '涓嶉�氳繃' + } else if (row.archiveStatus == 2) { + value = '閫氳繃' + } else { + value = '' + } + } + if (row.sourceStatus == 1) { + // 鏂板 + if (row.auditStatus == 0) { + value = '鏈鏍�' + } else if (row.auditStatus == 1) { + value = '涓嶉�氳繃' + } else if (row.auditStatus == 2) { + value = '閫氳繃' + } else { + value = '' + } + } + return {value: value} + } + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + width: 180, + align:'center', + show: true, // 鏄剧ず鎿嶄綔鍒� + attr: [ + { + title: '瀹℃牳', + events: row => { + this.showAudit(row) + }, + hidden:(row) => { + if (row.sourceStatus == 0 && row.archiveStatus !== 0) { + return true + } + if (row.sourceStatus == 1 && row.auditStatus !== 0) { + return true + } + } + }, + { + title: '璇︽儏', + events: row => { + this.showDetail(row.id) + } + } + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + methods:{ + // 鏂板 + showAdd(){ + this.setting = { + title:'鏂板椤圭洰', + id:null + } + this.editShow = true + }, + showAudit(row){ + this.setting = { + title:'瀹℃牳', + id: row.id, + sourceStatus: row.sourceStatus + } + this.auditShow = true + }, + showDetail(id){ + this.setting = { + id: id, + title:'椤圭洰璇︽儏' + } + this.detailShow = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/audit/items.js b/project-web/src/views/projectManage/audit/items.js new file mode 100644 index 0000000..dd37b9e --- /dev/null +++ b/project-web/src/views/projectManage/audit/items.js @@ -0,0 +1,90 @@ +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '椤圭洰鍚嶇О', + defaultValue: '', + placeholder: '璇疯緭鍏�' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '椤圭洰缂栧彿', + defaultValue: '', + placeholder: '璇疯緭鍏�' + }, + { + type: 'cascader', + dataIndex: 'projectCategoryId', + label: '鍒嗙被', + placeholder: '璇烽�夋嫨', + optionsConfig: { + url: '/pc/p/project/category/tree', + props:{checkStrictly: false,value: 'id'} + }, + options: [] + }, + { + type: 'cascader', + dataIndex: 'buildOrgId', + label: '寤鸿鍗曚綅', + placeholder: '璇烽�夋嫨', + optionsConfig: { + url: '/pc/fin/sys/tenant/select/tree_fin_tenant' + }, + options: [] + }, + { + type: 'select', + dataIndex: 'sourceStatus', + label: '绫诲瀷', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [ + { + value: 0, + label: '褰掓。' + }, + { + value: 1, + label: '鏂板' + } + ] + }, + { + type: 'select', + dataIndex: 'auditStatus', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [ + { + value: 0, + label: '鏈鏍�' + }, + { + value: 1, + label: '涓嶉�氳繃' + }, + { + value: 2, + label: '閫氳繃' + } + ] + }, + { + type: 'datetimerange-picker', + dataIndex: 'approvalDate', + placeholder: '璇烽�夋嫨', + label: '鎵瑰鏃堕棿', + defaultValue: '', + format:'yyyy-MM-dd' + }, + { + type: 'datetimerange-picker', + dataIndex: 'createTime', + placeholder: '璇烽�夋嫨', + label: '鍒涘缓鏃堕棿', + defaultValue: '', + }, +] diff --git a/project-web/src/views/projectManage/cancel/index.vue b/project-web/src/views/projectManage/cancel/index.vue new file mode 100644 index 0000000..94ee98f --- /dev/null +++ b/project-web/src/views/projectManage/cancel/index.vue @@ -0,0 +1,164 @@ +<template> + <div class="app-container"> + <el-card class="box-card" style="width: 100%;margin-top: 15px" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + </el-card> + <!-- 璇︽儏 --> + <detail v-if="detailShow" :setting="setting" @close="detailShow=false"></detail> + </div> +</template> + +<script> +import MyTable from "@/components/myTable/myTable"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import detail from '@/views/projectManage/information/detail' +import * as cancel from '@/api/projectManage/cancel' +import * as DateFormatter from "@/utils/DateFormatter"; +export default { + name: "index", + components: { MyTable,detail }, + data() { + return { + // 鎼滅储妗� + items: items, + // 鎼滅储鏉′欢 + filterFrom: { + projectName: null, // 椤圭洰鎬绘暟 + projectCode: null, // 椤圭洰缂栧彿 + projectCategoryId: null, // 鍒嗙被 + buildOrgId: null, // 寤鸿鍗曚綅 + archiveStatus: null, // 绫诲瀷 0 鏈綊妗� 1 瀹℃牳涓� 2 宸插綊妗� + approvalDate: null, // 鎵瑰鏃堕棿 + createTime: null // 鍒涘缓鏃堕棿 + }, + setting:{ + id:null, + title:'璇︽儏' + }, + detailShow:false,// 璇︽儏 + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/project/info/cancel/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [] + }, + // 鍒椾俊鎭� + columns: [ + {title: '椤圭洰鍚嶇О', field: 'projectName', align: 'left',width: '240px'}, + {title: '缂栧彿', field: 'projectCode', align: 'center', width: '180px'}, + {title: '鍒嗙被', field: 'projectCategoryName', align: 'center', width: '150px'}, + {title: '寤鸿鍗曚綅', field: 'buildOrgName', align: 'center', width: '200px'}, + {title: '鎵瑰鏃堕棿', field: 'approvalDate', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDate(row.approvalDate) } + } + }, + {title: '鍒涘缓鏃堕棿', field: 'createTime', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDateTime(row.createTime) } + } + }, + { + title: '鐘舵��', field: 'cancelStatus', align: 'center', width: '120px', + formatter: row => { + return {value: row.cancelStatus === 0 ? '鏈彇娑�' :'宸插彇娑�'} + } + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + width: 180, + align:'center', + show: true, // 鏄剧ず鎿嶄綔鍒� + attr: [ + { + title: '鍙栨秷', + events: row => { + this.$confirm('纭瑕佸彇娑堝悧锛�', { + type: 'warning' + }).then(() => { + this.$message.success('鍙栨秷鎴愬姛') + this.qx(row.id) + this.search() + }) + }, + hidden:(row) => { + return row.cancelStatus !== 0 + } + }, + { + title: '璇︽儏', + events: row => { + this.showDetail(row.id) + } + } + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + methods:{ + showDetail(id){ + this.setting = { + id, + title:'椤圭洰璇︽儏' + } + this.detailShow = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + }, + // 鍙栨秷 + qx(id){ + let data = {id:id} + cancel.cancelSave(data).then(res=>{ + this.$message.success('宸插彇娑�') + this.search(1) + }) + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/cancel/items.js b/project-web/src/views/projectManage/cancel/items.js new file mode 100644 index 0000000..ff8c6ae --- /dev/null +++ b/project-web/src/views/projectManage/cancel/items.js @@ -0,0 +1,62 @@ +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '椤圭洰鍚嶇О', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '椤圭洰缂栧彿', + defaultValue: '' + }, + { + type: 'cascader', + dataIndex: 'projectCategoryId', + label: '鍒嗙被', + optionsConfig: { + url: '/pc/p/project/category/tree', + props:{checkStrictly: false,value: 'id'} + }, + options: [] + }, + { + type: 'cascader', + dataIndex: 'buildOrgId', + label: '寤鸿鍗曚綅', + optionsConfig: { + url: '/pc/fin/sys/tenant/select/tree_fin_tenant' + }, + options: [] + }, + { + type: 'select', + dataIndex: 'cancelStatus', + label: '鐘舵��', + defaultValue: '', + options: [ + { + value: 0, + label: '鏈彇娑�' + }, + { + value: 1, + label: '宸插彇娑�' + } + ] + }, + { + type: 'datetimerange-picker', + dataIndex: 'approvalDate', + label: '鎵瑰鏃堕棿', + defaultValue: '', + format:'yyyy-MM-dd' + }, + { + type: 'datetimerange-picker', + dataIndex: 'createTime', + label: '鍒涘缓鏃堕棿', + defaultValue: '', + }, +] diff --git a/project-web/src/views/projectManage/classify/edit.vue b/project-web/src/views/projectManage/classify/edit.vue new file mode 100644 index 0000000..192371a --- /dev/null +++ b/project-web/src/views/projectManage/classify/edit.vue @@ -0,0 +1,138 @@ +<template> + <win-sm :title="setting.title" @close="close"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="120px" v-loading="loading"> +<!-- <el-form-item label="鐖剁骇鍒嗙被鍚嶇О" >--> +<!-- <el-input v-model="parentName" disabled clearable maxlength="20" show-word-limit />--> +<!-- </el-form-item>--> + <el-form-item label="鍒嗙被鍚嶇О" prop="title"> + <el-input v-model="formData.title" clearable maxlength="20" show-word-limit /> + </el-form-item> + <el-form-item label="椤哄簭鍙�" prop="orderNum"> + <el-input v-model="formData.orderNum" clearable maxlength="20" type="Number" show-word-limit /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="0" border>鍚敤</el-radio> + <el-radio :label="1" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="note"> + <el-input + v-model="formData.note" + type="textarea" + :rows="3" + maxlength="500" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="save" /> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as classify from '@/api/projectManage/classify' +export default { + components: { winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + loading:false, + formData: { + projectId: this.setting.projectId, + title: '', + orderNum: null, + note: '', + status: 0, + parentId:this.setting.parentId, + }, + parentName:this.setting.parentName, + rules: { + title: [ + { required: true, message: '璇疯緭鍏ュ垎绫诲悕绉�', trigger: 'blur' } + ], + orderNum: [ + { required: true, message: '璇疯緭鍏ュ垎绫婚『搴忓彿', trigger: 'blur' } + ], + } + } + }, + created() { + if(this.setting){ + this.getInfo(); + } + }, + methods: { + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + this.loading = true + let params = { + id: this.setting.id + } + // 鏌ヨ鏁版嵁 + classify.getdetail(params).then(res => { + const data = res + this.formData = Object.assign(this.formData, data) + this.loading = false + }) + } + }, + close() { + this.formData = { + name: '', + code: '', + description: '', + status: 0 + }, this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if (params.id) { + classify.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + this.$emit('initTreeData') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } else { + classify.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + this.$emit('initTreeData') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/classify/index.vue b/project-web/src/views/projectManage/classify/index.vue new file mode 100644 index 0000000..4e6ad04 --- /dev/null +++ b/project-web/src/views/projectManage/classify/index.vue @@ -0,0 +1,224 @@ +<template> + <div class="app-container"> + <el-container> + <el-card shadow="never" style="width: 240px;margin-right: 15px"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + </el-card> + </el-container> + </el-container> + <edit v-if="setting.show" :setting="setting" @close="setting.show=false" @search="search" @initTreeData="initTreeData"/> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index' +import MyTableV2 from "@/components/myTable/myTableV2"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import edit from './edit' +import * as classify from '@/api/projectManage/classify' + +export default { + name: "index", + components: { MyTableV2, myTree,edit }, + data() { + return { + // 鎼滅储妗� + items: items, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + status: 0, + title: null, + parentId:null + }, + setting:{ + show:false, + id:null, + title:'鏂板' + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/project/category/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null) + } + } + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '鍒嗙被鍚嶇О', field: 'title', align: 'left',}, + {title: '鏄剧ず椤哄簭', field: 'orderNum', align: 'center', width: '250px'}, + {title: '鐘舵��', field: 'status', align: 'center', width: '80px', + switch: row => { + const result = {} + if (row.status == 0) { + Object.assign(result, { + value: true, // 寮� + label: '鍚敤', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '绂佺敤', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } + } + ], + // 鎿嶄綔淇℃伅 + operation: { + width: 200, + align:'center', + show: true, // 鏄剧ず鎿嶄綔鍒� + attr: [ + { + title: '缂栬緫', + events: row => { + this.showAdd(row.id) + } + }, + // 鍒嗙被涓嬫湁姝e湪杩涜涓殑椤圭洰鏃讹紝缁欏嚭鎻愮ず涓嶅厑璁哥鐢ㄥ拰鍒犻櫎銆備笖绂佺敤涓�绾у垎绫诲墠闇�瑕佸厛绂佺敤涓嬮潰鐨勬墍鏈変簩绾э紝鏈夊惎鐢ㄧ殑浜岀骇鏃朵笉鍏佽绂佺敤涓�绾� + { + title: '鍒犻櫎', + events: row => { + this.showDel(row.id) + } + } + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + classify.classifyTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + }) + }, + // 淇敼鐘舵�� + updState(row) { + // 鍒嗙被涓嬫湁姝e湪杩涜涓殑椤圭洰鏃讹紝缁欏嚭鎻愮ず涓嶅厑璁哥鐢ㄥ拰鍒犻櫎銆備笖绂佺敤涓�绾у垎绫诲墠闇�瑕佸厛绂佺敤涓嬮潰鐨勬墍鏈変簩绾э紝鏈夊惎鐢ㄧ殑浜岀骇鏃朵笉鍏佽绂佺敤涓�绾� + let vm = this + let text = row.status == 1 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.title + '"鍚楋紵').then(function() { + let params = Object.assign({},row) + params.status = row.status == 1 ? 0 : 1 + classify.updateStatus(params).then(res=>{ + if(res){ + row.status = row.status == 1 ? 0 : 1 + vm.$message.success(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + nodeClick(param) { + this.setting.parentId = param.id; + this.setting.parentName = param.name; + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.parentId = this.p.id + } else { + this.filterFrom.parentId = null + } + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + }, + // 鏂板/缂栬緫 + showAdd(id){ + let title = '娣诲姞' + if (id != null) { + title = '缂栬緫' + } + this.setting.id = id + this.setting.title = title + this.setting.show = true + }, + // 鍒犻櫎 + showDel(id){ + let vm = this + vm.$modal.confirm('纭瑕佸垹闄よ鍒嗙被鍚楋紵').then(function() { + classify.del({ id:id }).then(res=>{ + if(res){ + vm.$message.success("鍒犻櫎鎴愬姛"); + vm.search(1) + } + }) + }) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/classify/items.js b/project-web/src/views/projectManage/classify/items.js new file mode 100644 index 0000000..d5cea20 --- /dev/null +++ b/project-web/src/views/projectManage/classify/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'title', + label: '鍒嗙被鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + defaultValue: '0', + placeholder: '璇烽�夋嫨', + options: [ + { + value: '0', + label: '姝e父' + }, + { + value: '1', + label: '绂佺敤' + } + ] + } +] diff --git a/project-web/src/views/projectManage/information/components/moneySetting.vue b/project-web/src/views/projectManage/information/components/moneySetting.vue new file mode 100644 index 0000000..7a2f3e3 --- /dev/null +++ b/project-web/src/views/projectManage/information/components/moneySetting.vue @@ -0,0 +1,96 @@ +<template> + <win-sm :title="setting.title" @close="close"> + <el-form :model="formData" ref="ruleForm" :rules="rules" label-width="100px"> + <el-form-item v-for="(c,j) in totalList" :label="'绗�'+(j+1)+'娆℃姇璧�'"> + <div class="font-14 color-333"> + {{c.releaseInvest}}涓囧厓 + </div> + </el-form-item> + <el-form-item prop="releaseInvest" :label="'绗�'+(totalList.length+1)+'娆℃姇璧�'"> + <el-input type="number" v-model="formData.releaseInvest" auto-complete="off"> + <template slot="append">涓囧厓</template> + </el-input> + </el-form-item> + <el-form-item prop="releaseTime" label="涓嬭揪鏃堕棿"> + <el-date-picker + v-model="formData.releaseTime" + type="date" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨涓嬭揪鏃堕棿"> + </el-date-picker> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="save" /> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from "@/components/myButton/myButton"; +import * as information from '@/api/projectManage/information' +export default { + name: "warningSetting", + components: { winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + totalList:[], + formData:{ + releaseInvest:'', + releaseTime:'' + }, + rules: { + releaseInvest: [ + { required: true, message: '璇疯緭鍏ユ姇璧勯噾棰�', trigger: 'blur' }, + { min: 0, message: '鏈�浣庝笉灏忎簬0', trigger: 'blur' }, + ], + releaseTime: [ + { required: true, message: '璇烽�夋嫨涓嬭揪鏃堕棿', trigger: 'change' } + ] + } + } + }, + created() { + this.investInfoList() + }, + methods:{ + investInfoList(){ + information.getInvestInfoList({id:this.setting.id}).then(res=>{ + this.totalList = res + }) + }, + close(){ + this.$emit('close') + }, + save(){ + this.$refs['ruleForm'].validate((valid) => { + if (valid) { + let params = Object.assign({},this.formData) + params.id = this.setting.id + information.investInfoSave(params).then(res=>{ + this.$message.success('淇濆瓨鎴愬姛') + this.$emit('close') + this.$emit('search') + }) + } else { + return false; + } + }) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/information/components/warningSetting.vue b/project-web/src/views/projectManage/information/components/warningSetting.vue new file mode 100644 index 0000000..eedc884 --- /dev/null +++ b/project-web/src/views/projectManage/information/components/warningSetting.vue @@ -0,0 +1,80 @@ +<template> + <win-sm :title="setting.title" @close="close"> + <el-form :model="formData" :rules="rules" ref="ruleForm" label-width="100px"> + <el-form-item label="棰勮妯℃澘" prop="tempExpirationNotifyId"> + <el-select v-model="formData.tempExpirationNotifyId" placeholder="璇烽�夋嫨棰勮妯℃澘" filterable > + <el-option v-for="c in treeData" :key="c.id" :label="c.tempExpirationNotifyName" :value="c.id"></el-option> + </el-select> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="save" /> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from "@/components/myButton/myButton"; +import * as information from '@/api/projectManage/information' +export default { + name: "warningSetting", + components: { winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + treeData:[], + formData:{ + id: '', + tempExpirationNotifyId:null + }, + rules: { + tempExpirationNotifyId: [ + { required: true, message: '璇烽�夋嫨棰勮妯℃澘', trigger: 'change' } + ] + } + } + }, + created() { + this.formData.tempExpirationNotifyId = this.setting.tempExpirationNotifyId + this.formData.id = this.setting.id + this.loadTempList() + }, + methods:{ + loadTempList(){ + information.getWarnTempletelist({ + createOrgId: this.setting.createOrgId + }).then(res=>{ + this.treeData = res + }) + }, + close(){ + this.$emit('close') + }, + save(){ + this.$refs['ruleForm'].validate((valid) => { + if (valid) { + information.warnTempleteSave(this.formData).then(res=>{ + this.$message.success('淇濆瓨鎴愬姛') + this.$emit('close') + this.$emit('search') + }) + } else { + return false; + } + }) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/information/detail.vue b/project-web/src/views/projectManage/information/detail.vue new file mode 100644 index 0000000..ef6f511 --- /dev/null +++ b/project-web/src/views/projectManage/information/detail.vue @@ -0,0 +1,465 @@ +<template> + <win2 :title="setting.title" @close="close"> + <div class="app-container"> + <el-row :gutter="15"> + <el-col :span="5"> + <el-card shadow="never" class="com-box"> + <div> + <div class="f-r"> + <div class="img-box f-r f-r-center"> + <img src="@/assets/images/project/icon-gj-lv.png" alt="" class="type-img"/> + </div> + <div> + <div class="font-18 font-bold color-333">{{info.projectName}}</div> + <el-progress :percentage="info.progressRate" style="width: 100%;margin-top: 5px" + :show-text="false"></el-progress> + <div class="m-t-10 f-r f-r-between"> + <el-tag :type="getStatusText(info.status).type">{{ getStatusText(info.status).text }}</el-tag> + <div class="font-13 color-999"> + 褰撳墠杩涘害 + <span class="color-red">{{ info.progressRate }}%</span> + </div> + </div> + </div> + </div> + <div class="cont-box"> + <div class="font-14 color-666">涓昏寤鸿鍐呭</div> + <div class="font-14 color-333 m-t-5 line-24"> + {{info.detail}} + </div> + </div> + <div class="e-p-v-15"> + <el-form label-width="80px" label-position="left"> + <el-form-item label="寤鸿鍦板潃"> + <div class="font-14 color-333 line-24">{{info.addr}}</div> + </el-form-item> + <el-form-item label="椤圭洰缂栧彿"> + <div class="font-14 color-333 line-24">{{info.projectCode}}</div> + </el-form-item> + <el-form-item label="椤圭洰鍒嗙被"> + <div class="font-14 color-333 line-24" style="color: #235686">{{info.projectCategoryName}}</div> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅"> + <div class="font-14 color-333 line-24">{{info.buildOrgName}}</div> + </el-form-item> + <el-form-item label="椤圭洰缁忕悊"> + <div class="font-14 color-333 line-24">{{info.projectManager}}</div> + </el-form-item> + <el-form-item label="璧锋骞撮檺"> + <div class="font-14 color-333 line-24">{{info.buildYearStart}}-{{info.buildYearEnd}}</div> + </el-form-item> + <el-form-item label="椤圭洰鎵规"> + <div class="font-14 color-333 line-24">{{info.projectBatchName}}</div> + </el-form-item> + <el-form-item label="鎵瑰鏃堕棿"> + <div class="font-14 color-333 line-24">{{info.approvalDate}}</div> + </el-form-item> + <el-form-item label="鍒涘缓鏃堕棿"> + <div class="font-14 color-333 line-24">{{info.createTime}}</div> + </el-form-item> + <el-form-item label="鎶曡祫涓撲笟"> + <div class="font-14 color-333 line-24">{{info.investMajorName}}</div> + </el-form-item> + <el-form-item label="椤圭洰鎶曡祫"> + <div class="font-14 color-333 line-24">鎬昏祫浜{info.totalInvest}}涓囧厓 / 宸蹭笅杈�<span class="color-red">{{info.totalReleaseInvest}}</span>涓囧厓</div> + <div v-for="(item, i) in info.pReleaseInvestInfoList" + :key="item.id" + class="font-14 color-333 line-24"> + 绗瑊{i + 1}}娆′笅杈�<span class="color-red">{{item.releaseInvest}}</span>涓囧厓 + </div> + </el-form-item> + </el-form> + </div> + </div> + </el-card> + </el-col> + <el-col :span="10" class="com-box"> + <el-card shadow="never"> + <div class="font-18 color-333 font-bold m-b-15">鑺傜偣杩涘害</div> + <div class="f-r f-r-between f-r-top"> + <!--宸︿晶--> + <div class="com-c-box"> + <div v-for="(c,j) in projectStage" :key="j" class="jd-item" :class="{'jd-active':c.pstageId===curId}" @click="changeJd(c,j)"> + {{ c.pstageName }} + </div> + </div> + <!--鍙充晶--> + <div class="f-1 node-list com-c-box"> + <el-timeline> + <el-timeline-item + v-for="(node, index) in nodeList" + :key="index" + icon="el-icon-check" + type="success" + size="large" + :hide-timestamp="false"> + <div class="node-item f-r f-r-between"> + <div> + <div class="font-16 color-333">{{ node.nodeName }}</div> + <div class="m-t-5 font-14 color-333">{{ formatterDate(node.nodeStart) }}鑷硔{ formatterDate(node.nodeEnd) }}</div> + </div> + <div> +<!-- <div class="font-12 color-999">{{ node.nodeCompleteDate }}</div>--> + <el-button type="primary" size="mini" class="m-t-5 float-right" @click="lookNode(node.nodeId)">鏌ョ湅</el-button> + </div> + </div> + </el-timeline-item> + </el-timeline> + </div> + </div> + </el-card> + </el-col> + <el-col :span="9"> + <el-card shadow="never"> + <div class="font-18 color-333 font-bold m-b-15">鍏ㄩ儴杩涘害</div> + <div class="com-c-box" style="padding-left: 5px" :loading="nodeLoading"> + <el-timeline> + <!-- recList--> + <el-timeline-item + v-for="(cs, index) in 10" + :key="index" + size="large" + :hide-timestamp="false"> + <div class="info-item"> + <div class="font-14 m-b-15"> + 瀹屾垚浜�<span class="color-0D9">绔嬮」/鍙爺</span>闃舵鐨勫鏌ヨ妭鐐� + </div> + <div class="info-box"> + <div class="f-r f-r-between m-b-15"> + <div class="font-14 color-333">鍛ㄦ槦鏄�</div> + <div class="font-12 color-999">2023-09-04 12:31</div> + </div> + <!-- 鍥剧墖--> + <div class="f-r"> + <el-image + v-for="(iItem,iIndex) in cs.imgs" + class="info-img" + :src="iItem" + :preview-src-list="imgList"> + </el-image> + </div> + <!-- 闄勪欢 --> + <div class="m-b-15" v-if="cs.files && cs.files.length>0"> + <div class="font-14 color-666">闄勪欢</div> + <div class="f-r f-r-between file-item" v-for="(file,fIndex) in cs.files"> + <div class="f-r f-1"> + <img :src="getFileIcon(file.fileName)" alt="涓嬭浇" class="file-icon"/> + <div class="file-name" @click="downLoadFile(file.url)"> + {{ file.fileName }} + </div> + </div> + <div class="down-enter">鏌ョ湅</div> + </div> + </div> + <!-- 褰撳墠椤圭洰杩涘害 --> + <div> + <div class="font-14 color-666">褰撳墠椤圭洰杩涘害</div> + <div class="font-14 color-333 m-t-5 line-24"> + 鍦ㄤ腑鍙颁骇鍝佺殑鐮斿彂杩囩▼涓紝浼氬嚭鐜颁笉鍚岀殑璁捐瑙勮寖鍜屽疄鐜版柟寮忥紝浣嗗叾涓線寰�瀛樺湪寰堝绫讳技鐨勯〉闈㈠拰缁勪欢锛岃繖浜涚被浼肩殑缁勪欢浼氳鎶界鎴愪竴濂楁爣鍑嗚鑼冦�� + </div> + </div> + </div> + </div> + </el-timeline-item> + </el-timeline> + </div> + </el-card> + </el-col> + </el-row> + <!-- 鑺傜偣杩涘害 --> + <nodeProgress v-if="nodeShow" :nodeId="nodeId" @close="nodeShow=false"></nodeProgress> + </div> + </win2> +</template> + +<script> +import win2 from '@/components/win2/index' +import {getDownUrl} from '@/utils/base'; +import nodeProgress from '@/views/projectManage/information/nodeProgress' +import * as info from '@/api/projectManage/info' +import * as DateFormatter from '@/utils/DateFormatter'; +export default { + name: "detail", + components: {win2,nodeProgress}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + info: {}, + files: [ + {url: '2222.txt', fileName: '鏈�椤圭洰杩涘害璁捐鏂规.xsl'}, + {url: '2222.txt', fileName: '鏈�椤圭洰杩涘害璁捐鏂规.ppt'}, + {url: '2222.txt', fileName: '鏈�椤圭洰杩涘害璁捐鏂规.pdf'}, + {url: '2222.txt', fileName: '鏈�椤圭洰杩涘害璁捐鏂规.xls'}, + {url: '2222.txt', fileName: '鏈�椤圭洰杩涘害璁捐鏂规.xsl'} + ], + projectStage: [], // 鑺傜偣鍒楄〃 + curId: null, // 褰撳墠閫変腑闃舵id + nodeId: null, // 褰撳墠閫変腑鑺傜偣id + nodeList: [], + recList: [], // 杩涘害鍒楄〃 + imgList: [], // 鍥剧墖棰勮 + nodeShow:false, // 鑺傜偣杩涘害 + nodeLoading:false // 鍙充晶鍔犺浇loading + } + }, + created() { + if (this.setting.id) { + this.getInfo(this.setting.id) + } + }, + methods: { + formatterDate(time){ + return DateFormatter.LongToDate(time) + }, + getInfo(id) { + info.getInfo({id: id}).then(res => { + if (res) { + this.info = res + this.info.approvalDate = DateFormatter.LongToDate(this.info.approvalDate) + this.info.createTime = DateFormatter.LongToDateTime(this.info.createTime) + this.projectStage = res.pTempStageResults + if(this.projectStage.length>0){ + this.curId = this.projectStage[0].pstageId + this.nodeList = this.projectStage[0].pStageNodeResults + } + } + }) + }, + // 鏌ョ湅鑺傜偣杩涘害 + lookNode(nodeId){ + this.nodeId = nodeId + this.nodeShow = true + }, + // 鍒囨崲鑺傜偣 + changeJd(c,index){ + this.curId = c.pstageId + this.nodeList = this.projectStage[index].pStageNodeResults + this.$forceUpdate() + }, + getStatusText(state) { + // 0 鏈紑宸� 1 杩涜涓� 2 宸插畬鎴� 3 宸插彇娑� 4 宸插欢鏈� + let obj = { + text: '', + type: 'success' + } + switch (state) { + case 0: + obj.text = '鏈紑宸�' + obj.type = 'info' + break + case 1: + obj.text = '杩涜涓�' + obj.type = 'primary' + break + case 2: + obj.text = '宸插畬鎴�' + obj.type = 'success' + break + case 3: + obj.text = '宸插彇娑�' + obj.type = 'warning' + break + case 4: + obj.text = '宸插欢鏈�' + obj.type = 'danger' + break + } + return obj + }, + // 涓嬭浇鏂囦欢 + downLoadFile(item) { + const loadingInstance = this.$loading({ + lock: true, + text: '姝e湪涓嬭浇...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)', + }); + let info = JSON.parse(item)[0]; + if (info.url.indexOf('http') !== 0) { + info.url = getDownUrl() + info.url; + } + // window.open(decodeURI(info.url)) + var doc = document.createElement('a'); + doc.href = info.url; + doc.download = info.fileName; + doc.target = '_blank'; + doc.click(); + loadingInstance.close(); + }, + getFileIcon(item) { + const arr = item.split('.'); + if (arr[arr.length - 1] === 'doc' || arr[arr.length - 1] === 'docx') { + return require('@/assets/images/project/word.png'); + } else if (arr[arr.length - 1] === 'pdf') { + return require('@/assets/images/project/pdf.png'); + } else if (arr[arr.length - 1] === 'txt') { + return require('@/assets/images/project/txt.png'); + } else if (arr[arr.length - 1] === 'xls' || arr[arr.length - 1] === 'xlsx') { + return require('@/assets/images/project/xls.png'); + } else if (arr[arr.length - 1] === 'ppt' || arr[arr.length - 1] === 'pptx') { + return require('@/assets/images/project/ppt.png'); + } else { + return require('@/assets/images/project/no-file.png'); + } + }, + close() { + this.$emit('close') + } + }, +} +</script> + +<style scoped> +.com-box { + overflow-y: auto; + max-height: calc(100vh - 256px); +} + +.com-c-box { + overflow-y: auto; + max-height: calc(100vh - 310px); +} + +.com-c-box::-webkit-scrollbar { + display: none; +} + +.com-box::-webkit-scrollbar { + width: 4px; +} + +.com-box::-webkit-scrollbar-thumb { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +.m-t-10 { + margin-top: 10px; +} + +.m-t-5 { + margin-top: 5px; +} + +.m-b-15 { + margin-bottom: 15px; +} + +.img-box { + min-width: 56px; + max-width: 56px; + height: 56px; + border-radius: 4px; + border: 1px solid #eeeeee; + margin-right: 5px; +} + +.type-img { + width: 38px; + height: 38px; +} + +.cont-box { + padding: 15px 0; + border-bottom: 1px solid #f5f5f5; +} + +.line-24 { + line-height: 24px; +} + +>>> .el-form-item__label { + line-height: 24px; +} + +>>> .el-form-item { + margin-bottom: 10px; +} + +.e-p-v-15 { + padding: 15px 0; +} + +.jd-item { + width: 150px; + height: 45px; + line-height: 45px; + text-align: center; + border-radius: 4px; + font-size: 16px; + border: 1px solid #e6e6e6; + cursor: pointer; + margin-bottom: 15px; +} + +.jd-item:hover { + color: #FFFFFF; + background-color: #0d997c; +} + +.jd-active { + color: #FFFFFF; + background-color: #0d997c; +} + +.node-list { + padding-left: 25px; +} + +.node-item { + padding-top: 5px; +} + +.float-right { + float: right; +} + +.color-0D9 { + color: #0D997C; +} + +.info-item { + padding-top: 5px; +} + +.info-box { + padding: 8px; + border-radius: 4px; + background: #f8faf9; +} + +.info-img { + width: 92px; + height: 92px; + border-radius: 4px; + margin-right: 10px; +} + +.file-item { + padding: 10px 0; +} +.file-icon{ + width: 16px; + height: 16px; + margin-right: 5px; +} +.file-name{ + font-size: 14px; + color: #333333; +} +.file-name:hover{ + cursor: pointer; + color: #0d997c; +} +.down-enter{ + cursor: pointer; + color: #1890ff; + font-size: 14px; + text-decoration: underline; +} +</style> diff --git a/project-web/src/views/projectManage/information/index.vue b/project-web/src/views/projectManage/information/index.vue new file mode 100644 index 0000000..2147573 --- /dev/null +++ b/project-web/src/views/projectManage/information/index.vue @@ -0,0 +1,383 @@ +<template> + <div class="app-container"> + <el-card class="box-card" style="width: 100%" shadow="never"> + <div class="f-r f-r-between"> + <div class="total-item" :class="{'total-active':curId ==null}" @click.stop="changeType(null)"> + <div class="total-title">椤圭洰鎬绘暟</div> + <div class="total-num">{{ topInfo.projectTotal }}</div> + </div> + <div class="total-item" :class="{'total-active':curId ==0}" @click="changeType(0)"> + <div class="total-title">鏈紑宸�</div> + <div class="total-num">{{ topInfo.awaitNum }}</div> + </div> + <div class="total-item" :class="{'total-active':curId ==1}" @click="changeType(1)"> + <div class="total-title">杩涜涓�</div> + <div class="total-num">{{ topInfo.ingNum }}</div> + </div> + <div class="total-item" :class="{'total-active':curId ==4}" @click="changeType(4)"> + <div class="total-title">宸插欢鏈�</div> + <div class="total-num">{{ topInfo.postponeNum }}</div> + </div> + <div class="total-item" :class="{'total-active':curId ==2}" @click="changeType(2)"> + <div class="total-title">宸插畬鎴�</div> + <div class="total-num">{{ topInfo.endNum }}</div> + </div> + <div class="total-item" :class="{'total-active':curId ==3}" @click="changeType(3)"> + <div class="total-title">宸插彇娑�</div> + <div class="total-num">{{ topInfo.cancelNum }}</div> + </div> + </div> + </el-card> + <el-card class="box-card" style="width: 100%;margin-top: 8px" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <div> + <el-table + v-loading="loading" + :show-header="false" + :data="tableData" + fit + size="medium" + style="width: 100%"> + <el-table-column + fixed="left" + width="240"> + <template slot-scope="scope"> + <div class="f-r"> + <div> + <div class="project-name" @click="toDetail(scope.row.id)">{{ scope.row.projectName }}</div> + <div class="font-13 color-666">{{ scope.row.projectCode }}</div> + </div> + </div> + </template> + </el-table-column> + <el-table-column + fixed="left" + width="200"> + <template slot-scope="scope"> + <div> + <el-progress :percentage="scope.row.progressRate"></el-progress> + <div class="m-t-10 f-r f-r-between"> + <el-tag :type="getStatusText(scope.row.status).type">{{getStatusText(scope.row.status).text}}</el-tag> + <div class="font-13 color-999"> + 褰撳墠杩涘害 + <span class="color-red">{{ scope.row.progressRate }}%</span> + </div> + </div> + </div> + </template> + </el-table-column> + <el-table-column + width="180"> + <template slot-scope="scope"> + <div class="font-13 color-666 text-center">绫诲瀷</div> + <div class="font-13 color-333 text-center m-t-10">{{ scope.row.projectCategoryName }}</div> + </template> + </el-table-column> + <el-table-column + width="180"> + <template slot-scope="scope"> + <div class="font-13 color-666 text-center">寤鸿鍗曚綅</div> + <div class="font-13 color-333 text-center m-t-10">{{ scope.row.buildOrgName }}</div> + </template> + </el-table-column> + <el-table-column + width="180"> + <template slot-scope="scope"> + <div class="font-13 color-666 text-center">鎵瑰鏃堕棿</div> + <div class="font-13 color-333 text-center m-t-10">{{ scope.row.approvalDate }}</div> + </template> + </el-table-column> + <el-table-column + width="180"> + <template slot-scope="scope"> + <div class="font-13 color-666 text-center">鍒涘缓鏃堕棿</div> + <div class="font-13 color-333 text-center m-t-10">{{ scope.row.createTime }}</div> + </template> + </el-table-column> + <el-table-column + width="180"> + <template slot-scope="scope"> + <div class="font-13 color-666 text-center">涓存湡棰勮</div> + <div class="m-t-10 f-r f-r-center"> + <el-switch + :disabled="scope.row.status===3" + v-model="scope.row.expirationNotifyStatus===1?true:false" + active-color="#13ce66" + @change="updateStatus(scope.row)"> + </el-switch> + </div> + </template> + </el-table-column> + <el-table-column + fixed="right" + align="center" + width="300"> + <template slot-scope="scope"> + <el-button + size="mini" + type="success" + v-if="scope.row.status!==3" + @click="warnSetting(scope.row)">棰勮璁剧疆 + </el-button> + <el-button + v-if="scope.row.status!==3" + size="mini" + @click="sendCode(scope.row.id)">鍙戦�佺煭淇� + </el-button> + <el-button + size="mini" + type="warning" + @click="moneySetting(scope.row.id)">涓嬭揪鎶曡祫 + </el-button> + </template> + </el-table-column> + </el-table> + </div> + <div class="f-r f-r-end page-box"> + <el-pagination + :current-page="page.pageNum" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </el-col> + </el-row> + </el-card> + <!-- 棰勮璁剧疆 --> + <warning-setting v-if="warningShow" :setting="comSetting" @close="warningShow=false" @search="search(1)"></warning-setting> + <!-- 涓嬭揪鎶曡祫 --> + <money-setting v-if="moneyShow" :setting="comSetting" @close="moneyShow=false" @search="search(1)"></money-setting> + <!-- 璇︽儏 --> + <detail v-if="detailShow" :setting="comSetting" @close="detailShow=false"></detail> + </div> +</template> + +<script> +import items from './items' +import * as information from '@/api/projectManage/information' +import warningSetting from '@/views/projectManage/information/components/warningSetting' +import moneySetting from '@/views/projectManage/information/components/moneySetting' +import detail from '@/views/projectManage/information/detail' +import * as classify from "@/api/projectManage/classify"; +import {updateInfoStatus} from "@/api/projectManage/information"; +export default { + name: "index", + components: { warningSetting,moneySetting,detail }, + data() { + return { + loading:false, + warningShow:false, // 棰勮璁剧疆 + moneyShow:false, // 涓嬭揪鎶曡祫 + detailShow:false, // 璇︽儏 + comSetting:{ + id:"", + title:"" + }, + curId:null, // 褰撳墠椤堕儴绫诲瀷Id + // 鎼滅储妗� + items: items, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + projectName: null, // 椤圭洰鎬绘暟 + projectCode: null, // 椤圭洰缂栧彿 + projectCategoryId: null, // 绫诲瀷 + buildOrgId: null, // 寤鸿鍗曚綅 + expirationNotifyStatus: null, // 涓存椂棰勮 0鍏抽棴 1寮�鍚� + approvalDate: null, // 鎵瑰鏃堕棿 + createTime: null // 鍒涘缓鏃堕棿 + }, + topInfo: { + projectTotal: 0, // 椤圭洰鎬绘暟 + awaitNum: 0, // 鏈紑宸� + ingNum: 0, // 杩涜涓� + postponeNum: 0, // 宸插欢鏈� + endNum: 0, // 宸插畬鎴� + cancelNum: 0, // 宸插彇娑� + }, + page: { + pageNum: 1, + pageSize: 10, + total: 0 + }, + tableData: [] // 鍒楄〃鏁版嵁 + } + }, + mounted() { + this.getTopInfo() + this.search(1) + }, + methods: { + // 淇敼褰撳墠琛岄璀︾姸鎬� + updateStatus(row){ + let vm = this + let text = row.expirationNotifyStatus == 1 ? "鍏抽棴" : "寮�鍚�"; + vm.$modal.confirm('纭瑕�' + text +'鍚楋紵').then(function() { + let params = Object.assign({},row) + params.status = row.expirationNotifyStatus == 1 ? 0 : 1 + information.updateInfoStatus(params).then(res=>{ + if(res){ + row.status = row.expirationNotifyStatus == 1 ? 0 : 1 + vm.$message.success(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + // 璇︽儏 + toDetail(id){ + this.comSetting = { + id, + title:'椤圭洰璇︽儏' + } + this.detailShow = true + }, + changeType(e){ + this.curId = e + }, + getTopInfo() { + information.getTotal().then(res => { + this.topInfo = res + }) + }, + //鍒嗛〉 + handleSizeChange(pageSize) { + this.page.pageSize = pageSize; + this.search(1); + }, + handleCurrentChange(pageNum) { + this.page.pageNum = pageNum; + this.search(1); + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if(pageNum){ + this.page.pageNum = pageNum + } + this.loading = true + let params = Object.assign(this.filterFrom, this.page) + information.getInfolist(params).then(res => { + this.tableData = res.datas + this.page = { + pageIndex: res.pageIndex, + pageSize: res.pageSize, + totalRows: res.totalRows + } + this.loading = false + }) + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + }, + getStatusText(state) { + // 0 鏈紑宸� 1 杩涜涓� 2 宸插畬鎴� 3 宸插彇娑� 4 宸插欢鏈� + let obj = { + text: '', + type: 'success' + } + switch (state) { + case 0: + obj.text = '鏈紑宸�' + obj.type = 'info' + break + case 1: + obj.text = '杩涜涓�' + obj.type = 'primary' + break + case 2: + obj.text = '宸插畬鎴�' + obj.type = 'success' + break + case 3: + obj.text = '宸插彇娑�' + obj.type = 'warning' + break + case 4: + obj.text = '宸插欢鏈�' + obj.type = 'danger' + break + } + return obj + }, + warnSetting(row){ + this.comSetting = { + id:row.id, + createOrgId:row.createOrgId, + tempExpirationNotifyId: row.tempExpirationNotifyId, + title:'棰勮璁剧疆' + } + this.warningShow = true + }, + sendCode(){ + + }, + // 涓嬭揪鎶曡祫 + moneySetting(id){ + this.comSetting = { + id, + title:'涓嬭揪鎶曡祫' + } + this.moneyShow = true + } + } +} +</script> + +<style scoped> +.total-item { + width: 15%; + padding: 12px 20px; + border-radius: 8px; + background-color: #eeeeee; +} + +.total-item:hover { + cursor: pointer; + background-color: #0D997C; +} +.total-item:hover .total-num,.total-item:hover .total-title { + color: #ffffff; +} +.total-active{ + background-color: #0D997C; +} +.total-active .total-num,.total-active .total-title{ + color: #ffffff; +} +.total-title { + font-size: 14px; + color: #666; + text-align: center; +} + +.total-num { + font-size: 22px; + margin-top: 5px; + color: #333; + font-weight: bold; + text-align: center; +} +.project-name { + letter-spacing: 1px; + font-size: 16px; + color: #333333; + cursor: pointer; +} +.project-name:hover{ + color: #0D997C; +} +.m-t-10 { + margin-top: 10px; +} +</style> diff --git a/project-web/src/views/projectManage/information/items.js b/project-web/src/views/projectManage/information/items.js new file mode 100644 index 0000000..555e5ce --- /dev/null +++ b/project-web/src/views/projectManage/information/items.js @@ -0,0 +1,62 @@ +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '椤圭洰鍚嶇О', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '椤圭洰缂栧彿', + defaultValue: '' + }, + { + type: 'cascader', + dataIndex: 'projectCategoryId', + label: '鍒嗙被', + optionsConfig: { + url: '/pc/p/project/category/tree', + props:{checkStrictly: false,value: 'id'} + }, + options: [] + }, + { + type: 'cascader', + dataIndex: 'buildOrgId', + label: '寤鸿鍗曚綅', + optionsConfig: { + url: '/pc/fin/sys/tenant/select/tree_fin_tenant' + }, + options: [] + }, + { + type: 'select', + dataIndex: 'expirationNotifyStatus', + label: '涓存湡棰勮', + defaultValue: '', + options: [ + { + value: 1, + label: '姝e父' + }, + { + value: 0, + label: '绂佺敤' + } + ] + }, + { + type: 'datetimerange-picker', + dataIndex: 'approvalDate', + label: '鎵瑰鏃堕棿', + defaultValue: '', + format:'yyyy-MM-dd' + }, + { + type: 'datetimerange-picker', + dataIndex: 'createTime', + label: '鍒涘缓鏃堕棿', + defaultValue: '', + }, +] diff --git a/project-web/src/views/projectManage/information/nodeProgress.vue b/project-web/src/views/projectManage/information/nodeProgress.vue new file mode 100644 index 0000000..7f0f8e7 --- /dev/null +++ b/project-web/src/views/projectManage/information/nodeProgress.vue @@ -0,0 +1,223 @@ +<template> + <div> + <el-drawer + title="" + :modal-append-to-body="false" + :before-close="close" + :modal="false" + :visible.sync="nodeShow"> + <div class="node-info"> + <div class="font-18 color-333 font-bold m-b-15">鑺傜偣杩涘害</div> + <div class="com-c-box" style="padding-left: 5px"> + <el-timeline> + <!-- recList--> + <el-timeline-item + v-for="(cs, index) in 2" + :key="index" + size="large" + :hide-timestamp="false"> + <div class="info-item"> + <div class="font-14 m-b-15"> + 瀹屾垚浜�<span class="color-0D9">绔嬮」/鍙爺</span>闃舵鐨勫鏌ヨ妭鐐� + </div> + <div class="info-box"> + <div class="f-r f-r-between m-b-15"> + <div class="font-14 color-333">鍛ㄦ槦鏄�</div> + <div class="font-12 color-999">2023-09-04 12:31</div> + </div> + <!-- 鍥剧墖--> + <div class="f-r"> + <el-image + v-for="(iItem,iIndex) in cs.imgs" + class="info-img" + :src="iItem" + :preview-src-list="imgList"> + </el-image> + </div> + <!-- 闄勪欢 --> + <div class="m-b-15" v-if="cs.files && cs.files.length>0"> + <div class="font-14 color-666">闄勪欢</div> + <div class="f-r f-r-between file-item" v-for="(file,fIndex) in cs.files"> + <div class="f-r f-1"> + <img :src="getFileIcon(file.fileName)" alt="涓嬭浇" class="file-icon"/> + <div class="file-name" @click="downLoadFile(file.url)"> + {{ file.fileName }} + </div> + </div> + <div class="down-enter">鏌ョ湅</div> + </div> + </div> + <!-- 褰撳墠椤圭洰杩涘害 --> + <div> + <div class="font-14 color-666">褰撳墠椤圭洰杩涘害</div> + <div class="font-14 color-333 m-t-5 line-24"> + 鍦ㄤ腑鍙颁骇鍝佺殑鐮斿彂杩囩▼涓紝浼氬嚭鐜颁笉鍚岀殑璁捐瑙勮寖鍜屽疄鐜版柟寮忥紝浣嗗叾涓線寰�瀛樺湪寰堝绫讳技鐨勯〉闈㈠拰缁勪欢锛岃繖浜涚被浼肩殑缁勪欢浼氳鎶界鎴愪竴濂楁爣鍑嗚鑼冦�� + </div> + </div> + </div> + </div> + </el-timeline-item> + </el-timeline> + </div> + <div class="f-r f-r-center btn-bot"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="涓婃姤" site="form" @click="toSubmit"/> + </div> + <node-submit v-if="submitShow" :nodeId="nodeId" @close="submitShow=false"></node-submit> + </div> + </el-drawer> + </div> +</template> + +<script> +import nodeSubmit from "@/views/projectManage/information/nodeSubmit"; +import myButton from '@/components/myButton/myButton' +import {getDownUrl} from "@/utils/base"; +export default { + name: "nodeProgress", + components: {nodeSubmit,myButton}, + props: { + nodeId: { + type: String, + default: '' + } + }, + data() { + return { + nodeShow:true, + submitShow:false, + } + }, + methods:{ + // 涓嬭浇鏂囦欢 + downLoadFile(item) { + const loadingInstance = this.$loading({ + lock: true, + text: '姝e湪涓嬭浇...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)', + }); + let info = JSON.parse(item)[0]; + if (info.url.indexOf('http') !== 0) { + info.url = getDownUrl() + info.url; + } + // window.open(decodeURI(info.url)) + var doc = document.createElement('a'); + doc.href = info.url; + doc.download = info.fileName; + doc.target = '_blank'; + doc.click(); + loadingInstance.close(); + }, + getFileIcon(item) { + const arr = item.split('.'); + if (arr[arr.length - 1] === 'doc' || arr[arr.length - 1] === 'docx') { + return require('@/assets/images/project/word.png'); + } else if (arr[arr.length - 1] === 'pdf') { + return require('@/assets/images/project/pdf.png'); + } else if (arr[arr.length - 1] === 'txt') { + return require('@/assets/images/project/txt.png'); + } else if (arr[arr.length - 1] === 'xls' || arr[arr.length - 1] === 'xlsx') { + return require('@/assets/images/project/xls.png'); + } else if (arr[arr.length - 1] === 'ppt' || arr[arr.length - 1] === 'pptx') { + return require('@/assets/images/project/ppt.png'); + } else { + return require('@/assets/images/project/no-file.png'); + } + }, + close(){ + this.$emit('close') + }, + toSubmit(){ + this.submitShow = true + } + } +} +</script> + +<style scoped> +.com-c-box{ + overflow-y: auto; + max-height: calc(100vh - 240px); +} +>>>.com-c-box::-webkit-scrollbar { + display: none; +} +.node-info{ + padding:15px; +} +.btn-bot{ + position: absolute; + left: 0; + bottom: 120px; + width: 100%; + padding:15px 0; + background-color: #FFFFFF; + border-top:1px solid #eeeeee; + z-index: 11; +} +>>>.el-drawer__container{ + top:120px; + bottom: 0; +} +>>> .el-drawer__body{ + position: relative; +} +>>>.el-drawer__header{ + display: none; +} +.m-t-10 { + margin-top: 10px; +} + +.m-t-5 { + margin-top: 5px; +} + +.m-b-15 { + margin-bottom: 15px; +} +.color-0D9 { + color: #0D997C; +} + +.info-item { + padding-top: 5px; +} + +.info-box { + padding: 8px; + border-radius: 4px; + background: #f8faf9; +} + +.info-img { + width: 92px; + height: 92px; + border-radius: 4px; + margin-right: 10px; +} + +.file-item { + padding: 10px 0; +} +.file-icon{ + width: 16px; + height: 16px; + margin-right: 5px; +} +.file-name{ + font-size: 14px; + color: #333333; +} +.file-name:hover{ + cursor: pointer; + color: #0d997c; +} +.down-enter{ + cursor: pointer; + color: #1890ff; + font-size: 14px; + text-decoration: underline; +} +</style> diff --git a/project-web/src/views/projectManage/information/nodeSubmit.vue b/project-web/src/views/projectManage/information/nodeSubmit.vue new file mode 100644 index 0000000..4a00f3f --- /dev/null +++ b/project-web/src/views/projectManage/information/nodeSubmit.vue @@ -0,0 +1,140 @@ +<template> + <div> + <el-drawer + title="" + :append-to-body="true" + :before-close="close" + :modal="false" + :visible.sync="nodeShow"> + <div class="node-info"> + <div class="font-18 color-333 font-bold m-b-15">涓婃姤</div> + <div class="com-c-box"> + <el-form ref="form" :model="formData" label-width="150px" label-position="top"> + <el-form-item label="鏈杩涘害"> + <el-input + v-model="formData.progressRateInfo" + type="textarea" + :rows="3" + maxlength="500" + show-word-limit></el-input> + </el-form-item> + <el-form-item label="鍥剧墖涓婁紶"> + <upload ref="imgs" :settings="imgSettings" :values="formData.imgs"/> + </el-form-item> + <el-form-item label="鏂囦欢涓婁紶"> + <upload ref="files" :settings="settings" :values="formData.files"/> + </el-form-item> + </el-form> + </div> + <div class="f-r f-r-center btn-bot"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="涓婃姤" site="form" @click="save"/> + </div> + </div> + </el-drawer> + </div> +</template> + +<script> +import myButton from '@/components/myButton/myButton' +import upload from '@/components/upload/index' +import {getUploadUrl} from "@/utils/base"; +import * as information from '@/api/projectManage/information' +export default { + name: "nodeProgress", + components: {myButton,upload}, + props: { + nodeId: { + type: String, + default: '' + } + }, + data() { + return { + dialogImageUrl:'', + nodeShow: true, + formData: { + progressRateInfo: '', + imgs:[], + files:[] + }, + imgSettings:{ + uploadUrl: getUploadUrl(), + type:'picture-card', + max:10, + num: 10, + title:' ', + accept: '.jpg,.jpeg,.png' // 闄愬埗鏍煎紡 + }, + settings: { + drag:true, + uploadUrl: getUploadUrl(), + num: 10, + accept: '.bmp,.pdf,.doc,.docx,.xls,.xlsx,.apk,.zip' // 闄愬埗鏍煎紡 + } + } + }, + methods: { + close() { + this.$emit('close') + }, + save() { + this.$refs.workForm.validate((valid) => { + if (valid) { + let params = Object.assign({}, this.formData) + let file = this.$refs.files.getContent() + params.fileId = JSON.stringify(file) + let images = this.$refs.images.getContent() + params.images = JSON.stringify(images) + } + }) + information.nodeSubmit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.$emit('close') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } +} +</script> + +<style scoped> +.node-info { + padding: 15px; +} + +.com-c-box { + overflow-y: auto; + max-height: calc(100vh - 240px); +} + +>>> .com-c-box::-webkit-scrollbar { + display: none; +} + +>>> .el-drawer__container { + top: 120px; +} +>>> .el-drawer__body{ + position: relative; +} +>>> .el-drawer__header { + display: none; +} +.m-b-15{ + margin-bottom: 15px; +} +.btn-bot{ + position: absolute; + left: 0; + bottom: 120px; + width: 100%; + padding:15px 0; + background-color: #FFFFFF; + border-top:1px solid #eeeeee; + z-index: 11; +} +</style> diff --git a/project-web/src/views/projectManage/record/index.vue b/project-web/src/views/projectManage/record/index.vue new file mode 100644 index 0000000..a75ffb1 --- /dev/null +++ b/project-web/src/views/projectManage/record/index.vue @@ -0,0 +1,183 @@ +<template> + <div class="app-container"> + <el-card class="box-card" style="width: 100%;margin-top: 15px" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + </el-card> + <!-- 璇︽儏 --> + <detail v-if="detailShow" :setting="setting" @close="detailShow=false"></detail> + </div> +</template> + +<script> +import MyTable from "@/components/myTable/myTable"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import detail from '@/views/projectManage/information/detail' +import * as record from '@/api/projectManage/record' +import * as DateFormatter from "@/utils/DateFormatter"; +export default { + name: "index", + components: { MyTable,detail }, + data() { + return { + // 鎼滅储妗� + items: items, + // 鎼滅储鏉′欢 + filterFrom: { + projectName: null, // 椤圭洰鎬绘暟 + projectCode: null, // 椤圭洰缂栧彿 + projectCategoryId: null, // 鍒嗙被 + buildOrgId: null, // 寤鸿鍗曚綅 + archiveStatus: null, // 绫诲瀷 0 鏈綊妗� 1 瀹℃牳涓� 2 宸插綊妗� + approvalDate: null, // 鎵瑰鏃堕棿 + createTime: null // 鍒涘缓鏃堕棿 + }, + detailShow:false, + setting:{ + id:null, + title:'璇︽儏' + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/p/project/info/record/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [] + }, + // 鍒椾俊鎭� + columns: [ + {title: '椤圭洰鍚嶇О', field: 'projectName', align: 'left',width: '240px'}, + {title: '缂栧彿', field: 'projectCode', align: 'center', width: '180px'}, + {title: '鍒嗙被', field: 'projectCategoryName', align: 'left', width: '150px'}, + {title: '寤鸿鍗曚綅', field: 'buildOrgName', align: 'left', width: '200px'}, + {title: '鎵瑰鏃堕棿', field: 'approvalDate', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDate(row.approvalDate) } + } + }, + {title: '鍒涘缓鏃堕棿', field: 'createTime', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDateTime(row.createTime) } + } + }, + { + title: '鐘舵��', field: 'archiveStatus', align: 'center', width: '120px', + formatter: row => { + return {value: row.archiveStatus == -1 ? '鏈綊妗�' : row.archiveStatus == 0 ?'瀹℃牳涓�':row.archiveStatus == 1 ?'鎷掔粷褰掓。':'宸插綊妗�'} + } + }, + ], + // 鎿嶄綔淇℃伅 + operation: { + width: 180, + align:'center', + show: true, // 鏄剧ず鎿嶄綔鍒� + attr: [ + { + title: '褰掓。', + events: row => { + this.$confirm('纭瑕佸綊妗e悧锛�', { + type: 'warning' + }).then(() => { + this.gd(row.id) + }) + }, + hidden:(row) => { + return row.archiveStatus == 0||row.archiveStatus == 2 + } + }, + { + title: '杩樺師', + events: row => { + this.$confirm('纭瑕佽繕鍘熷悧锛�', { + type: 'warning' + }).then(() => { + this.hy(row.id) + }) + }, + hidden:(row) => { + return row.archiveStatus !== 2 + } + }, + { + title: '璇︽儏', + events: row => { + this.showDetail(row.id) + } + } + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + methods:{ + showDetail(id){ + this.setting = { + id, + title:'椤圭洰璇︽儏' + } + this.detailShow = true + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + }, + // 褰掓。 + gd(id){ + let data = {id:id} + record.recordUpd(data).then(res=>{ + this.$message.success('褰掓。鎴愬姛') + this.search(1) + }) + }, + // 杩樺師 + hy(id){ + let data = {id:id} + record.recordSave(data).then(res=>{ + this.$message.success('杩樺師鎴愬姛') + this.search(1) + }) + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/projectManage/record/items.js b/project-web/src/views/projectManage/record/items.js new file mode 100644 index 0000000..faf8880 --- /dev/null +++ b/project-web/src/views/projectManage/record/items.js @@ -0,0 +1,77 @@ +export default [ + { + type: 'text', + dataIndex: 'projectName', + label: '椤圭洰鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'projectCode', + label: '椤圭洰缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'cascader', + dataIndex: 'projectCategoryId', + label: '鍒嗙被', + placeholder: '璇烽�夋嫨', + optionsConfig: { + url: '/pc/p/project/category/tree', + props:{checkStrictly: false,value: 'id'} + }, + options: [] + }, + { + type: 'cascader', + dataIndex: 'buildOrgId', + label: '寤鸿鍗曚綅', + placeholder: '璇烽�夋嫨', + optionsConfig: { + url: '/pc/fin/sys/tenant/select/tree_fin_tenant' + }, + options: [] + }, + { + type: 'select', + dataIndex: 'archiveStatus', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '', + options: [ + { + value: -1, + label: '鏈綊妗�' + }, + { + value: 0, + label: '瀹℃牳涓�' + }, + { + value: 1, + label: '鎷掔粷褰掓。' + }, + { + value: 2, + label: '宸插綊妗�' + } + ] + }, + { + type: 'datetimerange-picker', + dataIndex: 'approvalDate', + label: '鎵瑰鏃堕棿', + placeholder: '璇烽�夋嫨', + defaultValue: '', + format:'yyyy-MM-dd' + }, + { + type: 'datetimerange-picker', + dataIndex: 'createTime', + placeholder: '璇烽�夋嫨', + label: '鍒涘缓鏃堕棿', + defaultValue: '', + }, +] diff --git a/project-web/src/views/redirect/index.vue b/project-web/src/views/redirect/index.vue new file mode 100644 index 0000000..a447aaf --- /dev/null +++ b/project-web/src/views/redirect/index.vue @@ -0,0 +1,13 @@ +<script> + +export default { + created() { + const { params, query } = this.$route; + const { path } = params; + this.$router.replace({ path: '/' + path, query }); + }, + render: function (h) { + return h(); // avoid warning message + }, +}; +</script> diff --git a/project-web/src/views/routerView/index.vue b/project-web/src/views/routerView/index.vue new file mode 100644 index 0000000..98240ae --- /dev/null +++ b/project-web/src/views/routerView/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view /> +</template> diff --git a/project-web/src/views/systemManger/org/edit.vue b/project-web/src/views/systemManger/org/edit.vue new file mode 100644 index 0000000..2ceda56 --- /dev/null +++ b/project-web/src/views/systemManger/org/edit.vue @@ -0,0 +1,113 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="缂栧彿" prop="code"> + <el-input v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鏈烘瀯鍚嶇О" prop="name"> + <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="summary"> + <el-input + v-model="formData.summary" + type="textarea" + :rows="3" + maxlength="100" + show-word-limit + /> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> +import winSm from '@/components/win/win-sm' +import myButton from '@/components/myButton/myButton' +import * as finsystenant from '@/api/baseSetting/finsystenant' + +export default { + components: {winSm, myButton}, + props: { + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + formData: { + code: '', + name: '', + status: 1, + summary: '', + }, + rules: { + code: [ + {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} + ], + name: [ + {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} + ] + } + } + }, + created() { + if(this.setting.info){ + this.formData = Object.assign({},JSON.parse(this.setting.info)) + } + }, + methods: { + getEditInfo(id){ + + }, + close() { + this.$emit('close') + }, + save() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + if(this.setting.id){ + // 缂栬緫鎺ュ彛 + finsystenant.edit(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + }else{ + params.orgId = this.setting.orgId + finsystenant.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + } + } +} +</script> diff --git a/project-web/src/views/systemManger/org/index.vue b/project-web/src/views/systemManger/org/index.vue new file mode 100644 index 0000000..b7964cd --- /dev/null +++ b/project-web/src/views/systemManger/org/index.vue @@ -0,0 +1,287 @@ +<template> + <div class="app-container"> + <el-container> + <el-card shadow="never" style="width: 240px;margin-right: 15px"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/> + </el-card> + </el-container> + </el-container> + <my-import + :import-setting="importSetting" + :dialog-show="importSetting.dialogShow" + :dialog-title="importSetting.dialogTitle" + /> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index' +import MyTableV2 from "@/components/myTable/myTableV2"; +import MyButton from "@/components/myButton/myButton"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +import edit from './edit' +import * as finsystenant from '@/api/baseSetting/finsystenant' +import myImport from '@/views/components/myImport' +import {updStatus} from "@/api/baseSetting/finsystenant"; +import {getBaseUrl, getUploadUrl} from '@/utils/base'; + +export default { + name: "index", + components: {MyButton, MyTableV2, edit, myTree, myImport}, + data() { + return { + // 鎼滅储妗� + items: items, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantId: null, + userName: null, + userPhone: null, + status: 1 + }, + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: false // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃 + }, + onSuccess: null + }, + editSetting: { + title: '', + id: '', + orgId: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + { + name: '鏈烘瀯瀵煎叆', + click: () => { + this.importOrg(); + }, + } + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '缂栧彿', field: 'code', align: 'center', width: '150px'}, + {title: '鏈烘瀯鍚嶇О', field: 'name', align: 'left'}, + {title: '灞傜骇', field: 'lv', align: 'center', width: '80px'}, + {title: '澶囨敞', field: 'summary', align: 'left', width: '150px'}, + { + field: 'belongProvince', + title: '鐘舵��', + align: 'center', + width: 100, + switch: row => { + const result = {} + if (row.status == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鏄�', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.updState(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '鍚�', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + } + }) + } + return result + } + } + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '150', // 鍒楀 + attr: [ + { + title: '缂栬緫', + events: (row) => { + this.showAudit(row); + }, + }, + { + title: '鍒犻櫎', + events: (row) => { + this.del(row); + }, + } + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + } + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData() + }, + methods: { + //瀵煎叆 + importOrg() { + this.importSetting.dialogShow = true + this.importSetting.onSuccess = (response, callBack) => { + if (response.code===1){ + this.$message.success(response.msg) + this.search(1) + }else{ + this.$message.warning(response.msg) + } + callBack() + } + }, + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then(res => { + const content = res || [] + this.treeDataList.splice(0, this.treeDataList.length) + this.treeDataList = content + if (content.length > 0) { + this.importSetting.fileSettings.data = {pid: content[0].id} + } + }) + }, + updState(row) { + let vm = this + let text = row.status == 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () { + let params = Object.assign({}, row) + params.status = row.status == 1 ? 0 : 1 + finsystenant.edit(params).then(res => { + if (res) { + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + vm.search() + } + }) + }) + }, + del(row) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�') + .then(function () { + finsystenant.del({id: row.id}).then((res) => { + }); + }) + .then((res) => { + this.$message.success('鍒犻櫎鎴愬姛锛�'); + this.search() + }) + .catch(() => { + }); + }, + showAdd() { + if (!this.editSetting.orgId) { + this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯') + } else { + this.editSetting.id = null; + this.editSetting.info = null; + this.editSetting.title = '鏂板'; + this.editSetting.show = true; + } + }, + showAudit(row) { + this.editSetting.id = row.id; + this.editSetting.info = JSON.stringify(row); + this.editSetting.title = '缂栬緫'; + this.editSetting.show = true; + }, + nodeClick(param) { + param = param || {} + this.p = Object.assign({}, { + id: param.id, + name: param.name + }) + if (this.p.id != undefined && this.p.id != null) { + this.filterFrom.tenantId = this.p.id + this.editSetting.orgId = this.p.id + } else { + this.filterFrom.tenantId = null + this.editSetting.orgId = null + } + this.importSetting.fileSettings.data = {pid: param.id} + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params) + this.search(1) + } + } +} +</script> + +<style scoped> + +</style> diff --git a/project-web/src/views/systemManger/org/items.js b/project-web/src/views/systemManger/org/items.js new file mode 100644 index 0000000..4528033 --- /dev/null +++ b/project-web/src/views/systemManger/org/items.js @@ -0,0 +1,33 @@ +export default [ + { + type: 'text', + dataIndex: 'name', + label: '鏈烘瀯鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'code', + label: '缂栧彿', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/systemManger/server/user/edit.vue b/project-web/src/views/systemManger/server/user/edit.vue new file mode 100644 index 0000000..b5646fc --- /dev/null +++ b/project-web/src/views/systemManger/server/user/edit.vue @@ -0,0 +1,285 @@ +<template> + <win-sm :title="setting.title" @close="close" :width="'800px'"> + <el-alert + style="margin-bottom: 10px" + title="娓╅Θ鎻愮ず锛氱敤鎴峰垵濮嬪瘑鐮佷负123456" + type="warning" + :closable="false" + show-icon> + </el-alert> + <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> + <el-form-item label="褰撳墠鏈烘瀯"> + <el-input v-model="setting.tenantName" disabled style="width: 250px"/> + </el-form-item> + <el-form-item label="浜哄憳濮撳悕" prop="userName"> + <el-input v-model="formData.userName" clearable maxlength="20" show-word-limit style="width: 250px"/> + </el-form-item> + <el-form-item label="鍛樺伐缂栧彿" prop="userCode"> + <el-input v-model="formData.userCode" clearable maxlength="20" show-word-limit style="width: 250px"/> + </el-form-item> + <el-form-item label="鎵嬫満鍙�" prop="userPhone"> + <el-input v-model="formData.userPhone" clearable maxlength="20" show-word-limit + style="width: 250px"/> + </el-form-item> + <el-form-item label="鎬у埆" prop="sex"> + <el-radio-group v-model="formData.sex"> + <el-radio :label="1" border>鐢�</el-radio> + <el-radio :label="2" border>濂�</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="formData.status"> + <el-radio :label="1" border>鍚敤</el-radio> + <el-radio :label="0" border>绂佺敤</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="椤哄簭鍙�" prop="seq"> + <el-input-number v-model="formData.seq" clearable :min="1" :max="99" show-word-limit/> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + v-model="formData.remark" + type="textarea" + :rows="3" + maxlength="100" + show-word-limit + /> + </el-form-item> + <el-form-item label="瑙掕壊閰嶇疆" prop="roleSetting"> + <el-checkbox v-model="checkAll" @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> + <div style="margin: 15px 0;"></div> + <el-checkbox-group v-model="checkedList" @change="handleCheckedCitiesChange"> + <el-checkbox v-for="(r,i) in roleOptions" :label="r.role_id" :key="r.role_id">{{r.role_name}}</el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close"/> + <my-button name="淇濆瓨" site="form" @click="save"/> + </div> + </win-sm> +</template> + +<script> + import winSm from '@/components/win/win-sm' + import myButton from '@/components/myButton/myButton' + import * as DateFormatter from '@/utils/DateFormatter' + import * as role from "@/api/system/role"; + import * as user from "@/api/user"; + + export default { + components: {winSm, myButton}, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + checkAll: false, + checkedList: [], + roleList: [ + {'id': 1, label: '鐜嬫兜1'}, + {'id': 2, label: '鐜嬫兜2'} + ], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + roleName: undefined, + roleKey: undefined, + status: undefined, + orgId: 1 + }, + roleOptions: [],// 閫夋嫨椤� + roleCheckStrictly: true, + defaultProps: { + children: 'childList', + label: 'name', + }, + formData: { + userName: '', + userCode: '', + userPhone: '', + sex: 1, + status: 1, + remark: '', + seq: null, + }, + rules: { + userName: [ + {required: true, message: '璇疯緭鍏ヤ汉鍛樺鍚�', trigger: 'blur'} + ], + userCode: [ + {required: true, message: '璇疯緭鍏ュ憳宸ョ紪鍙�', trigger: 'blur'} + ], + userPhone: [ + {required: true, message: '璇疯緭鍏ユ墜鏈哄彿', trigger: 'blur'} + ], + sex: [ + {required: true, message: '璇烽�夋嫨鎬у埆', trigger: 'change'} + ], + seq: [ + {required: true, message: '璇疯緭鍏ラ『搴忓彿', trigger: 'blur'} + ], + } + } + }, + created() { + this.getInfo() + this.getAllRole() + }, + methods: { + // 鑾峰彇鎵�鏈夎鑹� + getAllRole() { + const user = this.$store.getters.userInfo + if (user.lv == 1) { + this.data_scope = 1 + } + if (user.lv == 2) { + this.data_scope = 2 + } + if (user.lv == 3) { + this.data_scope = 3 + } + role.listRoleByDataScope({dataScope: this.data_scope}).then(response => { + if (response) { + this.roleOptions = response; + } else { + this.roleOptions = []; + } + this.loading = false; + } + ); + }, + handleCheckAllChange(val) { + if (val) { + this.checkedList = this.roleOptions.map(x => { + return x.role_id + }) + } else { + this.checkedList = [] + } + }, + handleCheckedCitiesChange(value) { + let checkedCount = value.length; + this.checkAll = checkedCount === this.roleOptions.length; + }, + getInfo() { + this.title = this.setting.title + if (this.setting.id != null) { + // 鏌ヨ鏁版嵁 + user.getUser({id: this.setting.id}).then(res => { + const data = res.data + this.formData = Object.assign(this.formData, data) + if (this.formData.projectStart != null && this.formData.projectStart > 0) { + this.formData.projectStart = DateFormatter.LongToDateTime(this.formData.projectStart) + } + if (this.formData.projectEnd != null && this.formData.projectEnd > 0) { + this.formData.projectEnd = DateFormatter.LongToDateTime(this.formData.projectEnd) + } + this.checkedList = res.list.map(x => { + return x.role_id + }) + if (res.list.length == this.roleOptions.length) { + this.handleCheckedCitiesChange(res.list) + } + }) + } + }, + close() { + this.formData = { + projectName: '', + projectSubName: '', + projectCode: '', + projectContact: '', + projectTel: '', + projectEmail: '', + projectStart: null, + projectEnd: null, + projectDesc: '', + status: 1 + }, + this.$emit('close') + }, + save() { + + this.$refs.ruleForm.validate((valid) => { + if (valid) { + const params = Object.assign({}, this.formData) + params.roleList = this.checkedList + // 鍖哄煙id + params.tenantId = this.setting.tenantId + params.tenantCode = this.setting.tenantCode + if (params.ctiStatus == 0) { + params.agentJid = '' + params.workgroupJid = '' + params.clientNumber = '' + params.clientPwd = '' + } + if (params.projectStart != null && params.projectEnd != null) { + params.projectStart = DateFormatter.DateToLong(params.projectStart) + params.projectEnd = DateFormatter.DateToLong(params.projectEnd) + if (params.projectStart >= params.projectEnd) { + this.$message.error('鏈嶅姟缁撴潫鏃堕棿涓嶈兘灏忎簬鎴栬�呯瓑浜庢湇鍔″紑濮嬫椂闂�') + return + } + } + if ((params.projectStart == null && params.projectEnd != null) || (params.projectStart != null && params.projectEnd == null)) { + this.$message.error('鏈嶅姟寮�濮嬫椂闂村拰鏈嶅姟缁撴潫鏃堕棿蹇呴』鎴愬鍑虹幇') + return + } + if (params.id) { + user.upd(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } else { + user.add(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } else { + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + } + }) + }, + getWorkgroupsAll(){ + callCenter.getWorkgroupsAll().then(res => { + this.workgroups = res.workgroups + }) + }, + getWorkgroupAgents(workgroupName){ + this.formData.agentJid = '' + this.formData.clientNumber = '' + this.formData.clientPwd = '' + this.agentExtendEntiry.agentId = '' + this.formData.workgroupJid = this.workgroup.workgroupJID + callCenter.getWorkgroupAgents(workgroupName).then(res => { + this.agents = res.agents + }) + }, + onClickAgent(agent){ + this.formData.agentJid = agent.agentExtendEntiry.agentId + this.formData.clientNumber = agent.agentExtendEntiry.ccClientNumber + this.formData.clientPwd = agent.agentExtendEntiry.ccClientPWD + } + } + } +</script> diff --git a/project-web/src/views/systemManger/server/user/editRole.vue b/project-web/src/views/systemManger/server/user/editRole.vue new file mode 100644 index 0000000..a487e8b --- /dev/null +++ b/project-web/src/views/systemManger/server/user/editRole.vue @@ -0,0 +1,160 @@ +<template> + <win :title="setting.title" @close="close" :width="'800px'"> + <el-form :model="formData" class="demo-ruleForm" label-width="100px"> + <el-form-item label="瑙掕壊閰嶇疆" prop="roleSetting"> + <el-checkbox v-model="checkAll" @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> + <div style="margin: 15px 0;"></div> + <el-checkbox-group v-model="checkedList" @change="handleCheckedCitiesChange" > + <el-checkbox v-for="(r,i) in roleOptions" :label="r.role_id" :key="r.role_id">{{r.role_name}}</el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-form> + <div slot="footer" align="center" class="dialog-footer"> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="save" /> + </div> + </win> +</template> + +<script> +import win from '@/components/win' +import myButton from '@/components/myButton/myButton' +import * as role from "@/api/system/role"; +import * as user from "@/api/user"; +export default { + components: { win, myButton }, + props: { + // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍 + // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦 + // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁 + setting: { + type: Object, + default: () => { + } + } + }, + data() { + return { + data_scope: null, + checkAll:false, + checkedList:[], + roleList:[ + {'id':1,label:'鐜嬫兜1'}, + {'id':2,label:'鐜嬫兜2'} + ], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + roleName: undefined, + roleKey: undefined, + status: 0, + orgId: 1 + }, + roleOptions: [],// 閫夋嫨椤� + roleCheckStrictly: true, + defaultProps: { + children: 'childList', + label: 'name', + }, + formData: { + userName: '', + userCode: '', + userPhone: '', + sex: 1, + status: 1, + remark: '', + seq: null + } + } + }, + created() { + this.getInfo() + this.getAllRole() + }, + methods: { + // 鑾峰彇鎵�鏈夎鑹� + getAllRole() { + const user = this.$store.getters.userInfo + if (user.lv == 1) { + this.data_scope = 1 + } + if (user.lv == 2) { + this.data_scope = 2 + } + if (user.lv == 3) { + this.data_scope = 3 + } + role.listRoleByDataScope({dataScope: this.data_scope}).then(response => { + if (response) { + this.roleOptions = response; + } else { + this.roleOptions = []; + } + this.loading = false; + } + ); + }, + handleCheckAllChange(val){ + if(val){ + this.checkedList = this.roleOptions.map(x=>{ + return x.role_id + }) + }else{ + this.checkedList = [] + } + }, + handleCheckedCitiesChange(value) { + let checkedCount = value.length; + this.checkAll = checkedCount === this.roleOptions.length; + }, + getInfo() { + this.title = this.setting.title + if ( this.setting.id != null ) { + // 鏌ヨ鏁版嵁 + user.getUser({ id: this.setting.id }).then(res => { + const data = res.data + this.formData = Object.assign(this.formData, data) + this.checkedList = res.list.map(x=>{ + return x.role_id + }) + if (res.list.length===this.roleOptions.length){ + this.handleCheckedCitiesChange(res.list) + } + }) + } + }, + close() { + this.formData = { + projectName: '', + projectSubName: '', + projectCode: '', + projectContact: '', + projectTel: '', + projectEmail: '', + projectStart: null, + projectEnd: null, + projectDesc: '', + status: 1 + }, + this.$emit('close') + }, + save() { + const params = Object.assign({}, this.formData) + params.roleList=this.checkedList + if (params.id) { + console.log(params+'params') + user.updRole(params).then(res => { + if (res) { + this.$message.success('淇濆瓨鎴愬姛锛�') + this.close() + this.$emit('search') + } else { + this.$message.error('淇濆瓨澶辫触') + } + }) + } + } + } +} +</script> diff --git a/project-web/src/views/systemManger/server/user/index.vue b/project-web/src/views/systemManger/server/user/index.vue new file mode 100644 index 0000000..e777bbb --- /dev/null +++ b/project-web/src/views/systemManger/server/user/index.vue @@ -0,0 +1,303 @@ +<template> + <div class="app-container"> + <el-row :gutter="15"> + <!--宸︿晶鏍戝舰寮�濮�--> + <el-col :span="5"> + <el-card class="box-card" shadow="never"> + <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree> + </el-card> + </el-col> + <!--宸︿晶鏍戝舰缁撴潫--> + <!--鍙充晶鍒楄〃寮�濮�--> + <el-col :span="19"> + <el-card class="box-card" shadow="never"> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 15px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" /> + </el-col> + </el-row> + </el-card> + </el-col> + </el-row> + <!--娣诲姞/缂栬緫寮圭獥--> + <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search" /> + <editRole + v-if="editRoleSetting.show" + :setting="editRoleSetting" + @close="editRoleSetting.show = false" + @search="search" + /> + </div> +</template> + +<script> +import myTree from '@/components/myTree/index'; +import MyTableV2 from '@/components/myTable/myTableV2'; +import MyButton from '@/components/myButton/myButton'; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items'; +import edit from './edit'; +import editRole from './editRole'; +import * as finsystenant from '@/api/baseSetting/finsystenant'; +import * as DateFormatter from '@/utils/DateFormatter'; +import * as user from '@/api/user'; + +export default { + name: 'index', + components: { MyButton, MyTableV2, myTree, edit, editRole }, + data() { + return { + // 鎼滅储妗� + items: items, + // 鏍戞暟鎹� + treeDataList: [], + // 鎼滅储鏉′欢 + filterFrom: { + tenantCode: 0, + trnantId: 0, + userName: null, + userPhone: null, + }, + curOrgId: null, + // 娣诲姞&缂栬緫璁剧疆 + tenantId: null, //鍖哄垝id + tenantCode: null, //鍖哄垝code + tenantName: null, //鍖哄垝鍚嶇О + editSetting: { + title: '', + id: '', + tenantId: '', + show: false, + }, + // 缂栬緫瑙掕壊閰嶇疆 + editRoleSetting: { + title: '', + id: '', + show: false, + }, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/user/select/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: { + // 鍒楁帶鍒舵寜閽� + show: false, + }, + generalExport: { + // 閫氱敤瀵煎嚭鎸夐挳 + show: false, + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + click: () => { + this.showAdd(null); + }, + }, + ], + }, + // 鍒椾俊鎭� + columns: [ + { title: '浜哄憳濮撳悕', field: 'userName', align: 'left' }, + { title: '鍛樺伐缂栧彿', field: 'userCode', align: 'left' }, + { title: '鎵嬫満鍙�', field: 'userPhone', align: 'center', width: 150 }, + { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + align: 'center', + width: 200, + formatter: (row) => { + return { value: DateFormatter.LongToDateTime(row.createTime) }; + }, + }, + { + field: 'status', + title: '鐘舵��', + align: 'center', + width: 80, + switch: (row) => { + const result = {}; + if (row.status == 1) { + Object.assign(result, { + value: true, // 寮� + label: '鍚敤', // 寮�鐨勬弿杩� + click: () => { + // 鐐瑰嚮浜嬩欢 + this.updState(row) + }, + }); + } else { + Object.assign(result, { + value: false, // 鍏� + label: '绂佺敤', // 鍏崇殑鎻忚堪 + click: () => { + this.updState(row) + }, + }); + } + return result; + }, + } + ], + // 鎿嶄綔淇℃伅 + operation: { + show: true, // 鏄剧ず鎿嶄綔鍒� + width: '250', // 鍒楀 + attr: [ + { + title: '瑙掕壊', + events: (row) => { + this.showEditRole(row.id); + }, + }, + { + title: '缂栬緫', + events: (row) => { + this.showAdd(row.id); + }, + }, + { + title: '瀵嗙爜鍒濆鍖�', + events: (row) => { + this.updPassWord(row); + }, + }, + ], + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0, + }, + }, + }, + }; + }, + created() { + // 鑾峰彇鏈烘瀯鏍� + this.initTreeData(); + }, + methods: { + // 宸︿晶鏍戝垵濮嬪寲 + initTreeData() { + finsystenant.getTree().then((res) => { + const content = res || []; + this.treeDataList.splice(0, this.treeDataList.length); + this.treeDataList = content; + if (this.treeDataList && this.treeDataList.length > 0) { + this.tenantId = this.treeDataList[0].id; + this.tenantName = this.treeDataList[0].label; + this.tenantCode = this.treeDataList[0].code; + } + }); + }, + updState(row) { + let vm = this + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + vm.$modal.confirm('纭瑕�' + text + '"' + row.userName + '"鍚楋紵').then(function() { + let params = Object.assign({},row) + params.status = row.status === 1 ? 0 : 1 + user.updateStatus(params).then(res=>{ + if(res){ + row.status = row.status === 1 ? 0 : 1 + vm.$modal.msgSuccess(text + "鎴愬姛"); + } + }) + }) + }, + nodeClick(param) { + param = param || {}; + this.p = Object.assign( + {}, + { + id: param.id, + name: param.name, + code: param.code, + }, + ); + if (this.p.code != undefined && this.p.code != null) { + this.filterFrom.tenantCode = this.p.code; + this.tenantId = this.p.id; + this.tenantName = this.p.name; + this.editSetting.tenantCode = this.p.code; + } else { + this.filterFrom.tenantCode = 0; + } + this.table.paging.page.pageNum = 1; + this.search(1); + }, + /** 鍒濆鍖栧瘑鐮� */ + updPassWord(row) { + this.$modal + .confirm('鏄惁纭鍒濆鍖栧悕绉颁负"' + row.userName + '"鐨勫瘑鐮侊紵') + .then(function () { + user.updPassWord(row).then((res) => {}); + }) + .then((res) => { + this.$message.success('鍒濆鍖栧瘑鐮佹垚鍔燂紒'); + this.search(); + }) + .catch(() => {}); + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum); + } else { + this.$refs.myTable.search(); + } + }, + fifterForm(params) { + this.filterFrom = Object.assign(this.filterFrom, params); + this.search(); + }, + showAdd(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫'; + } + if (!this.tenantName) { + this.$message.warning('璇烽�夋嫨鎮ㄨ娣诲姞浜哄憳鐨勬満鏋勶紒'); + return; + } + this.editSetting.tenantId = this.tenantId; + this.editSetting.tenantName = this.tenantName; + this.editSetting.id = id; + this.editSetting.title = title; + this.editSetting.show = true; + }, + showEditRole(id) { + let title = '娣诲姞'; + if (id != null) { + title = '缂栬緫瑙掕壊'; + } + this.editRoleSetting.id = id; + this.editRoleSetting.title = title; + this.editRoleSetting.show = true; + }, + // 閲嶇疆 + reset() { + this.filterFrom.tenantCode = null; + this.filterFrom.userName = null; + this.filterFrom.userPhone = null; + this.filterFrom.status = 1; + this.search(1); + }, + }, +}; +</script> + +<style scoped></style> diff --git a/project-web/src/views/systemManger/server/user/items.js b/project-web/src/views/systemManger/server/user/items.js new file mode 100644 index 0000000..a59a1c7 --- /dev/null +++ b/project-web/src/views/systemManger/server/user/items.js @@ -0,0 +1,33 @@ +export default [ + { + type: 'text', + dataIndex: 'userName', + label: '浜哄憳濮撳悕', + placeholder: "璇疯緭鍏�", + defaultValue: '' + }, + { + type: 'text', + dataIndex: 'userPhone', + label: '鎵嬫満鍙�', + placeholder: "璇疯緭鍏�", + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '1', + options: [ + { + label: '鍚敤', + value: '1' + }, + { + label: '绂佺敤', + value: '0' + } + ] + } +] diff --git a/project-web/src/views/systemSetting/dept/index.vue b/project-web/src/views/systemSetting/dept/index.vue new file mode 100644 index 0000000..7f933c1 --- /dev/null +++ b/project-web/src/views/systemSetting/dept/index.vue @@ -0,0 +1,405 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form-item label="椤剁骇鍗曚綅" prop="orgId"> + <el-select v-model="queryParams.orgId" placeholder="閫夋嫨椤剁骇鍗曚綅" @change="getList()"> + <el-option + v-for="org in this.rootOrgList" + :key="org.id" + :label="org.dept_name" + :value="org.id" + /> + </el-select> + </el-form-item> + + <el-form-item label="閮ㄩ棬鍚嶇О" prop="deptName"> + <el-input + v-model="queryParams.deptName" + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="queryParams.status" placeholder="閮ㄩ棬鐘舵��" clearable> + <el-option + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd(null)" + v-hasPermi="['system:dept:add']" + >鏂板椤剁骇鏈烘瀯</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="info" + plain + icon="el-icon-sort" + size="mini" + @click="toggleExpandAll" + >灞曞紑/鎶樺彔</el-button> + </el-col> + </el-row> + + <el-table + v-if="refreshTable" + v-loading="loading" + :data="deptList" + row-key="id" + :default-expand-all="isExpandAll" + :tree-props="{children: 'children', hasChildren: 'hasChildren'}" + > + <el-table-column prop="dept_name" label="閮ㄩ棬鍚嶇О" width="260"></el-table-column> + <el-table-column prop="order_num" label="鎺掑簭" width="200"></el-table-column> + <el-table-column prop="status" label="鐘舵��" width="100"> + <template slot-scope="scope"> +<!-- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>--> + <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span> + </template> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="200"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.create_time) }}</span> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:dept:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-plus" + @click="handleAdd(scope.row)" + v-hasPermi="['system:dept:add']" + >鏂板</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:dept:remove:query']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-card> + + <!-- 娣诲姞鎴栦慨鏀归儴闂ㄥ璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + + <el-row> + <el-col :span="24"> + <el-form-item label="鏈烘瀯绫诲瀷" prop="org_type"> + <el-select v-model="form.org_type" placeholder="鏈烘瀯绫诲瀷"> + <el-option + v-for="dict in constants.sysOrgType" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="24" v-if="form.parent_id !== 0"> + <el-form-item label="涓婄骇鏈烘瀯" prop="parent_id"> + <treeselect v-model="form.parent_id" :options="deptOptions" :normalizer="normalizer" placeholder="閫夋嫨涓婄骇鏈烘瀯" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="鏈烘瀯鍚嶇О" prop="dept_name"> + <el-input v-model="form.dept_name" placeholder="璇疯緭鍏ユ満鏋勫悕绉�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏄剧ず鎺掑簭" prop="order_num"> + <el-input-number v-model="form.order_num" controls-position="right" :min="0" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="璐熻矗浜�" prop="leader"> + <el-input v-model="form.leader" placeholder="璇疯緭鍏ヨ礋璐d汉" maxlength="20" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone"> + <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" maxlength="11" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="閭" prop="email"> + <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏈烘瀯鐘舵��"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.value" + >{{dict.label}}</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"; +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; + +export default { + name: "Dept", + // dicts: ['sys_normal_disable', 'sys_org_type'], + components: { Treeselect }, + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 琛ㄦ牸鏍戞暟鎹� + deptList: [], + + // 2022-12-01 鏍规満鏋勫垪琛紝涓汉鍙兘鍒楀嚭鑷繁鎵�鍦ㄦ牴鏈烘瀯 + rootOrgList:[], + // 2022-12-03 瓒呯骇绠$悊鍛橀�夋嫨鐨勯《绾ф満鏋処D + selectedRootOrgId: undefined, + + // 閮ㄩ棬鏍戦�夐」 + deptOptions: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁灞曞紑锛岄粯璁ゅ叏閮ㄥ睍寮� + isExpandAll: true, + // 閲嶆柊娓叉煋琛ㄦ牸鐘舵�� + refreshTable: true, + // 鏌ヨ鍙傛暟 + queryParams: { + deptName: undefined, + status: undefined, + loadSelect: 0 // 鍔犺浇鏈烘瀯涓嬫媺閫夋嫨鍚楋紵 + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + // parentId: [ + // { required: true, message: "涓婄骇閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" } + // ], + dept_name: [ + { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + order_num: [ + { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" } + ], + email: [ + { + type: "email", + message: "璇疯緭鍏ユ纭殑閭鍦板潃", + trigger: ["blur", "change"] + } + ], + phone: [ + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ] + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鍒囨崲鏍规満鏋勯�夐」鍒楄〃锛�2022-12-03 */ + switchOrgRootList(){ + + }, + + /** 鏌ヨ閮ㄩ棬鍒楄〃 */ + getList() { + this.loading = true; + this.queryParams.loadSelect = 0; + listDept(this.queryParams).then(response => { + // console.log(response); + this.rootOrgList = response.rootOrgList; + // this.queryParams.orgId = this.rootOrgList[0].id; + this.selectedRootOrgId = response.selectedRootOrgId; + this.queryParams.orgId = this.selectedRootOrgId; + this.deptList = this.handleTree(response.deptList, "id", "parent_id"); + this.loading = false; + }); + }, + /** 杞崲閮ㄩ棬鏁版嵁缁撴瀯 */ + normalizer(node) { + if (node.children && !node.children.length) { + delete node.children; + } + return { + id: node.id, + label: node.dept_name, + children: node.children + }; + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: undefined, + parent_id: undefined, + dept_name: undefined, + order_num: undefined, + leader: undefined, + phone: undefined, + email: undefined, + status: "0", + org_id: undefined, // 椤剁骇鏈烘瀯ID + org_type: undefined // 鏈烘瀯绫诲瀷锛氫唬鐮佽〃 + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + // this.queryParams.orgId = this.rootOrgList[0].id; + this.queryParams.orgId = this.selectedRootOrgId; + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd(row) { + this.reset(); + if (row != undefined && row != null) { + // 鏅�氭満鏋勮兘鑾峰彇鍒楄〃涓婄殑涓婄骇ID + this.form.parent_id = row.id; + this.form.org_type = "9"; // 榛樿閫夋嫨: 閮ㄩ棬 + // 璁剧疆鏍囧織涓� [鍔犺浇鏈烘瀯涓嬫媺閫夋嫨]锛屽洜涓哄叕鐢ㄤ竴涓帴鍙o紝2022-12-02 + this.queryParams.loadSelect = 1; + listDept(this.queryParams).then(response => { + this.deptOptions = this.handleTree(response.deptList, "id", "parent_id"); + }); + this.title = "娣诲姞鏈烘瀯"; + } else { + // 椤剁骇鏈烘瀯鏂板锛屾鏃� org_id = 0 + this.form.org_id = 0; + this.form.parent_id = 0; + this.form.org_type = "0"; // 闆嗗洟(椤剁骇鏈烘瀯) + this.title = "娣诲姞椤剁骇鏈烘瀯"; + } + this.open = true; + // this.title = "娣诲姞鏈烘瀯"; + + }, + /** 灞曞紑/鎶樺彔鎿嶄綔 */ + toggleExpandAll() { + this.refreshTable = false; + this.isExpandAll = !this.isExpandAll; + this.$nextTick(() => { + this.refreshTable = true; + }); + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + getDept(row.id).then(response => { + this.form = response; + this.form.org_type = response.org_type + ''; + this.form.status = response.status + ''; + this.open = true; + this.title = "淇敼鏈烘瀯"; + }); + // 娣诲姞琛岃缃爣蹇椾负 [鍔犺浇鏈烘瀯涓嬫媺閫夋嫨]锛屽洜涓哄叕鐢ㄤ竴锛�2022-12-02 + this.queryParams.loadSelect = 1; + // listDeptExcludeChild(row.id).then(response => { + listDept(this.queryParams).then(response => { + // this.deptOptions = this.handleTree(response.data, "id", "parent_id"); + this.deptOptions = this.handleTree(response.deptList, "id", "parent_id"); + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != undefined) { + updateDept(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addDept(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.dept_name + '"鐨勬暟鎹」锛�').then(function() { + return delDept(row.id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/dict/data.vue b/project-web/src/views/systemSetting/dict/data.vue new file mode 100644 index 0000000..b0836af --- /dev/null +++ b/project-web/src/views/systemSetting/dict/data.vue @@ -0,0 +1,427 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="瀛楀吀鍚嶇О" prop="dictType"> + <el-select v-model="queryParams.dictType"> + <el-option + v-for="item in typeOptions" + :key="item.dict_id" + :label="item.dict_name" + :value="item.dict_type" + /> + </el-select> + </el-form-item> + <el-form-item label="瀛楀吀鏍囩" prop="dictLabel"> + <el-input + v-model="queryParams.dictLabel" + placeholder="璇疯緭鍏ュ瓧鍏告爣绛�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="queryParams.status" placeholder="鏁版嵁鐘舵��" clearable> + <el-option + v-for="item in constants.normalOrDisabled" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:dict:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:dict:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:dict:export']" + >瀵煎嚭</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-close" + size="mini" + @click="handleClose" + >鍏抽棴</el-button> + </el-col> +<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>--> + </el-row> + + <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="瀛楀吀ID" align="center" prop="dict_code" /> + <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dict_label"> + <template slot-scope="scope"> + <span v-if="scope.row.list_class == '' || scope.row.list_class == 'default'">{{scope.row.dict_label}}</span> + <el-tag v-else :type="scope.row.list_class == 'primary' ? '' : scope.row.list_class">{{scope.row.dict_label}}</el-tag> + </template> + </el-table-column> + <el-table-column label="瀛楀吀鍊�" align="center" prop="dict_value" /> + <el-table-column label="鎺掑簭" align="center" prop="dict_sort" /> + <el-table-column label="鐘舵��" align="center" prop="status"> + <template slot-scope="scope"> +<!-- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>--> + <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span> + </template> + </el-table-column> + <el-table-column label="鐖秈d" align="center" prop="parent_id" /> + <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" /> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180"> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ parseTime(scope.row.create_time) }}</span>--> +<!-- </template>--> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:dict:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:dict:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + +<!-- <pagination--> +<!-- v-show="total>0"--> +<!-- :total="total"--> +<!-- :page.sync="queryParams.pageNum"--> +<!-- :limit.sync="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> + <el-pagination + :current-page="queryParams.pageNum" + :page-sizes="constants.page.limit" + :layout="constants.page.layout" + :total="this.total" + @size-change="getList" + @current-change="getList" + /> + </el-card> + + <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" :before-close="cancel" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="瀛楀吀ID"> + <el-input v-model="form.dict_code" :disabled="false" placeholder="涓�涓敮涓�鏁板瓧"/> + </el-form-item> + <el-form-item label="瀛楀吀绫诲瀷"> + <el-input v-model="form.dict_type" :disabled="true" /> + </el-form-item> + <el-form-item label="瀛楀吀鍚嶇О" prop="dict_label"> + <el-input v-model="form.dict_label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" /> + </el-form-item> + <el-form-item label="瀛楀吀鍊�" prop="dict_value"> + <el-input v-model="form.dict_value" placeholder="涓嶅~鍜屽瓧鍏窱D涓�鑷�" /> + </el-form-item> + <el-form-item label="鏍峰紡灞炴��" prop="css_class"> + <el-input v-model="form.css_class" placeholder="璇疯緭鍏ユ牱寮忓睘鎬�" /> + </el-form-item> + <el-form-item label="鏄剧ず鎺掑簭" prop="dict_sort"> + <el-input-number v-model="form.dict_sort" controls-position="right" :min="0" /> + </el-form-item> + <el-form-item label="鍥炴樉鏍峰紡" prop="list_class"> + <el-select v-model="form.list_class"> + <el-option + v-for="item in listClassOptions" + :key="item.value" + :label="item.label + '(' + item.value + ')'" + :value="item.value" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.value * 1" + >{{dict.label}}</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鐖跺瓧鍏窱D" prop="dict_label"> + <el-input v-model="form.parent_id" placeholder="鐖跺瓧鍏竔d锛屽繀濉�" /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data"; +import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"; + +export default { + name: "Data", + // dicts: ['sys_normal_disable'], + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 瀛楀吀琛ㄦ牸鏁版嵁 + dataList: [], + // 榛樿瀛楀吀绫诲瀷 + defaultDictType: "", + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏁版嵁鏍囩鍥炴樉鏍峰紡 + listClassOptions: [ + { + value: "default", + label: "榛樿" + }, + { + value: "primary", + label: "涓昏" + }, + { + value: "success", + label: "鎴愬姛" + }, + { + value: "info", + label: "淇℃伅" + }, + { + value: "warning", + label: "璀﹀憡" + }, + { + value: "danger", + label: "鍗遍櫓" + } + ], + // 绫诲瀷鏁版嵁瀛楀吀 + typeOptions: [], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + dictName: undefined, + dictType: undefined, + status: undefined + }, + // 琛ㄥ崟鍙傛暟 + form: { + status: '1' + }, + // 琛ㄥ崟鏍¢獙 + rules: { + dict_code: [ + { required: true, message: "瀛楀吀id蹇呴』杈撳叆", trigger: "blur" } + ], + dict_label: [ + { required: true, message: "鏁版嵁鏍囩涓嶈兘涓虹┖", trigger: "blur" } + ], + parent_id: [ + { required: true, message: "鐖秈d涓嶈兘涓虹┖", trigger: "blur" } + ], + // dict_value: [ + // { required: true, message: "鏁版嵁閿�间笉鑳戒负绌�", trigger: "blur" } + // ], + dict_sort: [ + { required: true, message: "鏁版嵁椤哄簭涓嶈兘涓虹┖", trigger: "blur" } + ] + }, + editMode: false + }; + }, + created() { + const dictId = this.$route.params && this.$route.params.dictId; + this.getType(dictId); + this.getTypeList(); + }, + methods: { + /** 鏌ヨ瀛楀吀绫诲瀷璇︾粏 */ + getType(dictId) { + getType(dictId).then(response => { + // this.queryParams.dictType = response.data.dict_type; + // this.defaultDictType = response.data.dict_type; + this.queryParams.dictType = response.dict_type; + this.defaultDictType = response.dict_type; + this.getList(); + }); + }, + /** 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 */ + getTypeList() { + getDictOptionselect().then(response => { + this.typeOptions = response.data; + }); + }, + /** 鏌ヨ瀛楀吀鏁版嵁鍒楄〃 */ + getList() { + this.loading = true; + listData(this.queryParams).then(response => { + this.dataList = response.datas; + this.total = response.totalRows; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + dict_code: undefined, + dict_label: undefined, + dict_value: undefined, + css_class: undefined, + list_class: 'default', + dict_sort: 0, + status: "0", + parent_id: undefined, + remark: undefined + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 杩斿洖鎸夐挳鎿嶄綔 */ + handleClose() { + const obj = { path: "/system/dict" }; + this.$tab.closeOpenPage(obj); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.queryParams.dictType = this.defaultDictType; + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.editMode = false; + this.open = true; + this.title = "娣诲姞瀛楀吀鏁版嵁"; + // this.form.dictType = this.queryParams.dictType; + this.form.dict_type = this.queryParams.dictType; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.dictCode) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + this.editMode = true; + const dictCode = row.dict_code || this.ids + getData(dictCode).then(response => { + this.form = response; + this.open = true; + this.title = "淇敼瀛楀吀鏁版嵁"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + // if (this.form.dict_code != undefined) { + if (this.editMode == true) { + updateData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + console.log(this.form); + addData(this.form).then(response => { + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const dictCodes = row.dict_code || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎瀛楀吀缂栫爜涓�"' + dictCodes + '"鐨勬暟鎹」锛�').then(function() { + return delData(dictCodes); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.$store.dispatch('dict/removeDict', this.queryParams.dictType); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/dict/data/export', { + ...this.queryParams + }, `data_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/dict/index.vue b/project-web/src/views/systemSetting/dict/index.vue new file mode 100644 index 0000000..73bece6 --- /dev/null +++ b/project-web/src/views/systemSetting/dict/index.vue @@ -0,0 +1,381 @@ +<template> + <div class="app-container"> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> +<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">--> +<!-- <el-form-item label="瀛楀吀鍚嶇О" prop="dictName">--> +<!-- <el-input--> +<!-- v-model="queryParams.dictName"--> +<!-- placeholder="璇疯緭鍏�"--> +<!-- clearable--> +<!-- style="width: 150px"--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鐘舵��" prop="status">--> +<!-- <el-select--> +<!-- v-model="queryParams.status"--> +<!-- placeholder="璇烽�夋嫨"--> +<!-- clearable--> +<!-- style="width: 150px"--> +<!-- >--> +<!-- <el-option--> +<!-- v-for="item in constants.normalOrDisabled"--> +<!-- :key="item.value"--> +<!-- :label="item.label"--> +<!-- :value="item.value"--> +<!-- />--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- <el-form-item>--> +<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌ヨ</el-button>--> +<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>--> +<!-- </el-form-item>--> +<!-- </el-form>--> +<!-- <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">--> +<!-- <el-table-column type="selection" width="55" align="center" />--> +<!-- <el-table-column label="瀛楀吀缂栧彿" align="center" prop="dict_id" />--> +<!-- <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dict_name" :show-overflow-tooltip="true" />--> +<!-- <el-table-column label="瀛楀吀绫诲瀷" align="center" :show-overflow-tooltip="true">--> +<!-- <template slot-scope="scope">--> +<!-- <router-link :to="'/systemSetting/dictdata/data/' + scope.row.dict_id" class="link-type">--> +<!-- <span>{{ scope.row.dict_type }}</span>--> +<!-- </router-link>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="鐘舵��" align="center" prop="status">--> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" />--> +<!-- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180">--> +<!-- <template slot-scope="scope">--> +<!-- <span>{{ dateTo(scope.row.create_time) }}</span>--> +<!-- </template>--> +<!-- <!– <template slot-scope="scope">–>--> +<!-- <!– <span>{{ parseTime(scope.row.create_time) }}</span>–>--> +<!-- <!– </template>–>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="180">--> +<!-- <template slot-scope="scope">--> +<!-- <el-button--> +<!-- size="mini"--> +<!-- type="text"--> +<!-- icon="el-icon-edit"--> +<!-- @click="handleUpdate(scope.row)"--> +<!-- v-hasPermi="['system:dict:edit']"--> +<!-- >淇敼</el-button>--> +<!-- <!– <el-button--> +<!-- size="mini"--> +<!-- type="text"--> +<!-- icon="el-icon-delete"--> +<!-- @click="handleDelete(scope.row)"--> +<!-- v-hasPermi="['system:dict:remove']"--> +<!-- >鍒犻櫎</el-button>–>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- </el-table>--> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="queryParams" :table="table"/> + </el-col> + </el-row> + </el-card> + </el-container> + <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="瀛楀吀鍚嶇О" prop="dictName"> + <el-input v-model="form.dictName" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" /> + </el-form-item> + <el-form-item label="瀛楀吀绫诲瀷" prop="dictType"> + <el-input v-model="form.dictType" placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�" /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="item in constants.normalOrDisabled" + :key="item.value" + :label="item.value" + >{{item.label}}</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type"; +import * as DateFormatter from "@/utils/DateFormatter"; +import MyTableV2 from "@/components/myTable/myTableV2"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' +export default { + name: "Dict", + components: { MyTableV2 }, + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 瀛楀吀琛ㄦ牸鏁版嵁 + typeList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 鏌ヨ鍙傛暟 + queryParams: { + dictName: undefined, + dictType: undefined, + status: 0 + }, + items:items, + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/system/dict/type/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [] + }, + // 鍒椾俊鎭� + columns: [ + {title: '瀛楀吀缂栧彿', field: 'dict_id', align: 'center', width: '100px'}, + {title: '瀛楀吀鍚嶇О', field: 'dict_name', align: 'left'}, + { + title: '瀛楀吀绫诲瀷', field: 'dict_type', align: 'left', + formatter: row => { + return { + value: row.dict_type + } + } + }, + { + title: '鐘舵��', field: 'status', align: 'center', width: '180px', + formatter: row => { + return { value: row.status=== 0? '鍚敤':'绂佺敤' } + } + }, + /*{ + title: '鍒涘缓鏃堕棿', field: 'create_time', align: 'center', width: '180px', + formatter: row => { + return { value: DateFormatter.LongToDateTime(row.create_time) } + } + },*/ + {title: '澶囨敞', field: 'remark', align: 'left', width: '200px'}, + ], + // 鎿嶄綔淇℃伅 + operation: { + // width: 150, + align: 'center', + show: false, // 鏄剧ず鎿嶄綔鍒� + attr: [ + // 鍒嗙被涓嬫湁姝e湪杩涜涓殑椤圭洰鏃讹紝缁欏嚭鎻愮ず涓嶅厑璁哥鐢ㄥ拰鍒犻櫎銆備笖绂佺敤涓�绾у垎绫诲墠闇�瑕佸厛绂佺敤涓嬮潰鐨勬墍鏈変簩绾э紝鏈夊惎鐢ㄧ殑浜岀骇鏃朵笉鍏佽绂佺敤涓�绾� + { + // checkPermission:'system:role:edit', + title: '淇敼', + events: row => { + this.handleUpdate(row) + } + }, + { + // checkPermission: 'system:role:remove', + title: '鍒犻櫎', + events: row => { + this.handleDelete(row) + } + }, + ] + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + dictName: [ + { required: true, message: "瀛楀吀鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + dictType: [ + { required: true, message: "瀛楀吀绫诲瀷涓嶈兘涓虹┖", trigger: "blur" } + ] + } + }; + }, + created() { + }, + methods: { + fifterForm(params) { + this.queryParams = Object.assign(this.queryParams, params) + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + dateTo(val) { + return DateFormatter.LongToDateTime(val); + }, + changeSize(e){ + this.queryParams.pageSize = e + this.getList() + }, + changePage(e){ + this.queryParams.pageNum = e + this.getList() + }, + /** 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 */ + getList() { + this.loading = true; + listType(this.queryParams).then(response => { + // this.typeList = response.rows; + this.typeList = response.datas; + this.total = response.totalRows; + this.loading = false; + } + ); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + dictId: undefined, + dictName: undefined, + dictType: undefined, + status: "0", + remark: undefined + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞瀛楀吀绫诲瀷"; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.dictId) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const dictId = row.dict_id || this.ids + getType(dictId).then(response => { + this.form = response; + this.form.dictName = this.form.dict_name + this.form.dictType = this.form.dict_type + this.open = true; + this.title = "淇敼瀛楀吀绫诲瀷"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.dictId != undefined) { + updateType(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addType(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const dictIds = row.dictId || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎瀛楀吀缂栧彿涓�"' + dictIds + '"鐨勬暟鎹」锛�').then(function() { + return delType(dictIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/dict/type/export', { + ...this.queryParams + }, `type_${new Date().getTime()}.xlsx`) + }, + /** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */ + handleRefreshCache() { + refreshCache().then(() => { + this.$modal.msgSuccess("鍒锋柊鎴愬姛"); + this.$store.dispatch('dict/cleanDict'); + }); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/dict/items.js b/project-web/src/views/systemSetting/dict/items.js new file mode 100644 index 0000000..f5596d1 --- /dev/null +++ b/project-web/src/views/systemSetting/dict/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'dictName', + label: '瀛楀吀鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + placeholder: '璇烽�夋嫨', + defaultValue: '0', + options: [ + { + value: '0', + label: '鍚敤' + }, + { + value: '1', + label: '绂佺敤' + } + ] + } +] diff --git a/project-web/src/views/systemSetting/menu/index.vue b/project-web/src/views/systemSetting/menu/index.vue new file mode 100644 index 0000000..3eb9a7d --- /dev/null +++ b/project-web/src/views/systemSetting/menu/index.vue @@ -0,0 +1,481 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <div slot="header" class="clearfix" ref="tableheader"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form-item label="鑿滃崟鍚嶇О" prop="menuName"> + <el-input + v-model="queryParams.menuName" + placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="queryParams.status" placeholder="鑿滃崟鐘舵��" clearable> + <el-option + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:menu:add']" + >鏂板 + </el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="info" + plain + icon="el-icon-sort" + size="mini" + @click="toggleExpandAll" + >灞曞紑/鎶樺彔 + </el-button> + </el-col> + </el-row> + </div> + + <el-table + v-if="refreshTable" + v-loading="loading" + :data="menuList" + row-key="menu_id" + :default-expand-all="isExpandAll" + :tree-props="{children: 'children', hasChildren: 'hasChildren'}" + > + <el-table-column prop="menu_name" label="鑿滃崟鍚嶇О" :show-overflow-tooltip="true" width="160"></el-table-column> + <el-table-column prop="icon" label="鍥炬爣" align="center" width="100"> + <template slot-scope="scope"> + <i :class="'el-icon-' + scope.row.icon" style="font-size: 20px"/> + </template> + </el-table-column> + <el-table-column prop="order_num" label="鎺掑簭" width="60"></el-table-column> + <el-table-column prop="perms" label="鏉冮檺鏍囪瘑" :show-overflow-tooltip="true"></el-table-column> + <el-table-column prop="component" label="缁勪欢璺緞" :show-overflow-tooltip="true"></el-table-column> + <el-table-column prop="status" label="鐘舵��" width="80"> + <template slot-scope="scope"> + <span>{{ scope.row.status == 0 ? '姝e父' : '绂佺敤' }}</span> + </template> + </el-table-column> + <el-table-column prop="is_show" label="鍙" width="80"> + <template slot-scope="scope"> + <el-tag :type="scope.row.is_show==1? '' : 'danger'">{{ scope.row.is_show == 1 ? '鏄剧ず' : '闅愯棌' }}</el-tag> + </template> + </el-table-column> + <el-table-column label="鑿滃崟绫诲瀷" align="center" prop="menu_type"> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" min-width="130" fixed="right"> + <template slot-scope="scope"> + <el-button + size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:menu:edit']">淇敼 + </el-button> + <el-button size="mini" type="text" @click="handleAdd(scope.row)" v-hasPermi="['system:menu:add']" + >鏂板 + </el-button + > + <el-button size="mini" type="text" @click="handleDelete(scope.row)" v-hasPermi="['system:menu:remove']" + >鍒犻櫎 + </el-button + > + </template> + </el-table-column> + </el-table> + </el-card> + + <!-- 娣诲姞鎴栦慨鏀硅彍鍗曞璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="100px"> + <el-row> + <el-col :span="24"> + <el-form-item label="涓婄骇鑿滃崟"> + <treeselect + v-model="form.parent_id" + :options="menuOptions" + :normalizer="normalizer" + :show-count="true" + placeholder="閫夋嫨涓婄骇鑿滃崟" + /> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="鑿滃崟绫诲瀷" prop="menu_type"> + <el-radio-group v-model="form.menu_type"> + <el-radio label="M">鐩綍</el-radio> + <el-radio label="C">鑿滃崟</el-radio> + <el-radio label="F">鎸夐挳</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="24" v-if="form.menu_type != 'F'"> + <el-form-item label="鑿滃崟鍥炬爣" prop="icon"> + <el-form-item> + <el-input placeholder="璇烽�夋嫨鑿滃崟鍥炬爣" v-model.trim="form.icon"> + <el-button slot="append" icon="el-icon-circle-plus-outline" @click="addIcon"></el-button> + </el-input> + </el-form-item> + <!-- <el-popover--> + <!-- placement="bottom-start"--> + <!-- width="460"--> + <!-- trigger="click"--> + <!-- @show="$refs['iconSelect'].reset()"--> + <!-- >--> + <!-- <IconSelect ref="iconSelect" @selected="selected" />--> + <!-- <el-input slot="reference" v-model="form.icon" placeholder="鐐瑰嚮閫夋嫨鍥炬爣" readonly>--> + <!-- <svg-icon--> + <!-- v-if="form.icon"--> + <!-- slot="prefix"--> + <!-- :icon-class="form.icon"--> + <!-- class="el-input__icon"--> + <!-- style="height: 32px;width: 16px;"--> + <!-- />--> + <!-- <i v-else slot="prefix" class="el-icon-search el-input__icon" />--> + <!-- </el-input>--> + <!-- </el-popover>--> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鑿滃崟鍚嶇О" prop="menu_name"> + <el-input v-model="form.menu_name" placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏄剧ず鎺掑簭" prop="order_num"> + <el-input-number v-model="form.order_num" controls-position="right" :min="0"/> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type != 'F'"> + <el-form-item> + <span slot="label"> + <el-tooltip content="閫夋嫨鏄閾惧垯璺敱鍦板潃闇�瑕佷互`http(s)://`寮�澶�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 鏄惁澶栭摼 + </span> + <el-radio-group v-model="form.is_frame"> + <el-radio label="0">鏄�</el-radio> + <el-radio label="1">鍚�</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type != 'F'"> + <el-form-item prop="path"> + <span slot="label"> + <el-tooltip content="璁块棶鐨勮矾鐢卞湴鍧�锛屽锛歚user`锛屽澶栫綉鍦板潃闇�鍐呴摼璁块棶鍒欎互`http(s)://`寮�澶�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 璺敱鍦板潃 + </span> + <el-input v-model="form.path" placeholder="璇疯緭鍏ヨ矾鐢卞湴鍧�"/> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type == 'C'"> + <el-form-item prop="component"> + <span slot="label"> + <el-tooltip content="璁块棶鐨勭粍浠惰矾寰勶紝濡傦細`system/user/index`锛岄粯璁ゅ湪`views`鐩綍涓�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 缁勪欢璺緞 + </span> + <el-input v-model="form.component" placeholder="璇疯緭鍏ョ粍浠惰矾寰�"/> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type != 'M'"> + <el-form-item> + <el-input v-model="form.perms" placeholder="璇疯緭鍏ユ潈闄愭爣璇�" maxlength="100"/> + <span slot="label"> + <el-tooltip content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 鏉冮檺瀛楃 + </span> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type == 'C'"> + <el-form-item> + <el-input v-model="form.query" placeholder="璇疯緭鍏ヨ矾鐢卞弬鏁�" maxlength="255"/> + <span slot="label"> + <el-tooltip content='璁块棶璺敱鐨勯粯璁や紶閫掑弬鏁帮紝濡傦細`{"id": 1, "name": "ry"}`' placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 璺敱鍙傛暟 + </span> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type == 'C'"> + <el-form-item> + <span slot="label"> + <el-tooltip content="閫夋嫨鏄垯浼氳`keep-alive`缂撳瓨锛岄渶瑕佸尮閰嶇粍浠剁殑`name`鍜屽湴鍧�淇濇寔涓�鑷�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 鏄惁缂撳瓨 + </span> + <el-radio-group v-model="form.is_cache"> + <el-radio :label="1">缂撳瓨</el-radio> + <el-radio :label="0">涓嶇紦瀛�</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type != 'F'"> + <el-form-item> + <span slot="label"> + <el-tooltip content="閫夋嫨闅愯棌鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼絾浠嶇劧鍙互璁块棶" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 鏄剧ず鐘舵�� + </span> + <el-radio-group v-model="form.is_show"> + <el-radio + v-for="dict in constants.showStatus" + :key="dict.value" + :label="dict.value" + >{{ dict.label }} + </el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.menu_type != 'F'"> + <el-form-item> + <span slot="label"> + <el-tooltip content="閫夋嫨绂佺敤鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼篃涓嶈兘琚闂�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 鑿滃崟鐘舵�� + </span> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.value" + >{{ dict.label }} + </el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +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/RuoYi/IconSelect"; + +export default { + name: "Menu", + // dicts: ['sys_show_hide', 'sys_normal_disable'], + components: {Treeselect}, + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鑿滃崟琛ㄦ牸鏍戞暟鎹� + menuList: [], + // 鑿滃崟鏍戦�夐」 + menuOptions: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁灞曞紑锛岄粯璁ゅ叏閮ㄦ姌鍙� + isExpandAll: false, + // 閲嶆柊娓叉煋琛ㄦ牸鐘舵�� + refreshTable: true, + // 鏌ヨ鍙傛暟 + queryParams: { + menuName: undefined, + visible: undefined + }, + // 琛ㄥ崟鍙傛暟 + form: { + menu_id: undefined, + parent_id: 0, + menu_name: undefined, + icon: undefined, + menu_type: "M", + order_num: undefined, + is_frame: "1", + is_cache: "0", + visible: "0", + status: "0" + }, + // 琛ㄥ崟鏍¢獙 + rules: { + menu_name: [ + {required: true, message: "鑿滃崟鍚嶇О涓嶈兘涓虹┖", trigger: "blur"} + ], + order_num: [ + {required: true, message: "鑿滃崟椤哄簭涓嶈兘涓虹┖", trigger: "blur"} + ], + path: [ + {required: true, message: "璺敱鍦板潃涓嶈兘涓虹┖", trigger: "blur"} + ] + } + }; + }, + created() { + this.getList(); + }, + methods: { + // 閫夋嫨鍥炬爣 + // selected(name) { + // this.form.icon = name; + // }, + // 鐐瑰嚮鍥炬爣 + addIcon() { + const _this = this; + this.$modalIcon(function (icon) { + _this.form.icon = icon; + }); + }, + /** 鏌ヨ鑿滃崟鍒楄〃 */ + getList() { + this.loading = true; + listMenu(this.queryParams).then(response => { + // console.log(response); + this.menuList = this.handleTree(response, "menu_id", "parent_id"); + this.loading = false; + }); + }, + /** 杞崲鑿滃崟鏁版嵁缁撴瀯 */ + normalizer(node) { + if (node.children && !node.children.length) { + delete node.children; + } + return { + id: node.menu_id, + label: node.menu_name, + children: node.children + }; + }, + /** 鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� */ + getTreeselect() { + listMenu().then(response => { + this.menuOptions = []; + const menu = {menu_id: 0, menu_name: '涓荤被鐩�', children: []}; + menu.children = this.handleTree(response, "menu_id", "parent_id"); + this.menuOptions.push(menu); + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + menu_id: '', + parent_id: 0, + menu_name: '', + icon: '', + menu_type: "M", + order_num: '', + is_frame: "1", + is_cache: "0", + visible: "0", + status: "0" + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd(row) { + this.reset(); + this.getTreeselect(); + if (row != null && row.menu_id) { + this.form.parent_id = row.menu_id; + } else { + this.form.parent_id = 0; + } + this.open = true; + this.title = "娣诲姞鑿滃崟"; + }, + /** 灞曞紑/鎶樺彔鎿嶄綔 */ + toggleExpandAll() { + this.refreshTable = false; + this.isExpandAll = !this.isExpandAll; + this.$nextTick(() => { + this.refreshTable = true; + }); + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + this.getTreeselect(); + getMenu(row.menu_id).then(response => { + this.form = response; + this.open = true; + this.title = "淇敼鑿滃崟"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function () { + this.$refs["form"].validate(valid => { + if (valid) { + console.log(this.form,'0-0-0-') + if (this.form.menu_id != undefined) { + delete this.form.icon_info + updateMenu(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + delete this.form.icon_info + addMenu(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.menu_name + '"鐨勬暟鎹」锛�').then(function () { + return delMenu(row.menu_id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => { + }); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/role/authUser.vue b/project-web/src/views/systemSetting/role/authUser.vue new file mode 100644 index 0000000..8646e69 --- /dev/null +++ b/project-web/src/views/systemSetting/role/authUser.vue @@ -0,0 +1,209 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + clearable + style="width: 240px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> + <el-input + v-model="queryParams.phonenumber" + placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" + clearable + style="width: 240px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="openSelectUser" + v-hasPermi="['system:role:add']" + >娣诲姞鐢ㄦ埛</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-circle-close" + size="mini" + :disabled="multiple" + @click="cancelAuthUserAll" + v-hasPermi="['system:role:remove']" + >鎵归噺鍙栨秷鎺堟潈</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-close" + size="mini" + @click="handleClose" + >鍏抽棴</el-button> + </el-col> + </el-row> + + <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="鐢ㄦ埛鍚嶇О" prop="user_name" :show-overflow-tooltip="true" /> + <el-table-column label="鐢ㄦ埛鏄电О" prop="nick_name" :show-overflow-tooltip="true" /> + <el-table-column label="閭" prop="email" :show-overflow-tooltip="true" /> + <el-table-column label="鎵嬫満" prop="phonenumber" :show-overflow-tooltip="true" /> + <el-table-column label="鐘舵��" align="center" prop="status"> + <template slot-scope="scope"> + <span>{{ scope.row.status == 0? '姝e父':'绂佺敤' }}</span> + </template> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.create_time) }}</span> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-circle-close" + @click="cancelAuthUser(scope.row)" + v-hasPermi="['system:role:remove']" + >鍙栨秷鎺堟潈</el-button> + </template> + </el-table-column> + </el-table> + +<!-- <pagination--> +<!-- v-show="total>0"--> +<!-- :total="total"--> +<!-- :page.sync="queryParams.pageNum"--> +<!-- :limit.sync="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> + <el-pagination + :current-page="queryParams.pageNum" + :page-sizes="constants.page.limit" + :layout="constants.page.layout" + :total="this.total" + @size-change="getList" + @current-change="getList" + /> + </el-card> + <select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery" /> + </div> +</template> + +<script> +import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role"; +import selectUser from "./selectUser"; + +export default { + name: "AuthUser", + // dicts: ['sys_normal_disable'], + components: { selectUser }, + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鐢ㄦ埛缁� + userIds: [], + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: [], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + roleId: undefined, + userName: undefined, + phonenumber: undefined + } + }; + }, + created() { + const roleId = this.$route.params && this.$route.params.roleId; + if (roleId) { + this.queryParams.roleId = roleId; + this.getList(); + } + }, + methods: { + /** 鏌ヨ鎺堟潈鐢ㄦ埛鍒楄〃 */ + getList() { + this.loading = true; + allocatedUserList(this.queryParams).then(response => { + this.userList = response.datas; + this.total = response.totalRows; + this.loading = false; + } + ); + }, + // 杩斿洖鎸夐挳 + handleClose() { + const obj = { path: "/system/role" }; + this.$tab.closeOpenPage(obj); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.userIds = selection.map(item => item.userId) + this.multiple = !selection.length + }, + /** 鎵撳紑鎺堟潈鐢ㄦ埛琛ㄥ脊绐� */ + openSelectUser() { + this.$refs.select.show(); + }, + /** 鍙栨秷鎺堟潈鎸夐挳鎿嶄綔 */ + cancelAuthUser(row) { + const roleId = this.queryParams.roleId; + this.$modal.confirm('纭瑕佸彇娑堣鐢ㄦ埛"' + row.user_name + '"瑙掕壊鍚楋紵').then(function() { + return authUserCancel({ userId: row.id, roleId: roleId }); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍙栨秷鎺堟潈鎴愬姛"); + }).catch(() => {}); + }, + /** 鎵归噺鍙栨秷鎺堟潈鎸夐挳鎿嶄綔 */ + cancelAuthUserAll(row) { + const roleId = this.queryParams.roleId; + const userIds = this.userIds.join(","); + this.$modal.confirm('鏄惁鍙栨秷閫変腑鐢ㄦ埛鎺堟潈鏁版嵁椤癸紵').then(function() { + return authUserCancelAll({ roleId: roleId, userIds: userIds }); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍙栨秷鎺堟潈鎴愬姛"); + }).catch(() => {}); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/role/index.vue b/project-web/src/views/systemSetting/role/index.vue new file mode 100644 index 0000000..e2e25f5 --- /dev/null +++ b/project-web/src/views/systemSetting/role/index.vue @@ -0,0 +1,710 @@ +<template> + <div class="app-container"> + <el-container> + <el-card class="box-card" style="width: 100%" shadow="never"> + <!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">--> + <!-- <el-form-item label="瑙掕壊鍚嶇О" prop="roleName">--> + <!-- <el-input--> + <!-- v-model="queryParams.roleName"--> + <!-- placeholder="璇疯緭鍏�"--> + <!-- clearable--> + <!-- @keyup.enter.native="handleQuery"--> + <!-- style="width: 150px"--> + <!-- />--> + <!-- </el-form-item>--> + <!-- <el-form-item label="鐘舵��" prop="status">--> + <!-- <el-select--> + <!-- style="width: 150px"--> + <!-- v-model="queryParams.status"--> + <!-- placeholder="璇烽�夋嫨"--> + <!-- clearable>--> + <!-- <el-option--> + <!-- v-for="dict in constants.normalOrDisabled"--> + <!-- :key="dict.value"--> + <!-- :label="dict.label"--> + <!-- :value="dict.value"--> + <!-- />--> + <!-- </el-select>--> + <!-- </el-form-item>--> + <!-- <el-form-item>--> + <!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌ヨ</el-button>--> + <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>--> + <!-- </el-form-item>--> + <!-- </el-form>--> + <!-- <el-row :gutter="10" class="mb8">--> + <!-- <el-col :span="1.5">--> + <!-- <el-button--> + <!-- type="primary"--> + <!-- plain--> + <!-- icon="el-icon-plus"--> + <!-- size="mini"--> + <!-- @click="handleAdd"--> + <!-- v-hasPermi="['system:role:add']"--> + <!-- >鏂板</el-button>--> + <!-- </el-col>--> + <!-- </el-row>--> + <!-- <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">--> + <!-- <el-table-column type="selection" width="55" align="center" />--> + <!-- <el-table-column label="瑙掕壊缂栧彿" prop="role_id" width="160" />--> + <!-- <el-table-column label="瑙掕壊鍚嶇О" prop="role_name" :show-overflow-tooltip="true" width="150" />--> + <!-- <el-table-column label="鏉冮檺瀛楃" prop="role_key" :show-overflow-tooltip="true" width="150" />--> + <!-- <el-table-column label="鏄剧ず椤哄簭" prop="role_sort" width="100" />--> + <!-- <el-table-column label="鐘舵��" align="center" width="100">--> + <!-- <template slot-scope="scope">--> + <!-- <el-switch--> + <!-- v-model="scope.row.status"--> + <!-- :active-value=0--> + <!-- :inactive-value=1--> + <!-- @change="handleStatusChange(scope.row)"--> + <!-- ></el-switch>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column label="澶囨敞" align="center" prop="remark" width="180">--> + <!-- </el-table-column>--> + <!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="180">--> + <!-- <template slot-scope="scope">--> + <!-- <el-button--> + <!-- size="mini"--> + <!-- type="text"--> + <!-- icon="el-icon-edit"--> + <!-- @click="handleUpdate(scope.row)"--> + <!-- v-hasPermi="['system:role:edit']"--> + <!-- >淇敼</el-button>--> + <!-- <el-button--> + <!-- size="mini"--> + <!-- type="text"--> + <!-- icon="el-icon-delete"--> + <!-- @click="handleDelete(scope.row)"--> + <!-- v-hasPermi="['system:role:remove']"--> + <!-- >鍒犻櫎</el-button>--> + <!--<!– <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">--> + <!-- <span class="el-dropdown-link">--> + <!-- <i class="el-icon-d-arrow-right el-icon--right"></i>鏇村--> + <!-- </span>--> + <!-- <el-dropdown-menu slot="dropdown">--> + <!-- <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"--> + <!-- v-hasPermi="['system:role:edit']">鏁版嵁鏉冮檺</el-dropdown-item>--> + <!-- <el-dropdown-item command="handleAuthUser" icon="el-icon-user"--> + <!-- v-hasPermi="['system:role:edit']">鍒嗛厤鐢ㄦ埛</el-dropdown-item>--> + <!-- </el-dropdown-menu>--> + <!-- </el-dropdown>–>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- </el-table>--> + <!-- <el-pagination--> + <!-- :current-page="queryParams.pageNum"--> + <!-- :page-sizes="constants.page.limit"--> + <!-- :layout="constants.page.layout"--> + <!-- :total="this.total"--> + <!-- @size-change="changeSize"--> + <!-- @current-change="changePage"--> + <!-- />--> + <!--鎼滅储鏉′欢--> + <div class="filter-container"> + <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search> + </div> + <el-row style="margin-top: 8px"> + <el-col> + <!--鍒楄〃--> + <my-table-v2 ref="myTable" :filter="queryParams" :table="table" v-if="tableShow"/> + </el-col> + </el-row> + </el-card> + </el-container> + <!-- 娣诲姞鎴栦慨鏀硅鑹查厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="100px"> + <el-form-item label="瑙掕壊鍚嶇О" prop="role_name"> + <el-input v-model="form.role_name" placeholder="璇疯緭鍏ヨ鑹插悕绉�"/> + </el-form-item> + <el-form-item prop="role_key"> + <span slot="label"> + <el-tooltip content="瑙掕壊鏍囪瘑锛岀洰鍓嶆殏鏈娇鐢�" placement="top"> + <i class="el-icon-question"></i> + </el-tooltip> + 瑙掕壊鏍囪瘑 + </span> + <el-input v-model="form.role_key" placeholder="璇疯緭鍏ヨ鑹叉爣璇�"/> + </el-form-item> + <el-form-item label="瑙掕壊椤哄簭" prop="role_sort"> + <el-input-number v-model="form.role_sort" controls-position="right" :min="0"/> + </el-form-item> + <el-form-item label="鐘舵��"> + <el-radio-group v-model="form.status"> + <el-radio :label="0">姝e父</el-radio> + <el-radio :label="1">绂佺敤</el-radio> + <!-- <el-radio--> + <!-- v-for="dict in constants.normalOrDisabled"--> + <!-- :key="dict.value"--> + <!-- :label="dict.value"--> + <!-- >{{dict.label}}</el-radio>--> + </el-radio-group> + </el-form-item> + <el-form-item label="瑙掕壊鑼冨洿"> + <el-radio-group v-model="form.data_scope"> + <el-radio :label="1" checked>鐪�</el-radio> + <el-radio :label="2">甯�</el-radio> + <el-radio :label="3">鍘�</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鑿滃崟鏉冮檺"> + <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">灞曞紑/鎶樺彔</el-checkbox> + <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox> + <el-checkbox v-model="form.menu_check_strictly" @change="handleCheckedTreeConnect($event, 'menu')">鐖跺瓙鑱斿姩 + </el-checkbox> + <el-tree + class="tree-border" + :data="menuOptions" + show-checkbox + ref="menu" + node-key="menu_id" + :check-strictly="!form.menu_check_strictly" + empty-text="鍔犺浇涓紝璇风◢鍊�" + :props="defaultProps" + ></el-tree> + </el-form-item> + <el-form-item label="澶囨敞"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer" align="center"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import {listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus} from "@/api/system/role"; +import {treeselect as menuTreeselect, roleMenuTreeselect} from "@/api/system/menu"; +import {treeselect as deptTreeselect, roleDeptTreeselect, listOrgRoot} from "@/api/system/dept"; +import MyTableV2 from "@/components/myTable/myTableV2"; +import SettingIplatform from '@/utils/settingIplatform'; +import items from './items' + +export default { + name: "Role", + components: {MyTableV2}, + data() { + return { + radio: 3, + scopeOption: [ + {value: 1, label: '鐪�'}, + {value: 2, label: '甯�'}, + {value: 3, label: '鍘�'}, + ], + constants: this.$constants, + // 2022-12-15 鏍规満鏋勫垪琛紝涓汉鍙兘鍒楀嚭鑷繁鎵�鍦ㄦ牴鏈烘瀯 + rootOrgList: [], + // 2022-12-15 瓒呯骇绠$悊鍛橀�夋嫨鐨勯《绾ф満鏋処D + selectedRootOrgId: undefined, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 瑙掕壊琛ㄦ牸鏁版嵁 + roleList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛� + openDataScope: false, + menuExpand: false, + menuNodeAll: false, + deptExpand: true, + deptNodeAll: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 鏁版嵁鑼冨洿閫夐」 + dataScopeOptions: [ + { + value: "1", + label: "鍏ㄩ儴鏁版嵁鏉冮檺" + }, + { + value: "2", + label: "鑷畾鏁版嵁鏉冮檺" + }, + { + value: "3", + label: "鏈儴闂ㄦ暟鎹潈闄�" + }, + { + value: "4", + label: "鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺" + }, + { + value: "5", + label: "浠呮湰浜烘暟鎹潈闄�" + } + ], + // 鑿滃崟鍒楄〃 + menuOptions: [], + // 閮ㄩ棬鍒楄〃 + deptOptions: [], + // 鏌ヨ鍙傛暟 + items: items, + queryParams: { + roleName: '', + roleKey: '', + status: 0 + }, + tableShow: false, + // 琛ㄦ牸鏁版嵁 + table: { + showIndex: true, // 鏄惁鏄剧ず搴忓彿 + expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁 + url: SettingIplatform.apiBaseURL + '/system/role/list', // 璇锋眰鍦板潃 + // 宸ュ叿鏉� + tools: { + columnsCtrl: {// 鍒楁帶鍒舵寜閽� + show: false + }, + generalExport: {// 閫氱敤瀵煎嚭鎸夐挳 + show: false + }, + // 鑷畾涔夊伐鍏锋潯鎸夐挳 + custom: [ + { + name: '鏂板', + checkPermission:'system:role:edit', + click: () => { + this.handleAdd(null) + } + } + ] + }, + // 鍒椾俊鎭� + columns: [ + {title: '瑙掕壊缂栧彿', field: 'role_id', align: 'center', width: '200px'}, + {title: '瑙掕壊鍚嶇О', field: 'role_name', align: 'center', width: '260px'}, + {title: '鏉冮檺瀛楃', field: 'role_key', align: 'center', width: '260px'}, + {title: '鏄剧ず椤哄簭', field: 'role_sort', align: 'center', width: '100px'}, + { + title: '鐘舵��', field: 'status', align: 'center', width: '100px', + switch: row => { + const result = {} + if (row.status == 0) { + Object.assign(result, { + value: true, // 寮� + label: '鍚敤', // 寮�鐨勬弿杩� + click: () => { // 鐐瑰嚮浜嬩欢 + this.handleStatusChange(row) + } + }) + } else { + Object.assign(result, { + value: false, // 鍏� + label: '绂佺敤', // 鍏崇殑鎻忚堪 + click: () => { + this.handleStatusChange(row) + } + }) + } + return result + } + }, + {title: '澶囨敞', field: 'remark', align: 'left', width: '250px'}, + ], + // 鎿嶄綔淇℃伅 + operation: { + // width: 150, + align: 'center', + show: true, // 鏄剧ず鎿嶄綔鍒� + attr: [ + // 鍒嗙被涓嬫湁姝e湪杩涜涓殑椤圭洰鏃讹紝缁欏嚭鎻愮ず涓嶅厑璁哥鐢ㄥ拰鍒犻櫎銆備笖绂佺敤涓�绾у垎绫诲墠闇�瑕佸厛绂佺敤涓嬮潰鐨勬墍鏈変簩绾э紝鏈夊惎鐢ㄧ殑浜岀骇鏃朵笉鍏佽绂佺敤涓�绾� + { + // checkPermission:'system:role:edit', + title: '淇敼', + events: row => { + this.handleUpdate(row) + } + }, + { + // checkPermission: 'system:role:remove', + title: '鍒犻櫎', + events: row => { + this.handleDelete(row) + } + }, + ]/*, + more:[ + { + // checkPermission:'system:role:edit', + title: '鏁版嵁鏉冮檺', + events: row => { + this.handleDataScope(row); + } + }, + { + // checkPermission:'system:role:edit', + title: '鍒嗛厤鐢ㄦ埛', + events: row => { + this.handleAuthUser(row); + } + }, + ]*/ + }, + paging: { + show: true, // 鏄剧ず鍒嗛〉 + // 鍒嗛〉淇℃伅 + page: { + small: false, + pageNum: 1, + pageSize: 10, + total: 0 + } + } + }, + // 琛ㄥ崟鍙傛暟 + form: { + data_scope: 1, + status: 1 + }, + defaultProps: { + children: "children", + label: "menu_name" + }, + // 琛ㄥ崟鏍¢獙 + rules: { + role_name: [ + {required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "blur"} + ], + role_key: [ + {required: false, message: "鏉冮檺瀛楃涓嶈兘涓虹┖", trigger: "blur"} + ], + role_sort: [ + {required: true, message: "瑙掕壊椤哄簭涓嶈兘涓虹┖", trigger: "blur"} + ] + } + }; + }, + created() { + this.getRootOrgList(); + }, + methods: { + fifterForm(params) { + this.queryParams = Object.assign(this.queryParams, params) + this.search(1) + }, + // 鏌ヨtable鍒楄〃 + search(pageNum) { + if (pageNum != undefined) { + this.$refs.myTable.search(pageNum) + } else { + this.$refs.myTable.search() + } + }, + /** 鑾峰彇椤剁骇鏈烘瀯鍒楄〃閫夋嫨妗� 2022-12-15 */ + getRootOrgList() { + this.loading = true; + listOrgRoot().then(response => { + this.rootOrgList = response; + this.selectedRootOrgId = this.rootOrgList[0].id; + this.queryParams.orgId = this.selectedRootOrgId; + this.loading = false; + }).then(() => { + this.tableShow = true + this.search(1); + }).catch(function () { + // this.loading = false; + }); + }, + /** 鏌ヨ瑙掕壊鍒楄〃 */ + getList() { + this.loading = true; + this.selectedRootOrgId = this.queryParams.orgId; + listRole(this.queryParams).then(response => { + this.roleList = response.datas; + this.total = response.totalRows; + this.loading = false; + } + ); + }, + /** 鏌ヨ鑿滃崟鏍戠粨鏋� */ + getMenuTreeselect() { + menuTreeselect().then(response => { + this.menuOptions = response; + }); + }, + /** 鏌ヨ閮ㄩ棬鏍戠粨鏋� */ + getDeptTreeselect() { + deptTreeselect().then(response => { + this.deptOptions = response; + }); + }, + // 鎵�鏈夎彍鍗曡妭鐐规暟鎹� + getMenuAllCheckedKeys() { + // 鐩墠琚�変腑鐨勮彍鍗曡妭鐐� + let checkedKeys = this.$refs.menu.getCheckedKeys(); + // 鍗婇�変腑鐨勮彍鍗曡妭鐐� + let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys(); + checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys); + return checkedKeys; + }, + // 鎵�鏈夐儴闂ㄨ妭鐐规暟鎹� + getDeptAllCheckedKeys() { + // 鐩墠琚�変腑鐨勯儴闂ㄨ妭鐐� + let checkedKeys = this.$refs.dept.getCheckedKeys(); + // 鍗婇�変腑鐨勯儴闂ㄨ妭鐐� + let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys(); + checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys); + return checkedKeys; + }, + /** 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戠粨鏋� */ + getRoleMenuTreeselect(roleId) { + return roleMenuTreeselect(roleId).then(response => { + this.menuOptions = response.menus; + return response; + }); + }, + /** 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� */ + getRoleDeptTreeselect(roleId) { + return roleDeptTreeselect(roleId).then(response => { + this.deptOptions = response.depts; + return response; + }); + }, + // 瑙掕壊鐘舵�佷慨鏀� + handleStatusChange(row) { + let text = row.status == 0 ? "绂佺敤" : "鍚敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.role_name + '"瑙掕壊鍚楋紵').then(function () { + row.status = row.status == 0 ? 1 : 0; + return changeRoleStatus(row.role_id, row.status); + }).then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + this.search(); + }).catch(function () { + row.status = row.status == 0 ? 1 : 0; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級 + cancelDataScope() { + this.openDataScope = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + if (this.$refs.menu != undefined) { + this.$refs.menu.setCheckedKeys([]); + } + this.menuExpand = false, + this.menuNodeAll = false, + this.deptExpand = true, + this.deptNodeAll = false, + this.form = { + org_id: undefined, // 椤剁骇鏈烘瀯ID + role_id: undefined, + role_name: undefined, + role_key: "None", + role_sort: 0, + status: 0, + menuIds: [], + deptIds: [], + menu_check_strictly: true, + dept_check_strictly: true, + remark: undefined + }; + this.resetForm("form"); + }, + changeSize(e) { + this.queryParams.pageSize = e + this.getList() + }, + changePage(e) { + this.queryParams.pageNum = e + this.getList() + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.queryParams.orgId = this.selectedRootOrgId; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.roleId) + this.single = selection.length != 1 + this.multiple = !selection.length + }, + // 鏇村鎿嶄綔瑙﹀彂 + handleCommand(command, row) { + switch (command) { + case "handleDataScope": + this.handleDataScope(row); + break; + case "handleAuthUser": + this.handleAuthUser(row); + break; + default: + break; + } + }, + // 鏍戞潈闄愶紙灞曞紑/鎶樺彔锛� + handleCheckedTreeExpand(value, type) { + if (type == 'menu') { + let treeList = this.menuOptions; + for (let i = 0; i < treeList.length; i++) { + this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value; + } + } else if (type == 'dept') { + let treeList = this.deptOptions; + for (let i = 0; i < treeList.length; i++) { + this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value; + } + } + }, + // 鏍戞潈闄愶紙鍏ㄩ��/鍏ㄤ笉閫夛級 + handleCheckedTreeNodeAll(value, type) { + if (type == 'menu') { + this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []); + } else if (type == 'dept') { + this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []); + } + }, + // 鏍戞潈闄愶紙鐖跺瓙鑱斿姩锛� + handleCheckedTreeConnect(value, type) { + if (type == 'menu') { + // this.form.menu_check_strictly = value ? true: false; + this.form.menu_check_strictly = value ? true : false; + } else if (type == 'dept') { + this.form.dept_check_strictly = value ? true : false; + } + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.getMenuTreeselect(); + // 2022-12-18 娣诲姞涓婇《绾ф満鏋処D + this.form.org_id = this.selectedRootOrgId; + this.open = true; + this.title = "娣诲姞瑙掕壊"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + // const roleId = row.role_id || this.ids + const roleId = row.role_id; + const roleMenu = this.getRoleMenuTreeselect(roleId); + getRole(roleId).then(response => { + this.form = response; + this.open = true; + this.$nextTick(() => { + roleMenu.then(res => { + let checkedKeys = res.checkedKeys; + if (checkedKeys) { + checkedKeys.forEach((v) => { + this.$nextTick(() => { + this.$refs.menu.setChecked(v, true, false); + }) + }) + } + }); + }); + this.title = "淇敼瑙掕壊"; + }); + }, + /** 閫夋嫨瑙掕壊鏉冮檺鑼冨洿瑙﹀彂 */ + dataScopeSelectChange(value) { + if (value !== '2') { + this.$refs.dept.setCheckedKeys([]); + } + }, + /** 鍒嗛厤鏁版嵁鏉冮檺鎿嶄綔 */ + handleDataScope(row) { + this.reset(); + const roleDeptTreeselect = this.getRoleDeptTreeselect(row.role_id); + getRole(row.role_id).then(response => { + this.form = response; + this.openDataScope = true; + this.$nextTick(() => { + roleDeptTreeselect.then(res => { + this.$refs.dept.setCheckedKeys(res.checkedKeys); + }); + }); + this.title = "鍒嗛厤鏁版嵁鏉冮檺"; + }); + }, + /** 鍒嗛厤鐢ㄦ埛鎿嶄綔 */ + handleAuthUser: function (row) { + const roleId = row.role_id; + this.$router.push("/system/role-auth/user/" + roleId); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function () { + this.$refs["form"].validate(valid => { + if (valid) { + // 2022-12-19,鎶婅繖涓や釜瀛楁璁剧疆涓烘暟鍊硷紝鐩墠鏆備笉浣跨敤锛岃涓嶅悗鍙扮被鍨嬭浆鎹㈤敊璇�(boolean) + this.form.menu_check_strictly = 1; + this.form.dept_check_strictly = 1; + + if (this.form.role_id != undefined) { + this.form.menuIds = this.getMenuAllCheckedKeys(); + updateRole(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + this.form.menuIds = this.getMenuAllCheckedKeys(); + addRole(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */ + submitDataScope: function () { + if (this.form.roleId != undefined) { + this.form.deptIds = this.getDeptAllCheckedKeys(); + dataScope(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.openDataScope = false; + this.getList(); + }); + } + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const roleIds = row.role_id; + this.$modal.confirm('鏄惁纭鍒犻櫎瑙掕壊涓�"' + row.role_name + '"鐨勬暟鎹」锛�').then(function () { + return delRole(roleIds); + }).then(() => { + this.this.search(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => { + }); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/role/export', { + ...this.queryParams + }, `role_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/role/items.js b/project-web/src/views/systemSetting/role/items.js new file mode 100644 index 0000000..4d6cd79 --- /dev/null +++ b/project-web/src/views/systemSetting/role/items.js @@ -0,0 +1,26 @@ +export default [ + { + type: 'text', + dataIndex: 'roleName', + label: '瑙掕壊鍚嶇О', + placeholder: '璇疯緭鍏�', + defaultValue: '' + }, + { + type: 'select', + dataIndex: 'status', + label: '鐘舵��', + defaultValue: '0', + placeholder: '璇烽�夋嫨', + options: [ + { + value: '0', + label: '鍚敤' + }, + { + value: '1', + label: '绂佺敤' + } + ] + } +] diff --git a/project-web/src/views/systemSetting/role/selectUser.vue b/project-web/src/views/systemSetting/role/selectUser.vue new file mode 100644 index 0000000..3a3b121 --- /dev/null +++ b/project-web/src/views/systemSetting/role/selectUser.vue @@ -0,0 +1,147 @@ +<template> + <!-- 鎺堟潈鐢ㄦ埛 --> + <el-dialog title="閫夋嫨鐢ㄦ埛" :visible.sync="visible" width="800px" top="5vh" append-to-body> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> + <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> + <el-input + v-model="queryParams.phonenumber" + placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + <el-row> + <el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px"> + <el-table-column type="selection" width="55"></el-table-column> + <el-table-column label="鐢ㄦ埛鍚嶇О" prop="user_name" :show-overflow-tooltip="true" /> + <el-table-column label="鐢ㄦ埛鏄电О" prop="nick_name" :show-overflow-tooltip="true" /> + <el-table-column label="閭" prop="email" :show-overflow-tooltip="true" /> + <el-table-column label="鎵嬫満" prop="phonenumber" :show-overflow-tooltip="true" /> + <el-table-column label="鐘舵��" align="center" prop="status"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> + </template> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.create_time) }}</span> + </template> + </el-table-column> + </el-table> +<!-- <pagination--> +<!-- v-show="total>0"--> +<!-- :total="total"--> +<!-- :page.sync="queryParams.pageNum"--> +<!-- :limit.sync="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> + <el-pagination + :current-page="queryParams.pageNum" + :page-sizes="constants.page.limit" + :layout="constants.page.layout" + :total="this.total" + @size-change="getList" + @current-change="getList" + /> + </el-row> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="handleSelectUser">纭� 瀹�</el-button> + <el-button @click="visible = false">鍙� 娑�</el-button> + </div> + </el-dialog> +</template> + +<script> +import { unallocatedUserList, authUserSelectAll } from "@/api/system/role"; +export default { + props: { + // 瑙掕壊缂栧彿 + roleId: { + type: [Number, String] + } + }, + data() { + return { + constants: this.$constants, + // 閬僵灞� + visible: false, + // 閫変腑鏁扮粍鍊� + userIds: [], + // 鎬绘潯鏁� + total: 0, + // 鏈巿鏉冪敤鎴锋暟鎹� + userList: [], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + roleId: undefined, + userName: undefined, + phonenumber: undefined + } + }; + }, + methods: { + // 鏄剧ず寮规 + show() { + this.queryParams.roleId = this.roleId; + this.getList(); + this.visible = true; + }, + clickRow(row) { + this.$refs.table.toggleRowSelection(row); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.userIds = selection.map(item => item.id); + }, + // 鏌ヨ琛ㄦ暟鎹� + getList() { + unallocatedUserList(this.queryParams).then(res => { + this.userList = res.datas; + this.total = res.totalRows; + }); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + /** 閫夋嫨鎺堟潈鐢ㄦ埛鎿嶄綔 */ + handleSelectUser() { + const roleId = this.queryParams.roleId; + const userIds = this.userIds.join(","); + if (userIds == "") { + this.$modal.msgError("璇烽�夋嫨瑕佸垎閰嶇殑鐢ㄦ埛"); + return; + } + // console.log("roleId = " + roleId + ", " + userIds); + authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => { + this.$modal.msgSuccess(res.msg); + if (res.code === 1) { + this.visible = false; + this.$emit("ok"); + } + }); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/user/authRole.vue b/project-web/src/views/systemSetting/user/authRole.vue new file mode 100644 index 0000000..5397cc0 --- /dev/null +++ b/project-web/src/views/systemSetting/user/authRole.vue @@ -0,0 +1,117 @@ +<template> + <div class="app-container"> + <h4 class="form-header h4">鍩烘湰淇℃伅</h4> + <el-form ref="form" :model="form" label-width="80px"> + <el-row> + <el-col :span="8" :offset="2"> + <el-form-item label="鐢ㄦ埛鏄电О" prop="nick_name"> + <el-input v-model="form.nick_name" disabled /> + </el-form-item> + </el-col> + <el-col :span="8" :offset="2"> + <el-form-item label="鐧诲綍璐﹀彿" prop="user_name"> + <el-input v-model="form.user_name" disabled /> + </el-form-item> + </el-col> + </el-row> + </el-form> + + <h4 class="form-header h4">瑙掕壊淇℃伅</h4> + <el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="table" @selection-change="handleSelectionChange" :data="roles.slice((pageNum-1)*pageSize,pageNum*pageSize)"> + <el-table-column label="搴忓彿" type="index" align="center"> + <template slot-scope="scope"> + <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> + </template> + </el-table-column> + <el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column> + <el-table-column label="瑙掕壊缂栧彿" align="center" prop="role_id" /> + <el-table-column label="瑙掕壊鍚嶇О" align="center" prop="role_name" /> + <el-table-column label="鏉冮檺瀛楃" align="center" prop="role_key" /> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.create_time) }}</span> + </template> + </el-table-column> + </el-table> + + <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" /> + + <el-form label-width="100px"> + <el-form-item style="text-align: center;margin-left:-120px;margin-top:30px;"> + <el-button type="primary" @click="submitForm()">鎻愪氦</el-button> + <el-button @click="close()">杩斿洖</el-button> + </el-form-item> + </el-form> + </div> +</template> + +<script> +import { getAuthRole, updateAuthRole } from "@/api/system/user"; + +export default { + name: "AuthRole", + data() { + return { + // 閬僵灞� + loading: true, + // 鍒嗛〉淇℃伅 + total: 0, + pageNum: 1, + pageSize: 10, + // 閫変腑瑙掕壊缂栧彿 + roleIds:[], + // 瑙掕壊淇℃伅 + roles: [], + // 鐢ㄦ埛淇℃伅 + form: {} + }; + }, + created() { + const userId = this.$route.params && this.$route.params.userId; + if (userId) { + this.loading = true; + getAuthRole(userId).then((response) => { + this.form = response.data.user; + this.roles = response.data.roles; + this.total = this.roles.length; + this.$nextTick(() => { + this.roles.forEach((row) => { + if (row.flag) { + this.$refs.table.toggleRowSelection(row); + } + }); + }); + this.loading = false; + }); + } + }, + methods: { + /** 鍗曞嚮閫変腑琛屾暟鎹� */ + clickRow(row) { + this.$refs.table.toggleRowSelection(row); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.roleIds = selection.map((item) => item.role_id); + }, + // 淇濆瓨閫変腑鐨勬暟鎹紪鍙� + getRowKey(row) { + return row.role_id; + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + const userId = this.form.id; + const roleIds = this.roleIds.join(","); + updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => { + this.$modal.msgSuccess("鎺堟潈鎴愬姛"); + this.close(); + }); + }, + /** 鍏抽棴鎸夐挳 */ + close() { + const obj = { path: "/system/user" }; + this.$tab.closeOpenPage(obj); + }, + }, +}; +</script> diff --git a/project-web/src/views/systemSetting/user/index.vue b/project-web/src/views/systemSetting/user/index.vue new file mode 100644 index 0000000..eea60e2 --- /dev/null +++ b/project-web/src/views/systemSetting/user/index.vue @@ -0,0 +1,715 @@ +<template> + <div class="divBox"> + <el-card class="box-card"> + <el-row :gutter="30"> + <!--閮ㄩ棬鏁版嵁--> + <el-col :span="4" :xs="24"> + <div class="head-container"> + <el-input + v-model="deptName" + placeholder="璇疯緭鍏ユ満鏋勫悕绉�" + clearable + size="small" + prefix-icon="el-icon-search" + style="margin-bottom: 20px" + /> + </div> + <div class="head-container"> + <el-tree + :data="orgListOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + default-expand-all + highlight-current + @node-click="handleNodeClick" + /> + </div> + </el-col> + <!--鐢ㄦ埛鏁版嵁--> + <el-col :span="20" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏ョ櫥褰曞悕绉�" + clearable + style="width: 160px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> + <el-input + v-model="queryParams.phonenumber" + placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" + clearable + style="width: 160px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select + v-model="queryParams.status" + placeholder="璇烽�夋嫨" + clearable + style="width: 130px" + > + <el-option + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:user:add']" + >鏂板</el-button> + <el-button + type="info" + plain + icon="el-icon-upload2" + size="mini" + @click="handleImport" + v-hasPermi="['system:user:import']" + >瀵煎叆</el-button> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:user:export']" + >瀵煎嚭</el-button> + </el-form-item> + </el-form> + +<!-- <el-row :gutter="10" class="mb8">--> +<!-- <el-col :span="1.5">--> +<!-- </el-col>--> +<!-- <el-col :span="1.5">--> +<!-- </el-col>--> +<!-- </el-row>--> + + <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="50" align="left" /> + <el-table-column label="鐢ㄦ埛缂栧彿" align="left" key="id" prop="id" v-if="columns[0].visible" /> + <el-table-column label="鐢ㄦ埛鍚嶇О" align="left" key="user_name" prop="user_name" v-if="columns[1].visible" :show-overflow-tooltip="true" /> + <el-table-column label="鐢ㄦ埛鏄电О" align="left" key="nick_name" prop="nick_name" v-if="columns[2].visible" :show-overflow-tooltip="true" /> + <el-table-column label="鏈烘瀯" align="left" key="dept_id" prop="parameter.dept_name" v-if="columns[3].visible" :show-overflow-tooltip="true" /> + <el-table-column label="鎵嬫満鍙风爜" align="left" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> + <el-table-column label="鐘舵��" align="left" key="status" prop="status" v-if="columns[5].visible"> + <template slot-scope="scope"> + <el-switch + v-model="scope.row.status" + :active-value=0 + :inactive-value=1 + @change="handleStatusChange(scope.row)" + ></el-switch> + </template> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" align="left" prop="create_time" v-if="columns[6].visible" width="160"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.create_time) }}</span> + </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + align="center" + width="160" + fixed="right" + > +<!-- <template slot-scope="scope" v-if="scope.row.userId !== 1">--> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button> + <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']"> + <span class="el-dropdown-link"> + <i class="el-icon-d-arrow-right el-icon--right"></i>鏇村 + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="handleResetPwd" icon="el-icon-key" + v-hasPermi="['system:user:resetPwd']">閲嶇疆瀵嗙爜</el-dropdown-item> + <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" + v-hasPermi="['system:user:edit']">鍒嗛厤瑙掕壊</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + </template> + </el-table-column> + </el-table> + +<!-- <pagination--> +<!-- v-show="total>0"--> +<!-- :total="total"--> +<!-- :page.sync="queryParams.pageNum"--> +<!-- :limit.sync="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> + <el-pagination + :current-page="queryParams.pageNum" + :page-sizes="constants.page.limit" + :layout="constants.page.layout" + :total="this.total" + @size-change="changeSize" + @current-change="changePage" + /> + </el-col> + </el-row> + </el-card> + + <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-row> + <el-col :span="12"> + <el-form-item label="鐢ㄦ埛鏄电О" prop="nick_name"> + <el-input v-model="form.nick_name" placeholder="璇疯緭鍏ョ敤鎴锋樀绉�" maxlength="30" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="褰掑睘閮ㄩ棬" prop="dept_id"> + <treeselect v-model="form.dept_id" :options="deptOptions" :show-count="true" placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬" :normalizer="normalizer"/> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> + <el-input v-model="form.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" maxlength="11" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閭" prop="email"> + <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item v-if="form.id == undefined" label="鐧诲綍鍚�" prop="user_name"> + <el-input v-model="form.user_name" placeholder="璇疯緭鍏ョ櫥褰曞悕" maxlength="30" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item v-if="form.id == undefined" label="鐢ㄦ埛瀵嗙爜" prop="password"> + <el-input v-model="form.password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" type="password" maxlength="20" show-password/> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="鐢ㄦ埛鎬у埆" prop="sex"> + <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> + <el-option v-for="dict in constants.sex" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鐘舵��"> + <el-radio-group v-model="form.status"> + <el-radio + v-for="dict in constants.normalOrDisabled" + :key="dict.value" + :label="dict.value" + >{{dict.label}}</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="宀椾綅"> + <el-select v-model="form.postIds" multiple placeholder="璇烽�夋嫨宀椾綅"> +<!-- <el-option--> +<!-- v-for="item in postOptions"--> +<!-- :key="item.postId"--> +<!-- :label="item.postName"--> +<!-- :value="item.postId"--> +<!-- :disabled="item.status == 1"--> +<!-- ></el-option>--> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="瑙掕壊"> + <el-select v-model="form.roleIds" multiple placeholder="璇烽�夋嫨瑙掕壊"> + <el-option + v-for="item in roleOptions" + :key="item.role_id" + :label="item.role_name" + :value="item.role_id" + :disabled="item.status == 1" + ></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="澶囨敞"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + + <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� --> + <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> + <el-upload + ref="upload" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" + :action="upload.url + '?updateSupport=' + upload.updateSupport" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" + :auto-upload="false" + drag + > + <i class="el-icon-upload"></i> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + <div class="el-upload__tip text-center" slot="tip"> + <div class="el-upload__tip" slot="tip"> + <el-checkbox v-model="upload.updateSupport" /> 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + </div> + <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span> + <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">涓嬭浇妯℃澘</el-link> + </div> + </el-upload> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> + <el-button @click="upload.open = false">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> + import { + addUser, + changeUserStatus, + delUser, + getNewUserRoles, + getUser, + listUser, + resetUserPwd, + updateUser + } from "@/api/system/user"; + import {getToken} from "@/utils/auth"; + import {listOrgRootTree, treeselect} from "@/api/system/dept"; + import Treeselect from "@riophae/vue-treeselect"; + import "@riophae/vue-treeselect/dist/vue-treeselect.css"; + import {apiBaseURL} from "@/settings"; + + export default { + name: "User", + // dicts: ['sys_normal_disable', 'sys_user_sex'], + components: { Treeselect }, + data() { + return { + constants: this.$constants, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: null, + // 寮瑰嚭灞傛爣棰� + title: "", + // 閮ㄩ棬鏍戦�夐」 + deptOptions: undefined, + + // 2022-12-08 澶氬崟浣嶆満鏋勬爲锛岃秴绾х鐞嗗憳鍙睍绀哄鏍瑰崟浣� + orgListOptions: undefined, + + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 閮ㄩ棬鍚嶇О + deptName: undefined, + // 榛樿瀵嗙爜 + initPassword: undefined, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 宀椾綅閫夐」 + postOptions: [], + // 瑙掕壊閫夐」 + roleOptions: [], + // 琛ㄥ崟鍙傛暟 + form: {}, + defaultProps: { + children: "children", + label: "label" + }, + // 鐢ㄦ埛瀵煎叆鍙傛暟 + upload: { + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� + open: false, + // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛� + title: "", + // 鏄惁绂佺敤涓婁紶 + isUploading: false, + // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + updateSupport: 0, + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, + // 涓婁紶鐨勫湴鍧� + // url: "http://localhost:8082/admin" + "/system/user/import" + // url: globalConf.baseUrl + "/system/user/import" + url: apiBaseURL + "/system/user/import" + }, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + userName: undefined, + phonenumber: undefined, + status: undefined, + deptId: undefined + }, + // 鍒椾俊鎭� + columns: [ + { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true }, + { key: 1, label: `鐧诲綍鍚峘, visible: true }, + { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true }, + { key: 3, label: `鏈烘瀯`, visible: true }, + { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, + { key: 5, label: `鐘舵�乣, visible: true }, + { key: 6, label: `鍒涘缓鏃堕棿`, visible: true } + ], + // 琛ㄥ崟鏍¢獙 + rules: { + user_name: [ + { required: true, message: "鐧诲綍鍚嶄笉鑳戒负绌�", trigger: "blur" }, + { min: 2, max: 20, message: '鐧诲綍鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿', trigger: 'blur' } + ], + nick_name: [ + { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" } + ], + password: [ + { required: false, message: "涓嶅~鍐欏皢浣跨敤骞冲彴榛樿瀵嗙爜", trigger: "blur" }, + { min: 5, max: 20, message: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿', trigger: 'blur' } + ], + email: [ + { + type: "email", + message: "璇疯緭鍏ユ纭殑閭鍦板潃", + trigger: ["blur", "change"] + } + ], + phonenumber: [ + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ] + } + }; + }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + deptName(val) { + this.$refs.tree.filter(val); + } + }, + created() { + this.listOrgRootTree(); + this.getList(); + // this.getTreeselect(); + // this.getConfigKey("sys.user.initPassword").then(response => { + // this.initPassword = response.msg; + // }); + }, + methods: { + changeSize(e){ + this.queryParams.pageSize = e + this.getList() + }, + changePage(e){ + this.queryParams.pageNum = e + this.getList() + }, + /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ + getList() { + this.loading = true; + if (this.queryParams.deptId == undefined || this.queryParams.deptId == null || this.queryParams.deptId < 1) { + this.queryParams.deptId = 1 + } + listUser(this.queryParams).then(response => { + this.userList = response.datas; + this.total = response.totalRows; + this.loading = false; + } + ); + }, + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + getTreeselect(deptId) { + // treeselect(this.queryParams.deptId).then(response => { + // this.deptOptions = response.data; + // }); + if(deptId == undefined || deptId == ""){ + this.$modal.alert("璇烽�夋嫨涓�涓儴闂�"); + return false; + } + treeselect(deptId).then(response => { + // console.log("+++++++++++++") + // console.log(response); + this.deptOptions = response; + }); + return true; + }, + + // 2022-12-08锛屽姞杞介《绾ф満鏋勬爲鍒楄〃 + listOrgRootTree(){ + listOrgRootTree().then(response => { + // console.log(response); + this.orgListOptions = response; + }); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + console.log("value = " + value + ", data = " + data); + return data.label.indexOf(value) !== -1; + }, + // 鑺傜偣鍗曞嚮浜嬩欢 + handleNodeClick(data) { + this.queryParams.deptId = data.id; + this.handleQuery(); + }, + // 鐢ㄦ埛鐘舵�佷慨鏀� + handleStatusChange(row) { + let text = row.status === 0 ? "鍚敤" : "绂佺敤"; + this.$modal.confirm('纭瑕�' + text + '"' + row.user_name + '"鐢ㄦ埛鍚楋紵').then(function() { + return changeUserStatus(row.id, row.status); + }).then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }).catch(function() { + row.status = row.status === 0 ? 1 : 0; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: undefined, + dept_id: undefined, + user_name: undefined, + nick_name: undefined, + password: undefined, + phonenumber: undefined, + email: undefined, + sex: undefined, + status: 0, + remark: undefined, + postIds: [], + roleIds: [] + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.userId); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + // 鏇村鎿嶄綔瑙﹀彂 + handleCommand(command, row) { + switch (command) { + case "handleResetPwd": + this.handleResetPwd(row); + break; + case "handleAuthRole": + this.handleAuthRole(row); + break; + default: + break; + } + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + // if(this.queryParams.deptId == undefined){ + // this.$modal.msgSuccess("璇峰厛閫夋嫨涓�涓《绾ф満鏋�"); + // return; + // } + if(!this.getTreeselect(this.queryParams.deptId)){ + return; + } + // getUser().then(response => { + getNewUserRoles(this.queryParams.deptId).then(response => { + // this.postOptions = response.posts; + this.roleOptions = response.roles; + this.open = true; + this.title = "娣诲姞鐢ㄦ埛"; + this.form.password = this.initPassword; + this.form.sex = 0; + }); + + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + // this.getTreeselect(); + // const userId = row.id || this.ids; + const userId = row.id; + getUser(userId).then(response => { + this.form = response.data; + // this.postOptions = response.posts; + this.roleOptions = response.roles; + // this.form.postIds = response.postIds; + this.form.roleIds = response.roleIds; + this.open = true; + this.title = "淇敼鐢ㄦ埛"; + this.form.password = ""; + this.form.sex = response.data.sex - 0; + this.getTreeselect(this.form.dept_id); + }); + }, + /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */ + handleResetPwd(row) { + this.$modal.confirm('纭瑕侀噸缃敤鎴�"' + row.user_name + '"鐨勫瘑鐮侊紵').then(function() { + resetUserPwd(row.id, ""); + }).then(() => { + this.$modal.msgSuccess("瀵嗙爜閲嶇疆鎴愬姛"); + }).catch(()=> {}) + + /*this.$prompt('璇疯緭鍏�"' + row.user_name + '"鐨勬柊瀵嗙爜', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + closeOnClickModal: false, + inputPattern: /^.{5,20}$/, + inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿" + }).then(({ value }) => { + resetUserPwd(row.id, value).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value); + }); + }).catch(() => {});*/ + }, + /** 鍒嗛厤瑙掕壊鎿嶄綔 */ + handleAuthRole: function(row) { + const userId = row.id; + this.$router.push("/system/user-auth/role/" + userId); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != undefined) { + updateUser(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addUser(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.id; + this.$modal.confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�').then(function() { + return delUser(userIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.$download('system/user/export', { + ...this.queryParams + }, `user_${new Date().getTime()}.xlsx`) + }, + /** 瀵煎叆鎸夐挳鎿嶄綔 */ + handleImport() { + this.upload.title = "鐢ㄦ埛瀵煎叆"; + this.upload.open = true; + }, + /** 涓嬭浇妯℃澘鎿嶄綔 */ + importTemplate() { + // this.download('system/user/select/downloadTemplate', {}, `user_template_${new Date().getTime()}.xlsx`); + this.$download('system/user/select/downloadTemplate', {}, `user_template.xlsx`); + }, + // 鏂囦欢涓婁紶涓鐞� + handleFileUploadProgress(event, file, fileList) { + this.upload.isUploading = true; + }, + // 鏂囦欢涓婁紶鎴愬姛澶勭悊 + handleFileSuccess(response, file, fileList) { + this.upload.open = false; + this.upload.isUploading = false; + this.$refs.upload.clearFiles(); + this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true }); + this.getList(); + }, + // 鎻愪氦涓婁紶鏂囦欢 + submitFileForm() { + this.$refs.upload.submit(); + }, + normalizer(node){ + //鍘绘帀children=null鐨勫睘鎬� + if(node.children==null||node.children=='null'){ + delete node.children; + } + }, + } +}; +</script> diff --git a/project-web/src/views/systemSetting/user/profile/index.vue b/project-web/src/views/systemSetting/user/profile/index.vue new file mode 100644 index 0000000..6574379 --- /dev/null +++ b/project-web/src/views/systemSetting/user/profile/index.vue @@ -0,0 +1,42 @@ +<template> + <div class="app-container"> + <div style="display: flex"> + <el-card class="box-card"> + <el-tabs tab-position="left" v-model="activeTab"> + <el-tab-pane label="鍩烘湰璧勬枡" name="userinfo"></el-tab-pane> + <el-tab-pane label="淇敼瀵嗙爜" name="resetPwd"></el-tab-pane> + </el-tabs> + </el-card> + <el-card class="box-card" style="flex: 1;margin-left: 16px"> + <div slot="header" class="clearfix"> + <span style="font-size: 18px;font-weight: bold">{{ activeTab === 'userinfo' ? '鍩烘湰璧勬枡' : '淇敼瀵嗙爜' }}</span> + </div> + <userInfo v-if="activeTab==='userinfo'"/> + <resetPwd v-if="activeTab==='resetPwd'"/> + </el-card> + </div> + </div> +</template> + +<script> +import userInfo from "./userInfo"; +import resetPwd from "./resetPwd"; + +export default { + name: "Profile", + components: {userInfo, resetPwd}, + data() { + return { + roleGroup: {}, + postGroup: {}, + activeTab: "userinfo" + }; + }, + methods: {} +}; +</script> +<style scoped> +.box-card{ + height: calc(100vh - 146px); +} +</style> diff --git a/project-web/src/views/systemSetting/user/profile/resetPwd.vue b/project-web/src/views/systemSetting/user/profile/resetPwd.vue new file mode 100644 index 0000000..4365831 --- /dev/null +++ b/project-web/src/views/systemSetting/user/profile/resetPwd.vue @@ -0,0 +1,92 @@ +<template> + <el-form style="width: 500px;margin: auto" ref="form" :model="user" :rules="rules" label-width="80px"> + <el-form-item label="鏃у瘑鐮�" prop="oldMixPd"> + <el-input v-model="user.oldMixPd" placeholder="璇疯緭鍏ユ棫瀵嗙爜" type="password" show-password/> + </el-form-item> + <el-form-item label="鏂板瘑鐮�" prop="newMixPd"> + <el-input v-model="user.newMixPd" placeholder="璇疯緭鍏ユ柊瀵嗙爜" type="password" show-password/> + <div style="font-size: 12px;color: #999"><span style="color: red;margin-right: 4px">*</span>瀵嗙爜闀垮害鍦� 8 鍒� 12 涓瓧绗﹂棿,蹇呴』鍖呭惈鏁板瓧銆佸ぇ灏忓啓瀛楁瘝銆佺壒娈婂瓧绗�</div> + </el-form-item> + <el-form-item label="纭瀵嗙爜" prop="btnMixPd"> + <el-input v-model="user.btnMixPd" placeholder="璇风‘璁ゆ柊瀵嗙爜" type="password" show-password/> + </el-form-item> + <el-form-item> + <el-button type="primary" size="mini" @click="submit">淇濆瓨</el-button> + <el-button type="danger" size="mini" @click="close">鍏抽棴</el-button> + </el-form-item> + </el-form> +</template> + +<script> +import {updatePassword} from "@/api/user"; +import {encrypt} from "@/utils/jsencrypt"; + +export default { + data() { + const equalToPassword = (rule, value, callback) => { + if (this.user.newMixPd !== value) { + callback(new Error("涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�")); + } else { + callback(); + } + }; + return { + user: { + oldMixPd: undefined, + newMixPd: undefined, + btnMixPd: undefined + }, + // 琛ㄥ崟鏍¢獙 + rules: { + oldMixPd: [ + {required: true, message: "鏃у瘑鐮佷笉鑳戒负绌�", trigger: "blur"} + ], + newMixPd: [ + {required: true, message: "鏂板瘑鐮佷笉鑳戒负绌�", trigger: "blur"}, + { min: 8, max: 12, message: "闀垮害鍦� 8 鍒� 12 涓瓧绗�", trigger: "blur" } + ], + btnMixPd: [ + {required: true, message: "纭瀵嗙爜涓嶈兘涓虹┖", trigger: "blur"}, + {required: true, validator: equalToPassword, trigger: "blur"} + ] + } + }; + }, + methods: { + submit() { + this.$refs["form"].validate(valid => { + if (valid) { + let params = { + oldMixPd: encrypt(this.user.oldMixPd), + newMixPd: encrypt(this.user.newMixPd), + btnMixPd: encrypt(this.user.btnMixPd), + } + updatePassword(params).then(response => { + this.user = { + oldMixPd: undefined, + newMixPd: undefined, + btnMixPd: undefined + } + this.$modal.msgSuccess("淇敼鎴愬姛"); + }); + } + }); + }, + close() { + this.$store.dispatch('tagsView/delView', this.$route).then(({visitedViews}) => { + const latestView = visitedViews.slice(-1)[0]; + if (latestView) { + this.$router.push(latestView.fullPath); + } else { + if (this.$route.name === 'Dashboard') { + // to reload home page + this.$router.replace({path: '/redirect' + this.$route.fullPath}); + } else { + this.$router.push('/dashboard'); + } + } + }); + } + } +}; +</script> diff --git a/project-web/src/views/systemSetting/user/profile/userInfo.vue b/project-web/src/views/systemSetting/user/profile/userInfo.vue new file mode 100644 index 0000000..15362aa --- /dev/null +++ b/project-web/src/views/systemSetting/user/profile/userInfo.vue @@ -0,0 +1,165 @@ +<template> + <el-form style="width: 500px;margin: auto" ref="form" :model="user" :rules="rules" label-width="80px"> + <el-form-item label="澶村儚"> + <input id="imgInput" style="display: none" type="file" accept="image/*" @change="sendImg" /> + <div class="avatar-box"> + <el-avatar :size="100" :src="user.avatar?getHead():require('@/assets/images/40b2.jpeg')"></el-avatar> + <label class="upload" for="imgInput" + ><i class="el-icon-camera"></i></label> + </div> + </el-form-item> + <el-form-item label="鐢ㄦ埛濮撳悕" prop="userName"> + <el-input v-model="user.userName" maxlength="30" /> + </el-form-item> + <el-form-item label="鐧诲綍鍚�"> + <el-input disabled v-model="user.userCode" maxlength="30" /> + </el-form-item> + <el-form-item label="鎬у埆" required> + <el-radio-group v-model="user.sex"> + <el-radio :label="1">鐢�</el-radio> + <el-radio :label="0">濂�</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鎵嬫満鍙风爜" prop="userPhone"> + <el-input v-model="user.userPhone" maxlength="11" /> + </el-form-item> + <el-form-item label="閭" prop="email"> + <el-input v-model="user.email" maxlength="50" /> + </el-form-item> + <el-form-item> + <el-button type="primary" size="mini" @click="submit">淇濆瓨</el-button> + <el-button type="danger" size="mini" @click="close">鍏抽棴</el-button> + </el-form-item> + </el-form> +</template> + +<script> +import { mapGetters } from "vuex"; +import {updatePerson,getCurInfo} from "@/api/user"; +import {getDownUrl, upLoadFile} from "@/utils/base"; + +export default { + computed: { + ...mapGetters([ + "userInfo", + ]) + }, + created(){ + this.user = JSON.parse(JSON.stringify(this.userInfo)) + console.log(this.user) + }, + data() { + return { + baseUrl:getDownUrl(), + user:{}, + // 琛ㄥ崟鏍¢獙 + rules: { + userName: [ + { required: true, message: "鐢ㄦ埛濮撳悕涓嶈兘涓虹┖", trigger: "blur" } + ], + email: [ + { + type: "email", + message: "璇疯緭鍏ユ纭殑閭鍦板潃", + trigger: ["blur", "change"] + } + ], + userPhone: [ + { required: true, message: "鎵嬫満鍙风爜涓嶈兘涓虹┖", trigger: "blur" }, + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ] + } + }; + }, + methods: { + getHead(){ + return this.baseUrl + this.user.avatar + }, + // 涓婁紶鍥剧墖 + sendImg(e) { + const file = e.target.files[0]; // 鑾峰彇鍥剧墖璧勬簮 + // 鍙�夋嫨鍥剧墖 + if (!file.type.match('image.*')) { + this.$message.error('鍙兘涓婁紶鍥剧墖'); + return false; + } + const formData = new FormData(); + formData.append('multipartFile', file); + const loadingInstance = this.$loading({ + text: '涓婁紶涓�...', + background: 'rgba(0,0,0,0.5)', + }); + upLoadFile(formData) + .then((res) => { + e.target.value = '' //闃叉閲嶅涓婁紶鍚屼竴寮犵収鐗� 涓嶈兘鍙戦�� + this.user.avatar = res[0].url + loadingInstance.close(); + }) + .catch((err) => { + loadingInstance.close(); + }); + }, + submit() { + this.$refs["form"].validate(valid => { + if (valid) { + updatePerson(this.user).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + getCurInfo().then(res=>{ + this.$store.commit('user/SET_USER_INFO',res) + }) + }); + } + }); + }, + close() { + this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { + const latestView = visitedViews.slice(-1)[0]; + if (latestView) { + this.$router.push(latestView.fullPath); + } else { + if (this.$route.name === 'Dashboard') { + // to reload home page + this.$router.replace({ path: '/redirect' + this.$route.fullPath }); + } else { + this.$router.push('/dashboard'); + } + } + }); + } + } +}; +</script> +<style scoped lang="scss"> +.avatar-box{ + position: relative; + width: 100px; + height: 100px; + cursor: pointer; + +} +.avatar-box:hover .upload{ + display: flex; + align-items: center; + justify-content: center; +} +.upload{ + display: none; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: rgba(0,0,0,0.5); + cursor: pointer; + .el-icon-camera{ + font-size: 24px; + color: #fff; + } +} + +</style> diff --git a/project-web/tests/unit/.eslintrc.js b/project-web/tests/unit/.eslintrc.js new file mode 100644 index 0000000..958d51b --- /dev/null +++ b/project-web/tests/unit/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + jest: true + } +} diff --git a/project-web/tests/unit/components/Hamburger.spec.js b/project-web/tests/unit/components/Hamburger.spec.js new file mode 100644 index 0000000..01ea303 --- /dev/null +++ b/project-web/tests/unit/components/Hamburger.spec.js @@ -0,0 +1,18 @@ +import { shallowMount } from '@vue/test-utils' +import Hamburger from '@/components/Hamburger/index.vue' +describe('Hamburger.vue', () => { + it('toggle click', () => { + const wrapper = shallowMount(Hamburger) + const mockFn = jest.fn() + wrapper.vm.$on('toggleClick', mockFn) + wrapper.find('.hamburger').trigger('click') + expect(mockFn).toBeCalled() + }) + it('prop isActive', () => { + const wrapper = shallowMount(Hamburger) + wrapper.setProps({ isActive: true }) + expect(wrapper.contains('.is-active')).toBe(true) + wrapper.setProps({ isActive: false }) + expect(wrapper.contains('.is-active')).toBe(false) + }) +}) diff --git a/project-web/tests/unit/components/SvgIcon.spec.js b/project-web/tests/unit/components/SvgIcon.spec.js new file mode 100644 index 0000000..31467a9 --- /dev/null +++ b/project-web/tests/unit/components/SvgIcon.spec.js @@ -0,0 +1,22 @@ +import { shallowMount } from '@vue/test-utils' +import SvgIcon from '@/components/SvgIcon/index.vue' +describe('SvgIcon.vue', () => { + it('iconClass', () => { + const wrapper = shallowMount(SvgIcon, { + propsData: { + iconClass: 'test' + } + }) + expect(wrapper.find('use').attributes().href).toBe('#icon-test') + }) + it('className', () => { + const wrapper = shallowMount(SvgIcon, { + propsData: { + iconClass: 'test' + } + }) + expect(wrapper.classes().length).toBe(1) + wrapper.setProps({ className: 'test' }) + expect(wrapper.classes().includes('test')).toBe(true) + }) +}) diff --git a/project-web/tests/unit/utils/formatTime.spec.js b/project-web/tests/unit/utils/formatTime.spec.js new file mode 100644 index 0000000..d07e414 --- /dev/null +++ b/project-web/tests/unit/utils/formatTime.spec.js @@ -0,0 +1,29 @@ +import { formatTime } from '@/utils/index.js' +describe('Utils:formatTime', () => { + const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" + const retrofit = 5 * 1000 + + it('ten digits timestamp', () => { + expect(formatTime((d / 1000).toFixed(0))).toBe('7鏈�13鏃�17鏃�54鍒�') + }) + it('test now', () => { + expect(formatTime(+new Date() - 1)).toBe('鍒氬垰') + }) + it('less two minute', () => { + expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe('2鍒嗛挓鍓�') + }) + it('less two hour', () => { + expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe('2灏忔椂鍓�') + }) + it('less one day', () => { + expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe('1澶╁墠') + }) + it('more than one day', () => { + expect(formatTime(d)).toBe('7鏈�13鏃�17鏃�54鍒�') + }) + it('format', () => { + expect(formatTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') + expect(formatTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') + expect(formatTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') + }) +}) diff --git a/project-web/tests/unit/utils/parseTime.spec.js b/project-web/tests/unit/utils/parseTime.spec.js new file mode 100644 index 0000000..bc61d1a --- /dev/null +++ b/project-web/tests/unit/utils/parseTime.spec.js @@ -0,0 +1,32 @@ +import { parseTime } from '@/utils/index.js' +describe('Utils:parseTime', () => { + const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" + it('timestamp', () => { + expect(parseTime(d)).toBe('2018-07-13 17:54:01') + }) + + it('timestamp string', () => { + expect(parseTime((d + ''))).toBe('2018-07-13 17:54:01') + }) + + it('ten digits timestamp', () => { + expect(parseTime((d / 1000).toFixed(0))).toBe('2018-07-13 17:54:01') + }) + it('new Date', () => { + expect(parseTime(new Date(d))).toBe('2018-07-13 17:54:01') + }) + it('format', () => { + expect(parseTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') + expect(parseTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') + expect(parseTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') + }) + it('get the day of the week', () => { + expect(parseTime(d, '{a}')).toBe('浜�') // 鏄熸湡浜� + }) + it('get the day of the week', () => { + expect(parseTime(+d + 1000 * 60 * 60 * 24 * 2, '{a}')).toBe('鏃�') // 鏄熸湡鏃� + }) + it('empty argument', () => { + expect(parseTime()).toBeNull() + }) +}) diff --git a/project-web/tests/unit/utils/validate.spec.js b/project-web/tests/unit/utils/validate.spec.js new file mode 100644 index 0000000..ef2efe6 --- /dev/null +++ b/project-web/tests/unit/utils/validate.spec.js @@ -0,0 +1,28 @@ +import { validUsername, validURL, validLowerCase, validUpperCase, validAlphabets } from '@/utils/validate.js' +describe('Utils:validate', () => { + it('validUsername', () => { + expect(validUsername('admin')).toBe(true) + expect(validUsername('editor')).toBe(true) + expect(validUsername('xxxx')).toBe(false) + }) + it('validURL', () => { + expect(validURL('https://github.com/PanJiaChen/vue-element-admin')).toBe(true) + expect(validURL('http://github.com/PanJiaChen/vue-element-admin')).toBe(true) + expect(validURL('github.com/PanJiaChen/vue-element-admin')).toBe(false) + }) + it('validLowerCase', () => { + expect(validLowerCase('abc')).toBe(true) + expect(validLowerCase('Abc')).toBe(false) + expect(validLowerCase('123abc')).toBe(false) + }) + it('validUpperCase', () => { + expect(validUpperCase('ABC')).toBe(true) + expect(validUpperCase('Abc')).toBe(false) + expect(validUpperCase('123ABC')).toBe(false) + }) + it('validAlphabets', () => { + expect(validAlphabets('ABC')).toBe(true) + expect(validAlphabets('Abc')).toBe(true) + expect(validAlphabets('123aBC')).toBe(false) + }) +}) diff --git a/project-web/vue.config.js b/project-web/vue.config.js new file mode 100644 index 0000000..7a1e29d --- /dev/null +++ b/project-web/vue.config.js @@ -0,0 +1,130 @@ +'use strict' +const path = require('path') +const defaultSettings = require('./src/settings.js') + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const name = defaultSettings.title || '鍥哄畾璧勪骇椤圭洰杩涘害' // page title + +// If your port is set to 80, +// use administrator privileges to execute the command line. +// For example, Mac: sudo npm run +// You can change the port by the following method: +// port = 9527 npm run dev OR npm run dev --port = 9527 +const port = process.env.port || process.env.npm_config_port || 80 // dev port + +// All configuration item explanations can be find in https://cli.vuejs.org/config/ +module.exports = { + /** + * You will need to set publicPath if you plan to deploy your site under a sub path, + * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, + * then publicPath should be set to "/bar/". + * In most cases please use '/' !!! + * Detail: https://cli.vuejs.org/config/#publicpath + */ + transpileDependencies: ['element-ui', 'vuex', 'js-cookie', '@babel', 'resize-detector'], + publicPath: './', + // publicPath: '/', + outputDir: 'psmWeb', + assetsDir: 'static', + lintOnSave: process.env.NODE_ENV === 'development', + productionSourceMap: false, + devServer: { + port: port, + open: false, + overlay: { + warnings: false, + errors: true + } + }, + configureWebpack: { + // provide the app's title in webpack's name field, so that + // it can be accessed in index.html to inject the correct title. + name: name, + resolve: { + alias: { + '@': resolve('src') + } + } + }, + chainWebpack(config) { + config.entry.app = ['babel-polyfill', './src/main.js'] + config.plugins.delete('preload') // TODO: need test + config.plugins.delete('prefetch') // TODO: need test + + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() + + // set preserveWhitespace + config.module + .rule('vue') + .use('vue-loader') + .loader('vue-loader') + .tap(options => { + options.compilerOptions.preserveWhitespace = true + return options + }) + .end() + + config + // https://webpack.js.org/configuration/devtool/#development + .when(process.env.NODE_ENV === 'development', + config => config.devtool('cheap-source-map') + ) + + config + .when(process.env.NODE_ENV !== 'development', + config => { + config + .plugin('ScriptExtHtmlWebpackPlugin') + .after('html') + .use('script-ext-html-webpack-plugin', [{ + // `runtime` must same as runtimeChunk name. default is `runtime` + inline: /runtime\..*\.js$/ + }]) + .end() + config + .optimization.splitChunks({ + chunks: 'all', + cacheGroups: { + libs: { + name: 'chunk-libs', + test: /[\\/]node_modules[\\/]/, + priority: 10, + chunks: 'initial' // only package third parties that are initially dependent + }, + elementUI: { + name: 'chunk-elementUI', // split elementUI into a single package + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app + test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm + }, + commons: { + name: 'chunk-commons', + test: resolve('src/components'), // can customize your rules + minChunks: 3, // minimum common number + priority: 5, + reuseExistingChunk: true + } + } + }) + config.optimization.runtimeChunk('single') + } + ) + } +} -- Gitblit v1.9.1